@rive-app/webgl2 2.32.0 → 2.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/rive.js +9 -9
- package/rive.js.map +1 -1
- package/rive.wasm +0 -0
package/rive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rive.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,eAAe;AACpG;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG,EAAE;AACL,yDAAyD;AACzD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,GAAG,EAAE;AACL,mEAAmE;AACnE;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE;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,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,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gBAAgB,0BAA0B;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,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA,GAAG;AACH;AACA;AACA;AACA,+IAA+I,0BAA0B;AACzK,yCAAyC,EAAE;AAC3C;AACA;AACA,GAAG;AACH;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,uEAAuE,OAAO;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qCAAqC;AACpE,oEAAoE,OAAO;AAC3E;AACA;AACA;AACA,MAAM;AACN,kBAAkB,qCAAqC;AACvD;AACA;AACA;AACA;AACA,wFAAwF,mBAAmB;AAC3G;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,EAAE;AACF,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,WAAW;AACX;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC,EAAE,QAAQ;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD,UAAU;AACV,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC,EAAE,QAAQ;AACX;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB,KAAK,MAAM,8FAA8F,UAAU,WAAW,QAAQ,MAAM,iBAAiB,UAAU,4EAA4E,QAAQ,MAAM,4BAA4B,YAAY,MAAM,MAAM,iBAAiB,aAAa;AACpW;AACA,kFAAkF;AAClF;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,KAAK;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,EAAE,KAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,gBAAgB,OAAO;AACvB;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,IAAI;AACJ,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,UAAU;AACV,CAAC;AACD;AACA;AACA,CAAC,EAAE,EAAE;AACL;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACrB;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;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,qBAAqB;AACrB;AACA;AACA,YAAY;AACZ;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA,0DAA0D,EAAE,GAAG,EAAE;AACjE;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,GAAG;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,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,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAa;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;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,iBAAiB,UAAU;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,aAAa,iDAAiD;AAC9D;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,iBAAiB;AAClC,MAAM;AACN;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,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA,UAAU,6EAA6E;AACvF;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA,GAAG;AACH,2BAA2B,OAAO;AAClC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,OAAO;AAC3B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,oEAAoE,QAAQ;AAC3F;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oDAAoD,UAAU,IAAI,aAAa;AAC/E;AACA;AACA,CAAC;AACD,mBAAmB,KAAK;AACxB;AACA;AACA;AACA,CAAC;AACD,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA,CAAC,aAAa;AACd;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iBAAiB,GAAG,mBAAmB,MAAM;AAC7C;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,8BAA8B,GAAG,sBAAsB,EAAE;AACzD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,gDAAgD,SAAS,sBAAsB,OAAO;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA,yGAAyG,EAAE;AAC3G;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA,kDAAkD,OAAO,uBAAuB,OAAO;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,mDAAmD,iCAAiC,oBAAoB,UAAU;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,yDAAyD,iCAAiC,oBAAoB,UAAU;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,mDAAmD,YAAY,oBAAoB,UAAU;AAC7F;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,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2DAA2D,EAAE,IAAI,EAAE;AACnE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,GAAG,cAAc,UAAU,sBAAsB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,mBAAmB,GAAG,uBAAuB,EAAE;AAC/C;AACA;AACA,mBAAmB,GAAG,mCAAmC,mBAAmB;AAC5E;AACA;AACA,yDAAyD,GAAG;AAC5D;AACA;AACA,CAAC;AACD;AACA,CAAC,QAAQ;AACT;AACA;AACA;AACA,CAAC,iFAAiF;AAClF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,oDAAoD,EAAE,KAAK,EAAE;AAC7D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE,KAAK,EAAE;AAC3D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,EAAE,KAAK,EAAE;AAC7D;AACA,CAAC;AACD;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,CAAC,uFAAuF;AACxF,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB;AACtB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,eAAe;AAChB;AACA,aAAa,kOAAkO;AAC/O;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE,GAAG,KAAK;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,4CAA4C,EAAE,qDAAqD,EAAE,aAAa,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE,8BAA8B,EAAE,IAAI,EAAE,mBAAmB,GAAG,UAAU,SAAS;AACzH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;AACtE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH,2BAA2B,eAAe;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uCAAuC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW;AACX;AACA,WAAW,gBAAgB,UAAU,KAAK,gBAAgB;AAC1D;AACA;AACA;AACA,IAAI;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG,OAAO,6DAA6D,GAAG;AAChG;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH,6BAA6B;AAC7B;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,mCAAmC,6BAA6B,kBAAkB,aAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB,eAAe,UAAU;AAC1G,CAAC,EAAE;AACH;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD;AACA,KAAK;AACL,6CAA6C,QAAQ;AACrD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,GAAG,SAAS;AAC/C;AACA;AACA;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gEAAgE,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kDAAkD;AACvD,GAAG;AACH,CAAC;AACD,CAAC;AACD;AACA,QAAQ;AACR;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG,UAAU;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,GAAG,qCAAqC,SAAS,gBAAgB,4BAA4B;AAC5I;AACA;AACA,KAAK;AACL,8BAA8B,aAAa,QAAQ,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO,GAAG,EAAE,QAAQ;AACnC,0BAA0B,GAAG;AAC7B,KAAK;AACL;AACA,0BAA0B,GAAG;AAC7B,MAAM;AACN,qBAAqB,GAAG;AACxB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,gGAAgG,MAAM,eAAe,OAAO;AAC5H;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO,GAAG,EAAE,QAAQ;AACnC,0BAA0B,GAAG;AAC7B,KAAK;AACL,0CAA0C,GAAG;AAC7C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,GAAG,4FAA4F;AAC/F;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA8C,OAAO,QAAQ,eAAe,YAAY,OAAO,GAAG,EAAE;AACpG,GAAG,EAAE,EAAE;AACP;AACA;AACA,CAAC;AACD;AACA,QAAQ,8GAA8G;AACtH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG;AACzB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,QAAQ,wGAAwG;AAChH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAkE,GAAG,OAAO;AACpF,CAAC;AACD;AACA;AACA,QAAQ;AACR;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,EAAE;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,QAAQ;AACR,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI;AACJ,CAAC;AACD,WAAW;AACX,CAAC;AACD,iBAAiB,yDAAyD;AAC1E,CAAC;AACD;AACA,QAAQ;AACR,GAAG;AACH,GAAG,EAAE;AACL,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uBAAuB,8BAA8B,OAAO,OAAO;AACnE;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,iGAAiG;AAClG;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA,mFAAmF,MAAM,GAAG,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB,WAAW,SAAS,qCAAqC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,mCAAmC,oEAAoE;AACvG;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0FAA0F,EAAE;AAC5F;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACr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","sources":["webpack://rive/webpack/universalModuleDefinition","webpack://rive/./npm/webgl2_advanced/webgl2_advanced.mjs","webpack://rive/./src/animation/index.ts","webpack://rive/./src/animation/Animation.ts","webpack://rive/./src/utils/index.ts","webpack://rive/./src/utils/registerTouchInteractions.ts","webpack://rive/./src/utils/sanitizeUrl.ts","webpack://rive/./src/utils/finalizationRegistry.ts","webpack://rive/webpack/bootstrap","webpack://rive/webpack/runtime/define property getters","webpack://rive/webpack/runtime/hasOwnProperty shorthand","webpack://rive/webpack/runtime/make namespace object","webpack://rive/./src/rive.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, () => {\nreturn ","\nvar Rive = (() => {\n var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;\n \n return (\nfunction(moduleArg = {}) {\n var moduleRtn;\n\nvar l = moduleArg, aa, ba, ca = new Promise((a, b) => {\n aa = a;\n ba = b;\n}), da = \"object\" == typeof window, ea = \"function\" == typeof importScripts;\nfunction fa() {\n function a(g) {\n const k = d;\n c = b = 0;\n d = new Map();\n k.forEach(m => {\n try {\n m(g);\n } catch (n) {\n console.error(n);\n }\n });\n this.mb();\n e && e.Mb();\n }\n let b = 0, c = 0, d = new Map(), e = null, f = null;\n this.requestAnimationFrame = function(g) {\n b ||= requestAnimationFrame(a.bind(this));\n const k = ++c;\n d.set(k, g);\n return k;\n };\n this.cancelAnimationFrame = function(g) {\n d.delete(g);\n b && 0 == d.size && (cancelAnimationFrame(b), b = 0);\n };\n this.Kb = function(g) {\n f && (document.body.remove(f), f = null);\n g || (f = document.createElement(\"div\"), f.style.backgroundColor = \"black\", f.style.position = \"fixed\", f.style.right = 0, f.style.top = 0, f.style.color = \"white\", f.style.padding = \"4px\", f.innerHTML = \"RIVE FPS\", g = function(k) {\n f.innerHTML = \"RIVE FPS \" + k.toFixed(1);\n }, document.body.appendChild(f));\n e = new function() {\n let k = 0, m = 0;\n this.Mb = function() {\n var n = performance.now();\n m ? (++k, n -= m, 1000 < n && (g(1000 * k / n), k = m = 0)) : (m = n, k = 0);\n };\n }();\n };\n this.mb = function() {\n };\n}\nfunction ha() {\n console.assert(!0);\n const a = new Map();\n let b = -Infinity;\n this.push = function(c) {\n c = c + 255 >> 8;\n a.has(c) && clearTimeout(a.get(c));\n a.set(c, setTimeout(function() {\n a.delete(c);\n 0 == a.length ? b = -Infinity : c == b && (b = Math.max(...a.keys()), console.assert(b < c));\n }, 1000));\n b = Math.max(c, b);\n return b << 8;\n };\n}\nconst ia = l.onRuntimeInitialized;\nl.onRuntimeInitialized = function() {\n ia && ia();\n let a = l.decodeAudio;\n l.decodeAudio = function(e, f) {\n e = a(e);\n f(e);\n };\n let b = l.decodeFont;\n l.decodeFont = function(e, f) {\n e = b(e);\n f(e);\n };\n const c = l.FileAssetLoader;\n l.ptrToAsset = e => {\n let f = l.ptrToFileAsset(e);\n return f.isImage ? l.ptrToImageAsset(e) : f.isFont ? l.ptrToFontAsset(e) : f.isAudio ? l.ptrToAudioAsset(e) : f;\n };\n l.CustomFileAssetLoader = c.extend(\"CustomFileAssetLoader\", {__construct:function({loadContents:e}) {\n this.__parent.__construct.call(this);\n this.Bb = e;\n }, loadContents:function(e, f) {\n e = l.ptrToAsset(e);\n return this.Bb(e, f);\n },});\n l.CDNFileAssetLoader = c.extend(\"CDNFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n }, loadContents:function(e) {\n let f = l.ptrToAsset(e);\n e = f.cdnUuid;\n if (\"\" === e) {\n return !1;\n }\n (function(g, k) {\n var m = new XMLHttpRequest();\n m.responseType = \"arraybuffer\";\n m.onreadystatechange = function() {\n 4 == m.readyState && 200 == m.status && k(m);\n };\n m.open(\"GET\", g, !0);\n m.send(null);\n })(f.cdnBaseUrl + \"/\" + e, g => {\n f.decode(new Uint8Array(g.response));\n });\n return !0;\n },});\n l.FallbackFileAssetLoader = c.extend(\"FallbackFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n this.ib = [];\n }, addLoader:function(e) {\n this.ib.push(e);\n }, loadContents:function(e, f) {\n for (let g of this.ib) {\n if (g.loadContents(e, f)) {\n return !0;\n }\n }\n return !1;\n },});\n let d = l.computeAlignment;\n l.computeAlignment = function(e, f, g, k, m = 1.0) {\n return d.call(this, e, f, g, k, m);\n };\n};\nconst ja = l.onRuntimeInitialized;\nl.onRuntimeInitialized = function() {\n function a(r) {\n this.G = r;\n this.Ab = r.getContext(\"2d\");\n this.Db = d;\n this.S = [];\n this.ka = 0;\n this.clear = function() {\n console.assert(0 == this.ka);\n this.S = [];\n e.delete(this);\n };\n this.save = function() {\n ++this.ka;\n this.S.push(d.save.bind(d));\n };\n this.restore = function() {\n 0 < this.ka && (this.S.push(d.restore.bind(d)), --this.ka);\n };\n this.transform = function(u) {\n this.S.push(d.transform.bind(d, u));\n };\n this.align = function(u, y, z, C, F = 1.0) {\n this.S.push(d.align.bind(d, u, y, z, C, F));\n };\n this.flush = function() {\n console.assert(0 == this.ka);\n e.add(this);\n d.Ya || c();\n };\n this[\"delete\"] = function() {\n };\n }\n function b(r, u = !1) {\n var y = {alpha:!0, depth:u, stencil:u, antialias:u, premultipliedAlpha:!0, preserveDrawingBuffer:0, powerPreference:\"high-performance\", failIfMajorPerformanceCaveat:0, enableExtensionsByDefault:!1, explicitSwapControl:0, renderViaOffscreenBackBuffer:0,};\n u = r.getContext(\"webgl2\", y);\n if (!u) {\n return null;\n }\n y = ka(u, y);\n la(y);\n const z = f(r.width, r.height);\n z.La = y;\n z.G = r;\n z.Ma = r.width;\n z.Za = r.height;\n z.T = u;\n var C = z.delete;\n z.delete = function() {\n C.call(this);\n var F = this.La;\n q === w[F] && (q = null);\n \"object\" == typeof JSEvents && JSEvents.Kc(w[F].C.canvas);\n w[F] && w[F].C.canvas && (w[F].C.canvas.zb = void 0);\n this.La = this.G = this.Ma = this.T = w[F] = null;\n };\n return z;\n }\n function c() {\n if (d) {\n var r = d.Cb, u = 0, y = 0, z = 0, C = Array(e.size), F = 0;\n for (var I of e) {\n I.fa = Math.min(I.G.width, r), I.ea = Math.min(I.G.height, r), I.Ja = I.ea * I.fa, u = Math.max(u, I.fa), y = Math.max(y, I.ea), z += I.Ja, C[F++] = I;\n }\n e.clear();\n if (!(0 >= z)) {\n u = 1 << (0 >= u ? 0 : 32 - Math.clz32(u - 1));\n for (y = 1 << (0 >= y ? 0 : 32 - Math.clz32(y - 1)); y * u < z;) {\n u <= y ? u *= 2 : y *= 2;\n }\n u = Math.min(u, r);\n u = Math.min(y, r);\n C.sort((Z, mb) => mb.Ja - Z.Ja);\n z = new l.DynamicRectanizer(r);\n for (I = 0; I < C.length;) {\n z.reset(u, y);\n for (F = I; F < C.length; ++F) {\n var J = C[F], H = z.addRect(J.fa, J.ea);\n if (0 > H) {\n console.assert(F > I);\n break;\n }\n J.qa = H & 65535;\n J.ra = H >> 16;\n }\n J = m.push(z.drawWidth());\n H = n.push(z.drawHeight());\n console.assert(J >= z.drawWidth());\n console.assert(H >= z.drawHeight());\n console.assert(J <= r);\n console.assert(H <= r);\n d.G.width != J && (d.G.width = J);\n d.G.height != H && (d.G.height = H);\n d.clear();\n for (J = I; J < F; ++J) {\n H = C[J];\n d.saveClipRect(H.qa, H.ra, H.qa + H.fa, H.ra + H.ea);\n let Z = new l.Mat2D();\n Z.xx = H.fa / H.G.width;\n Z.yy = H.ea / H.G.height;\n Z.xy = Z.yx = 0;\n Z.tx = H.qa;\n Z.ty = H.ra;\n d.transform(Z);\n for (const mb of H.S) {\n mb();\n }\n d.restoreClipRect();\n H.S = [];\n }\n for (d.flush(); I < F; ++I) {\n J = C[I], H = J.Ab, H.globalCompositeOperation = \"copy\", H.drawImage(d.G, J.qa, J.ra, J.fa, J.ea, 0, 0, J.G.width, J.G.height);\n }\n I = F;\n }\n }\n }\n }\n ja && ja();\n let d = null;\n const e = new Set(), f = l.makeRenderer;\n l.makeRenderer = function(r, u) {\n if (!d) {\n function y(z) {\n var C = document.createElement(\"canvas\");\n C.width = 1;\n C.height = 1;\n d = b(C, z);\n d.Ya = !!d.T.getExtension(\"WEBGL_shader_pixel_local_storage\");\n d.Cb = Math.min(d.T.getParameter(d.T.MAX_RENDERBUFFER_SIZE), d.T.getParameter(d.T.MAX_TEXTURE_SIZE));\n d.Ka = !d.Ya;\n if (z = d.T.getExtension(\"WEBGL_debug_renderer_info\")) {\n C = d.T.getParameter(z.UNMASKED_RENDERER_WEBGL), d.T.getParameter(z.UNMASKED_VENDOR_WEBGL).includes(\"Google\") && C.includes(\"ANGLE Metal Renderer\") && (d.Ka = !1);\n }\n return d;\n }\n d = y(!0);\n d.Ka || (d = y(!1));\n }\n return u ? new a(r) : b(r, d.Ka);\n };\n const g = l.Artboard.prototype[\"delete\"];\n l.Artboard.prototype[\"delete\"] = function() {\n this.Eb = !0;\n g.call(this);\n };\n const k = l.Artboard.prototype.draw;\n l.Artboard.prototype.draw = function(r) {\n r.S ? r.S.push(() => {\n this.Eb || k.call(this, r.Db);\n }) : k.call(this, r);\n };\n const m = new ha(), n = new ha(), t = new fa();\n l.requestAnimationFrame = t.requestAnimationFrame.bind(t);\n l.cancelAnimationFrame = t.cancelAnimationFrame.bind(t);\n l.enableFPSCounter = t.Kb.bind(t);\n t.mb = c;\n l.resolveAnimationFrame = c;\n let v = l.load;\n l.load = function(r, u, y = !0) {\n const z = new l.FallbackFileAssetLoader();\n void 0 !== u && z.addLoader(u);\n y && (u = new l.CDNFileAssetLoader(), z.addLoader(u));\n return Promise.resolve(v(r, z));\n };\n const x = l.WebGL2Renderer.prototype.clear;\n l.WebGL2Renderer.prototype.clear = function() {\n la(this.La);\n const r = this.G;\n if (this.Ma != r.width || this.Za != r.height) {\n this.resize(r.width, r.height), this.Ma = r.width, this.Za = r.height;\n }\n x.call(this);\n };\n l.decodeImage = function(r, u) {\n r = l.decodeWebGL2Image(r);\n u(r);\n };\n let p = l.Renderer.prototype.align;\n l.Renderer.prototype.align = function(r, u, y, z, C = 1.0) {\n p.call(this, r, u, y, z, C);\n };\n};\nvar ma = Object.assign({}, l), na = \"./this.program\", A = \"\", oa, pa;\nif (da || ea) {\n ea ? A = self.location.href : \"undefined\" != typeof document && document.currentScript && (A = document.currentScript.src), _scriptName && (A = _scriptName), A.startsWith(\"blob:\") ? A = \"\" : A = A.substr(0, A.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1), ea && (pa = a => {\n var b = new XMLHttpRequest();\n b.open(\"GET\", a, !1);\n b.responseType = \"arraybuffer\";\n b.send(null);\n return new Uint8Array(b.response);\n }), oa = (a, b, c) => {\n if (qa(a)) {\n var d = new XMLHttpRequest();\n d.open(\"GET\", a, !0);\n d.responseType = \"arraybuffer\";\n d.onload = () => {\n 200 == d.status || 0 == d.status && d.response ? b(d.response) : c();\n };\n d.onerror = c;\n d.send(null);\n } else {\n fetch(a, {credentials:\"same-origin\"}).then(e => e.ok ? e.arrayBuffer() : Promise.reject(Error(e.status + \" : \" + e.url))).then(b, c);\n }\n };\n}\nvar ra = l.print || console.log.bind(console), sa = l.printErr || console.error.bind(console);\nObject.assign(l, ma);\nma = null;\nl.thisProgram && (na = l.thisProgram);\nvar ta;\nl.wasmBinary && (ta = l.wasmBinary);\nvar ua, va = !1, B, D, E, wa, G, K, xa, ya;\nfunction za() {\n var a = ua.buffer;\n l.HEAP8 = B = new Int8Array(a);\n l.HEAP16 = E = new Int16Array(a);\n l.HEAPU8 = D = new Uint8Array(a);\n l.HEAPU16 = wa = new Uint16Array(a);\n l.HEAP32 = G = new Int32Array(a);\n l.HEAPU32 = K = new Uint32Array(a);\n l.HEAPF32 = xa = new Float32Array(a);\n l.HEAPF64 = ya = new Float64Array(a);\n}\nvar Aa = [], Ba = [], Ca = [];\nfunction Da() {\n var a = l.preRun.shift();\n Aa.unshift(a);\n}\nvar Ea = 0, Fa = null, Ga = null;\nfunction Ha(a) {\n l.onAbort?.(a);\n a = \"Aborted(\" + a + \")\";\n sa(a);\n va = !0;\n a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n ba(a);\n throw a;\n}\nvar Ia = a => a.startsWith(\"data:application/octet-stream;base64,\"), qa = a => a.startsWith(\"file://\"), Ja;\nfunction Ka(a) {\n if (a == Ja && ta) {\n return new Uint8Array(ta);\n }\n if (pa) {\n return pa(a);\n }\n throw \"both async and sync fetching of the wasm failed\";\n}\nfunction La(a) {\n return ta ? Promise.resolve().then(() => Ka(a)) : new Promise((b, c) => {\n oa(a, d => b(new Uint8Array(d)), () => {\n try {\n b(Ka(a));\n } catch (d) {\n c(d);\n }\n });\n });\n}\nfunction Ma(a, b, c) {\n return La(a).then(d => WebAssembly.instantiate(d, b)).then(c, d => {\n sa(`failed to asynchronously prepare wasm: ${d}`);\n Ha(d);\n });\n}\nfunction Na(a, b) {\n var c = Ja;\n return ta || \"function\" != typeof WebAssembly.instantiateStreaming || Ia(c) || qa(c) || \"function\" != typeof fetch ? Ma(c, a, b) : fetch(c, {credentials:\"same-origin\"}).then(d => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n sa(`wasm streaming compile failed: ${e}`);\n sa(\"falling back to ArrayBuffer instantiation\");\n return Ma(c, a, b);\n }));\n}\nvar Oa, Pa, Ta = {539823:(a, b, c, d, e) => {\n if (\"undefined\" === typeof window || void 0 === (window.AudioContext || window.webkitAudioContext)) {\n return 0;\n }\n if (\"undefined\" === typeof window.h) {\n window.h = {Ea:0};\n window.h.I = {};\n window.h.I.Ca = a;\n window.h.I.capture = b;\n window.h.I.Pa = c;\n window.h.ia = {};\n window.h.ia.stopped = d;\n window.h.ia.ub = e;\n let f = window.h;\n f.D = [];\n f.lc = function(g) {\n for (var k = 0; k < f.D.length; ++k) {\n if (null == f.D[k]) {\n return f.D[k] = g, k;\n }\n }\n f.D.push(g);\n return f.D.length - 1;\n };\n f.yb = function(g) {\n for (f.D[g] = null; 0 < f.D.length;) {\n if (null == f.D[f.D.length - 1]) {\n f.D.pop();\n } else {\n break;\n }\n }\n };\n f.Mc = function(g) {\n for (var k = 0; k < f.D.length; ++k) {\n if (f.D[k] == g) {\n return f.yb(k);\n }\n }\n };\n f.ta = function(g) {\n return f.D[g];\n };\n f.Xa = [\"touchend\", \"click\"];\n f.unlock = function() {\n for (var g = 0; g < f.D.length; ++g) {\n var k = f.D[g];\n null != k && null != k.K && k.state === f.ia.ub && k.K.resume().then(() => {\n Qa(k.nb);\n }, m => {\n console.error(\"Failed to resume audiocontext\", m);\n });\n }\n f.Xa.map(function(m) {\n document.removeEventListener(m, f.unlock, !0);\n });\n };\n f.Xa.map(function(g) {\n document.addEventListener(g, f.unlock, !0);\n });\n }\n window.h.Ea += 1;\n return 1;\n}, 542001:() => {\n \"undefined\" !== typeof window.h && (window.h.Xa.map(function(a) {\n document.removeEventListener(a, window.h.unlock, !0);\n }), --window.h.Ea, 0 === window.h.Ea && delete window.h);\n}, 542305:() => void 0 !== navigator.mediaDevices && void 0 !== navigator.mediaDevices.getUserMedia, 542409:() => {\n try {\n var a = new (window.AudioContext || window.webkitAudioContext)(), b = a.sampleRate;\n a.close();\n return b;\n } catch (c) {\n return 0;\n }\n}, 542580:(a, b, c, d, e, f) => {\n if (\"undefined\" === typeof window.h) {\n return -1;\n }\n var g = {}, k = {};\n a == window.h.I.Ca && 0 != c && (k.sampleRate = c);\n g.K = new (window.AudioContext || window.webkitAudioContext)(k);\n g.K.suspend();\n g.state = window.h.ia.stopped;\n c = 0;\n a != window.h.I.Ca && (c = b);\n g.Y = g.K.createScriptProcessor(d, c, b);\n g.Y.onaudioprocess = function(m) {\n if (null == g.ua || 0 == g.ua.length) {\n g.ua = new Float32Array(xa.buffer, e, d * b);\n }\n if (a == window.h.I.capture || a == window.h.I.Pa) {\n for (var n = 0; n < b; n += 1) {\n for (var t = m.inputBuffer.getChannelData(n), v = g.ua, x = 0; x < d; x += 1) {\n v[x * b + n] = t[x];\n }\n }\n Ra(f, d, e);\n }\n if (a == window.h.I.Ca || a == window.h.I.Pa) {\n for (Sa(f, d, e), n = 0; n < m.outputBuffer.numberOfChannels; ++n) {\n for (t = m.outputBuffer.getChannelData(n), v = g.ua, x = 0; x < d; x += 1) {\n t[x] = v[x * b + n];\n }\n }\n } else {\n for (n = 0; n < m.outputBuffer.numberOfChannels; ++n) {\n m.outputBuffer.getChannelData(n).fill(0.0);\n }\n }\n };\n a != window.h.I.capture && a != window.h.I.Pa || navigator.mediaDevices.getUserMedia({audio:!0, video:!1}).then(function(m) {\n g.Fa = g.K.createMediaStreamSource(m);\n g.Fa.connect(g.Y);\n g.Y.connect(g.K.destination);\n }).catch(function(m) {\n console.log(\"Failed to get user media: \" + m);\n });\n a == window.h.I.Ca && g.Y.connect(g.K.destination);\n g.nb = f;\n return window.h.lc(g);\n}, 545457:a => window.h.ta(a).K.sampleRate, 545530:a => {\n a = window.h.ta(a);\n void 0 !== a.Y && (a.Y.onaudioprocess = function() {\n }, a.Y.disconnect(), a.Y = void 0);\n void 0 !== a.Fa && (a.Fa.disconnect(), a.Fa = void 0);\n a.K.close();\n a.K = void 0;\n a.nb = void 0;\n}, 545930:a => {\n window.h.yb(a);\n}, 545980:a => {\n a = window.h.ta(a);\n a.K.resume();\n a.state = window.h.ia.ub;\n}, 546119:a => {\n a = window.h.ta(a);\n a.K.suspend();\n a.state = window.h.ia.stopped;\n}}, Ua = a => {\n for (; 0 < a.length;) {\n a.shift()(l);\n }\n};\nfunction Va() {\n var a = G[+Wa >> 2];\n Wa += 4;\n return a;\n}\nvar Xa = (a, b) => {\n for (var c = 0, d = a.length - 1; 0 <= d; d--) {\n var e = a[d];\n \".\" === e ? a.splice(d, 1) : \"..\" === e ? (a.splice(d, 1), c++) : c && (a.splice(d, 1), c--);\n }\n if (b) {\n for (; c; c--) {\n a.unshift(\"..\");\n }\n }\n return a;\n}, Ya = a => {\n var b = \"/\" === a.charAt(0), c = \"/\" === a.substr(-1);\n (a = Xa(a.split(\"/\").filter(d => !!d), !b).join(\"/\")) || b || (a = \".\");\n a && c && (a += \"/\");\n return (b ? \"/\" : \"\") + a;\n}, Za = a => {\n var b = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);\n a = b[0];\n b = b[1];\n if (!a && !b) {\n return \".\";\n }\n b &&= b.substr(0, b.length - 1);\n return a + b;\n}, $a = a => {\n if (\"/\" === a) {\n return \"/\";\n }\n a = Ya(a);\n a = a.replace(/\\/$/, \"\");\n var b = a.lastIndexOf(\"/\");\n return -1 === b ? a : a.substr(b + 1);\n}, ab = () => {\n if (\"object\" == typeof crypto && \"function\" == typeof crypto.getRandomValues) {\n return a => crypto.getRandomValues(a);\n }\n Ha(\"initRandomDevice\");\n}, bb = a => (bb = ab())(a), cb = (...a) => {\n for (var b = \"\", c = !1, d = a.length - 1; -1 <= d && !c; d--) {\n c = 0 <= d ? a[d] : \"/\";\n if (\"string\" != typeof c) {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n }\n if (!c) {\n return \"\";\n }\n b = c + \"/\" + b;\n c = \"/\" === c.charAt(0);\n }\n b = Xa(b.split(\"/\").filter(e => !!e), !c).join(\"/\");\n return (c ? \"/\" : \"\") + b || \".\";\n}, db = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, L = (a, b, c) => {\n var d = b + c;\n for (c = b; a[c] && !(c >= d);) {\n ++c;\n }\n if (16 < c - b && a.buffer && db) {\n return db.decode(a.subarray(b, c));\n }\n for (d = \"\"; b < c;) {\n var e = a[b++];\n if (e & 128) {\n var f = a[b++] & 63;\n if (192 == (e & 224)) {\n d += String.fromCharCode((e & 31) << 6 | f);\n } else {\n var g = a[b++] & 63;\n e = 224 == (e & 240) ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;\n 65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n }\n } else {\n d += String.fromCharCode(e);\n }\n }\n return d;\n}, eb = [], fb = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 127 >= d ? b++ : 2047 >= d ? b += 2 : 55296 <= d && 57343 >= d ? (b += 4, ++c) : b += 3;\n }\n return b;\n}, gb = (a, b, c, d) => {\n if (!(0 < d)) {\n return 0;\n }\n var e = c;\n d = c + d - 1;\n for (var f = 0; f < a.length; ++f) {\n var g = a.charCodeAt(f);\n if (55296 <= g && 57343 >= g) {\n var k = a.charCodeAt(++f);\n g = 65536 + ((g & 1023) << 10) | k & 1023;\n }\n if (127 >= g) {\n if (c >= d) {\n break;\n }\n b[c++] = g;\n } else {\n if (2047 >= g) {\n if (c + 1 >= d) {\n break;\n }\n b[c++] = 192 | g >> 6;\n } else {\n if (65535 >= g) {\n if (c + 2 >= d) {\n break;\n }\n b[c++] = 224 | g >> 12;\n } else {\n if (c + 3 >= d) {\n break;\n }\n b[c++] = 240 | g >> 18;\n b[c++] = 128 | g >> 12 & 63;\n }\n b[c++] = 128 | g >> 6 & 63;\n }\n b[c++] = 128 | g & 63;\n }\n }\n b[c] = 0;\n return c - e;\n};\nfunction hb(a, b) {\n var c = Array(fb(a) + 1);\n a = gb(a, c, 0, c.length);\n b && (c.length = a);\n return c;\n}\nvar ib = [];\nfunction jb(a, b) {\n ib[a] = {input:[], H:[], V:b};\n kb(a, lb);\n}\nvar lb = {open(a) {\n var b = ib[a.node.Da];\n if (!b) {\n throw new M(43);\n }\n a.s = b;\n a.seekable = !1;\n}, close(a) {\n a.s.V.sa(a.s);\n}, sa(a) {\n a.s.V.sa(a.s);\n}, read(a, b, c, d) {\n if (!a.s || !a.s.V.hb) {\n throw new M(60);\n }\n for (var e = 0, f = 0; f < d; f++) {\n try {\n var g = a.s.V.hb(a.s);\n } catch (k) {\n throw new M(29);\n }\n if (void 0 === g && 0 === e) {\n throw new M(6);\n }\n if (null === g || void 0 === g) {\n break;\n }\n e++;\n b[c + f] = g;\n }\n e && (a.node.timestamp = Date.now());\n return e;\n}, write(a, b, c, d) {\n if (!a.s || !a.s.V.Sa) {\n throw new M(60);\n }\n try {\n for (var e = 0; e < d; e++) {\n a.s.V.Sa(a.s, b[c + e]);\n }\n } catch (f) {\n throw new M(29);\n }\n d && (a.node.timestamp = Date.now());\n return e;\n},}, nb = {hb() {\n a: {\n if (!eb.length) {\n var a = null;\n \"undefined\" != typeof window && \"function\" == typeof window.prompt && (a = window.prompt(\"Input: \"), null !== a && (a += \"\\n\"));\n if (!a) {\n a = null;\n break a;\n }\n eb = hb(a, !0);\n }\n a = eb.shift();\n }\n return a;\n}, Sa(a, b) {\n null === b || 10 === b ? (ra(L(a.H, 0)), a.H = []) : 0 != b && a.H.push(b);\n}, sa(a) {\n a.H && 0 < a.H.length && (ra(L(a.H, 0)), a.H = []);\n}, Vb() {\n return {sc:25856, uc:5, rc:191, tc:35387, qc:[3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]};\n}, Wb() {\n return 0;\n}, Xb() {\n return [24, 80];\n},}, ob = {Sa(a, b) {\n null === b || 10 === b ? (sa(L(a.H, 0)), a.H = []) : 0 != b && a.H.push(b);\n}, sa(a) {\n a.H && 0 < a.H.length && (sa(L(a.H, 0)), a.H = []);\n},};\nfunction pb(a, b) {\n var c = a.l ? a.l.length : 0;\n c >= b || (b = Math.max(b, c * (1048576 > c ? 2.0 : 1.125) >>> 0), 0 != c && (b = Math.max(b, 256)), c = a.l, a.l = new Uint8Array(b), 0 < a.v && a.l.set(c.subarray(0, a.v), 0));\n}\nvar N = {N:null, U() {\n return N.createNode(null, \"/\", 16895, 0);\n}, createNode(a, b, c, d) {\n if (24576 === (c & 61440) || 4096 === (c & 61440)) {\n throw new M(63);\n }\n N.N || (N.N = {dir:{node:{X:N.j.X, P:N.j.P, la:N.j.la, Aa:N.j.Aa, sb:N.j.sb, xb:N.j.xb, tb:N.j.tb, rb:N.j.rb, Ga:N.j.Ga}, stream:{aa:N.m.aa}}, file:{node:{X:N.j.X, P:N.j.P}, stream:{aa:N.m.aa, read:N.m.read, write:N.m.write, $a:N.m.$a, jb:N.m.jb, lb:N.m.lb}}, link:{node:{X:N.j.X, P:N.j.P, ma:N.j.ma}, stream:{}}, ab:{node:{X:N.j.X, P:N.j.P}, stream:qb}});\n c = rb(a, b, c, d);\n 16384 === (c.mode & 61440) ? (c.j = N.N.dir.node, c.m = N.N.dir.stream, c.l = {}) : 32768 === (c.mode & 61440) ? (c.j = N.N.file.node, c.m = N.N.file.stream, c.v = 0, c.l = null) : 40960 === (c.mode & 61440) ? (c.j = N.N.link.node, c.m = N.N.link.stream) : 8192 === (c.mode & 61440) && (c.j = N.N.ab.node, c.m = N.N.ab.stream);\n c.timestamp = Date.now();\n a && (a.l[b] = c, a.timestamp = c.timestamp);\n return c;\n}, Ac(a) {\n return a.l ? a.l.subarray ? a.l.subarray(0, a.v) : new Uint8Array(a.l) : new Uint8Array(0);\n}, j:{X(a) {\n var b = {};\n b.xc = 8192 === (a.mode & 61440) ? a.id : 1;\n b.Cc = a.id;\n b.mode = a.mode;\n b.Hc = 1;\n b.uid = 0;\n b.Bc = 0;\n b.Da = a.Da;\n 16384 === (a.mode & 61440) ? b.size = 4096 : 32768 === (a.mode & 61440) ? b.size = a.v : 40960 === (a.mode & 61440) ? b.size = a.link.length : b.size = 0;\n b.oc = new Date(a.timestamp);\n b.Gc = new Date(a.timestamp);\n b.vc = new Date(a.timestamp);\n b.Fb = 4096;\n b.pc = Math.ceil(b.size / b.Fb);\n return b;\n}, P(a, b) {\n void 0 !== b.mode && (a.mode = b.mode);\n void 0 !== b.timestamp && (a.timestamp = b.timestamp);\n if (void 0 !== b.size && (b = b.size, a.v != b)) {\n if (0 == b) {\n a.l = null, a.v = 0;\n } else {\n var c = a.l;\n a.l = new Uint8Array(b);\n c && a.l.set(c.subarray(0, Math.min(b, a.v)));\n a.v = b;\n }\n }\n}, la() {\n throw sb[44];\n}, Aa(a, b, c, d) {\n return N.createNode(a, b, c, d);\n}, sb(a, b, c) {\n if (16384 === (a.mode & 61440)) {\n try {\n var d = tb(b, c);\n } catch (f) {\n }\n if (d) {\n for (var e in d.l) {\n throw new M(55);\n }\n }\n }\n delete a.parent.l[a.name];\n a.parent.timestamp = Date.now();\n a.name = c;\n b.l[c] = a;\n b.timestamp = a.parent.timestamp;\n}, xb(a, b) {\n delete a.l[b];\n a.timestamp = Date.now();\n}, tb(a, b) {\n var c = tb(a, b), d;\n for (d in c.l) {\n throw new M(55);\n }\n delete a.l[b];\n a.timestamp = Date.now();\n}, rb(a) {\n var b = [\".\", \"..\"], c;\n for (c of Object.keys(a.l)) {\n b.push(c);\n }\n return b;\n}, Ga(a, b, c) {\n a = N.createNode(a, b, 41471, 0);\n a.link = c;\n return a;\n}, ma(a) {\n if (40960 !== (a.mode & 61440)) {\n throw new M(28);\n }\n return a.link;\n},}, m:{read(a, b, c, d, e) {\n var f = a.node.l;\n if (e >= a.node.v) {\n return 0;\n }\n a = Math.min(a.node.v - e, d);\n if (8 < a && f.subarray) {\n b.set(f.subarray(e, e + a), c);\n } else {\n for (d = 0; d < a; d++) {\n b[c + d] = f[e + d];\n }\n }\n return a;\n}, write(a, b, c, d, e, f) {\n b.buffer === B.buffer && (f = !1);\n if (!d) {\n return 0;\n }\n a = a.node;\n a.timestamp = Date.now();\n if (b.subarray && (!a.l || a.l.subarray)) {\n if (f) {\n return a.l = b.subarray(c, c + d), a.v = d;\n }\n if (0 === a.v && 0 === e) {\n return a.l = b.slice(c, c + d), a.v = d;\n }\n if (e + d <= a.v) {\n return a.l.set(b.subarray(c, c + d), e), d;\n }\n }\n pb(a, e + d);\n if (a.l.subarray && b.subarray) {\n a.l.set(b.subarray(c, c + d), e);\n } else {\n for (f = 0; f < d; f++) {\n a.l[e + f] = b[c + f];\n }\n }\n a.v = Math.max(a.v, e + d);\n return d;\n}, aa(a, b, c) {\n 1 === c ? b += a.position : 2 === c && 32768 === (a.node.mode & 61440) && (b += a.node.v);\n if (0 > b) {\n throw new M(28);\n }\n return b;\n}, $a(a, b, c) {\n pb(a.node, b + c);\n a.node.v = Math.max(a.node.v, b + c);\n}, jb(a, b, c, d, e) {\n if (32768 !== (a.node.mode & 61440)) {\n throw new M(43);\n }\n a = a.node.l;\n if (e & 2 || a.buffer !== B.buffer) {\n if (0 < c || c + b < a.length) {\n a.subarray ? a = a.subarray(c, c + b) : a = Array.prototype.slice.call(a, c, c + b);\n }\n c = !0;\n Ha();\n b = void 0;\n if (!b) {\n throw new M(48);\n }\n B.set(a, b);\n } else {\n c = !1, b = a.byteOffset;\n }\n return {o:b, nc:c};\n}, lb(a, b, c, d) {\n N.m.write(a, b, 0, d, c, !1);\n return 0;\n},},}, ub = (a, b) => {\n var c = 0;\n a && (c |= 365);\n b && (c |= 146);\n return c;\n}, vb = null, wb = {}, xb = [], yb = 1, zb = null, Ab = !0, M = class {\n constructor(a) {\n this.name = \"ErrnoError\";\n this.$ = a;\n }\n}, sb = {}, Bb = class {\n constructor() {\n this.h = {};\n this.node = null;\n }\n get flags() {\n return this.h.flags;\n }\n set flags(a) {\n this.h.flags = a;\n }\n get position() {\n return this.h.position;\n }\n set position(a) {\n this.h.position = a;\n }\n}, Cb = class {\n constructor(a, b, c, d) {\n a ||= this;\n this.parent = a;\n this.U = a.U;\n this.Ba = null;\n this.id = yb++;\n this.name = b;\n this.mode = c;\n this.j = {};\n this.m = {};\n this.Da = d;\n }\n get read() {\n return 365 === (this.mode & 365);\n }\n set read(a) {\n a ? this.mode |= 365 : this.mode &= -366;\n }\n get write() {\n return 146 === (this.mode & 146);\n }\n set write(a) {\n a ? this.mode |= 146 : this.mode &= -147;\n }\n};\nfunction Db(a, b = {}) {\n a = cb(a);\n if (!a) {\n return {path:\"\", node:null};\n }\n b = Object.assign({gb:!0, Ua:0}, b);\n if (8 < b.Ua) {\n throw new M(32);\n }\n a = a.split(\"/\").filter(g => !!g);\n for (var c = vb, d = \"/\", e = 0; e < a.length; e++) {\n var f = e === a.length - 1;\n if (f && b.parent) {\n break;\n }\n c = tb(c, a[e]);\n d = Ya(d + \"/\" + a[e]);\n c.Ba && (!f || f && b.gb) && (c = c.Ba.root);\n if (!f || b.fb) {\n for (f = 0; 40960 === (c.mode & 61440);) {\n if (c = Eb(d), d = cb(Za(d), c), c = Db(d, {Ua:b.Ua + 1}).node, 40 < f++) {\n throw new M(32);\n }\n }\n }\n }\n return {path:d, node:c};\n}\nfunction Fb(a) {\n for (var b;;) {\n if (a === a.parent) {\n return a = a.U.kb, b ? \"/\" !== a[a.length - 1] ? `${a}/${b}` : a + b : a;\n }\n b = b ? `${a.name}/${b}` : a.name;\n a = a.parent;\n }\n}\nfunction Gb(a, b) {\n for (var c = 0, d = 0; d < b.length; d++) {\n c = (c << 5) - c + b.charCodeAt(d) | 0;\n }\n return (a + c >>> 0) % zb.length;\n}\nfunction tb(a, b) {\n var c = 16384 === (a.mode & 61440) ? (c = Hb(a, \"x\")) ? c : a.j.la ? 0 : 2 : 54;\n if (c) {\n throw new M(c);\n }\n for (c = zb[Gb(a.id, b)]; c; c = c.$b) {\n var d = c.name;\n if (c.parent.id === a.id && d === b) {\n return c;\n }\n }\n return a.j.la(a, b);\n}\nfunction rb(a, b, c, d) {\n a = new Cb(a, b, c, d);\n b = Gb(a.parent.id, a.name);\n a.$b = zb[b];\n return zb[b] = a;\n}\nfunction Ib(a) {\n var b = [\"r\", \"w\", \"rw\"][a & 3];\n a & 512 && (b += \"w\");\n return b;\n}\nfunction Hb(a, b) {\n if (Ab) {\n return 0;\n }\n if (!b.includes(\"r\") || a.mode & 292) {\n if (b.includes(\"w\") && !(a.mode & 146) || b.includes(\"x\") && !(a.mode & 73)) {\n return 2;\n }\n } else {\n return 2;\n }\n return 0;\n}\nfunction Jb(a, b) {\n try {\n return tb(a, b), 20;\n } catch (c) {\n }\n return Hb(a, \"wx\");\n}\nfunction Kb(a) {\n a = xb[a];\n if (!a) {\n throw new M(8);\n }\n return a;\n}\nfunction Lb(a, b = -1) {\n a = Object.assign(new Bb(), a);\n if (-1 == b) {\n a: {\n for (b = 0; 4096 >= b; b++) {\n if (!xb[b]) {\n break a;\n }\n }\n throw new M(33);\n }\n }\n a.W = b;\n return xb[b] = a;\n}\nfunction Mb(a, b = -1) {\n a = Lb(a, b);\n a.m?.zc?.(a);\n return a;\n}\nvar qb = {open(a) {\n a.m = wb[a.node.Da].m;\n a.m.open?.(a);\n}, aa() {\n throw new M(70);\n},};\nfunction kb(a, b) {\n wb[a] = {m:b};\n}\nfunction Nb(a, b) {\n var c = \"/\" === b;\n if (c && vb) {\n throw new M(10);\n }\n if (!c && b) {\n var d = Db(b, {gb:!1});\n b = d.path;\n d = d.node;\n if (d.Ba) {\n throw new M(10);\n }\n if (16384 !== (d.mode & 61440)) {\n throw new M(54);\n }\n }\n b = {type:a, Jc:{}, kb:b, Yb:[]};\n a = a.U(b);\n a.U = b;\n b.root = a;\n c ? vb = a : d && (d.Ba = b, d.U && d.U.Yb.push(b));\n}\nfunction Ob(a, b, c) {\n var d = Db(a, {parent:!0}).node;\n a = $a(a);\n if (!a || \".\" === a || \"..\" === a) {\n throw new M(28);\n }\n var e = Jb(d, a);\n if (e) {\n throw new M(e);\n }\n if (!d.j.Aa) {\n throw new M(63);\n }\n return d.j.Aa(d, a, b, c);\n}\nfunction Pb(a) {\n return Ob(a, 16895, 0);\n}\nfunction Qb(a, b, c) {\n \"undefined\" == typeof c && (c = b, b = 438);\n Ob(a, b | 8192, c);\n}\nfunction Rb(a, b) {\n if (!cb(a)) {\n throw new M(44);\n }\n var c = Db(b, {parent:!0}).node;\n if (!c) {\n throw new M(44);\n }\n b = $a(b);\n var d = Jb(c, b);\n if (d) {\n throw new M(d);\n }\n if (!c.j.Ga) {\n throw new M(63);\n }\n c.j.Ga(c, b, a);\n}\nfunction Eb(a) {\n a = Db(a).node;\n if (!a) {\n throw new M(44);\n }\n if (!a.j.ma) {\n throw new M(28);\n }\n return cb(Fb(a.parent), a.j.ma(a));\n}\nfunction Sb(a, b, c) {\n if (\"\" === a) {\n throw new M(44);\n }\n if (\"string\" == typeof b) {\n var d = {r:0, \"r+\":2, w:577, \"w+\":578, a:1089, \"a+\":1090,}[b];\n if (\"undefined\" == typeof d) {\n throw Error(`Unknown file open mode: ${b}`);\n }\n b = d;\n }\n c = b & 64 ? (\"undefined\" == typeof c ? 438 : c) & 4095 | 32768 : 0;\n if (\"object\" == typeof a) {\n var e = a;\n } else {\n a = Ya(a);\n try {\n e = Db(a, {fb:!(b & 131072)}).node;\n } catch (f) {\n }\n }\n d = !1;\n if (b & 64) {\n if (e) {\n if (b & 128) {\n throw new M(20);\n }\n } else {\n e = Ob(a, c, 0), d = !0;\n }\n }\n if (!e) {\n throw new M(44);\n }\n 8192 === (e.mode & 61440) && (b &= -513);\n if (b & 65536 && 16384 !== (e.mode & 61440)) {\n throw new M(54);\n }\n if (!d && (c = e ? 40960 === (e.mode & 61440) ? 32 : 16384 === (e.mode & 61440) && (\"r\" !== Ib(b) || b & 512) ? 31 : Hb(e, Ib(b)) : 44)) {\n throw new M(c);\n }\n if (b & 512 && !d) {\n c = e;\n c = \"string\" == typeof c ? Db(c, {fb:!0}).node : c;\n if (!c.j.P) {\n throw new M(63);\n }\n if (16384 === (c.mode & 61440)) {\n throw new M(31);\n }\n if (32768 !== (c.mode & 61440)) {\n throw new M(28);\n }\n if (d = Hb(c, \"w\")) {\n throw new M(d);\n }\n c.j.P(c, {size:0, timestamp:Date.now()});\n }\n b &= -131713;\n e = Lb({node:e, path:Fb(e), flags:b, seekable:!0, position:0, m:e.m, mc:[], error:!1});\n e.m.open && e.m.open(e);\n !l.logReadFiles || b & 1 || (Tb ||= {}, a in Tb || (Tb[a] = 1));\n return e;\n}\nfunction Ub(a, b, c) {\n if (null === a.W) {\n throw new M(8);\n }\n if (!a.seekable || !a.m.aa) {\n throw new M(70);\n }\n if (0 != c && 1 != c && 2 != c) {\n throw new M(28);\n }\n a.position = a.m.aa(a, b, c);\n a.mc = [];\n}\nvar Vb;\nfunction Wb(a, b, c) {\n a = Ya(\"/dev/\" + a);\n var d = ub(!!b, !!c);\n Xb ||= 64;\n var e = Xb++ << 8 | 0;\n kb(e, {open(f) {\n f.seekable = !1;\n }, close() {\n c?.buffer?.length && c(10);\n }, read(f, g, k, m) {\n for (var n = 0, t = 0; t < m; t++) {\n try {\n var v = b();\n } catch (x) {\n throw new M(29);\n }\n if (void 0 === v && 0 === n) {\n throw new M(6);\n }\n if (null === v || void 0 === v) {\n break;\n }\n n++;\n g[k + t] = v;\n }\n n && (f.node.timestamp = Date.now());\n return n;\n }, write(f, g, k, m) {\n for (var n = 0; n < m; n++) {\n try {\n c(g[k + n]);\n } catch (t) {\n throw new M(29);\n }\n }\n m && (f.node.timestamp = Date.now());\n return n;\n }});\n Qb(a, d, e);\n}\nvar Xb, Yb = {}, Tb, Wa = void 0, Zb = (a, b) => Object.defineProperty(b, \"name\", {value:a}), $b = [], O = [], P, Q = a => {\n if (!a) {\n throw new P(\"Cannot use deleted val. handle = \" + a);\n }\n return O[a];\n}, ac = a => {\n switch(a) {\n case void 0:\n return 2;\n case null:\n return 4;\n case !0:\n return 6;\n case !1:\n return 8;\n default:\n const b = $b.pop() || O.length;\n O[b] = a;\n O[b + 1] = 1;\n return b;\n }\n}, bc = a => {\n var b = Error, c = Zb(a, function(d) {\n this.name = a;\n this.message = d;\n d = Error(d).stack;\n void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n c.prototype = Object.create(b.prototype);\n c.prototype.constructor = c;\n c.prototype.toString = function() {\n return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n };\n return c;\n}, cc, dc, R = a => {\n for (var b = \"\"; D[a];) {\n b += dc[D[a++]];\n }\n return b;\n}, ec = [], fc = () => {\n for (; ec.length;) {\n var a = ec.pop();\n a.g.ha = !1;\n a[\"delete\"]();\n }\n}, gc, hc = {}, ic = (a, b) => {\n if (void 0 === b) {\n throw new P(\"ptr should not be undefined\");\n }\n for (; a.B;) {\n b = a.oa(b), a = a.B;\n }\n return b;\n}, jc = {}, mc = a => {\n a = kc(a);\n var b = R(a);\n lc(a);\n return b;\n}, nc = (a, b) => {\n var c = jc[a];\n if (void 0 === c) {\n throw a = `${b} has unknown type ${mc(a)}`, new P(a);\n }\n return c;\n}, oc = () => {\n}, pc = !1, qc = (a, b, c) => {\n if (b === c) {\n return a;\n }\n if (void 0 === c.B) {\n return null;\n }\n a = qc(a, b, c.B);\n return null === a ? null : c.Ib(a);\n}, rc = {}, sc = (a, b) => {\n b = ic(a, b);\n return hc[b];\n}, tc, vc = (a, b) => {\n if (!b.u || !b.o) {\n throw new tc(\"makeClassHandle requires ptr and ptrType\");\n }\n if (!!b.J !== !!b.F) {\n throw new tc(\"Both smartPtrType and smartPtr must be specified\");\n }\n b.count = {value:1};\n return uc(Object.create(a, {g:{value:b, writable:!0,},}));\n}, uc = a => {\n if (\"undefined\" === typeof FinalizationRegistry) {\n return uc = b => b, a;\n }\n pc = new FinalizationRegistry(b => {\n b = b.g;\n --b.count.value;\n 0 === b.count.value && (b.F ? b.J.O(b.F) : b.u.i.O(b.o));\n });\n uc = b => {\n var c = b.g;\n c.F && pc.register(b, {g:c}, b);\n return b;\n };\n oc = b => {\n pc.unregister(b);\n };\n return uc(a);\n}, wc = {}, xc = a => {\n for (; a.length;) {\n var b = a.pop();\n a.pop()(b);\n }\n};\nfunction yc(a) {\n return this.fromWireType(K[a >> 2]);\n}\nvar zc = {}, Ac = {}, T = (a, b, c) => {\n function d(k) {\n k = c(k);\n if (k.length !== a.length) {\n throw new tc(\"Mismatched type converter count\");\n }\n for (var m = 0; m < a.length; ++m) {\n S(a[m], k[m]);\n }\n }\n a.forEach(function(k) {\n Ac[k] = b;\n });\n var e = Array(b.length), f = [], g = 0;\n b.forEach((k, m) => {\n jc.hasOwnProperty(k) ? e[m] = jc[k] : (f.push(k), zc.hasOwnProperty(k) || (zc[k] = []), zc[k].push(() => {\n e[m] = jc[k];\n ++g;\n g === f.length && d(e);\n }));\n });\n 0 === f.length && d(e);\n};\nfunction Bc(a, b, c = {}) {\n var d = b.name;\n if (!a) {\n throw new P(`type \"${d}\" must have a positive integer typeid pointer`);\n }\n if (jc.hasOwnProperty(a)) {\n if (c.Sb) {\n return;\n }\n throw new P(`Cannot register type '${d}' twice`);\n }\n jc[a] = b;\n delete Ac[a];\n zc.hasOwnProperty(a) && (b = zc[a], delete zc[a], b.forEach(e => e()));\n}\nfunction S(a, b, c = {}) {\n if (!(\"argPackAdvance\" in b)) {\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n }\n return Bc(a, b, c);\n}\nvar Cc = a => {\n throw new P(a.g.u.i.name + \" instance already deleted\");\n};\nfunction Dc() {\n}\nvar Ec = (a, b, c) => {\n if (void 0 === a[b].A) {\n var d = a[b];\n a[b] = function(...e) {\n if (!a[b].A.hasOwnProperty(e.length)) {\n throw new P(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].A})!`);\n }\n return a[b].A[e.length].apply(this, e);\n };\n a[b].A = [];\n a[b].A[d.ga] = d;\n }\n}, Fc = (a, b, c) => {\n if (l.hasOwnProperty(a)) {\n if (void 0 === c || void 0 !== l[a].A && void 0 !== l[a].A[c]) {\n throw new P(`Cannot register public name '${a}' twice`);\n }\n Ec(l, a, a);\n if (l.hasOwnProperty(c)) {\n throw new P(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);\n }\n l[a].A[c] = b;\n } else {\n l[a] = b, void 0 !== c && (l[a].Ic = c);\n }\n}, Gc = a => {\n if (void 0 === a) {\n return \"_unknown\";\n }\n a = a.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var b = a.charCodeAt(0);\n return 48 <= b && 57 >= b ? `_${a}` : a;\n};\nfunction Hc(a, b, c, d, e, f, g, k) {\n this.name = a;\n this.constructor = b;\n this.M = c;\n this.O = d;\n this.B = e;\n this.Nb = f;\n this.oa = g;\n this.Ib = k;\n this.ob = [];\n}\nvar Ic = (a, b, c) => {\n for (; b !== c;) {\n if (!b.oa) {\n throw new P(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);\n }\n a = b.oa(a);\n b = b.B;\n }\n return a;\n};\nfunction Jc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n return Ic(b.g.o, b.g.u.i, this.i);\n}\nfunction Lc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n if (this.wa) {\n var c = this.Ta();\n null !== a && a.push(this.O, c);\n return c;\n }\n return 0;\n }\n if (!b || !b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (!this.va && b.g.u.va) {\n throw new P(`Cannot convert argument of type ${b.g.J ? b.g.J.name : b.g.u.name} to parameter type ${this.name}`);\n }\n c = Ic(b.g.o, b.g.u.i, this.i);\n if (this.wa) {\n if (void 0 === b.g.F) {\n throw new P(\"Passing raw pointer to smart pointer is illegal\");\n }\n switch(this.fc) {\n case 0:\n if (b.g.J === this) {\n c = b.g.F;\n } else {\n throw new P(`Cannot convert argument of type ${b.g.J ? b.g.J.name : b.g.u.name} to parameter type ${this.name}`);\n }\n break;\n case 1:\n c = b.g.F;\n break;\n case 2:\n if (b.g.J === this) {\n c = b.g.F;\n } else {\n var d = b.clone();\n c = this.bc(c, ac(() => d[\"delete\"]()));\n null !== a && a.push(this.O, c);\n }\n break;\n default:\n throw new P(\"Unsupporting sharing policy\");\n }\n }\n return c;\n}\nfunction Mc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (b.g.u.va) {\n throw new P(`Cannot convert argument of type ${b.g.u.name} to parameter type ${this.name}`);\n }\n return Ic(b.g.o, b.g.u.i, this.i);\n}\nfunction Nc(a, b, c, d, e, f, g, k, m, n, t) {\n this.name = a;\n this.i = b;\n this.Ra = c;\n this.va = d;\n this.wa = e;\n this.ac = f;\n this.fc = g;\n this.qb = k;\n this.Ta = m;\n this.bc = n;\n this.O = t;\n e || void 0 !== b.B ? this.toWireType = Lc : (this.toWireType = d ? Jc : Mc, this.L = null);\n}\nvar Oc = (a, b, c) => {\n if (!l.hasOwnProperty(a)) {\n throw new tc(\"Replacing nonexistent public symbol\");\n }\n void 0 !== l[a].A && void 0 !== c ? l[a].A[c] = b : (l[a] = b, l[a].ga = c);\n}, Pc = [], Qc, Rc = a => {\n var b = Pc[a];\n b || (a >= Pc.length && (Pc.length = a + 1), Pc[a] = b = Qc.get(a));\n return b;\n}, Sc = (a, b, c = []) => {\n a.includes(\"j\") ? (a = a.replace(/p/g, \"i\"), b = (0,l[\"dynCall_\" + a])(b, ...c)) : b = Rc(b)(...c);\n return b;\n}, Tc = (a, b) => (...c) => Sc(a, b, c), U = (a, b) => {\n a = R(a);\n var c = a.includes(\"j\") ? Tc(a, b) : Rc(b);\n if (\"function\" != typeof c) {\n throw new P(`unknown function pointer with signature ${a}: ${b}`);\n }\n return c;\n}, Uc, Vc = (a, b) => {\n function c(f) {\n e[f] || jc[f] || (Ac[f] ? Ac[f].forEach(c) : (d.push(f), e[f] = !0));\n }\n var d = [], e = {};\n b.forEach(c);\n throw new Uc(`${a}: ` + d.map(mc).join([\", \"]));\n};\nfunction Wc(a) {\n for (var b = 1; b < a.length; ++b) {\n if (null !== a[b] && void 0 === a[b].L) {\n return !0;\n }\n }\n return !1;\n}\nfunction Xc(a, b, c, d, e) {\n var f = b.length;\n if (2 > f) {\n throw new P(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n }\n var g = null !== b[1] && null !== c, k = Wc(b), m = \"void\" !== b[0].name, n = f - 2, t = Array(n), v = [], x = [];\n return Zb(a, function(...p) {\n if (p.length !== n) {\n throw new P(`function ${a} called with ${p.length} arguments, expected ${n}`);\n }\n x.length = 0;\n v.length = g ? 2 : 1;\n v[0] = e;\n if (g) {\n var r = b[1].toWireType(x, this);\n v[1] = r;\n }\n for (var u = 0; u < n; ++u) {\n t[u] = b[u + 2].toWireType(x, p[u]), v.push(t[u]);\n }\n p = d(...v);\n if (k) {\n xc(x);\n } else {\n for (u = g ? 1 : 2; u < b.length; u++) {\n var y = 1 === u ? r : t[u - 2];\n null !== b[u].L && b[u].L(y);\n }\n }\n r = m ? b[0].fromWireType(p) : void 0;\n return r;\n });\n}\nvar Yc = (a, b) => {\n for (var c = [], d = 0; d < a; d++) {\n c.push(K[b + 4 * d >> 2]);\n }\n return c;\n}, Zc = a => {\n a = a.trim();\n const b = a.indexOf(\"(\");\n return -1 !== b ? a.substr(0, b) : a;\n}, $c = (a, b, c) => {\n if (!(a instanceof Object)) {\n throw new P(`${c} with invalid \"this\": ${a}`);\n }\n if (!(a instanceof b.i.constructor)) {\n throw new P(`${c} incompatible with \"this\" of type ${a.constructor.name}`);\n }\n if (!a.g.o) {\n throw new P(`cannot call emscripten binding method ${c} on deleted object`);\n }\n return Ic(a.g.o, a.g.u.i, b.i);\n}, ad = a => {\n 9 < a && 0 === --O[a + 1] && (O[a] = void 0, $b.push(a));\n}, bd = {name:\"emscripten::val\", fromWireType:a => {\n var b = Q(a);\n ad(a);\n return b;\n}, toWireType:(a, b) => ac(b), argPackAdvance:8, readValueFromPointer:yc, L:null,}, cd = (a, b, c) => {\n switch(b) {\n case 1:\n return c ? function(d) {\n return this.fromWireType(B[d]);\n } : function(d) {\n return this.fromWireType(D[d]);\n };\n case 2:\n return c ? function(d) {\n return this.fromWireType(E[d >> 1]);\n } : function(d) {\n return this.fromWireType(wa[d >> 1]);\n };\n case 4:\n return c ? function(d) {\n return this.fromWireType(G[d >> 2]);\n } : function(d) {\n return this.fromWireType(K[d >> 2]);\n };\n default:\n throw new TypeError(`invalid integer width (${b}): ${a}`);\n }\n}, Kc = a => {\n if (null === a) {\n return \"null\";\n }\n var b = typeof a;\n return \"object\" === b || \"array\" === b || \"function\" === b ? a.toString() : \"\" + a;\n}, dd = (a, b) => {\n switch(b) {\n case 4:\n return function(c) {\n return this.fromWireType(xa[c >> 2]);\n };\n case 8:\n return function(c) {\n return this.fromWireType(ya[c >> 3]);\n };\n default:\n throw new TypeError(`invalid float width (${b}): ${a}`);\n }\n}, ed = (a, b, c) => {\n switch(b) {\n case 1:\n return c ? d => B[d] : d => D[d];\n case 2:\n return c ? d => E[d >> 1] : d => wa[d >> 1];\n case 4:\n return c ? d => G[d >> 2] : d => K[d >> 2];\n default:\n throw new TypeError(`invalid integer width (${b}): ${a}`);\n }\n}, fd = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, gd = (a, b) => {\n var c = a >> 1;\n for (var d = c + b / 2; !(c >= d) && wa[c];) {\n ++c;\n }\n c <<= 1;\n if (32 < c - a && fd) {\n return fd.decode(D.subarray(a, c));\n }\n c = \"\";\n for (d = 0; !(d >= b / 2); ++d) {\n var e = E[a + 2 * d >> 1];\n if (0 == e) {\n break;\n }\n c += String.fromCharCode(e);\n }\n return c;\n}, hd = (a, b, c) => {\n c ??= 2147483647;\n if (2 > c) {\n return 0;\n }\n c -= 2;\n var d = b;\n c = c < 2 * a.length ? c / 2 : a.length;\n for (var e = 0; e < c; ++e) {\n E[b >> 1] = a.charCodeAt(e), b += 2;\n }\n E[b >> 1] = 0;\n return b - d;\n}, jd = a => 2 * a.length, kd = (a, b) => {\n for (var c = 0, d = \"\"; !(c >= b / 4);) {\n var e = G[a + 4 * c >> 2];\n if (0 == e) {\n break;\n }\n ++c;\n 65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n }\n return d;\n}, ld = (a, b, c) => {\n c ??= 2147483647;\n if (4 > c) {\n return 0;\n }\n var d = b;\n c = d + c - 4;\n for (var e = 0; e < a.length; ++e) {\n var f = a.charCodeAt(e);\n if (55296 <= f && 57343 >= f) {\n var g = a.charCodeAt(++e);\n f = 65536 + ((f & 1023) << 10) | g & 1023;\n }\n G[b >> 2] = f;\n b += 4;\n if (b + 4 > c) {\n break;\n }\n }\n G[b >> 2] = 0;\n return b - d;\n}, md = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 55296 <= d && 57343 >= d && ++c;\n b += 4;\n }\n return b;\n}, nd = (a, b, c) => {\n var d = [];\n a = a.toWireType(d, c);\n d.length && (K[b >> 2] = ac(d));\n return a;\n}, od = {}, pd = a => {\n var b = od[a];\n return void 0 === b ? R(a) : b;\n}, qd = [], rd = a => {\n var b = qd.length;\n qd.push(a);\n return b;\n}, sd = (a, b) => {\n for (var c = Array(a), d = 0; d < a; ++d) {\n c[d] = nc(K[b + 4 * d >> 2], \"parameter \" + d);\n }\n return c;\n}, td = Reflect.construct, ud = [], vd = a => {\n a.yc = a.getExtension(\"WEBGL_draw_instanced_base_vertex_base_instance\");\n}, wd = a => {\n a.Fc = a.getExtension(\"WEBGL_multi_draw_instanced_base_vertex_base_instance\");\n}, xd = a => {\n var b = \"EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw\".split(\" \");\n return (a.getSupportedExtensions() || []).filter(c => b.includes(c));\n}, yd = 1, zd = [], V = [], Ad = [], Bd = [], Cd = [], Dd = [], Ed = [], w = [], Fd = {}, Gd = 4, Hd = 0, Id = a => {\n for (var b = yd++, c = a.length; c < b; c++) {\n a[c] = null;\n }\n return b;\n}, Jd = (a, b, c, d) => {\n for (var e = 0; e < a; e++) {\n var f = W[c](), g = f && Id(d);\n f ? (f.name = g, d[g] = f) : X ||= 1282;\n G[b + 4 * e >> 2] = g;\n }\n}, ka = (a, b) => {\n var c = Id(w), d = {handle:c, attributes:b, version:b.Ec, C:a};\n a.canvas && (a.canvas.zb = d);\n w[c] = d;\n (\"undefined\" == typeof b.Jb || b.Jb) && Kd(d);\n return c;\n}, la = a => {\n q = w[a];\n l.wc = W = q?.C;\n return !(a && !W);\n}, Kd = a => {\n a ||= q;\n if (!a.Tb) {\n a.Tb = !0;\n var b = a.C;\n vd(b);\n wd(b);\n 2 <= a.version && (b.cb = b.getExtension(\"EXT_disjoint_timer_query_webgl2\"));\n if (2 > a.version || !b.cb) {\n b.cb = b.getExtension(\"EXT_disjoint_timer_query\");\n }\n b.Zb = b.getExtension(\"WEBGL_multi_draw\");\n xd(b).forEach(c => {\n c.includes(\"lose_context\") || c.includes(\"debug\") || b.getExtension(c);\n });\n }\n}, X, q, Ld = {}, Nd = () => {\n if (!Md) {\n var a = {USER:\"web_user\", LOGNAME:\"web_user\", PATH:\"/\", PWD:\"/\", HOME:\"/home/web_user\", LANG:(\"object\" == typeof navigator && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _:na || \"./this.program\"}, b;\n for (b in Ld) {\n void 0 === Ld[b] ? delete a[b] : a[b] = Ld[b];\n }\n var c = [];\n for (b in a) {\n c.push(`${b}=${a[b]}`);\n }\n Md = c;\n }\n return Md;\n}, Md, Od = [];\nfunction Pd() {\n var a = xd(W);\n return a = a.concat(a.map(b => \"GL_\" + b));\n}\nvar Qd = (a, b) => {\n if (b) {\n var c = void 0;\n switch(a) {\n case 36346:\n c = 1;\n break;\n case 36344:\n return;\n case 34814:\n case 36345:\n c = 0;\n break;\n case 34466:\n var d = W.getParameter(34467);\n c = d ? d.length : 0;\n break;\n case 33309:\n if (2 > q.version) {\n X ||= 1282;\n return;\n }\n c = Pd().length;\n break;\n case 33307:\n case 33308:\n if (2 > q.version) {\n X ||= 1280;\n return;\n }\n c = 33307 == a ? 3 : 0;\n }\n if (void 0 === c) {\n switch(d = W.getParameter(a), typeof d) {\n case \"number\":\n c = d;\n break;\n case \"boolean\":\n c = d ? 1 : 0;\n break;\n case \"string\":\n X ||= 1280;\n return;\n case \"object\":\n if (null === d) {\n switch(a) {\n case 34964:\n case 35725:\n case 34965:\n case 36006:\n case 36007:\n case 32873:\n case 34229:\n case 36662:\n case 36663:\n case 35053:\n case 35055:\n case 36010:\n case 35097:\n case 35869:\n case 32874:\n case 36389:\n case 35983:\n case 35368:\n case 34068:\n c = 0;\n break;\n default:\n X ||= 1280;\n return;\n }\n } else {\n if (d instanceof Float32Array || d instanceof Uint32Array || d instanceof Int32Array || d instanceof Array) {\n for (a = 0; a < d.length; ++a) {\n G[b + 4 * a >> 2] = d[a];\n }\n return;\n }\n try {\n c = d.name | 0;\n } catch (e) {\n X ||= 1280;\n sa(`GL_INVALID_ENUM in glGet${0}v: Unknown object returned from WebGL getParameter(${a})! (error: ${e})`);\n return;\n }\n }\n break;\n default:\n X ||= 1280;\n sa(`GL_INVALID_ENUM in glGet${0}v: Native code calling glGet${0}v(${a}) and it returns ${d} of type ${typeof d}!`);\n return;\n }\n }\n G[b >> 2] = c;\n } else {\n X ||= 1281;\n }\n}, Sd = a => {\n var b = fb(a) + 1, c = Rd(b);\n c && gb(a, D, c, b);\n return c;\n}, Td = a => \"]\" == a.slice(-1) && a.lastIndexOf(\"[\"), Ud = a => {\n a -= 5120;\n return 0 == a ? B : 1 == a ? D : 2 == a ? E : 4 == a ? G : 6 == a ? xa : 5 == a || 28922 == a || 28520 == a || 30779 == a || 30782 == a ? K : wa;\n}, Vd = a => 0 === a % 4 && (0 !== a % 100 || 0 === a % 400), Wd = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Xd = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Yd = (a, b, c, d) => {\n function e(p, r, u) {\n for (p = \"number\" == typeof p ? p.toString() : p || \"\"; p.length < r;) {\n p = u[0] + p;\n }\n return p;\n }\n function f(p, r) {\n return e(p, r, \"0\");\n }\n function g(p, r) {\n function u(z) {\n return 0 > z ? -1 : 0 < z ? 1 : 0;\n }\n var y;\n 0 === (y = u(p.getFullYear() - r.getFullYear())) && 0 === (y = u(p.getMonth() - r.getMonth())) && (y = u(p.getDate() - r.getDate()));\n return y;\n }\n function k(p) {\n switch(p.getDay()) {\n case 0:\n return new Date(p.getFullYear() - 1, 11, 29);\n case 1:\n return p;\n case 2:\n return new Date(p.getFullYear(), 0, 3);\n case 3:\n return new Date(p.getFullYear(), 0, 2);\n case 4:\n return new Date(p.getFullYear(), 0, 1);\n case 5:\n return new Date(p.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(p.getFullYear() - 1, 11, 30);\n }\n }\n function m(p) {\n var r = p.ca;\n for (p = new Date((new Date(p.da + 1900, 0, 1)).getTime()); 0 < r;) {\n var u = p.getMonth(), y = (Vd(p.getFullYear()) ? Wd : Xd)[u];\n if (r > y - p.getDate()) {\n r -= y - p.getDate() + 1, p.setDate(1), 11 > u ? p.setMonth(u + 1) : (p.setMonth(0), p.setFullYear(p.getFullYear() + 1));\n } else {\n p.setDate(p.getDate() + r);\n break;\n }\n }\n u = new Date(p.getFullYear() + 1, 0, 4);\n r = k(new Date(p.getFullYear(), 0, 4));\n u = k(u);\n return 0 >= g(r, p) ? 0 >= g(u, p) ? p.getFullYear() + 1 : p.getFullYear() : p.getFullYear() - 1;\n }\n var n = K[d + 40 >> 2];\n d = {jc:G[d >> 2], ic:G[d + 4 >> 2], Ha:G[d + 8 >> 2], Va:G[d + 12 >> 2], Ia:G[d + 16 >> 2], da:G[d + 20 >> 2], R:G[d + 24 >> 2], ca:G[d + 28 >> 2], Lc:G[d + 32 >> 2], hc:G[d + 36 >> 2], kc:n ? n ? L(D, n) : \"\" : \"\"};\n c = c ? L(D, c) : \"\";\n n = {\"%c\":\"%a %b %d %H:%M:%S %Y\", \"%D\":\"%m/%d/%y\", \"%F\":\"%Y-%m-%d\", \"%h\":\"%b\", \"%r\":\"%I:%M:%S %p\", \"%R\":\"%H:%M\", \"%T\":\"%H:%M:%S\", \"%x\":\"%m/%d/%y\", \"%X\":\"%H:%M:%S\", \"%Ec\":\"%c\", \"%EC\":\"%C\", \"%Ex\":\"%m/%d/%y\", \"%EX\":\"%H:%M:%S\", \"%Ey\":\"%y\", \"%EY\":\"%Y\", \"%Od\":\"%d\", \"%Oe\":\"%e\", \"%OH\":\"%H\", \"%OI\":\"%I\", \"%Om\":\"%m\", \"%OM\":\"%M\", \"%OS\":\"%S\", \"%Ou\":\"%u\", \"%OU\":\"%U\", \"%OV\":\"%V\", \"%Ow\":\"%w\", \"%OW\":\"%W\", \"%Oy\":\"%y\",};\n for (var t in n) {\n c = c.replace(new RegExp(t, \"g\"), n[t]);\n }\n var v = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"), x = \"January February March April May June July August September October November December\".split(\" \");\n n = {\"%a\":p => v[p.R].substring(0, 3), \"%A\":p => v[p.R], \"%b\":p => x[p.Ia].substring(0, 3), \"%B\":p => x[p.Ia], \"%C\":p => f((p.da + 1900) / 100 | 0, 2), \"%d\":p => f(p.Va, 2), \"%e\":p => e(p.Va, 2, \" \"), \"%g\":p => m(p).toString().substring(2), \"%G\":m, \"%H\":p => f(p.Ha, 2), \"%I\":p => {\n p = p.Ha;\n 0 == p ? p = 12 : 12 < p && (p -= 12);\n return f(p, 2);\n }, \"%j\":p => {\n for (var r = 0, u = 0; u <= p.Ia - 1; r += (Vd(p.da + 1900) ? Wd : Xd)[u++]) {\n }\n return f(p.Va + r, 3);\n }, \"%m\":p => f(p.Ia + 1, 2), \"%M\":p => f(p.ic, 2), \"%n\":() => \"\\n\", \"%p\":p => 0 <= p.Ha && 12 > p.Ha ? \"AM\" : \"PM\", \"%S\":p => f(p.jc, 2), \"%t\":() => \"\\t\", \"%u\":p => p.R || 7, \"%U\":p => f(Math.floor((p.ca + 7 - p.R) / 7), 2), \"%V\":p => {\n var r = Math.floor((p.ca + 7 - (p.R + 6) % 7) / 7);\n 2 >= (p.R + 371 - p.ca - 2) % 7 && r++;\n if (r) {\n 53 == r && (u = (p.R + 371 - p.ca) % 7, 4 == u || 3 == u && Vd(p.da) || (r = 1));\n } else {\n r = 52;\n var u = (p.R + 7 - p.ca - 1) % 7;\n (4 == u || 5 == u && Vd(p.da % 400 - 1)) && r++;\n }\n return f(r, 2);\n }, \"%w\":p => p.R, \"%W\":p => f(Math.floor((p.ca + 7 - (p.R + 6) % 7) / 7), 2), \"%y\":p => (p.da + 1900).toString().substring(2), \"%Y\":p => p.da + 1900, \"%z\":p => {\n p = p.hc;\n var r = 0 <= p;\n p = Math.abs(p) / 60;\n return (r ? \"+\" : \"-\") + String(\"0000\" + (p / 60 * 100 + p % 60)).slice(-4);\n }, \"%Z\":p => p.kc, \"%%\":() => \"%\"};\n c = c.replace(/%%/g, \"\\x00\\x00\");\n for (t in n) {\n c.includes(t) && (c = c.replace(new RegExp(t, \"g\"), n[t](d)));\n }\n c = c.replace(/\\0\\0/g, \"%\");\n t = hb(c, !1);\n if (t.length > b) {\n return 0;\n }\n B.set(t, a);\n return t.length - 1;\n};\n[44].forEach(a => {\n sb[a] = new M(a);\n sb[a].stack = \"<generic error, no stack>\";\n});\nzb = Array(4096);\nNb(N, \"/\");\nPb(\"/tmp\");\nPb(\"/home\");\nPb(\"/home/web_user\");\n(function() {\n Pb(\"/dev\");\n kb(259, {read:() => 0, write:(d, e, f, g) => g,});\n Qb(\"/dev/null\", 259);\n jb(1280, nb);\n jb(1536, ob);\n Qb(\"/dev/tty\", 1280);\n Qb(\"/dev/tty1\", 1536);\n var a = new Uint8Array(1024), b = 0, c = () => {\n 0 === b && (b = bb(a).byteLength);\n return a[--b];\n };\n Wb(\"random\", c);\n Wb(\"urandom\", c);\n Pb(\"/dev/shm\");\n Pb(\"/dev/shm/tmp\");\n})();\n(function() {\n Pb(\"/proc\");\n var a = Pb(\"/proc/self\");\n Pb(\"/proc/self/fd\");\n Nb({U() {\n var b = rb(a, \"fd\", 16895, 73);\n b.j = {la(c, d) {\n var e = Kb(+d);\n c = {parent:null, U:{kb:\"fake\"}, j:{ma:() => e.path},};\n return c.parent = c;\n }};\n return b;\n }}, \"/proc/self/fd\");\n})();\nP = l.BindingError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"BindingError\";\n }\n};\nO.push(0, 1, void 0, 1, null, 1, !0, 1, !1, 1,);\nl.count_emval_handles = () => O.length / 2 - 5 - $b.length;\ncc = l.PureVirtualError = bc(\"PureVirtualError\");\nfor (var Zd = Array(256), $d = 0; 256 > $d; ++$d) {\n Zd[$d] = String.fromCharCode($d);\n}\ndc = Zd;\nl.getInheritedInstanceCount = () => Object.keys(hc).length;\nl.getLiveInheritedInstances = () => {\n var a = [], b;\n for (b in hc) {\n hc.hasOwnProperty(b) && a.push(hc[b]);\n }\n return a;\n};\nl.flushPendingDeletes = fc;\nl.setDelayFunction = a => {\n gc = a;\n ec.length && gc && gc(fc);\n};\ntc = l.InternalError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"InternalError\";\n }\n};\nObject.assign(Dc.prototype, {isAliasOf:function(a) {\n if (!(this instanceof Dc && a instanceof Dc)) {\n return !1;\n }\n var b = this.g.u.i, c = this.g.o;\n a.g = a.g;\n var d = a.g.u.i;\n for (a = a.g.o; b.B;) {\n c = b.oa(c), b = b.B;\n }\n for (; d.B;) {\n a = d.oa(a), d = d.B;\n }\n return b === d && c === a;\n}, clone:function() {\n this.g.o || Cc(this);\n if (this.g.ja) {\n return this.g.count.value += 1, this;\n }\n var a = uc, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.g;\n a = a(c.call(b, d, {g:{value:{count:e.count, ha:e.ha, ja:e.ja, o:e.o, u:e.u, F:e.F, J:e.J,},}}));\n a.g.count.value += 1;\n a.g.ha = !1;\n return a;\n}, [\"delete\"]() {\n this.g.o || Cc(this);\n if (this.g.ha && !this.g.ja) {\n throw new P(\"Object already scheduled for deletion\");\n }\n oc(this);\n var a = this.g;\n --a.count.value;\n 0 === a.count.value && (a.F ? a.J.O(a.F) : a.u.i.O(a.o));\n this.g.ja || (this.g.F = void 0, this.g.o = void 0);\n}, isDeleted:function() {\n return !this.g.o;\n}, deleteLater:function() {\n this.g.o || Cc(this);\n if (this.g.ha && !this.g.ja) {\n throw new P(\"Object already scheduled for deletion\");\n }\n ec.push(this);\n 1 === ec.length && gc && gc(fc);\n this.g.ha = !0;\n return this;\n},});\nObject.assign(Nc.prototype, {Ob(a) {\n this.qb && (a = this.qb(a));\n return a;\n}, bb(a) {\n this.O?.(a);\n}, argPackAdvance:8, readValueFromPointer:yc, fromWireType:function(a) {\n function b() {\n return this.wa ? vc(this.i.M, {u:this.ac, o:c, J:this, F:a,}) : vc(this.i.M, {u:this, o:a,});\n }\n var c = this.Ob(a);\n if (!c) {\n return this.bb(a), null;\n }\n var d = sc(this.i, c);\n if (void 0 !== d) {\n if (0 === d.g.count.value) {\n return d.g.o = c, d.g.F = a, d.clone();\n }\n d = d.clone();\n this.bb(a);\n return d;\n }\n d = this.i.Nb(c);\n d = rc[d];\n if (!d) {\n return b.call(this);\n }\n d = this.va ? d.Gb : d.pointerType;\n var e = qc(c, this.i, d.i);\n return null === e ? b.call(this) : this.wa ? vc(d.i.M, {u:d, o:e, J:this, F:a,}) : vc(d.i.M, {u:d, o:e,});\n},});\nUc = l.UnboundTypeError = bc(\"UnboundTypeError\");\nfor (var W, ae = 0; 32 > ae; ++ae) {\n Od.push(Array(ae));\n}\nvar be = {__syscall_fcntl64:function(a, b, c) {\n Wa = c;\n try {\n var d = Kb(a);\n switch(b) {\n case 0:\n var e = Va();\n if (0 > e) {\n break;\n }\n for (; xb[e];) {\n e++;\n }\n return Mb(d, e).W;\n case 1:\n case 2:\n return 0;\n case 3:\n return d.flags;\n case 4:\n return e = Va(), d.flags |= e, 0;\n case 12:\n return e = Va(), E[e + 0 >> 1] = 2, 0;\n case 13:\n case 14:\n return 0;\n }\n return -28;\n } catch (f) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== f.name) {\n throw f;\n }\n return -f.$;\n }\n}, __syscall_ioctl:function(a, b, c) {\n Wa = c;\n try {\n var d = Kb(a);\n switch(b) {\n case 21509:\n return d.s ? 0 : -59;\n case 21505:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.Vb) {\n a = [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];\n var e = Va();\n G[e >> 2] = 25856;\n G[e + 4 >> 2] = 5;\n G[e + 8 >> 2] = 191;\n G[e + 12 >> 2] = 35387;\n for (var f = 0; 32 > f; f++) {\n B[e + f + 17] = a[f] || 0;\n }\n }\n return 0;\n case 21510:\n case 21511:\n case 21512:\n return d.s ? 0 : -59;\n case 21506:\n case 21507:\n case 21508:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.Wb) {\n for (e = Va(), a = [], f = 0; 32 > f; f++) {\n a.push(B[e + f + 17]);\n }\n }\n return 0;\n case 21519:\n if (!d.s) {\n return -59;\n }\n e = Va();\n return G[e >> 2] = 0;\n case 21520:\n return d.s ? -28 : -59;\n case 21531:\n e = Va();\n if (!d.m.Ub) {\n throw new M(59);\n }\n return d.m.Ub(d, b, e);\n case 21523:\n if (!d.s) {\n return -59;\n }\n d.s.V.Xb && (f = [24, 80], e = Va(), E[e >> 1] = f[0], E[e + 2 >> 1] = f[1]);\n return 0;\n case 21524:\n return d.s ? 0 : -59;\n case 21515:\n return d.s ? 0 : -59;\n default:\n return -28;\n }\n } catch (g) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return -g.$;\n }\n}, __syscall_openat:function(a, b, c, d) {\n Wa = d;\n try {\n b = b ? L(D, b) : \"\";\n var e = b;\n if (\"/\" === e.charAt(0)) {\n b = e;\n } else {\n var f = -100 === a ? \"/\" : Kb(a).path;\n if (0 == e.length) {\n throw new M(44);\n }\n b = Ya(f + \"/\" + e);\n }\n var g = d ? Va() : 0;\n return Sb(b, c, g).W;\n } catch (k) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== k.name) {\n throw k;\n }\n return -k.$;\n }\n}, _abort_js:() => {\n Ha(\"\");\n}, _embind_create_inheriting_constructor:(a, b, c) => {\n a = R(a);\n b = nc(b, \"wrapper\");\n c = Q(c);\n var d = b.i, e = d.M, f = d.B.M, g = d.B.constructor;\n a = Zb(a, function(...k) {\n d.B.ob.forEach(function(m) {\n if (this[m] === f[m]) {\n throw new cc(`Pure virtual function ${m} must be implemented in JavaScript`);\n }\n }.bind(this));\n Object.defineProperty(this, \"__parent\", {value:e});\n this.__construct(...k);\n });\n e.__construct = function(...k) {\n if (this === e) {\n throw new P(\"Pass correct 'this' to __construct\");\n }\n k = g.implement(this, ...k);\n oc(k);\n var m = k.g;\n k.notifyOnDestruction();\n m.ja = !0;\n Object.defineProperties(this, {g:{value:m}});\n uc(this);\n k = m.o;\n k = ic(d, k);\n if (hc.hasOwnProperty(k)) {\n throw new P(`Tried to register registered instance: ${k}`);\n }\n hc[k] = this;\n };\n e.__destruct = function() {\n if (this === e) {\n throw new P(\"Pass correct 'this' to __destruct\");\n }\n oc(this);\n var k = this.g.o;\n k = ic(d, k);\n if (hc.hasOwnProperty(k)) {\n delete hc[k];\n } else {\n throw new P(`Tried to unregister unregistered instance: ${k}`);\n }\n };\n a.prototype = Object.create(e);\n Object.assign(a.prototype, c);\n return ac(a);\n}, _embind_finalize_value_object:a => {\n var b = wc[a];\n delete wc[a];\n var c = b.Ta, d = b.O, e = b.eb, f = e.map(g => g.Rb).concat(e.map(g => g.dc));\n T([a], f, g => {\n var k = {};\n e.forEach((m, n) => {\n var t = g[n], v = m.Pb, x = m.Qb, p = g[n + e.length], r = m.cc, u = m.ec;\n k[m.Lb] = {read:y => t.fromWireType(v(x, y)), write:(y, z) => {\n var C = [];\n r(u, y, p.toWireType(C, z));\n xc(C);\n }};\n });\n return [{name:b.name, fromWireType:m => {\n var n = {}, t;\n for (t in k) {\n n[t] = k[t].read(m);\n }\n d(m);\n return n;\n }, toWireType:(m, n) => {\n for (var t in k) {\n if (!(t in n)) {\n throw new TypeError(`Missing field: \"${t}\"`);\n }\n }\n var v = c();\n for (t in k) {\n k[t].write(v, n[t]);\n }\n null !== m && m.push(d, v);\n return v;\n }, argPackAdvance:8, readValueFromPointer:yc, L:d,}];\n });\n}, _embind_register_bigint:() => {\n}, _embind_register_bool:(a, b, c, d) => {\n b = R(b);\n S(a, {name:b, fromWireType:function(e) {\n return !!e;\n }, toWireType:function(e, f) {\n return f ? c : d;\n }, argPackAdvance:8, readValueFromPointer:function(e) {\n return this.fromWireType(D[e]);\n }, L:null,});\n}, _embind_register_class:(a, b, c, d, e, f, g, k, m, n, t, v, x) => {\n t = R(t);\n f = U(e, f);\n k &&= U(g, k);\n n &&= U(m, n);\n x = U(v, x);\n var p = Gc(t);\n Fc(p, function() {\n Vc(`Cannot construct ${t} due to unbound types`, [d]);\n });\n T([a, b, c], d ? [d] : [], r => {\n r = r[0];\n if (d) {\n var u = r.i;\n var y = u.M;\n } else {\n y = Dc.prototype;\n }\n r = Zb(t, function(...I) {\n if (Object.getPrototypeOf(this) !== z) {\n throw new P(\"Use 'new' to construct \" + t);\n }\n if (void 0 === C.Z) {\n throw new P(t + \" has no accessible constructor\");\n }\n var J = C.Z[I.length];\n if (void 0 === J) {\n throw new P(`Tried to invoke ctor of ${t} with invalid number of parameters (${I.length}) - expected (${Object.keys(C.Z).toString()}) parameters instead!`);\n }\n return J.apply(this, I);\n });\n var z = Object.create(y, {constructor:{value:r},});\n r.prototype = z;\n var C = new Hc(t, r, z, x, u, f, k, n);\n if (C.B) {\n var F;\n (F = C.B).pa ?? (F.pa = []);\n C.B.pa.push(C);\n }\n u = new Nc(t, C, !0, !1, !1);\n F = new Nc(t + \"*\", C, !1, !1, !1);\n y = new Nc(t + \" const*\", C, !1, !0, !1);\n rc[a] = {pointerType:F, Gb:y};\n Oc(p, r);\n return [u, F, y];\n });\n}, _embind_register_class_class_function:(a, b, c, d, e, f, g) => {\n var k = Yc(c, d);\n b = R(b);\n b = Zc(b);\n f = U(e, f);\n T([], [a], m => {\n function n() {\n Vc(`Cannot call ${t} due to unbound types`, k);\n }\n m = m[0];\n var t = `${m.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n var v = m.i.constructor;\n void 0 === v[b] ? (n.ga = c - 1, v[b] = n) : (Ec(v, b, t), v[b].A[c - 1] = n);\n T([], k, x => {\n x = Xc(t, [x[0], null].concat(x.slice(1)), null, f, g);\n void 0 === v[b].A ? (x.ga = c - 1, v[b] = x) : v[b].A[c - 1] = x;\n if (m.i.pa) {\n for (const p of m.i.pa) {\n p.constructor.hasOwnProperty(b) || (p.constructor[b] = x);\n }\n }\n return [];\n });\n return [];\n });\n}, _embind_register_class_class_property:(a, b, c, d, e, f, g, k) => {\n b = R(b);\n f = U(e, f);\n T([], [a], m => {\n m = m[0];\n var n = `${m.name}.${b}`, t = {get() {\n Vc(`Cannot access ${n} due to unbound types`, [c]);\n }, enumerable:!0, configurable:!0};\n t.set = k ? () => {\n Vc(`Cannot access ${n} due to unbound types`, [c]);\n } : () => {\n throw new P(`${n} is a read-only property`);\n };\n Object.defineProperty(m.i.constructor, b, t);\n T([], [c], v => {\n v = v[0];\n var x = {get() {\n return v.fromWireType(f(d));\n }, enumerable:!0};\n k && (k = U(g, k), x.set = p => {\n var r = [];\n k(d, v.toWireType(r, p));\n xc(r);\n });\n Object.defineProperty(m.i.constructor, b, x);\n return [];\n });\n return [];\n });\n}, _embind_register_class_constructor:(a, b, c, d, e, f) => {\n var g = Yc(b, c);\n e = U(d, e);\n T([], [a], k => {\n k = k[0];\n var m = `constructor ${k.name}`;\n void 0 === k.i.Z && (k.i.Z = []);\n if (void 0 !== k.i.Z[b - 1]) {\n throw new P(`Cannot register multiple constructors with identical number of parameters (${b - 1}) for class '${k.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n }\n k.i.Z[b - 1] = () => {\n Vc(`Cannot construct ${k.name} due to unbound types`, g);\n };\n T([], g, n => {\n n.splice(1, 0, null);\n k.i.Z[b - 1] = Xc(m, n, null, e, f);\n return [];\n });\n return [];\n });\n}, _embind_register_class_function:(a, b, c, d, e, f, g, k) => {\n var m = Yc(c, d);\n b = R(b);\n b = Zc(b);\n f = U(e, f);\n T([], [a], n => {\n function t() {\n Vc(`Cannot call ${v} due to unbound types`, m);\n }\n n = n[0];\n var v = `${n.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n k && n.i.ob.push(b);\n var x = n.i.M, p = x[b];\n void 0 === p || void 0 === p.A && p.className !== n.name && p.ga === c - 2 ? (t.ga = c - 2, t.className = n.name, x[b] = t) : (Ec(x, b, v), x[b].A[c - 2] = t);\n T([], m, r => {\n r = Xc(v, r, n, f, g);\n void 0 === x[b].A ? (r.ga = c - 2, x[b] = r) : x[b].A[c - 2] = r;\n return [];\n });\n return [];\n });\n}, _embind_register_class_property:(a, b, c, d, e, f, g, k, m, n) => {\n b = R(b);\n e = U(d, e);\n T([], [a], t => {\n t = t[0];\n var v = `${t.name}.${b}`, x = {get() {\n Vc(`Cannot access ${v} due to unbound types`, [c, g]);\n }, enumerable:!0, configurable:!0};\n x.set = m ? () => Vc(`Cannot access ${v} due to unbound types`, [c, g]) : () => {\n throw new P(v + \" is a read-only property\");\n };\n Object.defineProperty(t.i.M, b, x);\n T([], m ? [c, g] : [c], p => {\n var r = p[0], u = {get() {\n var z = $c(this, t, v + \" getter\");\n return r.fromWireType(e(f, z));\n }, enumerable:!0};\n if (m) {\n m = U(k, m);\n var y = p[1];\n u.set = function(z) {\n var C = $c(this, t, v + \" setter\"), F = [];\n m(n, C, y.toWireType(F, z));\n xc(F);\n };\n }\n Object.defineProperty(t.i.M, b, u);\n return [];\n });\n return [];\n });\n}, _embind_register_emval:a => S(a, bd), _embind_register_enum:(a, b, c, d) => {\n function e() {\n }\n b = R(b);\n e.values = {};\n S(a, {name:b, constructor:e, fromWireType:function(f) {\n return this.constructor.values[f];\n }, toWireType:(f, g) => g.value, argPackAdvance:8, readValueFromPointer:cd(b, c, d), L:null,});\n Fc(b, e);\n}, _embind_register_enum_value:(a, b, c) => {\n var d = nc(a, \"enum\");\n b = R(b);\n a = d.constructor;\n d = Object.create(d.constructor.prototype, {value:{value:c}, constructor:{value:Zb(`${d.name}_${b}`, function() {\n })},});\n a.values[c] = d;\n a[b] = d;\n}, _embind_register_float:(a, b, c) => {\n b = R(b);\n S(a, {name:b, fromWireType:d => d, toWireType:(d, e) => e, argPackAdvance:8, readValueFromPointer:dd(b, c), L:null,});\n}, _embind_register_function:(a, b, c, d, e, f) => {\n var g = Yc(b, c);\n a = R(a);\n a = Zc(a);\n e = U(d, e);\n Fc(a, function() {\n Vc(`Cannot call ${a} due to unbound types`, g);\n }, b - 1);\n T([], g, k => {\n Oc(a, Xc(a, [k[0], null].concat(k.slice(1)), null, e, f), b - 1);\n return [];\n });\n}, _embind_register_integer:(a, b, c, d, e) => {\n b = R(b);\n -1 === e && (e = 4294967295);\n e = k => k;\n if (0 === d) {\n var f = 32 - 8 * c;\n e = k => k << f >>> f;\n }\n var g = b.includes(\"unsigned\") ? function(k, m) {\n return m >>> 0;\n } : function(k, m) {\n return m;\n };\n S(a, {name:b, fromWireType:e, toWireType:g, argPackAdvance:8, readValueFromPointer:ed(b, c, 0 !== d), L:null,});\n}, _embind_register_memory_view:(a, b, c) => {\n function d(f) {\n return new e(B.buffer, K[f + 4 >> 2], K[f >> 2]);\n }\n var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array,][b];\n c = R(c);\n S(a, {name:c, fromWireType:d, argPackAdvance:8, readValueFromPointer:d,}, {Sb:!0,});\n}, _embind_register_std_string:(a, b) => {\n b = R(b);\n var c = \"std::string\" === b;\n S(a, {name:b, fromWireType:function(d) {\n var e = K[d >> 2], f = d + 4;\n if (c) {\n for (var g = f, k = 0; k <= e; ++k) {\n var m = f + k;\n if (k == e || 0 == D[m]) {\n g = g ? L(D, g, m - g) : \"\";\n if (void 0 === n) {\n var n = g;\n } else {\n n += String.fromCharCode(0), n += g;\n }\n g = m + 1;\n }\n }\n } else {\n n = Array(e);\n for (k = 0; k < e; ++k) {\n n[k] = String.fromCharCode(D[f + k]);\n }\n n = n.join(\"\");\n }\n lc(d);\n return n;\n }, toWireType:function(d, e) {\n e instanceof ArrayBuffer && (e = new Uint8Array(e));\n var f = \"string\" == typeof e;\n if (!(f || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array)) {\n throw new P(\"Cannot pass non-string to std::string\");\n }\n var g = c && f ? fb(e) : e.length;\n var k = Rd(4 + g + 1), m = k + 4;\n K[k >> 2] = g;\n if (c && f) {\n gb(e, D, m, g + 1);\n } else {\n if (f) {\n for (f = 0; f < g; ++f) {\n var n = e.charCodeAt(f);\n if (255 < n) {\n throw lc(m), new P(\"String has UTF-16 code units that do not fit in 8 bits\");\n }\n D[m + f] = n;\n }\n } else {\n for (f = 0; f < g; ++f) {\n D[m + f] = e[f];\n }\n }\n }\n null !== d && d.push(lc, k);\n return k;\n }, argPackAdvance:8, readValueFromPointer:yc, L(d) {\n lc(d);\n },});\n}, _embind_register_std_wstring:(a, b, c) => {\n c = R(c);\n if (2 === b) {\n var d = gd;\n var e = hd;\n var f = jd;\n var g = k => wa[k >> 1];\n } else {\n 4 === b && (d = kd, e = ld, f = md, g = k => K[k >> 2]);\n }\n S(a, {name:c, fromWireType:k => {\n for (var m = K[k >> 2], n, t = k + 4, v = 0; v <= m; ++v) {\n var x = k + 4 + v * b;\n if (v == m || 0 == g(x)) {\n t = d(t, x - t), void 0 === n ? n = t : (n += String.fromCharCode(0), n += t), t = x + b;\n }\n }\n lc(k);\n return n;\n }, toWireType:(k, m) => {\n if (\"string\" != typeof m) {\n throw new P(`Cannot pass non-string to C++ string type ${c}`);\n }\n var n = f(m), t = Rd(4 + n + b);\n K[t >> 2] = n / b;\n e(m, t + 4, n + b);\n null !== k && k.push(lc, t);\n return t;\n }, argPackAdvance:8, readValueFromPointer:yc, L(k) {\n lc(k);\n }});\n}, _embind_register_value_object:(a, b, c, d, e, f) => {\n wc[a] = {name:R(b), Ta:U(c, d), O:U(e, f), eb:[],};\n}, _embind_register_value_object_field:(a, b, c, d, e, f, g, k, m, n) => {\n wc[a].eb.push({Lb:R(b), Rb:c, Pb:U(d, e), Qb:f, dc:g, cc:U(k, m), ec:n,});\n}, _embind_register_void:(a, b) => {\n b = R(b);\n S(a, {Dc:!0, name:b, argPackAdvance:0, fromWireType:() => {\n }, toWireType:() => {\n },});\n}, _emscripten_get_now_is_monotonic:() => 1, _emscripten_memcpy_js:(a, b, c) => D.copyWithin(a, b, b + c), _emval_as:(a, b, c) => {\n a = Q(a);\n b = nc(b, \"emval::as\");\n return nd(b, c, a);\n}, _emval_call_method:(a, b, c, d, e) => {\n a = qd[a];\n b = Q(b);\n c = pd(c);\n return a(b, b[c], d, e);\n}, _emval_decref:ad, _emval_get_method_caller:(a, b, c) => {\n var d = sd(a, b), e = d.shift();\n a--;\n var f = Array(a);\n b = `methodCaller<(${d.map(g => g.name).join(\", \")}) => ${e.name}>`;\n return rd(Zb(b, (g, k, m, n) => {\n for (var t = 0, v = 0; v < a; ++v) {\n f[v] = d[v].readValueFromPointer(n + t), t += d[v].argPackAdvance;\n }\n g = 1 === c ? td(k, f) : k.apply(g, f);\n return nd(e, m, g);\n }));\n}, _emval_get_property:(a, b) => {\n a = Q(a);\n b = Q(b);\n return ac(a[b]);\n}, _emval_incref:a => {\n 9 < a && (O[a + 1] += 1);\n}, _emval_new_array:() => ac([]), _emval_new_cstring:a => ac(pd(a)), _emval_new_object:() => ac({}), _emval_run_destructors:a => {\n var b = Q(a);\n xc(b);\n ad(a);\n}, _emval_set_property:(a, b, c) => {\n a = Q(a);\n b = Q(b);\n c = Q(c);\n a[b] = c;\n}, _emval_take_value:(a, b) => {\n a = nc(a, \"_emval_take_value\");\n a = a.readValueFromPointer(b);\n return ac(a);\n}, beginPixelLocalStorageWEBGL:function(a, b, c) {\n (a = w[a].C.ba) && a.beginPixelLocalStorageWEBGL(l.HEAPU32.subarray(c, c + b));\n}, decode_image:function(a, b, c) {\n var d = l.images;\n d || (d = new Map(), l.images = d);\n var e = new Image();\n d.set(a, e);\n b = l.HEAP8.subarray(b, b + c);\n c = new Uint8Array(c);\n c.set(b);\n e.src = URL.createObjectURL(new Blob([c], {type:\"image/png\"}));\n e.onload = function() {\n l._setWebImage(a, e.width, e.height);\n };\n}, delete_image:function(a) {\n var b = l.images;\n b && b.get(a) && b.delete(a);\n}, emscripten_asm_const_int:(a, b, c) => {\n ud.length = 0;\n for (var d; d = D[b++];) {\n var e = 105 != d;\n e &= 112 != d;\n c += e && c % 8 ? 4 : 0;\n ud.push(112 == d ? K[c >> 2] : 105 == d ? G[c >> 2] : ya[c >> 3]);\n c += e ? 8 : 4;\n }\n return Ta[a](...ud);\n}, emscripten_date_now:() => Date.now(), emscripten_get_now:() => performance.now(), emscripten_resize_heap:a => {\n var b = D.length;\n a >>>= 0;\n if (2147483648 < a) {\n return !1;\n }\n for (var c = 1; 4 >= c; c *= 2) {\n var d = b * (1 + 0.2 / c);\n d = Math.min(d, a + 100663296);\n var e = Math;\n d = Math.max(a, d);\n a: {\n e = (e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - ua.buffer.byteLength + 65535) / 65536;\n try {\n ua.grow(e);\n za();\n var f = 1;\n break a;\n } catch (g) {\n }\n f = void 0;\n }\n if (f) {\n return !0;\n }\n }\n return !1;\n}, emscripten_webgl_enable_extension:(a, b) => {\n a = w[a];\n b = b ? L(D, b) : \"\";\n b.startsWith(\"GL_\") && (b = b.substr(3));\n \"WEBGL_draw_instanced_base_vertex_base_instance\" == b && vd(W);\n \"WEBGL_multi_draw_instanced_base_vertex_base_instance\" == b && wd(W);\n \"WEBGL_multi_draw\" == b && (W.Zb = W.getExtension(\"WEBGL_multi_draw\"));\n return !!a.C.getExtension(b);\n}, emscripten_webgl_get_current_context:() => q ? q.handle : 0, emscripten_webgl_make_context_current:a => la(a) ? 0 : -5, enable_WEBGL_provoking_vertex:function(a) {\n a = w[a].C;\n a.pb = a.getExtension(\"WEBGL_provoking_vertex\");\n return !!a.pb;\n}, enable_WEBGL_shader_pixel_local_storage_coherent:function(a) {\n a = w[a].C;\n a.ba = a.getExtension(\"WEBGL_shader_pixel_local_storage\");\n return !(!a.ba || !a.ba.isCoherent());\n}, endPixelLocalStorageWEBGL:function(a, b, c) {\n (a = w[a].C.ba) && a.endPixelLocalStorageWEBGL(l.HEAPU32.subarray(c, c + b));\n}, environ_get:(a, b) => {\n var c = 0;\n Nd().forEach((d, e) => {\n var f = b + c;\n e = K[a + 4 * e >> 2] = f;\n for (f = 0; f < d.length; ++f) {\n B[e++] = d.charCodeAt(f);\n }\n B[e] = 0;\n c += d.length + 1;\n });\n return 0;\n}, environ_sizes_get:(a, b) => {\n var c = Nd();\n K[a >> 2] = c.length;\n var d = 0;\n c.forEach(e => d += e.length + 1);\n K[b >> 2] = d;\n return 0;\n}, fd_close:function(a) {\n try {\n var b = Kb(a);\n if (null === b.W) {\n throw new M(8);\n }\n b.Qa && (b.Qa = null);\n try {\n b.m.close && b.m.close(b);\n } catch (c) {\n throw c;\n } finally {\n xb[b.W] = null;\n }\n b.W = null;\n return 0;\n } catch (c) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== c.name) {\n throw c;\n }\n return c.$;\n }\n}, fd_read:function(a, b, c, d) {\n try {\n a: {\n var e = Kb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var k = K[a >> 2], m = K[a + 4 >> 2];\n a += 8;\n var n = e, t = f, v = B;\n if (0 > m || 0 > t) {\n throw new M(28);\n }\n if (null === n.W) {\n throw new M(8);\n }\n if (1 === (n.flags & 2097155)) {\n throw new M(8);\n }\n if (16384 === (n.node.mode & 61440)) {\n throw new M(31);\n }\n if (!n.m.read) {\n throw new M(28);\n }\n var x = \"undefined\" != typeof t;\n if (!x) {\n t = n.position;\n } else if (!n.seekable) {\n throw new M(70);\n }\n var p = n.m.read(n, v, k, m, t);\n x || (n.position += p);\n var r = p;\n if (0 > r) {\n var u = -1;\n break a;\n }\n b += r;\n if (r < m) {\n break;\n }\n \"undefined\" != typeof f && (f += r);\n }\n u = b;\n }\n K[d >> 2] = u;\n return 0;\n } catch (y) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== y.name) {\n throw y;\n }\n return y.$;\n }\n}, fd_seek:function(a, b, c, d, e) {\n b = c + 2097152 >>> 0 < 4194305 - !!b ? (b >>> 0) + 4294967296 * c : NaN;\n try {\n if (isNaN(b)) {\n return 61;\n }\n var f = Kb(a);\n Ub(f, b, d);\n Pa = [f.position >>> 0, (Oa = f.position, 1.0 <= +Math.abs(Oa) ? 0.0 < Oa ? +Math.floor(Oa / 4294967296.0) >>> 0 : ~~+Math.ceil((Oa - +(~~Oa >>> 0)) / 4294967296.0) >>> 0 : 0)];\n G[e >> 2] = Pa[0];\n G[e + 4 >> 2] = Pa[1];\n f.Qa && 0 === b && 0 === d && (f.Qa = null);\n return 0;\n } catch (g) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return g.$;\n }\n}, fd_write:function(a, b, c, d) {\n try {\n a: {\n var e = Kb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var k = K[a >> 2], m = K[a + 4 >> 2];\n a += 8;\n var n = e, t = k, v = m, x = f, p = B;\n if (0 > v || 0 > x) {\n throw new M(28);\n }\n if (null === n.W) {\n throw new M(8);\n }\n if (0 === (n.flags & 2097155)) {\n throw new M(8);\n }\n if (16384 === (n.node.mode & 61440)) {\n throw new M(31);\n }\n if (!n.m.write) {\n throw new M(28);\n }\n n.seekable && n.flags & 1024 && Ub(n, 0, 2);\n var r = \"undefined\" != typeof x;\n if (!r) {\n x = n.position;\n } else if (!n.seekable) {\n throw new M(70);\n }\n var u = n.m.write(n, p, t, v, x, void 0);\n r || (n.position += u);\n var y = u;\n if (0 > y) {\n var z = -1;\n break a;\n }\n b += y;\n \"undefined\" != typeof f && (f += y);\n }\n z = b;\n }\n K[d >> 2] = z;\n return 0;\n } catch (C) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== C.name) {\n throw C;\n }\n return C.$;\n }\n}, framebufferPixelLocalClearValuefvWEBGL:function(a, b, c, d, e, f) {\n (a = w[a].C.ba) && a.framebufferPixelLocalClearValuefvWEBGL(b, [c, d, e, f]);\n}, framebufferTexturePixelLocalStorageWEBGL:function(a, b, c, d, e) {\n (a = w[a].C.ba) && a.framebufferTexturePixelLocalStorageWEBGL(b, Cd[c], d, e);\n}, getFramebufferPixelLocalStorageParameterivWEBGL:function(a, b, c) {\n return (a = w[a].C.ba) ? a.getFramebufferPixelLocalStorageParameterWEBGL(b, c) : 0;\n}, glActiveTexture:a => W.activeTexture(a), glAttachShader:(a, b) => {\n W.attachShader(V[a], Dd[b]);\n}, glBindBuffer:(a, b) => {\n 35051 == a ? W.Na = b : 35052 == a && (W.Oa = b);\n W.bindBuffer(a, zd[b]);\n}, glBindBufferRange:(a, b, c, d, e) => {\n W.bindBufferRange(a, b, zd[c], d, e);\n}, glBindFramebuffer:(a, b) => {\n W.bindFramebuffer(a, Ad[b]);\n}, glBindRenderbuffer:(a, b) => {\n W.bindRenderbuffer(a, Bd[b]);\n}, glBindTexture:(a, b) => {\n W.bindTexture(a, Cd[b]);\n}, glBindVertexArray:a => {\n W.bindVertexArray(Ed[a]);\n}, glBlendEquation:a => W.blendEquation(a), glBlendFunc:(a, b) => W.blendFunc(a, b), glBlitFramebuffer:(a, b, c, d, e, f, g, k, m, n) => W.blitFramebuffer(a, b, c, d, e, f, g, k, m, n), glBufferData:(a, b, c, d) => {\n c && b ? W.bufferData(a, D, d, c, b) : W.bufferData(a, b, d);\n}, glBufferSubData:(a, b, c, d) => {\n c && W.bufferSubData(a, b, D, d, c);\n}, glClear:a => W.clear(a), glClearBufferfv:(a, b, c) => {\n W.clearBufferfv(a, b, xa, c >> 2);\n}, glClearBufferuiv:(a, b, c) => {\n W.clearBufferuiv(a, b, K, c >> 2);\n}, glClearColor:(a, b, c, d) => W.clearColor(a, b, c, d), glClearDepthf:a => W.clearDepth(a), glClearStencil:a => W.clearStencil(a), glColorMask:(a, b, c, d) => {\n W.colorMask(!!a, !!b, !!c, !!d);\n}, glCompileShader:a => {\n W.compileShader(Dd[a]);\n}, glCreateProgram:() => {\n var a = Id(V), b = W.createProgram();\n b.name = a;\n b.za = b.xa = b.ya = 0;\n b.Wa = 1;\n V[a] = b;\n return a;\n}, glCreateShader:a => {\n var b = Id(Dd);\n Dd[b] = W.createShader(a);\n return b;\n}, glCullFace:a => W.cullFace(a), glDeleteBuffers:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = zd[d];\n e && (W.deleteBuffer(e), e.name = 0, zd[d] = null, d == W.Na && (W.Na = 0), d == W.Oa && (W.Oa = 0));\n }\n}, glDeleteFramebuffers:(a, b) => {\n for (var c = 0; c < a; ++c) {\n var d = G[b + 4 * c >> 2], e = Ad[d];\n e && (W.deleteFramebuffer(e), e.name = 0, Ad[d] = null);\n }\n}, glDeleteProgram:a => {\n if (a) {\n var b = V[a];\n b ? (W.deleteProgram(b), b.name = 0, V[a] = null) : X ||= 1281;\n }\n}, glDeleteRenderbuffers:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = Bd[d];\n e && (W.deleteRenderbuffer(e), e.name = 0, Bd[d] = null);\n }\n}, glDeleteShader:a => {\n if (a) {\n var b = Dd[a];\n b ? (W.deleteShader(b), Dd[a] = null) : X ||= 1281;\n }\n}, glDeleteTextures:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = Cd[d];\n e && (W.deleteTexture(e), e.name = 0, Cd[d] = null);\n }\n}, glDeleteVertexArrays:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2];\n W.deleteVertexArray(Ed[d]);\n Ed[d] = null;\n }\n}, glDepthFunc:a => W.depthFunc(a), glDepthMask:a => {\n W.depthMask(!!a);\n}, glDepthRangef:(a, b) => W.depthRange(a, b), glDisable:a => W.disable(a), glDrawArrays:(a, b, c) => {\n W.drawArrays(a, b, c);\n}, glDrawArraysInstanced:(a, b, c, d) => {\n W.drawArraysInstanced(a, b, c, d);\n}, glDrawBuffers:(a, b) => {\n for (var c = Od[a], d = 0; d < a; d++) {\n c[d] = G[b + 4 * d >> 2];\n }\n W.drawBuffers(c);\n}, glDrawElements:(a, b, c, d) => {\n W.drawElements(a, b, c, d);\n}, glDrawElementsInstanced:(a, b, c, d, e) => {\n W.drawElementsInstanced(a, b, c, d, e);\n}, glEnable:a => W.enable(a), glEnableVertexAttribArray:a => {\n W.enableVertexAttribArray(a);\n}, glFlush:() => W.flush(), glFramebufferRenderbuffer:(a, b, c, d) => {\n W.framebufferRenderbuffer(a, b, c, Bd[d]);\n}, glFramebufferTexture2D:(a, b, c, d, e) => {\n W.framebufferTexture2D(a, b, c, Cd[d], e);\n}, glFrontFace:a => W.frontFace(a), glGenBuffers:(a, b) => {\n Jd(a, b, \"createBuffer\", zd);\n}, glGenFramebuffers:(a, b) => {\n Jd(a, b, \"createFramebuffer\", Ad);\n}, glGenRenderbuffers:(a, b) => {\n Jd(a, b, \"createRenderbuffer\", Bd);\n}, glGenTextures:(a, b) => {\n Jd(a, b, \"createTexture\", Cd);\n}, glGenVertexArrays:(a, b) => {\n Jd(a, b, \"createVertexArray\", Ed);\n}, glGenerateMipmap:a => W.generateMipmap(a), glGetError:() => {\n var a = W.getError() || X;\n X = 0;\n return a;\n}, glGetIntegerv:(a, b) => Qd(a, b), glGetProgramiv:(a, b, c) => {\n if (c) {\n if (a >= yd) {\n X ||= 1281;\n } else {\n if (a = V[a], 35716 == b) {\n a = W.getProgramInfoLog(a), null === a && (a = \"(unknown error)\"), G[c >> 2] = a.length + 1;\n } else if (35719 == b) {\n if (!a.za) {\n for (b = 0; b < W.getProgramParameter(a, 35718); ++b) {\n a.za = Math.max(a.za, W.getActiveUniform(a, b).name.length + 1);\n }\n }\n G[c >> 2] = a.za;\n } else if (35722 == b) {\n if (!a.xa) {\n for (b = 0; b < W.getProgramParameter(a, 35721); ++b) {\n a.xa = Math.max(a.xa, W.getActiveAttrib(a, b).name.length + 1);\n }\n }\n G[c >> 2] = a.xa;\n } else if (35381 == b) {\n if (!a.ya) {\n for (b = 0; b < W.getProgramParameter(a, 35382); ++b) {\n a.ya = Math.max(a.ya, W.getActiveUniformBlockName(a, b).length + 1);\n }\n }\n G[c >> 2] = a.ya;\n } else {\n G[c >> 2] = W.getProgramParameter(a, b);\n }\n }\n } else {\n X ||= 1281;\n }\n}, glGetString:a => {\n var b = Fd[a];\n if (!b) {\n switch(a) {\n case 7939:\n b = Sd(Pd().join(\" \"));\n break;\n case 7936:\n case 7937:\n case 37445:\n case 37446:\n (b = W.getParameter(a)) || (X ||= 1280);\n b = b ? Sd(b) : 0;\n break;\n case 7938:\n b = Sd(`OpenGL ES 3.0 (${W.getParameter(7938)})`);\n break;\n case 35724:\n b = W.getParameter(35724);\n var c = b.match(/^WebGL GLSL ES ([0-9]\\.[0-9][0-9]?)(?:$| .*)/);\n null !== c && (3 == c[1].length && (c[1] += \"0\"), b = `OpenGL ES GLSL ES ${c[1]} (${b})`);\n b = Sd(b);\n break;\n default:\n X ||= 1280;\n }\n Fd[a] = b;\n }\n return b;\n}, glGetUniformBlockIndex:(a, b) => W.getUniformBlockIndex(V[a], b ? L(D, b) : \"\"), glGetUniformLocation:(a, b) => {\n b = b ? L(D, b) : \"\";\n if (a = V[a]) {\n var c = a, d = c.na, e = c.wb, f;\n if (!d) {\n for (c.na = d = {}, c.vb = {}, f = 0; f < W.getProgramParameter(c, 35718); ++f) {\n var g = W.getActiveUniform(c, f);\n var k = g.name;\n g = g.size;\n var m = Td(k);\n m = 0 < m ? k.slice(0, m) : k;\n var n = c.Wa;\n c.Wa += g;\n e[m] = [g, n];\n for (k = 0; k < g; ++k) {\n d[n] = k, c.vb[n++] = m;\n }\n }\n }\n c = a.na;\n d = 0;\n e = b;\n f = Td(b);\n 0 < f && (d = parseInt(b.slice(f + 1)) >>> 0, e = b.slice(0, f));\n if ((e = a.wb[e]) && d < e[0] && (d += e[1], c[d] = c[d] || W.getUniformLocation(a, b))) {\n return d;\n }\n } else {\n X ||= 1281;\n }\n return -1;\n}, glInvalidateFramebuffer:(a, b, c) => {\n for (var d = Od[b], e = 0; e < b; e++) {\n d[e] = G[c + 4 * e >> 2];\n }\n W.invalidateFramebuffer(a, d);\n}, glLinkProgram:a => {\n a = V[a];\n W.linkProgram(a);\n a.na = 0;\n a.wb = {};\n}, glPixelStorei:(a, b) => {\n 3317 == a ? Gd = b : 3314 == a && (Hd = b);\n W.pixelStorei(a, b);\n}, glReadPixels:(a, b, c, d, e, f, g) => {\n if (W.Na) {\n W.readPixels(a, b, c, d, e, f, g);\n } else {\n var k = Ud(f);\n g >>>= 31 - Math.clz32(k.BYTES_PER_ELEMENT);\n W.readPixels(a, b, c, d, e, f, k, g);\n }\n}, glRenderbufferStorageMultisample:(a, b, c, d, e) => W.renderbufferStorageMultisample(a, b, c, d, e), glScissor:(a, b, c, d) => W.scissor(a, b, c, d), glShaderSource:(a, b, c, d) => {\n for (var e = \"\", f = 0; f < b; ++f) {\n var g = (g = K[c + 4 * f >> 2]) ? L(D, g, d ? K[d + 4 * f >> 2] : void 0) : \"\";\n e += g;\n }\n W.shaderSource(Dd[a], e);\n}, glStencilFunc:(a, b, c) => W.stencilFunc(a, b, c), glStencilFuncSeparate:(a, b, c, d) => W.stencilFuncSeparate(a, b, c, d), glStencilMask:a => W.stencilMask(a), glStencilOp:(a, b, c) => W.stencilOp(a, b, c), glStencilOpSeparate:(a, b, c, d) => W.stencilOpSeparate(a, b, c, d), glTexParameteri:(a, b, c) => W.texParameteri(a, b, c), glTexStorage2D:(a, b, c, d, e) => W.texStorage2D(a, b, c, d, e), glTexStorage3D:(a, b, c, d, e, f) => W.texStorage3D(a, b, c, d, e, f), glTexSubImage2D:(a, b, c, d, e, \nf, g, k, m) => {\n if (W.Oa) {\n W.texSubImage2D(a, b, c, d, e, f, g, k, m);\n } else {\n if (m) {\n var n = Ud(k);\n W.texSubImage2D(a, b, c, d, e, f, g, k, n, m >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT));\n } else {\n if (m) {\n n = Ud(k);\n var t = f * ((Hd || e) * ({5:3, 6:4, 8:2, 29502:3, 29504:4, 26917:2, 26918:2, 29846:3, 29847:4}[g - 6402] || 1) * n.BYTES_PER_ELEMENT + Gd - 1 & -Gd);\n m = n.subarray(m >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT), m + t >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT));\n } else {\n m = null;\n }\n W.texSubImage2D(a, b, c, d, e, f, g, k, m);\n }\n }\n}, glUniform1i:(a, b) => {\n var c = W, d = c.uniform1i;\n var e = W.Hb;\n if (e) {\n var f = e.na[a];\n \"number\" == typeof f && (e.na[a] = f = W.getUniformLocation(e, e.vb[a] + (0 < f ? `[${f}]` : \"\")));\n a = f;\n } else {\n X ||= 1282, a = void 0;\n }\n d.call(c, a, b);\n}, glUniformBlockBinding:(a, b, c) => {\n a = V[a];\n W.uniformBlockBinding(a, b, c);\n}, glUseProgram:a => {\n a = V[a];\n W.useProgram(a);\n W.Hb = a;\n}, glVertexAttribDivisor:(a, b) => {\n W.vertexAttribDivisor(a, b);\n}, glVertexAttribIPointer:(a, b, c, d, e) => {\n W.vertexAttribIPointer(a, b, c, d, e);\n}, glVertexAttribPointer:(a, b, c, d, e, f) => {\n W.vertexAttribPointer(a, b, c, !!d, e, f);\n}, glViewport:(a, b, c, d) => W.viewport(a, b, c, d), provokingVertexWEBGL:function(a, b) {\n (a = w[a].C.pb) && a.provokingVertexWEBGL(b);\n}, strftime_l:(a, b, c, d) => Yd(a, b, c, d), upload_image:function(a, b) {\n var c = l.images;\n c && (b = c.get(b)) && (a = w[a].C, a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0), a.texImage2D(a.TEXTURE_2D, 0, a.RGBA, a.RGBA, a.UNSIGNED_BYTE, b), a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1));\n}}, Y = function() {\n function a(c) {\n Y = c.exports;\n ua = Y.memory;\n za();\n Qc = Y.__indirect_function_table;\n Ba.unshift(Y.__wasm_call_ctors);\n Ea--;\n l.monitorRunDependencies?.(Ea);\n 0 == Ea && (null !== Fa && (clearInterval(Fa), Fa = null), Ga && (c = Ga, Ga = null, c()));\n return Y;\n }\n var b = {env:be, wasi_snapshot_preview1:be,};\n Ea++;\n l.monitorRunDependencies?.(Ea);\n if (l.instantiateWasm) {\n try {\n return l.instantiateWasm(b, a);\n } catch (c) {\n sa(`Module.instantiateWasm callback failed with error: ${c}`), ba(c);\n }\n }\n Ja ||= Ia(\"webgl2_advanced.wasm\") ? \"webgl2_advanced.wasm\" : l.locateFile ? l.locateFile(\"webgl2_advanced.wasm\", A) : A + \"webgl2_advanced.wasm\";\n Na(b, function(c) {\n a(c.instance);\n }).catch(ba);\n return {};\n}(), lc = a => (lc = Y.free)(a), Rd = a => (Rd = Y.malloc)(a);\nl._setWebImage = (a, b, c) => (l._setWebImage = Y.setWebImage)(a, b, c);\nvar kc = a => (kc = Y.__getTypeName)(a), Qa = l._ma_device__on_notification_unlocked = a => (Qa = l._ma_device__on_notification_unlocked = Y.ma_device__on_notification_unlocked)(a);\nl._ma_malloc_emscripten = (a, b) => (l._ma_malloc_emscripten = Y.ma_malloc_emscripten)(a, b);\nl._ma_free_emscripten = (a, b) => (l._ma_free_emscripten = Y.ma_free_emscripten)(a, b);\nvar Ra = l._ma_device_process_pcm_frames_capture__webaudio = (a, b, c) => (Ra = l._ma_device_process_pcm_frames_capture__webaudio = Y.ma_device_process_pcm_frames_capture__webaudio)(a, b, c), Sa = l._ma_device_process_pcm_frames_playback__webaudio = (a, b, c) => (Sa = l._ma_device_process_pcm_frames_playback__webaudio = Y.ma_device_process_pcm_frames_playback__webaudio)(a, b, c);\nl.dynCall_iiiji = (a, b, c, d, e, f) => (l.dynCall_iiiji = Y.dynCall_iiiji)(a, b, c, d, e, f);\nl.dynCall_iij = (a, b, c, d) => (l.dynCall_iij = Y.dynCall_iij)(a, b, c, d);\nl.dynCall_iiji = (a, b, c, d, e) => (l.dynCall_iiji = Y.dynCall_iiji)(a, b, c, d, e);\nl.dynCall_jii = (a, b, c) => (l.dynCall_jii = Y.dynCall_jii)(a, b, c);\nl.dynCall_vijj = (a, b, c, d, e, f) => (l.dynCall_vijj = Y.dynCall_vijj)(a, b, c, d, e, f);\nl.dynCall_jiji = (a, b, c, d, e) => (l.dynCall_jiji = Y.dynCall_jiji)(a, b, c, d, e);\nl.dynCall_viijii = (a, b, c, d, e, f, g) => (l.dynCall_viijii = Y.dynCall_viijii)(a, b, c, d, e, f, g);\nl.dynCall_iiiiij = (a, b, c, d, e, f, g) => (l.dynCall_iiiiij = Y.dynCall_iiiiij)(a, b, c, d, e, f, g);\nl.dynCall_iiiiijj = (a, b, c, d, e, f, g, k, m) => (l.dynCall_iiiiijj = Y.dynCall_iiiiijj)(a, b, c, d, e, f, g, k, m);\nl.dynCall_iiiiiijj = (a, b, c, d, e, f, g, k, m, n) => (l.dynCall_iiiiiijj = Y.dynCall_iiiiiijj)(a, b, c, d, e, f, g, k, m, n);\nvar ce;\nGa = function de() {\n ce || ee();\n ce || (Ga = de);\n};\nfunction ee() {\n function a() {\n if (!ce && (ce = !0, l.calledRun = !0, !va)) {\n l.noFSInit || Vb || (Vb = !0, l.stdin = l.stdin, l.stdout = l.stdout, l.stderr = l.stderr, l.stdin ? Wb(\"stdin\", l.stdin) : Rb(\"/dev/tty\", \"/dev/stdin\"), l.stdout ? Wb(\"stdout\", null, l.stdout) : Rb(\"/dev/tty\", \"/dev/stdout\"), l.stderr ? Wb(\"stderr\", null, l.stderr) : Rb(\"/dev/tty1\", \"/dev/stderr\"), Sb(\"/dev/stdin\", 0), Sb(\"/dev/stdout\", 1), Sb(\"/dev/stderr\", 1));\n Ab = !1;\n Ua(Ba);\n aa(l);\n if (l.onRuntimeInitialized) {\n l.onRuntimeInitialized();\n }\n if (l.postRun) {\n for (\"function\" == typeof l.postRun && (l.postRun = [l.postRun]); l.postRun.length;) {\n var b = l.postRun.shift();\n Ca.unshift(b);\n }\n }\n Ua(Ca);\n }\n }\n if (!(0 < Ea)) {\n if (l.preRun) {\n for (\"function\" == typeof l.preRun && (l.preRun = [l.preRun]); l.preRun.length;) {\n Da();\n }\n }\n Ua(Aa);\n 0 < Ea || (l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n l.setStatus(\"\");\n }, 1);\n a();\n }, 1)) : a());\n }\n}\nif (l.preInit) {\n for (\"function\" == typeof l.preInit && (l.preInit = [l.preInit]); 0 < l.preInit.length;) {\n l.preInit.pop()();\n }\n}\nee();\nmoduleRtn = ca;\n\n\n\n return moduleRtn;\n}\n);\n})();\nexport default Rive;\n","export { Animation } from \"./Animation\";\n","import type {\n LinearAnimationInstance,\n LinearAnimation,\n Artboard,\n RiveCanvas,\n} from \"./../rive_advanced.mjs\";\n\n/**\n * Represents an animation that can be played on an Artboard. \n * Wraps animations and instances from the runtime and keeps track of playback state.\n *\n * The `Animation` class manages the state and behavior of a single animation instance,\n * including its current time, loop count, and ability to scrub to a specific time.\n *\n * The class provides methods to advance the animation, apply its interpolated keyframe\n * values to the Artboard, and clean up the underlying animation instance when the\n * animation is no longer needed.\n */\nexport class Animation {\n public loopCount = 0;\n public readonly instance: LinearAnimationInstance;\n\n /**\n * The time to which the animation should move to on the next render.\n * If not null, the animation will scrub to this time instead of advancing by the given time.\n */\n public scrubTo: number | null = null;\n\n /**\n * Constructs a new animation\n * @constructor\n * @param {any} animation: runtime animation object\n * @param {any} instance: runtime animation instance object\n */\n constructor(\n private animation: LinearAnimation,\n private artboard: Artboard,\n runtime: RiveCanvas,\n public playing: boolean\n ) {\n this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n }\n\n /**\n * Returns the animation's name\n */\n public get name(): string {\n return this.animation.name;\n }\n\n /**\n * Returns the animation's name\n */\n public get time(): number {\n return this.instance.time;\n }\n\n /**\n * Sets the animation's current time\n */\n public set time(value: number) {\n this.instance.time = value;\n }\n\n /**\n * Returns the animation's loop type\n */\n public get loopValue(): number {\n return this.animation.loopValue;\n }\n\n /**\n * Indicates whether the animation needs to be scrubbed.\n * @returns `true` if the animation needs to be scrubbed, `false` otherwise.\n */\n public get needsScrub(): boolean {\n return this.scrubTo !== null;\n }\n\n /**\n * Advances the animation by the give time. If the animation needs scrubbing,\n * time is ignored and the stored scrub value is used.\n * @param time the time to advance the animation by if no scrubbing required\n */\n public advance(time: number) {\n if (this.scrubTo === null) {\n this.instance.advance(time);\n } else {\n this.instance.time = 0;\n this.instance.advance(this.scrubTo);\n this.scrubTo = null;\n }\n }\n\n /**\n * Apply interpolated keyframe values to the artboard. This should be called after calling\n * .advance() on an animation instance so that new values are applied to properties.\n *\n * Note: This does not advance the artboard, which updates all objects on the artboard\n * @param mix - Mix value for the animation from 0 to 1\n */\n public apply(mix: number) {\n this.instance.apply(mix);\n }\n\n /**\n * Deletes the backing Wasm animation instance; once this is called, this\n * animation is no more.\n */\n public cleanup() {\n this.instance.delete();\n }\n}\n","export { registerTouchInteractions } from \"./registerTouchInteractions\";\nexport { BLANK_URL, sanitizeUrl } from \"./sanitizeUrl\";\nexport {\n Finalizable,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n FileAssetWrapper,\n ImageAssetWrapper,\n AudioAssetWrapper,\n FontAssetWrapper,\n finalizationRegistry,\n CustomFileAssetLoaderWrapper,\n AssetLoadCallbackWrapper,\n FileFinalizer,\n createFinalization,\n} from \"./finalizationRegistry\";\n","import * as rc from \"../rive_advanced.mjs\";\n\nexport interface TouchInteractionsParams {\n canvas: HTMLCanvasElement | OffscreenCanvas;\n artboard: rc.Artboard;\n stateMachines: rc.StateMachineInstance[];\n renderer: rc.Renderer;\n rive: rc.RiveCanvas;\n fit: rc.Fit;\n alignment: rc.Alignment;\n isTouchScrollEnabled?: boolean;\n dispatchPointerExit?: boolean;\n enableMultiTouch?: boolean;\n layoutScaleFactor?: number;\n}\n\ninterface ClientCoordinates {\n clientX: number;\n clientY: number;\n identifier: number;\n transformedX?: number | undefined;\n transformedY?: number | undefined;\n}\n\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nconst getClientCoordinates = (\n event: MouseEvent | TouchEvent,\n isTouchScrollEnabled: boolean,\n enableMultiTouch: boolean,\n): ClientCoordinates[] => {\n const coordinates: ClientCoordinates[] = [];\n if (\n [\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n (event as TouchEvent).changedTouches?.length\n ) {\n // This flag, if false, prevents touch events on the canvas default behavior\n // which may prevent scrolling if a drag motion on the canvas is performed\n if (!isTouchScrollEnabled) {\n event.preventDefault();\n }\n let cnt = 0;\n let totalTouches = enableMultiTouch\n ? (event as TouchEvent).changedTouches.length\n : 1;\n while (cnt < totalTouches) {\n const touch = (event as TouchEvent).changedTouches[cnt];\n coordinates.push({\n clientX: touch.clientX,\n clientY: touch.clientY,\n identifier: touch.identifier,\n });\n cnt++;\n }\n } else if (\n event.type === \"touchend\" &&\n (event as TouchEvent).changedTouches?.length\n ) {\n let cnt = 0;\n let totalTouches = enableMultiTouch\n ? (event as TouchEvent).changedTouches.length\n : 1;\n while (cnt < totalTouches) {\n const touch = (event as TouchEvent).changedTouches[cnt];\n coordinates.push({\n clientX: touch.clientX,\n clientY: touch.clientY,\n identifier: touch.identifier,\n });\n cnt++;\n }\n } else {\n coordinates.push({\n clientX: (event as MouseEvent).clientX,\n clientY: (event as MouseEvent).clientY,\n identifier: 0,\n });\n }\n return coordinates;\n};\n\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nexport const registerTouchInteractions = ({\n canvas,\n artboard,\n stateMachines = [],\n renderer,\n rive,\n fit,\n alignment,\n isTouchScrollEnabled = false,\n dispatchPointerExit = true,\n enableMultiTouch = false,\n layoutScaleFactor = 1.0,\n}: TouchInteractionsParams) => {\n if (\n !canvas ||\n !stateMachines.length ||\n !renderer ||\n !rive ||\n !artboard ||\n typeof window === \"undefined\"\n ) {\n return null;\n }\n /**\n * After a touchend event, some browsers may fire synthetic mouse events\n * (mouseover, mousedown, mousemove, mouseup) if the touch interaction did not cause\n * any default action (such as scrolling).\n *\n * This is done to simulate the behavior of a mouse for applications that do not support\n * touch events.\n *\n * We're keeping track of the previous event to not send the synthetic mouse events if the\n * touch event was a click (touchstart -> touchend).\n *\n * This is only needed when `isTouchScrollEnabled` is false\n * When true, `preventDefault()` is called which prevents this behaviour.\n **/\n let _prevEventType: string | null = null;\n let _syntheticEventsActive = false;\n const processEventCallback = (event: MouseEvent | TouchEvent) => {\n // Exit early out of all synthetic mouse events\n // https://stackoverflow.com/questions/9656990/how-to-prevent-simulated-mouse-events-in-mobile-browsers\n // https://stackoverflow.com/questions/25572070/javascript-touchend-versus-click-dilemma\n if (_syntheticEventsActive && event instanceof MouseEvent) {\n // Synthetic event finished\n if (event.type == \"mouseup\") {\n _syntheticEventsActive = false;\n }\n\n return;\n }\n\n // Test if it's a \"touch click\". This could cause the browser to send\n // synthetic mouse events.\n _syntheticEventsActive =\n isTouchScrollEnabled &&\n event.type === \"touchend\" &&\n _prevEventType === \"touchstart\";\n\n _prevEventType = event.type;\n\n const boundingRect = (\n event.currentTarget as HTMLCanvasElement\n ).getBoundingClientRect();\n\n const coordinateSets = getClientCoordinates(\n event,\n isTouchScrollEnabled,\n enableMultiTouch,\n );\n const forwardMatrix = rive.computeAlignment(\n fit,\n alignment,\n {\n minX: 0,\n minY: 0,\n maxX: boundingRect.width,\n maxY: boundingRect.height,\n },\n artboard.bounds,\n layoutScaleFactor,\n );\n const invertedMatrix = new rive.Mat2D();\n forwardMatrix.invert(invertedMatrix);\n\n coordinateSets.forEach((coordinateSet) => {\n const clientX = coordinateSet.clientX;\n const clientY = coordinateSet.clientY;\n if (!clientX && !clientY) {\n return;\n }\n const canvasX = clientX - boundingRect.left;\n const canvasY = clientY - boundingRect.top;\n const canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n const transformedVector = rive.mapXY(\n invertedMatrix,\n canvasCoordinatesVector,\n );\n const transformedX = transformedVector.x();\n const transformedY = transformedVector.y();\n coordinateSet.transformedX = transformedX;\n coordinateSet.transformedY = transformedY;\n transformedVector.delete();\n canvasCoordinatesVector.delete();\n });\n\n invertedMatrix.delete();\n forwardMatrix.delete();\n\n switch (event.type) {\n /**\n * There's a 2px buffer for a hitRadius when translating the pointer coordinates\n * down to the state machine. In cases where the hitbox is about that much away\n * from the Artboard border, we don't have exact precision on determining pointer\n * exit. We're therefore adding to the translated coordinates on mouseout of a canvas\n * to ensure that we report the mouse has truly exited the hitarea.\n * https://github.com/rive-app/rive-cpp/blob/master/src/animation/state_machine_instance.cpp#L336\n *\n */\n case \"mouseout\":\n for (const stateMachine of stateMachines) {\n if (dispatchPointerExit) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerExit(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n } else {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerMove(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n }\n break;\n\n // Pointer moving/hovering on the canvas\n case \"touchmove\":\n case \"mouseover\":\n case \"mousemove\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerMove(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n // Pointer click initiated but not released yet on the canvas\n case \"touchstart\":\n case \"mousedown\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerDown(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n // Pointer click released on the canvas\n case \"touchend\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerUp(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n stateMachine.pointerExit(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n case \"mouseup\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerUp(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n default:\n }\n };\n const callback = processEventCallback.bind(this);\n canvas.addEventListener(\"mouseover\", callback);\n canvas.addEventListener(\"mouseout\", callback);\n canvas.addEventListener(\"mousemove\", callback);\n canvas.addEventListener(\"mousedown\", callback);\n canvas.addEventListener(\"mouseup\", callback);\n canvas.addEventListener(\"touchmove\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchstart\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchend\", callback);\n return () => {\n canvas.removeEventListener(\"mouseover\", callback);\n canvas.removeEventListener(\"mouseout\", callback);\n canvas.removeEventListener(\"mousemove\", callback);\n canvas.removeEventListener(\"mousedown\", callback);\n canvas.removeEventListener(\"mouseup\", callback);\n canvas.removeEventListener(\"touchmove\", callback);\n canvas.removeEventListener(\"touchstart\", callback);\n canvas.removeEventListener(\"touchend\", callback);\n };\n};\n","// Reference: https://github.com/braintree/sanitize-url/tree/main\nconst invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nconst htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nconst htmlCtrlEntityRegex = /&(newline|tab);/gi;\nconst ctrlCharactersRegex =\n /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nconst urlSchemeRegex = /^.+(:|:)/gim;\nconst relativeFirstCharacters = [\".\", \"/\"];\nexport const BLANK_URL = \"about:blank\";\n\nfunction isRelativeUrlWithoutProtocol(url: string): boolean {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str: string) {\n const removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, (match, dec) => {\n return String.fromCharCode(dec);\n });\n}\n\nexport function sanitizeUrl(url?: string): string {\n if (!url) {\n return BLANK_URL;\n }\n\n const sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n\n if (!sanitizedUrl) {\n return BLANK_URL;\n }\n\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n const urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n\n const urlScheme = urlSchemeParseResults[0];\n\n if (invalidProtocolRegex.test(urlScheme)) {\n return BLANK_URL;\n }\n\n return sanitizedUrl;\n}\n","import * as rc from \"../rive_advanced.mjs\";\n\ninterface Finalizable {\n unref: () => void;\n}\n\nclass FileFinalizer implements Finalizable {\n private _file: rc.File;\n public selfUnref: boolean = false;\n constructor(file: rc.File) {\n this._file = file;\n }\n\n public unref() {\n if (this._file) {\n this._file.unref();\n }\n }\n}\n\nclass ObjectFinalizer<T extends Finalizable> {\n private _finalizableObject: T;\n constructor(finalizableObject: T) {\n this._finalizableObject = finalizableObject;\n }\n\n public unref() {\n this._finalizableObject.unref();\n }\n}\n\n\nclass AssetWrapper implements rc.FinalizableTarget {\n public selfUnref: boolean = false;\n public unref() {}\n}\n\nclass ImageWrapper extends AssetWrapper {\n private _nativeImage: rc.Image;\n\n constructor(image: rc.Image) {\n super();\n this._nativeImage = image;\n }\n\n public get nativeImage(): rc.ImageInternal {\n return this._nativeImage;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeImage.unref();\n }\n }\n}\n\nclass AudioWrapper extends AssetWrapper {\n private _nativeAudio: rc.Audio;\n\n constructor(audio: rc.Audio) {\n super();\n this._nativeAudio = audio;\n }\n\n public get nativeAudio(): rc.AudioInternal {\n return this._nativeAudio;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeAudio.unref();\n }\n }\n}\n\nclass FontWrapper extends AssetWrapper {\n private _nativeFont: rc.Font;\n\n constructor(font: rc.Font) {\n super();\n this._nativeFont = font;\n }\n\n public get nativeFont(): rc.FontInternal {\n return this._nativeFont;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeFont.unref();\n }\n }\n}\n\nexport type AssetLoadCallbackWrapper = (\n asset: rc.FileAssetInternal,\n bytes: Uint8Array,\n) => Boolean;\n\nclass CustomFileAssetLoaderWrapper {\n assetLoader: rc.CustomFileAssetLoader;\n _assetLoaderCallback: AssetLoadCallbackWrapper;\n\n constructor(\n runtime: rc.RiveCanvas,\n loaderCallback: AssetLoadCallbackWrapper,\n ) {\n this._assetLoaderCallback = loaderCallback;\n this.assetLoader = new runtime.CustomFileAssetLoader({\n loadContents: this.loadContents.bind(this),\n });\n }\n\n loadContents(asset: rc.FileAsset, bytes: any) {\n let assetWrapper: FileAssetWrapper;\n if (asset.isImage) {\n assetWrapper = new ImageAssetWrapper(asset);\n } else if (asset.isAudio) {\n assetWrapper = new AudioAssetWrapper(asset);\n } else if (asset.isFont) {\n assetWrapper = new FontAssetWrapper(asset);\n }\n return this._assetLoaderCallback(assetWrapper, bytes);\n }\n}\n\n/**\n * Rive class representing a FileAsset with relevant metadata fields to describe\n * an asset associated wtih the Rive File\n */\nclass FileAssetWrapper {\n _nativeFileAsset: rc.FileAssetInternal;\n\n constructor(nativeAsset: rc.FileAssetInternal) {\n this._nativeFileAsset = nativeAsset;\n }\n\n decode(bytes: Uint8Array): void {\n this._nativeFileAsset.decode(bytes);\n }\n\n get name(): string {\n return this._nativeFileAsset.name;\n }\n\n get fileExtension(): string {\n return this._nativeFileAsset.fileExtension;\n }\n\n get uniqueFilename(): string {\n return this._nativeFileAsset.uniqueFilename;\n }\n\n get isAudio(): boolean {\n return this._nativeFileAsset.isAudio;\n }\n\n get isImage(): boolean {\n return this._nativeFileAsset.isImage;\n }\n\n get isFont(): boolean {\n return this._nativeFileAsset.isFont;\n }\n\n get cdnUuid(): string {\n return this._nativeFileAsset.cdnUuid;\n }\n\n get nativeFileAsset() {\n return this._nativeFileAsset;\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setRenderImage()` API with a\n * decoded Image (via the `decodeImage()` API) to set a new Image on the Rive FileAsset\n */\nclass ImageAssetWrapper extends FileAssetWrapper {\n setRenderImage(image: ImageWrapper): void {\n (this._nativeFileAsset as rc.ImageAssetInternal).setRenderImage(\n image.nativeImage,\n );\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setAudioSource()` API with a\n * decoded Audio (via the `decodeAudio()` API) to set a new Audio on the Rive FileAsset\n */\nclass AudioAssetWrapper extends FileAssetWrapper {\n setAudioSource(audio: AudioWrapper): void {\n (this._nativeFileAsset as rc.AudioAssetInternal).setAudioSource(\n audio.nativeAudio,\n );\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setFont()` API with a\n * decoded Font (via the `decodeFont()` API) to set a new Font on the Rive FileAsset\n */\nclass FontAssetWrapper extends FileAssetWrapper {\n setFont(font: FontWrapper): void {\n (this._nativeFileAsset as rc.FontAssetInternal).setFont(font.nativeFont);\n }\n}\n\ndeclare const FinalizationRegistry: {\n new (fn: Function): typeof FinalizationRegistry;\n\n register<T extends rc.FinalizableTarget>(\n object: T,\n description: Finalizable,\n ): void;\n\n unregister<T>(object: T): void;\n};\n\nclass FakeFinalizationRegistry {\n constructor(_: Function) {}\n register(object: rc.FinalizableTarget) {\n object.selfUnref = true;\n }\n\n unregister<T>(_: T) {}\n}\nconst MyFinalizationRegistry =\n typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : FakeFinalizationRegistry;\n\nconst finalizationRegistry = new MyFinalizationRegistry((ob: Finalizable) => {\n ob?.unref();\n});\n\nconst createFinalization = <T extends Finalizable>(\n target: rc.FinalizableTarget,\n finalizable: T,\n) => {\n const finalizer = new ObjectFinalizer<T>(finalizable);\n finalizationRegistry.register(target, finalizer);\n};\n\nexport {\n finalizationRegistry,\n createFinalization,\n Finalizable,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n ImageAssetWrapper,\n AudioAssetWrapper,\n FontAssetWrapper,\n CustomFileAssetLoaderWrapper,\n FileAssetWrapper,\n FileFinalizer,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as rc from \"./rive_advanced.mjs\";\nimport packageData from \"package.json\";\nimport { Animation } from \"./animation\";\nimport {\n registerTouchInteractions,\n sanitizeUrl,\n BLANK_URL,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n finalizationRegistry,\n CustomFileAssetLoaderWrapper,\n FileFinalizer,\n createFinalization,\n} from \"./utils\";\nexport type AssetLoadCallback = (\n asset: rc.FileAsset,\n bytes: Uint8Array,\n) => Boolean;\n\nclass RiveError extends Error {\n public isHandledError = true;\n}\n\n// Note: Re-exporting a few types from rive_advanced.mjs to expose for high-level\n// API usage without re-defining their type definition here. May want to revisit\n// and see if we want to expose both types from rive.ts and rive_advanced.mjs in\n// the future\nexport type {\n FileAsset,\n AudioAsset,\n FontAsset,\n ImageAsset,\n} from \"./rive_advanced.mjs\";\n\n/**\n * Generic type for a parameterless void callback\n */\nexport type VoidCallback = () => void;\n\ninterface SetupRiveListenersOptions {\n isTouchScrollEnabled?: boolean;\n}\n\n/**\n * Type for artboard bounds\n */\nexport type Bounds = rc.AABB;\n\n// #regions helpers\nconst resolveErrorMessage = (error: any): string =>\n error && error.isHandledError\n ? error.message\n : \"Problem loading file; may be corrupt!\";\n\n// #region layout\n\n// Fit options for the canvas\nexport enum Fit {\n Cover = \"cover\",\n Contain = \"contain\",\n Fill = \"fill\",\n FitWidth = \"fitWidth\",\n FitHeight = \"fitHeight\",\n None = \"none\",\n ScaleDown = \"scaleDown\",\n Layout = \"layout\",\n}\n\n// Alignment options for the canvas\nexport enum Alignment {\n Center = \"center\",\n TopLeft = \"topLeft\",\n TopCenter = \"topCenter\",\n TopRight = \"topRight\",\n CenterLeft = \"centerLeft\",\n CenterRight = \"centerRight\",\n BottomLeft = \"bottomLeft\",\n BottomCenter = \"bottomCenter\",\n BottomRight = \"bottomRight\",\n}\n\n// Interface for the Layout static method contructor\nexport interface LayoutParameters {\n fit?: Fit;\n alignment?: Alignment;\n layoutScaleFactor?: number;\n minX?: number;\n minY?: number;\n maxX?: number;\n maxY?: number;\n}\n\n// Alignment options for Rive animations in a HTML canvas\nexport class Layout {\n // Runtime fit and alignment are accessed every frame, so we cache their\n // values to save cycles\n private cachedRuntimeFit: rc.Fit;\n private cachedRuntimeAlignment: rc.Alignment;\n\n public readonly fit: Fit;\n public readonly alignment: Alignment;\n public readonly layoutScaleFactor: number;\n public readonly minX: number;\n public readonly minY: number;\n public readonly maxX: number;\n public readonly maxY: number;\n\n constructor(params?: LayoutParameters) {\n this.fit = params?.fit ?? Fit.Contain;\n this.alignment = params?.alignment ?? Alignment.Center;\n this.layoutScaleFactor = params?.layoutScaleFactor ?? 1;\n this.minX = params?.minX ?? 0;\n this.minY = params?.minY ?? 0;\n this.maxX = params?.maxX ?? 0;\n this.maxY = params?.maxY ?? 0;\n }\n\n // Alternative constructor to build a Layout from an interface/object\n static new({\n fit,\n alignment,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n console.warn(\n \"This function is deprecated: please use `new Layout({})` instead\",\n );\n return new Layout({ fit, alignment, minX, minY, maxX, maxY });\n }\n\n /**\n * Makes a copy of the layout, replacing any specified parameters\n */\n public copyWith({\n fit,\n alignment,\n layoutScaleFactor,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n return new Layout({\n fit: fit ?? this.fit,\n alignment: alignment ?? this.alignment,\n layoutScaleFactor: layoutScaleFactor ?? this.layoutScaleFactor,\n minX: minX ?? this.minX,\n minY: minY ?? this.minY,\n maxX: maxX ?? this.maxX,\n maxY: maxY ?? this.maxY,\n });\n }\n\n // Returns fit for the Wasm runtime format\n public runtimeFit(rive: rc.RiveCanvas): rc.Fit {\n if (this.cachedRuntimeFit) return this.cachedRuntimeFit;\n\n let fit;\n if (this.fit === Fit.Cover) fit = rive.Fit.cover;\n else if (this.fit === Fit.Contain) fit = rive.Fit.contain;\n else if (this.fit === Fit.Fill) fit = rive.Fit.fill;\n else if (this.fit === Fit.FitWidth) fit = rive.Fit.fitWidth;\n else if (this.fit === Fit.FitHeight) fit = rive.Fit.fitHeight;\n else if (this.fit === Fit.ScaleDown) fit = rive.Fit.scaleDown;\n else if (this.fit === Fit.Layout) fit = rive.Fit.layout;\n else fit = rive.Fit.none;\n\n this.cachedRuntimeFit = fit;\n return fit;\n }\n\n // Returns alignment for the Wasm runtime format\n public runtimeAlignment(rive: rc.RiveCanvas): rc.Alignment {\n if (this.cachedRuntimeAlignment) return this.cachedRuntimeAlignment;\n\n let alignment;\n if (this.alignment === Alignment.TopLeft)\n alignment = rive.Alignment.topLeft;\n else if (this.alignment === Alignment.TopCenter)\n alignment = rive.Alignment.topCenter;\n else if (this.alignment === Alignment.TopRight)\n alignment = rive.Alignment.topRight;\n else if (this.alignment === Alignment.CenterLeft)\n alignment = rive.Alignment.centerLeft;\n else if (this.alignment === Alignment.CenterRight)\n alignment = rive.Alignment.centerRight;\n else if (this.alignment === Alignment.BottomLeft)\n alignment = rive.Alignment.bottomLeft;\n else if (this.alignment === Alignment.BottomCenter)\n alignment = rive.Alignment.bottomCenter;\n else if (this.alignment === Alignment.BottomRight)\n alignment = rive.Alignment.bottomRight;\n else alignment = rive.Alignment.center;\n\n this.cachedRuntimeAlignment = alignment;\n return alignment;\n }\n}\n\n// #endregion\n\n// #region runtime\n\n// Callback type when looking for a runtime instance\nexport type RuntimeCallback = (rive: rc.RiveCanvas) => void;\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nexport class RuntimeLoader {\n // Singleton helpers\n private static runtime: rc.RiveCanvas;\n // Flag to indicate that loading has started/completed\n private static isLoading = false;\n // List of callbacks for the runtime that come in while loading\n private static callBackQueue: RuntimeCallback[] = [];\n // Instance of the Rive runtime\n private static rive: rc.RiveCanvas;\n // Path to the Wasm file; default path works for testing only;\n // if embedded wasm is used then this is never used.\n private static wasmURL = `https://unpkg.com/${packageData.name}@${packageData.version}/rive.wasm`;\n\n // Class is never instantiated\n private constructor() {}\n\n // Loads the runtime\n private static loadRuntime(): void {\n rc.default({\n // Loads Wasm bundle\n locateFile: () => RuntimeLoader.wasmURL,\n })\n .then((rive: rc.RiveCanvas) => {\n RuntimeLoader.runtime = rive;\n // Fire all the callbacks\n while (RuntimeLoader.callBackQueue.length > 0) {\n RuntimeLoader.callBackQueue.shift()?.(RuntimeLoader.runtime);\n }\n })\n .catch((error) => {\n // Capture specific error details\n const errorDetails = {\n message: error?.message || \"Unknown error\",\n type: error?.name || \"Error\",\n // Some browsers may provide additional WebAssembly-specific details\n wasmError:\n error instanceof WebAssembly.CompileError ||\n error instanceof WebAssembly.RuntimeError,\n originalError: error,\n };\n\n // Log detailed error for debugging\n console.debug(\"Rive WASM load error details:\", errorDetails);\n\n // In case unpkg fails, or the wasm was not supported, we try to load the fallback module from jsdelivr.\n // This `rive_fallback.wasm` is compiled to support older architecture.\n // TODO: (Gordon): preemptively test browser support and load the correct wasm file. Then use jsdelvr only if unpkg fails.\n const backupJsdelivrUrl = `https://cdn.jsdelivr.net/npm/${packageData.name}@${packageData.version}/rive_fallback.wasm`;\n if (RuntimeLoader.wasmURL.toLowerCase() !== backupJsdelivrUrl) {\n console.warn(\n `Failed to load WASM from ${RuntimeLoader.wasmURL} (${errorDetails.message}), trying jsdelivr as a backup`,\n );\n RuntimeLoader.setWasmUrl(backupJsdelivrUrl);\n RuntimeLoader.loadRuntime();\n } else {\n const errorMessage = [\n `Could not load Rive WASM file from ${RuntimeLoader.wasmURL} or ${backupJsdelivrUrl}.`,\n \"Possible reasons:\",\n \"- Network connection is down\",\n \"- WebAssembly is not supported in this environment\",\n \"- The WASM file is corrupted or incompatible\",\n \"\\nError details:\",\n `- Type: ${errorDetails.type}`,\n `- Message: ${errorDetails.message}`,\n `- WebAssembly-specific error: ${errorDetails.wasmError}`,\n \"\\nTo resolve, you may need to:\",\n \"1. Check your network connection\",\n \"2. Set a new WASM source via RuntimeLoader.setWasmUrl()\",\n \"3. Call RuntimeLoader.loadRuntime() again\",\n ].join(\"\\n\");\n\n console.error(errorMessage);\n }\n });\n }\n\n // Provides a runtime instance via a callback\n public static getInstance(callback: RuntimeCallback): void {\n // If it's not loading, start loading runtime\n if (!RuntimeLoader.isLoading) {\n RuntimeLoader.isLoading = true;\n RuntimeLoader.loadRuntime();\n }\n if (!RuntimeLoader.runtime) {\n RuntimeLoader.callBackQueue.push(callback);\n } else {\n callback(RuntimeLoader.runtime);\n }\n }\n\n // Provides a runtime instance via a promise\n public static awaitInstance(): Promise<rc.RiveCanvas> {\n return new Promise<rc.RiveCanvas>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => resolve(rive)),\n );\n }\n\n // Manually sets the wasm url\n public static setWasmUrl(url: string): void {\n RuntimeLoader.wasmURL = url;\n }\n\n // Gets the current wasm url\n public static getWasmUrl(): string {\n return RuntimeLoader.wasmURL;\n }\n}\n\n// #endregion\n\n// #region state machines\n\nexport enum StateMachineInputType {\n Number = 56,\n Trigger = 58,\n Boolean = 59,\n}\n\n/**\n * An input for a state machine\n */\nexport class StateMachineInput {\n constructor(\n public readonly type: StateMachineInputType,\n private runtimeInput: rc.SMIInput,\n ) {}\n\n /**\n * Returns the name of the input\n */\n public get name(): string {\n return this.runtimeInput.name;\n }\n\n /**\n * Returns the current value of the input\n */\n public get value(): number | boolean {\n return this.runtimeInput.value;\n }\n\n /**\n * Sets the value of the input\n */\n public set value(value: number | boolean) {\n this.runtimeInput.value = value;\n }\n\n /**\n * Fires a trigger; does nothing on Number or Boolean input types\n */\n public fire(): void {\n if (this.type === StateMachineInputType.Trigger) {\n this.runtimeInput.fire();\n }\n }\n\n /**\n * Deletes the input\n */\n public delete(): void {\n this.runtimeInput = null;\n }\n}\n\nexport enum RiveEventType {\n General = 128,\n OpenUrl = 131,\n}\n\nclass BaseArtboard {\n public isBindableArtboard: boolean = false;\n constructor(_isBindableArtboard: boolean) {\n this.isBindableArtboard = _isBindableArtboard;\n }\n}\n\nclass Artboard extends BaseArtboard {\n public nativeArtboard: rc.Artboard;\n public file: RiveFile;\n constructor(artboard: rc.Artboard, _file: RiveFile) {\n super(false);\n this.nativeArtboard = artboard;\n this.file = _file;\n }\n}\n\nclass BindableArtboard extends BaseArtboard implements rc.FinalizableTarget {\n public selfUnref: boolean = false;\n public nativeArtboard: rc.BindableArtboard;\n constructor(artboard: rc.BindableArtboard) {\n super(true);\n this.nativeArtboard = artboard;\n }\n destroy() {\n if (this.selfUnref) {\n this.nativeArtboard.unref();\n }\n }\n}\n\nclass StateMachine {\n /**\n * Caches the inputs from the runtime\n */\n public readonly inputs: StateMachineInput[] = [];\n\n /**\n * Runtime state machine instance\n */\n public readonly instance: rc.StateMachineInstance;\n\n /**\n * @constructor\n * @param stateMachine runtime state machine object\n * @param instance runtime state machine instance object\n */\n constructor(\n private stateMachine: rc.StateMachine,\n runtime: rc.RiveCanvas,\n public playing: boolean,\n private artboard: rc.Artboard,\n ) {\n this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n this.initInputs(runtime);\n }\n\n public get name(): string {\n return this.stateMachine.name;\n }\n\n /**\n * Returns a list of state names that have changed on this frame\n */\n public get statesChanged(): string[] {\n const names: string[] = [];\n for (let i = 0; i < this.instance.stateChangedCount(); i++) {\n names.push(this.instance.stateChangedNameByIndex(i));\n }\n return names;\n }\n\n /**\n * Advances the state machine instance by a given time.\n * @param time - the time to advance the animation by in seconds\n */\n public advance(time: number) {\n this.instance.advance(time);\n }\n\n /**\n * Advances the state machine instance by a given time and apply changes to artboard.\n * @param time - the time to advance the animation by in seconds\n */\n public advanceAndApply(time: number) {\n this.instance.advanceAndApply(time);\n }\n\n /**\n * Returns the number of events reported from the last advance call\n * @returns Number of events reported\n */\n public reportedEventCount(): number {\n return this.instance.reportedEventCount();\n }\n\n /**\n * Returns a RiveEvent object emitted from the last advance call at the given index\n * of a list of potentially multiple events. If an event at the index is not found,\n * undefined is returned.\n * @param i index of the event reported in a list of potentially multiple events\n * @returns RiveEvent or extended RiveEvent object returned, or undefined\n */\n reportedEventAt(i: number): rc.OpenUrlEvent | rc.RiveEvent | undefined {\n return this.instance.reportedEventAt(i);\n }\n\n /**\n * Fetches references to the state machine's inputs and caches them\n * @param runtime an instance of the runtime; needed for the SMIInput types\n */\n private initInputs(runtime: rc.RiveCanvas): void {\n // Fetch the inputs from the runtime if we don't have them\n for (let i = 0; i < this.instance.inputCount(); i++) {\n const input = this.instance.input(i);\n this.inputs.push(this.mapRuntimeInput(input, runtime));\n }\n }\n\n /**\n * Maps a runtime input to it's appropriate type\n * @param input\n */\n private mapRuntimeInput(\n input: rc.SMIInput,\n runtime: rc.RiveCanvas,\n ): StateMachineInput {\n if (input.type === runtime.SMIInput.bool) {\n return new StateMachineInput(\n StateMachineInputType.Boolean,\n input.asBool(),\n );\n } else if (input.type === runtime.SMIInput.number) {\n return new StateMachineInput(\n StateMachineInputType.Number,\n input.asNumber(),\n );\n } else if (input.type === runtime.SMIInput.trigger) {\n return new StateMachineInput(\n StateMachineInputType.Trigger,\n input.asTrigger(),\n );\n }\n }\n\n /**\n * Deletes the backing Wasm state machine instance; once this is called, this\n * state machine is no more.\n */\n public cleanup() {\n this.inputs.forEach((input) => {\n input.delete();\n });\n this.inputs.length = 0;\n this.instance.delete();\n }\n\n public bindViewModelInstance(viewModelInstance: ViewModelInstance) {\n if (viewModelInstance.runtimeInstance != null) {\n this.instance.bindViewModelInstance(viewModelInstance.runtimeInstance);\n }\n }\n}\n\n// #endregion\n\n// #region animator\n\n/**\n * Manages animation\n */\nclass Animator {\n /**\n * Constructs a new animator\n * @constructor\n * @param runtime Rive runtime; needed to instance animations & state machines\n * @param artboard the artboard that holds all animations and state machines\n * @param animations optional list of animations\n * @param stateMachines optional list of state machines\n */\n constructor(\n private runtime: rc.RiveCanvas,\n private artboard: rc.Artboard,\n private eventManager: EventManager,\n public readonly animations: Animation[] = [],\n public readonly stateMachines: StateMachine[] = [],\n ) {}\n\n /**\n * Adds animations and state machines by their names. If names are shared\n * between animations & state machines, then the first one found will be\n * created. Best not to use the same names for these in your Rive file.\n * @param animatable the name(s) of animations and state machines to add\n * @returns a list of names of the playing animations and state machines\n */\n public add(\n animatables: string | string[],\n playing: boolean,\n fireEvent = true,\n ): string[] {\n animatables = mapToStringArray(animatables);\n // If animatables is empty, play or pause everything\n if (animatables.length === 0) {\n this.animations.forEach((a) => (a.playing = playing));\n this.stateMachines.forEach((m) => (m.playing = playing));\n } else {\n // Play/pause already instanced items, or create new instances\n const instancedAnimationNames = this.animations.map((a) => a.name);\n const instancedMachineNames = this.stateMachines.map((m) => m.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n const mIndex = instancedMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0 || mIndex >= 0) {\n if (aIndex >= 0) {\n // Animation is instanced, play/pause it\n this.animations[aIndex].playing = playing;\n } else {\n // State machine is instanced, play/pause it\n this.stateMachines[mIndex].playing = playing;\n }\n } else {\n // Try to create a new animation instance\n const anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n const newAnimation = new Animation(\n anim,\n this.artboard,\n this.runtime,\n playing,\n );\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n } else {\n // Try to create a new state machine instance\n const sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n const newStateMachine = new StateMachine(\n sm,\n this.runtime,\n playing,\n this.artboard,\n );\n this.stateMachines.push(newStateMachine);\n }\n }\n }\n }\n }\n // Fire play/paused events for animations\n if (fireEvent) {\n if (playing) {\n this.eventManager.fire({\n type: EventType.Play,\n data: this.playing,\n });\n } else {\n this.eventManager.fire({\n type: EventType.Pause,\n data: this.paused,\n });\n }\n }\n\n return playing ? this.playing : this.paused;\n }\n\n /**\n * Adds linear animations by their names.\n * @param animatables the name(s) of animations to add\n * @param playing whether animations should play on instantiation\n */\n public initLinearAnimations(animatables: string[], playing: boolean) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n const instancedAnimationNames = this.animations.map((a) => a.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.animations[aIndex].playing = playing;\n } else {\n // Try to create a new animation instance\n const anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n const newAnimation = new Animation(\n anim,\n this.artboard,\n this.runtime,\n playing,\n );\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n } else {\n console.error(`Animation with name ${animatables[i]} not found.`);\n }\n }\n }\n }\n\n /**\n * Adds state machines by their names.\n * @param animatables the name(s) of state machines to add\n * @param playing whether state machines should play on instantiation\n */\n public initStateMachines(animatables: string[], playing: boolean) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n const instancedStateMachineNames = this.stateMachines.map((a) => a.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedStateMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.stateMachines[aIndex].playing = playing;\n } else {\n // Try to create a new state machine instance\n const sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n const newStateMachine = new StateMachine(\n sm,\n this.runtime,\n playing,\n this.artboard,\n );\n this.stateMachines.push(newStateMachine);\n } else {\n console.warn(`State Machine with name ${animatables[i]} not found.`);\n // In order to maintain compatibility with current behavior, if a state machine is not found\n // we look for an animation with the same name\n this.initLinearAnimations([animatables[i]], playing);\n }\n }\n }\n }\n\n /**\n * Play the named animations/state machines\n * @param animatables the names of the animations/machines to play; plays all if empty\n * @returns a list of the playing items\n */\n public play(animatables: string | string[]): string[] {\n return this.add(animatables, true);\n }\n\n /**\n * Advance state machines if they are paused after initialization\n */\n public advanceIfPaused(): void {\n this.stateMachines.forEach((sm) => {\n if (!sm.playing) {\n sm.advanceAndApply(0);\n }\n });\n }\n\n /**\n * Pauses named animations and state machines, or everything if nothing is\n * specified\n * @param animatables names of the animations and state machines to pause\n * @returns a list of names of the animations and state machines paused\n */\n public pause(animatables: string[]): string[] {\n return this.add(animatables, false);\n }\n\n /**\n * Set time of named animations\n * @param animations names of the animations to scrub\n * @param value time scrub value, a floating point number to which the playhead is jumped\n * @returns a list of names of the animations that were scrubbed\n */\n public scrub(animatables: string[], value: number): string[] {\n const forScrubbing = this.animations.filter((a) =>\n animatables.includes(a.name),\n );\n forScrubbing.forEach((a) => (a.scrubTo = value));\n return forScrubbing.map((a) => a.name);\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * playing\n */\n public get playing(): string[] {\n return this.animations\n .filter((a) => a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => m.playing).map((m) => m.name));\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * paused\n */\n public get paused(): string[] {\n return this.animations\n .filter((a) => !a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => !m.playing).map((m) => m.name));\n }\n\n /**\n * Stops and removes all named animations and state machines\n * @param animatables animations and state machines to remove\n * @returns a list of names of removed items\n */\n public stop(animatables?: string[] | string): string[] {\n animatables = mapToStringArray(animatables);\n\n // If nothing's specified, wipe them out, all of them\n let removedNames: string[] = [];\n // Stop everything\n if (animatables.length === 0) {\n removedNames = this.animations\n .map((a) => a.name)\n .concat(this.stateMachines.map((m) => m.name));\n // Clean up before emptying the arrays\n this.animations.forEach((a) => a.cleanup());\n this.stateMachines.forEach((m) => m.cleanup());\n // Empty out the arrays\n this.animations.splice(0, this.animations.length);\n this.stateMachines.splice(0, this.stateMachines.length);\n } else {\n // Remove only the named animations/state machines\n const animationsToRemove = this.animations.filter((a) =>\n animatables.includes(a.name),\n );\n\n animationsToRemove.forEach((a) => {\n a.cleanup();\n this.animations.splice(this.animations.indexOf(a), 1);\n });\n const machinesToRemove = this.stateMachines.filter((m) =>\n animatables.includes(m.name),\n );\n machinesToRemove.forEach((m) => {\n m.cleanup();\n this.stateMachines.splice(this.stateMachines.indexOf(m), 1);\n });\n removedNames = animationsToRemove\n .map((a) => a.name)\n .concat(machinesToRemove.map((m) => m.name));\n }\n\n this.eventManager.fire({\n type: EventType.Stop,\n data: removedNames,\n });\n\n // Return the list of animations removed\n return removedNames;\n }\n\n /**\n * Returns true if at least one animation is active\n */\n public get isPlaying(): boolean {\n return (\n this.animations.reduce((acc, curr) => acc || curr.playing, false) ||\n this.stateMachines.reduce((acc, curr) => acc || curr.playing, false)\n );\n }\n\n /**\n * Returns true if all animations are paused and there's at least one animation\n */\n public get isPaused(): boolean {\n return (\n !this.isPlaying &&\n (this.animations.length > 0 || this.stateMachines.length > 0)\n );\n }\n\n /**\n * Returns true if there are no playing or paused animations/state machines\n */\n public get isStopped(): boolean {\n return this.animations.length === 0 && this.stateMachines.length === 0;\n }\n\n /**\n * If there are no animations or state machines, add the first one found\n * @returns the name of the animation or state machine instanced\n */\n public atLeastOne(playing: boolean, fireEvent = true): string {\n let instancedName: string;\n if (this.animations.length === 0 && this.stateMachines.length === 0) {\n if (this.artboard.animationCount() > 0) {\n // Add the first animation\n this.add(\n [(instancedName = this.artboard.animationByIndex(0).name)],\n playing,\n fireEvent,\n );\n } else if (this.artboard.stateMachineCount() > 0) {\n // Add the first state machine\n this.add(\n [(instancedName = this.artboard.stateMachineByIndex(0).name)],\n playing,\n fireEvent,\n );\n }\n }\n return instancedName;\n }\n\n /**\n * Checks if any animations have looped and if so, fire the appropriate event\n */\n public handleLooping() {\n for (const animation of this.animations.filter((a) => a.playing)) {\n // Emit if the animation looped\n if (animation.loopValue === 0 && animation.loopCount) {\n animation.loopCount = 0;\n // This is a one-shot; if it has ended, delete the instance\n this.stop(animation.name);\n } else if (animation.loopValue === 1 && animation.loopCount) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.Loop },\n });\n animation.loopCount = 0;\n }\n // Wasm indicates a loop at each time the animation\n // changes direction, so a full loop/lap occurs every\n // two loop counts\n else if (animation.loopValue === 2 && animation.loopCount > 1) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.PingPong },\n });\n animation.loopCount = 0;\n }\n }\n }\n\n /**\n * Checks if states have changed in state machines and fires a statechange\n * event\n */\n public handleStateChanges() {\n const statesChanged: string[] = [];\n for (const stateMachine of this.stateMachines.filter((sm) => sm.playing)) {\n statesChanged.push(...stateMachine.statesChanged);\n }\n if (statesChanged.length > 0) {\n this.eventManager.fire({\n type: EventType.StateChange,\n data: statesChanged,\n });\n }\n }\n\n public handleAdvancing(time: number) {\n this.eventManager.fire({\n type: EventType.Advance,\n data: time,\n });\n }\n}\n\n// #endregion\n\n// #region events\n\n/**\n * Supported event types triggered in Rive\n */\nexport enum EventType {\n Load = \"load\",\n LoadError = \"loaderror\",\n Play = \"play\",\n Pause = \"pause\",\n Stop = \"stop\",\n Loop = \"loop\",\n Draw = \"draw\",\n Advance = \"advance\",\n StateChange = \"statechange\",\n RiveEvent = \"riveevent\",\n AudioStatusChange = \"audiostatuschange\", // internal event. TODO: split\n}\n\nexport type RiveEventPayload = rc.RiveEvent | rc.OpenUrlEvent;\n\n// Event reported by Rive for significant events during animation playback (i.e. play, pause, stop, etc.),\n// as well as for custom Rive events reported from the state machine defined at design-time.\nexport interface Event {\n type: EventType;\n data?: string | string[] | LoopEvent | number | RiveEventPayload | RiveFile;\n}\n\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nexport enum LoopType {\n OneShot = \"oneshot\", // has value 0 in runtime\n Loop = \"loop\", // has value 1 in runtime\n PingPong = \"pingpong\", // has value 2 in runtime\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport interface LoopEvent {\n animation: string;\n type: LoopType;\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport type EventCallback = (event: Event) => void;\n\n/**\n * Event listeners registered with the event manager\n */\nexport interface EventListener {\n type: EventType;\n callback: EventCallback;\n}\n\n/**\n * FPS Reporting through callbacks sent to the WASM runtime\n */\nexport type FPSCallback = (fps: number) => void;\n\n// Manages Rive events and listeners\nclass EventManager {\n constructor(private listeners: EventListener[] = []) {}\n\n // Gets listeners of specified type\n private getListeners(type: EventType): EventListener[] {\n return this.listeners.filter((e) => e.type === type);\n }\n\n // Adds a listener\n public add(listener: EventListener): void {\n if (!this.listeners.includes(listener)) {\n this.listeners.push(listener);\n }\n }\n\n /**\n * Removes a listener\n * @param listener the listener with the callback to be removed\n */\n public remove(listener: EventListener): void {\n // We can't simply look for the listener as it'll be a different instance to\n // one originally subscribed. Find all the listeners of the right type and\n // then check their callbacks which should match.\n for (let i = 0; i < this.listeners.length; i++) {\n const currentListener = this.listeners[i];\n if (currentListener.type === listener.type) {\n if (currentListener.callback === listener.callback) {\n this.listeners.splice(i, 1);\n break;\n }\n }\n }\n }\n\n /**\n * Clears all listeners of specified type, or every listener if no type is\n * specified\n * @param type the type of listeners to clear, or all listeners if not\n * specified\n */\n public removeAll(type?: EventType) {\n if (!type) {\n this.listeners.splice(0, this.listeners.length);\n } else {\n this.listeners\n .filter((l) => l.type === type)\n .forEach((l) => this.remove(l));\n }\n }\n\n // Fires an event\n public fire(event: Event): void {\n const eventListeners = this.getListeners(event.type);\n eventListeners.forEach((listener) => listener.callback(event));\n }\n}\n\n// #endregion\n\n// #region Manages a queue of tasks\n\n// A task in the queue; will fire the action when the queue is processed; will\n// also optionally fire an event.\nexport interface Task {\n action?: VoidCallback;\n event?: Event;\n}\n\n// Manages a queue of tasks\nclass TaskQueueManager {\n private queue: Task[] = [];\n\n constructor(private eventManager: EventManager) {}\n\n // Adds a task top the queue\n public add(task: Task): void {\n this.queue.push(task);\n }\n\n // Processes all tasks in the queue\n public process(): void {\n while (this.queue.length > 0) {\n const task = this.queue.shift();\n if (task?.action) {\n task.action();\n }\n if (task?.event) {\n this.eventManager.fire(task.event);\n }\n }\n }\n}\n\n// #endregion\n\n// #region Audio\n\nenum SystemAudioStatus {\n AVAILABLE,\n UNAVAILABLE,\n}\n\n// Class to handle audio context availability and status changes\nclass AudioManager extends EventManager {\n private _started: boolean = false;\n private _enabled: boolean = false;\n\n private _status: SystemAudioStatus = SystemAudioStatus.UNAVAILABLE;\n private _audioContext: AudioContext;\n\n private async delay(time: number) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n\n private async timeout() {\n return new Promise((_, reject) => setTimeout(reject, 50));\n }\n\n // Alerts animations on status changes and removes the listeners to avoid alerting twice.\n private reportToListeners() {\n this.fire({ type: EventType.AudioStatusChange });\n this.removeAll();\n }\n\n /**\n * The audio context has been resolved.\n * Alert any listeners that we can now play audio.\n * Rive will now play audio at the configured volume.\n */\n private async enableAudio() {\n if (!this._enabled) {\n this._enabled = true;\n this._status = SystemAudioStatus.AVAILABLE;\n this.reportToListeners();\n }\n }\n\n /**\n * Check if we are able to play audio.\n *\n * We currently check the audio context, when resume() returns before a timeout we know that the\n * audio context is running and we can enable audio.\n */\n private async testAudio() {\n if (\n this._status === SystemAudioStatus.UNAVAILABLE &&\n this._audioContext !== null\n ) {\n // if the audio context is not available, it will never resume,\n // so the timeout will throw after 50ms and a new cycle will start\n try {\n await Promise.race([this._audioContext.resume(), this.timeout()]);\n this.enableAudio();\n } catch {\n // we expect the promise race to timeout, which we ignore.\n }\n }\n }\n\n /**\n * Establish audio for use with rive.\n * We both test if we can use audio intermittently and listen for user interaction.\n * The aim is to enable audio playback as soon as the browser allows this.\n */\n private async _establishAudio() {\n if (!this._started) {\n this._started = true;\n // If window doesn't exist we assume they are not in a browser context\n // so audio will not be blocked\n if (typeof window == \"undefined\") {\n this.enableAudio();\n } else {\n this._audioContext = new AudioContext();\n this.listenForUserAction();\n while (this._status === SystemAudioStatus.UNAVAILABLE) {\n await this.testAudio();\n await this.delay(1000);\n }\n }\n }\n }\n\n private listenForUserAction() {\n // NOTE: AudioContexts are ready immediately if requested in a ui callback\n // we *could* re request one in this listener.\n const _clickListener = async () => {\n // note this has \"better\" results than calling `await this.testAudio()`\n // as we force audio to be enabled in the current thread, rather than chancing\n // the thread to be passed over for some other async context\n\n this.enableAudio();\n };\n // NOTE: we should test this on mobile/pads\n document.addEventListener(\"pointerdown\", _clickListener, {\n once: true,\n });\n }\n\n /**\n * Establish the audio context for rive, this lets rive know that we can play audio.\n */\n public async establishAudio() {\n this._establishAudio();\n }\n\n public get systemVolume() {\n if (this._status === SystemAudioStatus.UNAVAILABLE) {\n // We do an immediate test to avoid depending on the delay of the running test\n this.testAudio();\n return 0;\n }\n return 1;\n }\n\n public get status(): SystemAudioStatus {\n return this._status;\n }\n}\n\nconst audioManager = new AudioManager();\n\n// #endregion\n\n// #region Observers\n\ntype ObservedObject = {\n onResize: Function;\n element: HTMLCanvasElement;\n};\n\ntype MyResizeObserverType = {\n observe: Function;\n unobserve: Function;\n disconnect: Function;\n};\n\nclass FakeResizeObserver {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nconst MyResizeObserver = globalThis.ResizeObserver || FakeResizeObserver;\n\n/**\n * This class takes care of any observers that will be attached to an animation.\n * It should be treated as a singleton because observers are much more performant\n * when used for observing multiple elements by a single instance.\n */\n\nclass ObjectObservers {\n private _elementsMap: Map<HTMLCanvasElement, ObservedObject> = new Map();\n\n private _resizeObserver: MyResizeObserverType;\n\n constructor() {\n this._resizeObserver = new MyResizeObserver(this._onObserved);\n }\n\n /**\n * Resize observers trigger both when the element changes its size and also when the\n * element is added or removed from the document.\n */\n private _onObservedEntry = (entry: ResizeObserverEntry) => {\n const observed = this._elementsMap.get(entry.target as HTMLCanvasElement);\n if (observed !== null) {\n observed.onResize(\n entry.target.clientWidth == 0 || entry.target.clientHeight == 0,\n );\n } else {\n this._resizeObserver.unobserve(entry.target);\n }\n };\n\n private _onObserved = (entries: ResizeObserverEntry[]) => {\n entries.forEach(this._onObservedEntry);\n };\n\n // Adds an observable element\n public add(element: HTMLCanvasElement, onResize: Function) {\n let observed: ObservedObject = {\n onResize,\n element,\n };\n this._elementsMap.set(element, observed);\n this._resizeObserver.observe(element);\n return observed;\n }\n\n // Removes an observable element\n public remove(observed: ObservedObject) {\n this._resizeObserver.unobserve(observed.element);\n this._elementsMap.delete(observed.element);\n }\n}\n\nconst observers = new ObjectObservers();\n\n// #endregion\n\n// #region Rive\n\n// Interface for the Rive static method contructor\nexport interface RiveParameters {\n canvas: HTMLCanvasElement | OffscreenCanvas; // canvas is required\n src?: string; // one of src or buffer or file is required\n buffer?: ArrayBuffer; // one of src or buffer or file is required\n riveFile?: RiveFile;\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n layout?: Layout;\n autoplay?: boolean;\n useOffscreenRenderer?: boolean;\n /**\n * Allow the runtime to automatically load assets hosted in Rive's CDN.\n * enabled by default.\n */\n enableRiveAssetCDN?: boolean;\n /**\n * Turn off Rive Listeners. This means state machines that have Listeners\n * will not be invoked, and also, no event listeners pertaining to Listeners\n * will be attached to the <canvas> element\n */\n shouldDisableRiveListeners?: boolean;\n /**\n * For Rive Listeners, allows scrolling behavior to still occur on canvas elements\n * when a touch/drag action is performed on touch-enabled devices. Otherwise,\n * scroll behavior may be prevented on touch/drag actions on the canvas by default.\n */\n isTouchScrollEnabled?: boolean;\n /**\n * Enable Rive Events to be handled by the runtime. This means any special Rive Event may have\n * a side effect that takes place implicitly.\n *\n * For example, if during the render loop an OpenUrlEvent is detected, the\n * browser may try to open the specified URL in the payload.\n *\n * This flag is false by default to prevent any unwanted behaviors from taking place.\n * This means any special Rive Event will have to be handled manually by subscribing to\n * EventType.RiveEvent\n */\n automaticallyHandleEvents?: boolean;\n /**\n * Rive will look for a default view model and view model instance to bind to the artboard\n */\n autoBind?: boolean;\n /**\n * For Rive Listeners, dispatch a pointer exit when the pointer exits the canvas.\n */\n dispatchPointerExit?: boolean;\n /**\n * Enables multi touch support\n */\n enableMultiTouch?: boolean;\n onLoad?: EventCallback;\n onLoadError?: EventCallback;\n onPlay?: EventCallback;\n onPause?: EventCallback;\n onStop?: EventCallback;\n onLoop?: EventCallback;\n onStateChange?: EventCallback;\n onAdvance?: EventCallback;\n assetLoader?: AssetLoadCallback;\n /**\n * @deprecated Use `onLoad()` instead\n */\n onload?: EventCallback;\n /**\n * @deprecated Use `onLoadError()` instead\n */\n onloaderror?: EventCallback;\n /**\n * @deprecated Use `onPoad()` instead\n */\n onplay?: EventCallback;\n /**\n * @deprecated Use `onPause()` instead\n */\n onpause?: EventCallback;\n /**\n * @deprecated Use `onStop()` instead\n */\n onstop?: EventCallback;\n /**\n * @deprecated Use `onLoop()` instead\n */\n onloop?: EventCallback;\n /**\n * @deprecated Use `onStateChange()` instead\n */\n onstatechange?: EventCallback;\n}\n\n// Interface to Rive.load function\nexport interface RiveLoadParameters {\n src?: string;\n buffer?: ArrayBuffer;\n riveFile?: RiveFile;\n autoplay?: boolean;\n autoBind?: boolean;\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n useOffscreenRenderer?: boolean;\n shouldDisableRiveListeners?: boolean;\n}\n\n// Interface ot Rive.reset function\nexport interface RiveResetParameters {\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n autoplay?: boolean;\n autoBind?: boolean;\n}\n// Interface to RiveFile.load function\nexport interface RiveFileParameters {\n src?: string;\n buffer?: ArrayBuffer;\n assetLoader?: AssetLoadCallback;\n enableRiveAssetCDN?: boolean;\n onLoad?: EventCallback;\n onLoadError?: EventCallback;\n}\n\nexport class RiveFile implements rc.FinalizableTarget {\n // Error message for missing source or buffer\n private static readonly missingErrorMessage: string =\n \"Rive source file or data buffer required\";\n\n // Error message for file load error\n private static readonly fileLoadErrorMessage: string =\n \"The file failed to load\";\n\n // A url to a Rive file; may be undefined if a buffer is specified\n private src: string;\n\n // Raw Rive file data; may be undefined if a src is specified\n private buffer: ArrayBuffer;\n\n // Wasm runtime\n private runtime: rc.RiveCanvas;\n\n // Runtime file\n private file: rc.File;\n\n // AssetLoadCallback: allows customizing asset loading for images and fonts.\n private assetLoader: AssetLoadCallback;\n\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n private enableRiveAssetCDN: boolean = true;\n\n // Holds event listeners\n private eventManager: EventManager;\n\n private referenceCount: number = 0;\n\n private destroyed: boolean = false;\n\n public selfUnref: boolean = false;\n\n private bindableArtboards: BindableArtboard[] = [];\n\n constructor(params: RiveFileParameters) {\n this.src = params.src;\n this.buffer = params.buffer;\n\n if (params.assetLoader) this.assetLoader = params.assetLoader;\n this.enableRiveAssetCDN =\n typeof params.enableRiveAssetCDN == \"boolean\"\n ? params.enableRiveAssetCDN\n : true;\n\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad) this.on(EventType.Load, params.onLoad);\n if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n }\n\n private releaseFile() {\n if (this.selfUnref) {\n this.file?.unref();\n }\n this.file = null;\n }\n\n private releaseBindableArtboards() {\n this.bindableArtboards.forEach((bindableArtboard) =>\n bindableArtboard.destroy(),\n );\n }\n\n private async initData() {\n if (this.src) {\n this.buffer = await loadRiveFile(this.src);\n }\n if (this.destroyed) {\n return;\n }\n let loader;\n if (this.assetLoader) {\n const loaderWrapper = new CustomFileAssetLoaderWrapper(\n this.runtime,\n this.assetLoader,\n );\n loader = loaderWrapper.assetLoader;\n }\n // Load the Rive file\n this.file = await this.runtime.load(\n new Uint8Array(this.buffer),\n loader,\n this.enableRiveAssetCDN,\n );\n const fileFinalizer = new FileFinalizer(this.file);\n finalizationRegistry.register(this, fileFinalizer);\n\n if (this.destroyed) {\n this.releaseFile();\n return;\n }\n if (this.file !== null) {\n this.eventManager.fire({\n type: EventType.Load,\n data: this,\n });\n } else {\n this.fireLoadError(RiveFile.fileLoadErrorMessage);\n }\n }\n\n public async init() {\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer) {\n this.fireLoadError(RiveFile.missingErrorMessage);\n return;\n }\n\n try {\n this.runtime = await RuntimeLoader.awaitInstance();\n\n if (this.destroyed) {\n return;\n }\n\n await this.initData();\n } catch (error) {\n this.fireLoadError(\n error instanceof Error ? error.message : RiveFile.fileLoadErrorMessage,\n );\n }\n }\n\n private fireLoadError(message: string): void {\n this.eventManager.fire({\n type: EventType.LoadError,\n data: message,\n });\n\n throw new Error(message);\n }\n\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n public on(type: EventType, callback: EventCallback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n public off(type: EventType, callback: EventCallback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n }\n\n public cleanup() {\n this.referenceCount -= 1;\n if (this.referenceCount <= 0) {\n this.removeAllRiveEventListeners();\n this.releaseFile();\n this.releaseBindableArtboards();\n this.destroyed = true;\n }\n }\n\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public removeAllRiveEventListeners(type?: EventType) {\n this.eventManager.removeAll(type);\n }\n\n public getInstance(): rc.File {\n if (this.file !== null) {\n this.referenceCount += 1;\n return this.file;\n }\n }\n\n public destroyIfUnused() {\n if (this.referenceCount <= 0) {\n this.cleanup();\n }\n }\n\n private createBindableArtboard(\n nativeBindableArtboard: rc.BindableArtboard,\n ): BindableArtboard | null {\n if (nativeBindableArtboard != null) {\n const bindableArtboard = new BindableArtboard(nativeBindableArtboard);\n createFinalization(bindableArtboard, bindableArtboard.nativeArtboard);\n this.bindableArtboards.push(bindableArtboard);\n return bindableArtboard;\n }\n return null;\n }\n\n /**\n * @deprecated This function is deprecated. For better stability and memory management\n * use `getBindableArtboard()` instead.\n * @param {string} name - The name of the artboard.\n * @returns {Artboard} The artboard to bind to.\n */\n public getArtboard(name: string): Artboard | null {\n const nativeArtboard = this.file.artboardByName(name);\n if (nativeArtboard != null) {\n return new Artboard(nativeArtboard, this);\n }\n }\n\n public getBindableArtboard(name: string): BindableArtboard | null {\n const nativeArtboard = this.file.bindableArtboardByName(name);\n return this.createBindableArtboard(nativeArtboard);\n }\n\n public getDefaultBindableArtboard(): BindableArtboard | null {\n const nativeArtboard = this.file.bindableArtboardDefault();\n return this.createBindableArtboard(nativeArtboard);\n }\n\n public internalBindableArtboardFromArtboard(\n artboard: rc.Artboard,\n ): BindableArtboard | null {\n const nativeBindableArtboard =\n this.file.internalBindableArtboardFromArtboard(artboard);\n return this.createBindableArtboard(nativeBindableArtboard);\n }\n}\n\nexport class Rive {\n // Canvas in which to render the artboard\n private readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n\n // A url to a Rive file; may be undefined if a buffer is specified\n private src: string;\n\n // Raw Rive file data; may be undefined if a src is specified\n private buffer: ArrayBuffer;\n\n // The layout for rendering in the canvas\n private _layout: Layout;\n\n // The runtime renderer\n private renderer: rc.WrappedRenderer;\n\n // Tracks if a Rive file is loaded\n private loaded = false;\n\n // Tracks if a Rive file is destroyed\n private destroyed = false;\n\n // Reference of an object that handles any observers for the animation\n private _observed: ObservedObject | null = null;\n\n /**\n * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n * commands (e.g. contents) can be called as soon as the file is loaded.\n * However, playback commands need to be queued and run in order once initial\n * animations and autoplay has been sorted out. This applies to play, pause,\n * and start.\n */\n private readyForPlaying = false;\n\n // Wasm runtime\n private runtime: rc.RiveCanvas;\n\n // Runtime artboard\n private artboard: rc.Artboard | null = null;\n\n // place to clear up event listeners\n private eventCleanup: VoidCallback | null = null;\n\n // Runtime file\n private file: rc.File;\n\n // Rive file instance\n private riveFile: RiveFile;\n\n // Holds event listeners\n private eventManager: EventManager;\n\n // Manages the loading task queue\n private taskQueue: TaskQueueManager;\n\n // Animator: manages animations and state machines\n private animator: Animator;\n\n // AssetLoadCallback: allows customizing asset loading for images and fonts.\n private assetLoader: AssetLoadCallback;\n\n // Error message for missing source or buffer\n private static readonly missingErrorMessage: string =\n \"Rive source file or data buffer required\";\n\n // Error message for removed rive file\n private static readonly cleanupErrorMessage: string =\n \"Attempt to use file after calling cleanup.\";\n\n private shouldDisableRiveListeners = false;\n\n private automaticallyHandleEvents = false;\n\n private dispatchPointerExit = true;\n\n // Allow all pointers to be passed to the runtime\n private enableMultiTouch = false;\n\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n private enableRiveAssetCDN = true;\n\n // Keep a local value of the set volume to update it asynchronously\n private _volume = 1;\n\n // Keep a local value of the set width to update it asynchronously\n private _artboardWidth: number | undefined = undefined;\n\n // Keep a local value of the set height to update it asynchronously\n private _artboardHeight: number | undefined = undefined;\n\n // Keep a local value of the device pixel ratio used in rendering and canvas/artboard resizing\n private _devicePixelRatioUsed = 1;\n\n // Whether the canvas element's size is 0\n private _hasZeroSize = false;\n\n // Audio event listener\n private _audioEventListener: EventListener | null = null;\n\n // draw method bound to the class\n private _boundDraw: (t: number) => void | null = null;\n\n private _viewModelInstance: ViewModelInstance | null = null;\n private _dataEnums: DataEnum[] | null = null;\n\n // Durations to generate a frame for the last second. Used for performance profiling.\n public durations: number[] = [];\n public frameTimes: number[] = [];\n public frameCount = 0;\n public isTouchScrollEnabled = false;\n\n constructor(params: RiveParameters) {\n this._boundDraw = this.draw.bind(this);\n this.canvas = params.canvas;\n if (params.canvas.constructor === HTMLCanvasElement) {\n this._observed = observers.add(\n this.canvas as HTMLCanvasElement,\n this.onCanvasResize,\n );\n }\n this.src = params.src;\n this.buffer = params.buffer;\n this.riveFile = params.riveFile;\n this.layout = params.layout ?? new Layout();\n this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\n this.isTouchScrollEnabled = !!params.isTouchScrollEnabled;\n this.automaticallyHandleEvents = !!params.automaticallyHandleEvents;\n this.dispatchPointerExit =\n params.dispatchPointerExit === false\n ? params.dispatchPointerExit\n : this.dispatchPointerExit;\n this.enableMultiTouch = !!params.enableMultiTouch;\n this.enableRiveAssetCDN =\n params.enableRiveAssetCDN === undefined\n ? true\n : params.enableRiveAssetCDN;\n\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad) this.on(EventType.Load, params.onLoad);\n if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n if (params.onPlay) this.on(EventType.Play, params.onPlay);\n if (params.onPause) this.on(EventType.Pause, params.onPause);\n if (params.onStop) this.on(EventType.Stop, params.onStop);\n if (params.onLoop) this.on(EventType.Loop, params.onLoop);\n if (params.onStateChange)\n this.on(EventType.StateChange, params.onStateChange);\n if (params.onAdvance) this.on(EventType.Advance, params.onAdvance);\n\n /**\n * @deprecated Use camelCase'd versions instead.\n */\n if (params.onload && !params.onLoad) this.on(EventType.Load, params.onload);\n if (params.onloaderror && !params.onLoadError)\n this.on(EventType.LoadError, params.onloaderror);\n if (params.onplay && !params.onPlay) this.on(EventType.Play, params.onplay);\n if (params.onpause && !params.onPause)\n this.on(EventType.Pause, params.onpause);\n if (params.onstop && !params.onStop) this.on(EventType.Stop, params.onstop);\n if (params.onloop && !params.onLoop) this.on(EventType.Loop, params.onloop);\n if (params.onstatechange && !params.onStateChange)\n this.on(EventType.StateChange, params.onstatechange);\n\n /**\n * Asset loading\n */\n if (params.assetLoader) this.assetLoader = params.assetLoader;\n\n // Hook up the task queue\n this.taskQueue = new TaskQueueManager(this.eventManager);\n\n this.init({\n src: this.src,\n buffer: this.buffer,\n riveFile: this.riveFile,\n autoplay: params.autoplay,\n autoBind: params.autoBind,\n animations: params.animations,\n stateMachines: params.stateMachines,\n artboard: params.artboard,\n useOffscreenRenderer: params.useOffscreenRenderer,\n });\n }\n\n public get viewModelCount(): number {\n return this.file.viewModelCount();\n }\n\n // Alternative constructor to build a Rive instance from an interface/object\n public static new(params: RiveParameters): Rive {\n console.warn(\n \"This function is deprecated: please use `new Rive({})` instead\",\n );\n return new Rive(params);\n }\n\n // Event handler for when audio context becomes available\n private onSystemAudioChanged() {\n this.volume = this._volume;\n }\n\n private onCanvasResize = (hasZeroSize: boolean) => {\n const toggledDisplay = this._hasZeroSize !== hasZeroSize;\n this._hasZeroSize = hasZeroSize;\n if (!hasZeroSize) {\n if (toggledDisplay) {\n this.resizeDrawingSurfaceToCanvas();\n }\n } else if (!this._layout.maxX || !this._layout.maxY) {\n this.resizeToCanvas();\n }\n };\n\n // Initializes the Rive object either from constructor or load()\n private init({\n src,\n buffer,\n riveFile,\n animations,\n stateMachines,\n artboard,\n autoplay = false,\n useOffscreenRenderer = false,\n autoBind = false,\n }: RiveLoadParameters): void {\n if (this.destroyed) {\n return;\n }\n this.src = src;\n this.buffer = buffer;\n this.riveFile = riveFile;\n\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer && !this.riveFile) {\n throw new RiveError(Rive.missingErrorMessage);\n }\n\n // List of animations that should be initialized.\n const startingAnimationNames = mapToStringArray(animations);\n\n // List of state machines that should be initialized\n const startingStateMachineNames = mapToStringArray(stateMachines);\n\n // Ensure loaded is marked as false if loading new file\n this.loaded = false;\n this.readyForPlaying = false;\n\n // Ensure the runtime is loaded\n RuntimeLoader.awaitInstance()\n .then((runtime) => {\n if (this.destroyed) {\n return;\n }\n this.runtime = runtime;\n\n this.removeRiveListeners();\n this.deleteRiveRenderer();\n\n // Get the canvas where you want to render the animation and create a renderer\n this.renderer = this.runtime.makeRenderer(\n this.canvas,\n useOffscreenRenderer,\n );\n\n // Initial size adjustment based on devicePixelRatio if no width/height are\n // specified explicitly\n if (!(this.canvas.width || this.canvas.height)) {\n this.resizeDrawingSurfaceToCanvas();\n }\n\n // Load Rive data from a source uri or a data buffer\n this.initData(\n artboard,\n startingAnimationNames,\n startingStateMachineNames,\n autoplay,\n autoBind,\n )\n .then((hasInitialized: boolean) => {\n if (hasInitialized) {\n return this.setupRiveListeners();\n }\n })\n .catch((e) => {\n console.error(e);\n });\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n /**\n * Setup Rive Listeners on the canvas\n * @param riveListenerOptions - Enables TouchEvent events on the canvas. Set to true to allow\n * touch scrolling on the canvas element on touch-enabled devices\n * i.e. { isTouchScrollEnabled: true }\n */\n public setupRiveListeners(\n riveListenerOptions?: SetupRiveListenersOptions,\n ): void {\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n if (!this.shouldDisableRiveListeners) {\n const activeStateMachines = (this.animator.stateMachines || [])\n .filter((sm) => sm.playing && this.runtime.hasListeners(sm.instance))\n .map((sm) => sm.instance);\n let touchScrollEnabledOption = this.isTouchScrollEnabled;\n let dispatchPointerExit = this.dispatchPointerExit;\n let enableMultiTouch = this.enableMultiTouch;\n if (\n riveListenerOptions &&\n \"isTouchScrollEnabled\" in riveListenerOptions\n ) {\n touchScrollEnabledOption = riveListenerOptions.isTouchScrollEnabled;\n }\n this.eventCleanup = registerTouchInteractions({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachines,\n renderer: this.renderer,\n rive: this.runtime,\n fit: this._layout.runtimeFit(this.runtime),\n alignment: this._layout.runtimeAlignment(this.runtime),\n isTouchScrollEnabled: touchScrollEnabledOption,\n dispatchPointerExit: dispatchPointerExit,\n enableMultiTouch: enableMultiTouch,\n layoutScaleFactor: this._layout.layoutScaleFactor,\n });\n }\n }\n\n /**\n * Remove Rive Listeners setup on the canvas\n */\n public removeRiveListeners(): void {\n if (this.eventCleanup) {\n this.eventCleanup();\n this.eventCleanup = null;\n }\n }\n\n /**\n * If the instance has audio and the system audio is not ready\n * we hook the instance to the audio manager\n */\n private initializeAudio() {\n // Initialize audio if needed\n if (audioManager.status == SystemAudioStatus.UNAVAILABLE) {\n if (this.artboard?.hasAudio && this._audioEventListener === null) {\n this._audioEventListener = {\n type: EventType.AudioStatusChange,\n callback: () => this.onSystemAudioChanged(),\n };\n audioManager.add(this._audioEventListener);\n audioManager.establishAudio();\n }\n }\n }\n\n private initArtboardSize() {\n if (!this.artboard) return;\n\n // Use preset values if they are not undefined\n this._artboardWidth = this.artboard.width =\n this._artboardWidth || this.artboard.width;\n this._artboardHeight = this.artboard.height =\n this._artboardHeight || this.artboard.height;\n }\n\n // Initializes runtime with Rive data and preps for playing.\n // Returns true for successful initialization.\n private async initData(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean,\n autoBind: boolean,\n ): Promise<boolean> {\n try {\n if (this.riveFile == null) {\n const riveFile = new RiveFile({\n src: this.src,\n buffer: this.buffer,\n enableRiveAssetCDN: this.enableRiveAssetCDN,\n assetLoader: this.assetLoader,\n });\n this.riveFile = riveFile;\n await riveFile.init();\n if (this.destroyed) {\n // In the very unlikely scenario where the rive file created by this Rive is shared by\n // another rive file, we only want to destroy it if this file is the only owner.\n riveFile.destroyIfUnused();\n return false;\n }\n }\n this.file = this.riveFile.getInstance();\n // Initialize and draw frame\n this.initArtboard(\n artboardName,\n animationNames,\n stateMachineNames,\n autoplay,\n autoBind,\n );\n\n // Initialize the artboard size\n this.initArtboardSize();\n\n // Check for audio\n this.initializeAudio();\n\n // Everything's set up, emit a load event\n this.loaded = true;\n this.eventManager.fire({\n type: EventType.Load,\n data: this.src ?? \"buffer\",\n });\n\n // Only initialize paused state machines after the load event has been fired\n // to allow users to initialize inputs and view models before the first advance\n this.animator.advanceIfPaused();\n\n // Flag ready for playback commands and clear the task queue; this order\n // is important or it may infinitely recurse\n this.readyForPlaying = true;\n this.taskQueue.process();\n\n this.drawFrame();\n\n return true;\n } catch (error) {\n const msg = resolveErrorMessage(error);\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return Promise.reject(msg);\n }\n }\n\n // Initialize for playback\n private initArtboard(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean,\n autoBind: boolean,\n ): void {\n if (!this.file) {\n return;\n }\n // Fetch the artboard\n const rootArtboard = artboardName\n ? this.file.artboardByName(artboardName)\n : this.file.defaultArtboard();\n\n // Check we have a working artboard\n if (!rootArtboard) {\n const msg = \"Invalid artboard name or no default artboard\";\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return;\n }\n\n this.artboard = rootArtboard;\n rootArtboard.volume = this._volume * audioManager.systemVolume;\n\n // Initialize the animator\n this.animator = new Animator(\n this.runtime,\n this.artboard,\n this.eventManager,\n );\n\n // Initialize the animations; as loaded hasn't happened yet, we need to\n // suppress firing the play/pause events until the load event has fired. To\n // do this we tell the animator to suppress firing events, and add event\n // firing to the task queue.\n let instanceNames: string[];\n if (animationNames.length > 0 || stateMachineNames.length > 0) {\n instanceNames = animationNames.concat(stateMachineNames);\n this.animator.initLinearAnimations(animationNames, autoplay);\n this.animator.initStateMachines(stateMachineNames, autoplay);\n } else {\n instanceNames = [this.animator.atLeastOne(autoplay, false)];\n }\n // Queue up firing the playback events\n this.taskQueue.add({\n event: {\n type: autoplay ? EventType.Play : EventType.Pause,\n data: instanceNames,\n },\n });\n\n if (autoBind) {\n const viewModel = this.file.defaultArtboardViewModel(rootArtboard);\n if (viewModel !== null) {\n const runtimeInstance = viewModel.defaultInstance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(\n runtimeInstance,\n null,\n );\n createFinalization(\n viewModelInstance,\n viewModelInstance.runtimeInstance,\n );\n this.bindViewModelInstance(viewModelInstance);\n }\n }\n }\n }\n\n // Draws the current artboard frame\n public drawFrame() {\n if (document?.timeline?.currentTime) {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n this._boundDraw(document!.timeline!.currentTime as number);\n this.runtime?.resolveAnimationFrame();\n }\n } else {\n this.startRendering();\n }\n }\n\n // Tracks the last timestamp at which the animation was rendered. Used only in\n // draw().\n private lastRenderTime: number;\n\n // Tracks the current animation frame request\n private frameRequestId: number | null;\n\n /**\n * Used be draw to track when a second of active rendering time has passed.\n * Used for debugging purposes\n */\n private renderSecondTimer = 0;\n\n /**\n * Draw rendering loop; renders animation frames at the correct time interval.\n * @param time the time at which to render a frame\n */\n private draw(time: number, onSecond?: VoidCallback): void {\n // Clear the frameRequestId, as we're now rendering a fresh frame\n this.frameRequestId = null;\n\n const before = performance.now();\n\n // On the first pass, make sure lastTime has a valid value\n if (!this.lastRenderTime) {\n this.lastRenderTime = time;\n }\n\n // Handle the onSecond callback\n this.renderSecondTimer += time - this.lastRenderTime;\n if (this.renderSecondTimer > 5000) {\n this.renderSecondTimer = 0;\n onSecond?.();\n }\n\n // Calculate the elapsed time between frames in seconds\n const elapsedTime = (time - this.lastRenderTime) / 1000;\n this.lastRenderTime = time;\n\n // - Advance non-paused animations by the elapsed number of seconds\n // - Advance any animations that require scrubbing\n // - Advance to the first frame even when autoplay is false\n const activeAnimations = this.animator.animations\n .filter((a) => a.playing || a.needsScrub)\n // The scrubbed animations must be applied first to prevent weird artifacts\n // if the playing animations conflict with the scrubbed animating attribuates.\n .sort((first) => (first.needsScrub ? -1 : 1));\n for (const animation of activeAnimations) {\n animation.advance(elapsedTime);\n if (animation.instance.didLoop) {\n animation.loopCount += 1;\n }\n animation.apply(1.0);\n }\n\n // - Advance non-paused state machines by the elapsed number of seconds\n // - Advance to the first frame even when autoplay is false\n const activeStateMachines = this.animator.stateMachines.filter(\n (a) => a.playing,\n );\n for (const stateMachine of activeStateMachines) {\n // Check for events before the current frame's state machine advance\n const numEventsReported = stateMachine.reportedEventCount();\n if (numEventsReported) {\n for (let i = 0; i < numEventsReported; i++) {\n const event = stateMachine.reportedEventAt(i);\n\n if (event) {\n if (event.type === RiveEventType.OpenUrl) {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event as rc.OpenUrlEvent,\n });\n // Handle the event side effect if explicitly enabled\n if (this.automaticallyHandleEvents) {\n const newAnchorTag = document.createElement(\"a\");\n const { url, target } = event as rc.OpenUrlEvent;\n\n const sanitizedUrl = sanitizeUrl(url);\n url && newAnchorTag.setAttribute(\"href\", sanitizedUrl);\n target && newAnchorTag.setAttribute(\"target\", target);\n if (sanitizedUrl && sanitizedUrl !== BLANK_URL) {\n newAnchorTag.click();\n }\n }\n } else {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event as rc.RiveEvent,\n });\n }\n }\n }\n }\n stateMachine.advanceAndApply(elapsedTime);\n // stateMachine.instance.apply(this.artboard);\n }\n\n // Once the animations have been applied to the artboard, advance it\n // by the elapsed time.\n if (this.animator.stateMachines.length == 0) {\n this.artboard.advance(elapsedTime);\n }\n\n const { renderer } = this;\n // Canvas must be wiped to prevent artifacts\n renderer.clear();\n renderer.save();\n\n // Update the renderer alignment if necessary\n this.alignRenderer();\n\n // Do not draw on 0 canvas size\n if (!this._hasZeroSize) {\n this.artboard.draw(renderer);\n }\n\n renderer.restore();\n renderer.flush();\n\n // Check for any animations that looped\n this.animator.handleLooping();\n\n // Check for any state machines that had a state change\n this.animator.handleStateChanges();\n\n // Report advanced time\n this.animator.handleAdvancing(elapsedTime);\n\n // Add duration to create frame to durations array\n this.frameCount++;\n const after = performance.now();\n this.frameTimes.push(after);\n this.durations.push(after - before);\n while (this.frameTimes[0] <= after - 1000) {\n this.frameTimes.shift();\n this.durations.shift();\n }\n\n this._viewModelInstance?.handleCallbacks();\n\n // Calling requestAnimationFrame will rerun draw() at the correct rate:\n // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n if (this.animator.isPlaying) {\n // Request a new rendering frame\n this.startRendering();\n } else if (this.animator.isPaused) {\n // Reset the end time so on playback it starts at the correct frame\n this.lastRenderTime = 0;\n } else if (this.animator.isStopped) {\n // Reset animation instances, artboard and time\n // TODO: implement this properly when we have instancing\n // this.initArtboard();\n // this.drawFrame();\n this.lastRenderTime = 0;\n }\n }\n\n /**\n * Align the renderer\n */\n private alignRenderer(): void {\n const { renderer, runtime, _layout, artboard } = this;\n // Align things up safe in the knowledge we can restore if changed\n renderer.align(\n _layout.runtimeFit(runtime),\n _layout.runtimeAlignment(runtime),\n {\n minX: _layout.minX,\n minY: _layout.minY,\n maxX: _layout.maxX,\n maxY: _layout.maxY,\n },\n artboard.bounds,\n this._devicePixelRatioUsed * _layout.layoutScaleFactor,\n );\n }\n\n public get fps() {\n return this.durations.length;\n }\n\n public get frameTime() {\n if (this.durations.length === 0) {\n return 0;\n }\n return (\n this.durations.reduce((a, b) => a + b, 0) / this.durations.length\n ).toFixed(4);\n }\n\n /**\n * Cleans up all Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances,\n * renderer instance, file and runtime.\n *\n * Once this is called, you will need to initialise a new instance of the\n * Rive class\n */\n public cleanup() {\n this.destroyed = true;\n // Stop the renderer if it hasn't already been stopped.\n this.stopRendering();\n // Clean up any artboard, animation or state machine instances.\n this.cleanupInstances();\n // Remove from observer\n if (this._observed !== null) {\n observers.remove(this._observed);\n }\n this.removeRiveListeners();\n if (this.file) {\n this.riveFile?.cleanup();\n this.file = null;\n }\n this.riveFile = null;\n this.deleteRiveRenderer();\n if (this._audioEventListener !== null) {\n audioManager.remove(this._audioEventListener);\n this._audioEventListener = null;\n }\n this._viewModelInstance?.cleanup();\n this._viewModelInstance = null;\n this._dataEnums = null;\n }\n\n /**\n * Cleans up the Renderer object. Only call this API if you no longer\n * need to render Rive content in your session.\n */\n public deleteRiveRenderer() {\n this.renderer?.delete();\n this.renderer = null;\n }\n\n /**\n * Cleans up any Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances.\n *\n * Once this is called, things will need to be reinitialized or bad things\n * might happen.\n */\n public cleanupInstances() {\n if (this.eventCleanup !== null) {\n this.eventCleanup();\n }\n // Delete all animation and state machine instances\n this.stop();\n if (this.artboard) {\n this.artboard.delete();\n this.artboard = null;\n }\n }\n\n /**\n * Tries to query the setup Artboard for a text run node with the given name.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - TextValueRun node or undefined if the text run cannot be queried\n */\n private retrieveTextRun(textRunName: string): rc.TextValueRun | undefined {\n if (!textRunName) {\n console.warn(\"No text run name provided\");\n return;\n }\n if (!this.artboard) {\n console.warn(\"Tried to access text run, but the Artboard is null\");\n return;\n }\n const textRun: rc.TextValueRun = this.artboard.textRun(textRunName);\n if (!textRun) {\n console.warn(\n `Could not access a text run with name '${textRunName}' in the '${this.artboard?.name}' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime.`,\n );\n return;\n }\n return textRun;\n }\n\n /**\n * Returns a string from a given text run node name, or undefined if the text run\n * cannot be queried.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - String value of the text run node or undefined\n */\n public getTextRunValue(textRunName: string): string | undefined {\n const textRun = this.retrieveTextRun(textRunName);\n return textRun ? textRun.text : undefined;\n }\n\n /**\n * Sets a text value for a given text run node name if possible\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @param textRunValue - String value to set on the text run node\n */\n public setTextRunValue(textRunName: string, textRunValue: string): void {\n const textRun = this.retrieveTextRun(textRunName);\n if (textRun) {\n textRun.text = textRunValue;\n }\n }\n\n // Plays specified animations; if none specified, it unpauses everything.\n public play(animationNames?: string | string[], autoplay?: true): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, queue up the play\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.play(animationNames, autoplay),\n });\n return;\n }\n this.animator.play(animationNames);\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.setupRiveListeners();\n this.startRendering();\n }\n\n // Pauses specified animations; if none specified, pauses all.\n public pause(animationNames?: string | string[]): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.pause(animationNames),\n });\n return;\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.animator.pause(animationNames);\n }\n\n public scrub(animationNames?: string | string[], value?: number): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.scrub(animationNames, value),\n });\n return;\n }\n\n // Scrub the animation time; we draw a single frame here so that if\n // nothing's currently playing, the scrubbed animation is still rendered/\n this.animator.scrub(animationNames, value || 0);\n this.drawFrame();\n }\n\n // Stops specified animations; if none specifies, stops them all.\n public stop(animationNames?: string | string[] | undefined): void {\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.stop(animationNames),\n });\n return;\n }\n // If there is no artboard, this.animator will be undefined\n if (this.animator) {\n this.animator.stop(animationNames);\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n }\n\n /**\n * Resets the animation\n * @param artboard the name of the artboard, or default if none given\n * @param animations the names of animations for playback\n * @param stateMachines the names of state machines for playback\n * @param autoplay whether to autoplay when reset, defaults to false\n *\n */\n public reset(params?: RiveResetParameters): void {\n // Get the current artboard, animations, state machines, and playback states\n const artBoardName = params?.artboard;\n const animationNames = mapToStringArray(params?.animations);\n const stateMachineNames = mapToStringArray(params?.stateMachines);\n const autoplay = params?.autoplay ?? false;\n const autoBind = params?.autoBind ?? false;\n\n // Stop everything and clean up\n this.cleanupInstances();\n\n // Reinitialize an artboard instance with the state\n this.initArtboard(\n artBoardName,\n animationNames,\n stateMachineNames,\n autoplay,\n autoBind,\n );\n this.taskQueue.process();\n }\n\n // Loads a new Rive file, keeping listeners in place\n public load(params: RiveLoadParameters): void {\n this.file = null;\n // Stop all animations\n this.stop();\n // Reinitialize\n this.init(params);\n }\n\n // Sets a new layout\n public set layout(layout: Layout) {\n this._layout = layout;\n // If the maxX or maxY are 0, then set them to the canvas width and height\n if (!layout.maxX || !layout.maxY) {\n this.resizeToCanvas();\n }\n if (this.loaded && !this.animator.isPlaying) {\n this.drawFrame();\n }\n }\n\n /**\n * Returns the current layout. Note that layout should be treated as\n * immutable. If you want to change the layout, create a new one use the\n * layout setter\n */\n public get layout() {\n return this._layout;\n }\n\n /**\n * Sets the layout bounds to the current canvas size; this is typically called\n * when the canvas is resized\n */\n public resizeToCanvas() {\n this._layout = this.layout.copyWith({\n minX: 0,\n minY: 0,\n maxX: this.canvas.width,\n maxY: this.canvas.height,\n });\n }\n\n /**\n * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n * and resize the layout to match the new drawing surface afterwards.\n * Useful function for consumers to include in a window resize listener.\n *\n * This method will set the {@link devicePixelRatioUsed} property.\n *\n * Optionally, you can provide a {@link customDevicePixelRatio} to provide a\n * custom value.\n */\n public resizeDrawingSurfaceToCanvas(customDevicePixelRatio?: number) {\n if (this.canvas instanceof HTMLCanvasElement && !!window) {\n const { width, height } = this.canvas.getBoundingClientRect();\n const dpr = customDevicePixelRatio || window.devicePixelRatio || 1;\n this.devicePixelRatioUsed = dpr;\n this.canvas.width = dpr * width;\n this.canvas.height = dpr * height;\n this.resizeToCanvas();\n this.drawFrame();\n\n if (this.layout.fit === Fit.Layout) {\n const scaleFactor = this._layout.layoutScaleFactor;\n this.artboard.width = width / scaleFactor;\n this.artboard.height = height / scaleFactor;\n }\n }\n }\n\n // Returns the animation source, which may be undefined\n public get source(): string {\n return this.src;\n }\n\n /**\n * Returns the name of the active artboard\n */\n public get activeArtboard(): string {\n return this.artboard ? this.artboard.name : \"\";\n }\n\n // Returns a list of animation names on the chosen artboard\n public get animationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n const animationNames: string[] = [];\n for (let i = 0; i < this.artboard.animationCount(); i++) {\n animationNames.push(this.artboard.animationByIndex(i).name);\n }\n return animationNames;\n }\n\n /**\n * Returns a list of state machine names from the current artboard\n */\n public get stateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n const stateMachineNames: string[] = [];\n for (let i = 0; i < this.artboard.stateMachineCount(); i++) {\n stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n }\n return stateMachineNames;\n }\n\n /**\n * Returns the inputs for the specified instanced state machine, or an empty\n * list if the name is invalid or the state machine is not instanced\n * @param name the state machine name\n * @returns the inputs for the named state machine\n */\n public stateMachineInputs(name: string): StateMachineInput[] {\n // If the file's not loaded, early out, nothing to pause\n if (!this.loaded) {\n return;\n }\n const stateMachine = this.animator.stateMachines.find(\n (m) => m.name === name,\n );\n return stateMachine?.inputs;\n }\n\n // Returns the input with the provided name at the given path\n private retrieveInputAtPath(\n name: string,\n path: string,\n ): rc.SMIInput | undefined {\n if (!name) {\n console.warn(`No input name provided for path '${path}'`);\n return;\n }\n if (!this.artboard) {\n console.warn(\n `Tried to access input: '${name}', at path: '${path}', but the Artboard is null`,\n );\n return;\n }\n const input: rc.SMIInput = this.artboard.inputByPath(name, path);\n\n if (!input) {\n console.warn(\n `Could not access an input with name: '${name}', at path:'${path}'`,\n );\n return;\n }\n return input;\n }\n\n /**\n * Set the boolean input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n public setBooleanStateAtPath(\n inputName: string,\n value: boolean,\n path: string,\n ) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Boolean) {\n input.asBool().value = value;\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a boolean`,\n );\n }\n }\n\n /**\n * Set the number input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n public setNumberStateAtPath(inputName: string, value: number, path: string) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Number) {\n input.asNumber().value = value;\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a number`,\n );\n }\n }\n\n /**\n * Fire the trigger with the provided name at the given path\n * @param input the state machine input name\n * @param path the path the input is located at an artboard level\n */\n public fireStateAtPath(inputName: string, path: string) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Trigger) {\n input.asTrigger().fire();\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a trigger`,\n );\n }\n }\n\n // Returns the TextValueRun object for the provided name at the given path\n private retrieveTextAtPath(\n name: string,\n path: string,\n ): rc.TextValueRun | undefined {\n if (!name) {\n console.warn(`No text name provided for path '${path}'`);\n return;\n }\n if (!path) {\n console.warn(`No path provided for text '${name}'`);\n return;\n }\n if (!this.artboard) {\n console.warn(\n `Tried to access text: '${name}', at path: '${path}', but the Artboard is null`,\n );\n return;\n }\n const text: rc.TextValueRun = this.artboard.textByPath(name, path);\n if (!text) {\n console.warn(\n `Could not access text with name: '${name}', at path:'${path}'`,\n );\n return;\n }\n return text;\n }\n\n /**\n * Retrieves the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param path The path to the text run within the artboard\n * @returns The text value of the text run, or undefined if not found\n *\n * @example\n * // Get the text value for a text run named \"title\" at one nested artboard deep\n * const titleText = riveInstance.getTextRunValueAtPath(\"title\", \"artboard1\");\n *\n * @example\n * // Get the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * const subtitleText = riveInstance.getTextRunValueAtPath(\"subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n public getTextRunValueAtPath(\n textName: string,\n path: string,\n ): string | undefined {\n const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\n `Could not get text with name: '${textName}', at path:'${path}'`,\n );\n return;\n }\n return run.text;\n }\n\n /**\n * Sets the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param value The new text value to set\n * @param path The path to the text run within the artboard\n * @returns void\n *\n * @example\n * // Set the text value for a text run named \"title\" at one nested artboard deep\n * riveInstance.setTextRunValueAtPath(\"title\", \"New Title\", \"artboard1\");\n *\n * @example\n * // Set the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * riveInstance.setTextRunValueAtPath(\"subtitle\", \"New Subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n public setTextRunValueAtPath(textName: string, value: string, path: string) {\n const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\n `Could not set text with name: '${textName}', at path:'${path}'`,\n );\n return;\n }\n run.text = value;\n }\n\n // Returns a list of playing machine names\n public get playingStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => m.playing)\n .map((m) => m.name);\n }\n\n // Returns a list of playing animation names\n public get playingAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations.filter((a) => a.playing).map((a) => a.name);\n }\n\n // Returns a list of paused animation names\n public get pausedAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations\n .filter((a) => !a.playing)\n .map((a) => a.name);\n }\n\n /**\n * Returns a list of paused machine names\n * @returns a list of state machine names that are paused\n */\n public get pausedStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => !m.playing)\n .map((m) => m.name);\n }\n\n /**\n * @returns true if any animation is playing\n */\n public get isPlaying(): boolean {\n return this.animator.isPlaying;\n }\n\n /**\n * @returns true if all instanced animations are paused\n */\n public get isPaused(): boolean {\n return this.animator.isPaused;\n }\n\n /**\n * @returns true if no animations are playing or paused\n */\n public get isStopped(): boolean {\n return this.animator.isStopped;\n }\n\n /**\n * @returns the bounds of the current artboard, or undefined if the artboard\n * isn't loaded yet.\n */\n public get bounds(): Bounds {\n return this.artboard ? this.artboard.bounds : undefined;\n }\n\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n public on(type: EventType, callback: EventCallback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n public off(type: EventType, callback: EventCallback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @deprecated\n * @param callback the callback to unsubscribe from\n */\n public unsubscribe(type: EventType, callback: EventCallback) {\n console.warn(\"This function is deprecated: please use `off()` instead.\");\n this.off(type, callback);\n }\n\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public removeAllRiveEventListeners(type?: EventType) {\n this.eventManager.removeAll(type);\n }\n\n /**\n * Unsubscribes all listeners from an event type, or everything if no type is\n * given\n * @deprecated\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public unsubscribeAll(type?: EventType) {\n console.warn(\n \"This function is deprecated: please use `removeAllRiveEventListeners()` instead.\",\n );\n this.removeAllRiveEventListeners(type);\n }\n\n /**\n * Stops the rendering loop; this is different from pausing in that it doesn't\n * change the state of any animation. It stops rendering from occurring. This\n * is designed for situations such as when Rive isn't visible.\n *\n * The only way to start rendering again is to call `startRendering`.\n * Animations that are marked as playing will start from the position that\n * they would have been at if rendering had not been stopped.\n */\n public stopRendering() {\n if (this.loaded && this.frameRequestId) {\n if (this.runtime.cancelAnimationFrame) {\n this.runtime.cancelAnimationFrame(this.frameRequestId);\n } else {\n cancelAnimationFrame(this.frameRequestId);\n }\n this.frameRequestId = null;\n }\n }\n\n /**\n * Starts the rendering loop if it has been previously stopped. If the\n * renderer is already active, then this will have zero effect.\n */\n public startRendering() {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n if (this.runtime.requestAnimationFrame) {\n this.frameRequestId = this.runtime.requestAnimationFrame(\n this._boundDraw,\n );\n } else {\n this.frameRequestId = requestAnimationFrame(this._boundDraw);\n }\n }\n }\n\n /**\n * Enables frames-per-second (FPS) reporting for the runtime\n * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n * the page with the FPS reading\n * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n */\n public enableFPSCounter(fpsCallback?: FPSCallback) {\n this.runtime.enableFPSCounter(fpsCallback);\n }\n\n /**\n * Disables frames-per-second (FPS) reporting for the runtime\n */\n public disableFPSCounter() {\n this.runtime.disableFPSCounter();\n }\n\n /**\n * Returns the contents of a Rive file: the artboards, animations, and state machines\n */\n public get contents(): RiveFileContents {\n if (!this.loaded) {\n return undefined;\n }\n const riveContents: RiveFileContents = {\n artboards: [],\n };\n for (let i = 0; i < this.file.artboardCount(); i++) {\n const artboard = this.file.artboardByIndex(i);\n const artboardContents: ArtboardContents = {\n name: artboard.name,\n animations: [],\n stateMachines: [],\n };\n for (let j = 0; j < artboard.animationCount(); j++) {\n const animation = artboard.animationByIndex(j);\n artboardContents.animations.push(animation.name);\n }\n for (let k = 0; k < artboard.stateMachineCount(); k++) {\n const stateMachine = artboard.stateMachineByIndex(k);\n const name = stateMachine.name;\n const instance = new this.runtime.StateMachineInstance(\n stateMachine,\n artboard,\n );\n const inputContents: StateMachineInputContents[] = [];\n for (let l = 0; l < instance.inputCount(); l++) {\n const input = instance.input(l);\n inputContents.push({ name: input.name, type: input.type });\n }\n artboardContents.stateMachines.push({\n name: name,\n inputs: inputContents,\n });\n }\n riveContents.artboards.push(artboardContents);\n }\n return riveContents;\n }\n\n /**\n * Getter / Setter for the volume of the artboard\n */\n public get volume(): number {\n if (this.artboard && this.artboard.volume !== this._volume) {\n this._volume = this.artboard.volume;\n }\n return this._volume;\n }\n\n public set volume(value: number) {\n this._volume = value;\n if (this.artboard) {\n this.artboard.volume = value * audioManager.systemVolume;\n }\n }\n\n /**\n * The width of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * width has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard width is\n * automatically set.\n */\n public get artboardWidth(): number {\n if (this.artboard) {\n return this.artboard.width;\n }\n return this._artboardWidth ?? 0;\n }\n\n public set artboardWidth(value: number) {\n this._artboardWidth = value;\n if (this.artboard) {\n this.artboard.width = value;\n }\n }\n\n /**\n * The height of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * height has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard height is\n * automatically set.\n */\n public get artboardHeight(): number {\n if (this.artboard) {\n return this.artboard.height;\n }\n return this._artboardHeight ?? 0;\n }\n\n public set artboardHeight(value: number) {\n this._artboardHeight = value;\n\n if (this.artboard) {\n this.artboard.height = value;\n }\n }\n\n /**\n * Reset the artboard size to its original values.\n */\n public resetArtboardSize() {\n if (this.artboard) {\n this.artboard.resetArtboardSize();\n this._artboardWidth = this.artboard.width;\n this._artboardHeight = this.artboard.height;\n } else {\n // If the artboard isn't loaded, we need to reset the custom width and height\n this._artboardWidth = undefined;\n this._artboardHeight = undefined;\n }\n }\n\n /**\n * The device pixel ratio used in rendering and canvas/artboard resizing.\n *\n * This value will be overidden by the device pixel ratio used in\n * {@link resizeDrawingSurfaceToCanvas}. If you use that method, do not set this value.\n */\n public get devicePixelRatioUsed(): number {\n return this._devicePixelRatioUsed;\n }\n\n public set devicePixelRatioUsed(value: number) {\n this._devicePixelRatioUsed = value;\n }\n\n /**\n * Initialize the data context with the view model instance.\n */\n public bindViewModelInstance(viewModelInstance: ViewModelInstance | null) {\n if (this.artboard && !this.destroyed) {\n if (viewModelInstance && viewModelInstance.runtimeInstance) {\n viewModelInstance.internalIncrementReferenceCount();\n this._viewModelInstance?.cleanup();\n this._viewModelInstance = viewModelInstance;\n if (this.animator.stateMachines.length > 0) {\n this.animator.stateMachines.forEach((stateMachine) =>\n stateMachine.bindViewModelInstance(viewModelInstance),\n );\n } else {\n this.artboard.bindViewModelInstance(\n viewModelInstance.runtimeInstance,\n );\n }\n }\n }\n }\n\n public get viewModelInstance(): ViewModelInstance | null {\n return this._viewModelInstance;\n }\n\n public viewModelByIndex(index: number): ViewModel | null {\n const viewModel = this.file.viewModelByIndex(index);\n if (viewModel !== null) {\n return new ViewModel(viewModel);\n }\n return null;\n }\n\n public viewModelByName(name: string): ViewModel | null {\n const viewModel = this.file.viewModelByName(name);\n if (viewModel !== null) {\n return new ViewModel(viewModel);\n }\n return null;\n }\n\n public enums(): DataEnum[] {\n if (this._dataEnums === null) {\n const dataEnums = this.file.enums();\n this._dataEnums = dataEnums.map((dataEnum) => {\n return new DataEnum(dataEnum);\n });\n }\n return this._dataEnums;\n }\n\n public defaultViewModel(): ViewModel | null {\n if (this.artboard) {\n const viewModel = this.file.defaultArtboardViewModel(this.artboard);\n if (viewModel) {\n return new ViewModel(viewModel);\n }\n }\n return null;\n }\n\n /**\n * @deprecated This function is deprecated. For better stability and memory management\n * use `getBindableArtboard()` instead.\n * @param {string} name - The name of the artboard.\n * @returns {Artboard} The artboard to bind to.\n */\n public getArtboard(name: string): Artboard | null {\n return this.riveFile?.getArtboard(name) ?? null;\n }\n\n public getBindableArtboard(name: string): BindableArtboard | null {\n return this.riveFile?.getBindableArtboard(name) ?? null;\n }\n\n public getDefaultBindableArtboard(): BindableArtboard | null {\n return this.riveFile?.getDefaultBindableArtboard() ?? null;\n }\n}\n\nexport class ViewModel {\n private _viewModel: rc.ViewModel;\n\n constructor(viewModel: rc.ViewModel) {\n this._viewModel = viewModel;\n }\n\n public get instanceCount(): number {\n return this._viewModel.instanceCount;\n }\n\n public get name(): string {\n return this._viewModel.name;\n }\n\n public instanceByIndex(index: number): ViewModelInstance | null {\n const instance = this._viewModel.instanceByIndex(index);\n if (instance !== null) {\n const viewModelInstance = new ViewModelInstance(instance, null);\n createFinalization(viewModelInstance, instance);\n return viewModelInstance;\n }\n return null;\n }\n\n public instanceByName(name: string): ViewModelInstance | null {\n const instance = this._viewModel.instanceByName(name);\n if (instance !== null) {\n const viewModelInstance = new ViewModelInstance(instance, null);\n createFinalization(viewModelInstance, instance);\n return viewModelInstance;\n }\n return null;\n }\n\n public defaultInstance(): ViewModelInstance | null {\n const runtimeInstance = this._viewModel.defaultInstance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(runtimeInstance, null);\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public instance(): ViewModelInstance | null {\n const runtimeInstance = this._viewModel.instance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(runtimeInstance, null);\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public get properties(): rc.ViewModelProperty[] {\n return this._viewModel.getProperties();\n }\n\n public get instanceNames(): string[] {\n return this._viewModel.getInstanceNames();\n }\n}\n\nexport class DataEnum {\n private _dataEnum: rc.DataEnum;\n\n constructor(dataEnum: rc.DataEnum) {\n this._dataEnum = dataEnum;\n }\n\n public get name(): string {\n return this._dataEnum.name;\n }\n\n public get values(): string[] {\n return this._dataEnum.values;\n }\n}\n\nenum PropertyType {\n Number = \"number\",\n String = \"string\",\n Boolean = \"boolean\",\n Color = \"color\",\n Trigger = \"trigger\",\n Enum = \"enum\",\n List = \"list\",\n Image = \"image\",\n Artboard = \"artboard\",\n}\n\nexport class ViewModelInstance {\n private _runtimeInstance: rc.ViewModelInstance | null;\n\n private _parents: ViewModelInstance[] = [];\n\n private _children: ViewModelInstance[] = [];\n\n private _viewModelInstances: Map<string, ViewModelInstance> = new Map();\n\n private _propertiesWithCallbacks: ViewModelInstanceValue[] = [];\n\n private _referenceCount = 0;\n\n public selfUnref: boolean = false;\n\n constructor(\n runtimeInstance: rc.ViewModelInstance,\n parent: ViewModelInstance | null,\n ) {\n this._runtimeInstance = runtimeInstance;\n if (parent !== null) {\n this._parents.push(parent);\n }\n }\n\n public get runtimeInstance(): rc.ViewModelInstance | null {\n return this._runtimeInstance;\n }\n\n public get nativeInstance(): rc.ViewModelInstance | null {\n return this._runtimeInstance;\n }\n\n public handleCallbacks() {\n if (this._propertiesWithCallbacks.length !== 0) {\n this._propertiesWithCallbacks.forEach((property) => {\n property.handleCallbacks();\n });\n this._propertiesWithCallbacks.forEach((property) => {\n property.clearChanges();\n });\n }\n this._children.forEach((child) => child.handleCallbacks());\n }\n\n public addParent(parent: ViewModelInstance) {\n if (!this._parents.includes(parent)) {\n this._parents.push(parent);\n if (\n this._propertiesWithCallbacks.length > 0 ||\n this._children.length > 0\n ) {\n parent.addToViewModelCallbacks(this);\n }\n }\n }\n\n public removeParent(parent: ViewModelInstance) {\n const index = this._parents.indexOf(parent);\n if (index !== -1) {\n const parent = this._parents[index];\n parent.removeFromViewModelCallbacks(this);\n this._parents.splice(index, 1);\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public addToPropertyCallbacks(property: ViewModelInstanceValue) {\n if (!this._propertiesWithCallbacks.includes(property)) {\n this._propertiesWithCallbacks.push(property);\n if (this._propertiesWithCallbacks.length > 0) {\n this._parents.forEach((parent) => {\n parent.addToViewModelCallbacks(this);\n });\n }\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public removeFromPropertyCallbacks(property: ViewModelInstanceValue) {\n if (this._propertiesWithCallbacks.includes(property)) {\n this._propertiesWithCallbacks = this._propertiesWithCallbacks.filter(\n (prop) => prop !== property,\n );\n if (\n this._children.length === 0 &&\n this._propertiesWithCallbacks.length === 0\n ) {\n this._parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public addToViewModelCallbacks(instance: ViewModelInstance) {\n if (!this._children.includes(instance)) {\n this._children.push(instance);\n this._parents.forEach((parent) => {\n parent.addToViewModelCallbacks(this);\n });\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public removeFromViewModelCallbacks(instance: ViewModelInstance) {\n if (this._children.includes(instance)) {\n this._children = this._children.filter((child) => child !== instance);\n if (\n this._children.length === 0 &&\n this._propertiesWithCallbacks.length === 0\n ) {\n this._parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n }\n\n private clearCallbacks() {\n this._propertiesWithCallbacks.forEach((property) => {\n property.clearCallbacks();\n });\n }\n\n private propertyFromPath(\n path: string,\n type: PropertyType,\n ): ViewModelInstanceValue | null {\n const pathSegments = path.split(\"/\");\n return this.propertyFromPathSegments(pathSegments, 0, type);\n }\n\n private viewModelFromPathSegments(\n pathSegments: string[],\n index: number,\n ): ViewModelInstance | null {\n const viewModelInstance = this.internalViewModelInstance(\n pathSegments[index],\n );\n if (viewModelInstance !== null) {\n if (index == pathSegments.length - 1) {\n return viewModelInstance;\n } else {\n return viewModelInstance.viewModelFromPathSegments(\n pathSegments,\n index++,\n );\n }\n }\n return null;\n }\n\n private propertyFromPathSegments(\n pathSegments: string[],\n index: number,\n type: PropertyType,\n ): ViewModelInstanceValue | null {\n if (index < pathSegments.length - 1) {\n const viewModelInstance = this.internalViewModelInstance(\n pathSegments[index],\n );\n if (viewModelInstance !== null) {\n return viewModelInstance.propertyFromPathSegments(\n pathSegments,\n index + 1,\n type,\n );\n } else {\n return null;\n }\n }\n let instance: rc.ViewModelInstanceValue | null = null;\n switch (type) {\n case PropertyType.Number:\n instance = this._runtimeInstance?.number(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceNumber(\n instance as rc.ViewModelInstanceNumber,\n this,\n );\n }\n break;\n case PropertyType.String:\n instance = this._runtimeInstance?.string(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceString(\n instance as rc.ViewModelInstanceString,\n this,\n );\n }\n break;\n case PropertyType.Boolean:\n instance = this._runtimeInstance?.boolean(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceBoolean(\n instance as rc.ViewModelInstanceBoolean,\n this,\n );\n }\n break;\n case PropertyType.Color:\n instance = this._runtimeInstance?.color(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceColor(\n instance as rc.ViewModelInstanceColor,\n this,\n );\n }\n break;\n case PropertyType.Trigger:\n instance = this._runtimeInstance?.trigger(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceTrigger(\n instance as rc.ViewModelInstanceTrigger,\n this,\n );\n }\n break;\n case PropertyType.Enum:\n instance = this._runtimeInstance?.enum(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceEnum(\n instance as rc.ViewModelInstanceEnum,\n this,\n );\n }\n break;\n case PropertyType.List:\n instance = this._runtimeInstance?.list(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceList(\n instance as rc.ViewModelInstanceList,\n this,\n );\n }\n break;\n case PropertyType.Image:\n instance = this._runtimeInstance?.image(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceAssetImage(\n instance as rc.ViewModelInstanceAssetImage,\n this,\n );\n }\n break;\n case PropertyType.Artboard:\n instance = this._runtimeInstance?.artboard(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceArtboard(\n instance as rc.ViewModelInstanceArtboard,\n this,\n );\n }\n break;\n }\n return null;\n }\n\n private internalViewModelInstance(name: string): ViewModelInstance | null {\n if (this._viewModelInstances.has(name)) {\n return this._viewModelInstances.get(name)!;\n }\n const viewModelRuntimeInstance = this._runtimeInstance?.viewModel(name);\n if (viewModelRuntimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(\n viewModelRuntimeInstance!,\n this,\n );\n createFinalization(viewModelInstance, viewModelRuntimeInstance);\n viewModelInstance.internalIncrementReferenceCount();\n this._viewModelInstances.set(name, viewModelInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n /**\n * method to access a property instance of type number belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the number property\n */\n public number(path: string): ViewModelInstanceNumber | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Number,\n );\n return viewmodelInstanceValue as ViewModelInstanceNumber;\n }\n\n /**\n * method to access a property instance of type string belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the string property\n */\n public string(path: string): ViewModelInstanceString | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.String,\n );\n return viewmodelInstanceValue as ViewModelInstanceString | null;\n }\n\n /**\n * method to access a property instance of type boolean belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the boolean property\n */\n public boolean(path: string): ViewModelInstanceBoolean | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Boolean,\n );\n return viewmodelInstanceValue as ViewModelInstanceBoolean | null;\n }\n\n /**\n * method to access a property instance of type color belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the ttrigger property\n */\n public color(path: string): ViewModelInstanceColor | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Color,\n );\n return viewmodelInstanceValue as ViewModelInstanceColor | null;\n }\n\n /**\n * method to access a property instance of type trigger belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the trigger property\n */\n public trigger(path: string): ViewModelInstanceTrigger | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Trigger,\n );\n return viewmodelInstanceValue as ViewModelInstanceTrigger | null;\n }\n\n /**\n * method to access a property instance of type enum belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the enum property\n */\n public enum(path: string): ViewModelInstanceEnum | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Enum,\n );\n return viewmodelInstanceValue as ViewModelInstanceEnum | null;\n }\n\n /**\n * method to access a property instance of type list belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the list property\n */\n public list(path: string): ViewModelInstanceList | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.List,\n );\n return viewmodelInstanceValue as ViewModelInstanceList | null;\n }\n\n /**\n * method to access a view model property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the image property\n */\n public image(path: string): ViewModelInstanceAssetImage | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Image,\n );\n return viewmodelInstanceValue as ViewModelInstanceAssetImage | null;\n }\n\n /**\n * method to access an artboard property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the image property\n */\n public artboard(path: string): ViewModelInstanceArtboard | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Artboard,\n );\n return viewmodelInstanceValue as ViewModelInstanceArtboard | null;\n }\n\n /**\n * method to access a view model property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the view model property\n */\n public viewModel(path: string): ViewModelInstance | null {\n const pathSegments = path.split(\"/\");\n const parentViewModelInstance =\n pathSegments.length > 1\n ? this.viewModelFromPathSegments(\n pathSegments.slice(0, pathSegments.length - 1),\n 0,\n )\n : this;\n if (parentViewModelInstance != null) {\n return parentViewModelInstance.internalViewModelInstance(\n pathSegments[pathSegments.length - 1],\n );\n }\n return null;\n }\n\n public internalReplaceViewModel(\n name: string,\n value: ViewModelInstance,\n ): boolean {\n if (value.runtimeInstance !== null) {\n const result =\n this._runtimeInstance?.replaceViewModel(name, value.runtimeInstance!) ||\n false;\n if (result) {\n value.internalIncrementReferenceCount();\n const oldInstance = this.internalViewModelInstance(name);\n if (oldInstance !== null) {\n oldInstance.removeParent(this);\n if (this._children.includes(oldInstance)) {\n this._children = this._children.filter(\n (child) => child !== oldInstance,\n );\n }\n oldInstance.cleanup();\n }\n this._viewModelInstances.set(name, value);\n value.addParent(this);\n }\n return result;\n }\n return false;\n }\n\n /**\n * method to replace a view model property with another view model value\n * @param path - path to the view model property\n * @param value - view model that will replace the original\n */\n public replaceViewModel(path: string, value: ViewModelInstance): boolean {\n const pathSegments = path.split(\"/\");\n const viewModelInstance =\n pathSegments.length > 1\n ? this.viewModelFromPathSegments(\n pathSegments.slice(0, pathSegments.length - 1),\n 0,\n )\n : this;\n return (\n viewModelInstance?.internalReplaceViewModel(\n pathSegments[pathSegments.length - 1],\n value,\n ) ?? false\n );\n }\n\n /*\n * method to add one to the reference counter of the instance.\n * Use if the file owning the reference is destroyed but the instance needs to stay around\n */\n public incrementReferenceCount() {\n this._referenceCount++;\n this._runtimeInstance?.incrementReferenceCount();\n }\n\n /*\n * method to subtract one to the reference counter of the instance.\n * Use if incrementReferenceCount has been called\n */\n public decrementReferenceCount() {\n this._referenceCount--;\n this._runtimeInstance?.decrementReferenceCount();\n }\n\n public get properties(): rc.ViewModelProperty[] {\n return (\n this._runtimeInstance?.getProperties().map((prop) => ({ ...prop })) || []\n );\n }\n\n public internalIncrementReferenceCount() {\n this._referenceCount++;\n }\n\n public cleanup() {\n this._referenceCount--;\n if (this._referenceCount <= 0) {\n if (this.selfUnref) {\n this._runtimeInstance?.unref();\n }\n this._runtimeInstance = null;\n this.clearCallbacks();\n this._propertiesWithCallbacks = [];\n this._viewModelInstances.forEach((value) => {\n value.cleanup();\n });\n this._viewModelInstances.clear();\n const children = [...this._children];\n this._children.length = 0;\n const parents = [...this._parents];\n this._parents.length = 0;\n children.forEach((child) => {\n child.removeParent(this);\n });\n parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n}\n\nexport class ViewModelInstanceValue {\n protected _parentViewModel: ViewModelInstance;\n protected callbacks: EventCallback[] = [];\n protected _viewModelInstanceValue: rc.ViewModelInstanceValue;\n constructor(instance: rc.ViewModelInstanceValue, parent: ViewModelInstance) {\n this._viewModelInstanceValue = instance;\n this._parentViewModel = parent;\n }\n\n public on(callback: EventCallback) {\n // Since we don't clean the changed flag for properties that don't have listeners,\n // we clean it the first time we add a listener to it\n if (this.callbacks.length === 0) {\n this._viewModelInstanceValue.clearChanges();\n }\n if (!this.callbacks.includes(callback)) {\n this.callbacks.push(callback);\n this._parentViewModel.addToPropertyCallbacks(this);\n }\n }\n public off(callback?: EventCallback) {\n if (!callback) {\n this.callbacks.length = 0;\n } else {\n this.callbacks = this.callbacks.filter((cb) => cb !== callback);\n }\n if (this.callbacks.length === 0) {\n this._parentViewModel.removeFromPropertyCallbacks(this);\n }\n }\n public internalHandleCallback(callback: Function) {}\n\n public handleCallbacks() {\n if (this._viewModelInstanceValue.hasChanged) {\n this.callbacks.forEach((callback) => {\n this.internalHandleCallback(callback);\n });\n }\n }\n\n public clearChanges() {\n this._viewModelInstanceValue.clearChanges();\n }\n\n public clearCallbacks() {\n this.callbacks.length = 0;\n }\n\n public get name() {\n return this._viewModelInstanceValue.name;\n }\n}\n\nexport class ViewModelInstanceString extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceString, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): string {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceString).value;\n }\n\n public set value(val: string) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceString).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceNumber extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceNumber, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceNumber).value;\n }\n\n public set value(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceNumber).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceBoolean extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceBoolean,\n parent: ViewModelInstance,\n ) {\n super(instance, parent);\n }\n\n public get value(): boolean {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceBoolean).value;\n }\n\n public set value(val: boolean) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceBoolean).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceTrigger extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceTrigger,\n parent: ViewModelInstance,\n ) {\n super(instance, parent);\n }\n\n public trigger(): void {\n return (\n this._viewModelInstanceValue as rc.ViewModelInstanceTrigger\n ).trigger();\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceEnum extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceEnum, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): string {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).value;\n }\n\n public set value(val: string) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).value = val;\n }\n\n public set valueIndex(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).valueIndex = val;\n }\n\n public get valueIndex(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum)\n .valueIndex;\n }\n\n public get values(): string[] {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).values;\n }\n\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceList extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceList, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get length(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceList).size;\n }\n\n public addInstance(instance: ViewModelInstance) {\n if (instance.runtimeInstance != null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).addInstance(\n instance.runtimeInstance!,\n );\n instance.addParent(this._parentViewModel);\n }\n }\n\n public addInstanceAt(instance: ViewModelInstance, index: number): boolean {\n if (instance.runtimeInstance != null) {\n if (\n (\n this._viewModelInstanceValue as rc.ViewModelInstanceList\n ).addInstanceAt(instance.runtimeInstance!, index)\n ) {\n instance.addParent(this._parentViewModel);\n return true;\n }\n }\n return false;\n }\n\n public removeInstance(instance: ViewModelInstance) {\n if (instance.runtimeInstance != null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).removeInstance(\n instance.runtimeInstance!,\n );\n instance.removeParent(this._parentViewModel);\n }\n }\n\n public removeInstanceAt(index: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).removeInstanceAt(\n index,\n );\n }\n\n public instanceAt(index: number): ViewModelInstance | null {\n const runtimeInstance = (\n this._viewModelInstanceValue as rc.ViewModelInstanceList\n ).instanceAt(index);\n if (runtimeInstance != null) {\n const viewModelInstance = new ViewModelInstance(\n runtimeInstance,\n this._parentViewModel,\n );\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public swap(a: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).swap(a, b);\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceColor extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceColor, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceColor).value;\n }\n\n public set value(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).value = val;\n }\n\n public rgb(r: number, g: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).rgb(r, g, b);\n }\n\n public rgba(r: number, g: number, b: number, a: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).argb(\n a,\n r,\n g,\n b,\n );\n }\n\n public argb(a: number, r: number, g: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).argb(\n a,\n r,\n g,\n b,\n );\n }\n\n // Value 0 to 255\n public alpha(a: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).alpha(a);\n }\n\n // Value 0 to 1\n public opacity(o: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).alpha(\n Math.round(Math.max(0, Math.min(1, o)) * 255),\n );\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceAssetImage extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceAssetImage,\n root: ViewModelInstance,\n ) {\n super(instance, root);\n }\n\n public set value(image: rc.Image | null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceAssetImage).value(\n image?.nativeImage ?? null,\n );\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceArtboard extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceArtboard, root: ViewModelInstance) {\n super(instance, root);\n }\n\n public set value(artboard: BaseArtboard | null) {\n let bindableArtboard: BindableArtboard;\n if (artboard.isBindableArtboard) {\n bindableArtboard = artboard as BindableArtboard;\n } else {\n bindableArtboard = (\n artboard as Artboard\n ).file.internalBindableArtboardFromArtboard(\n (artboard as Artboard).nativeArtboard,\n );\n }\n (this._viewModelInstanceValue as rc.ViewModelInstanceArtboard).value(\n bindableArtboard?.nativeArtboard ?? null,\n );\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\n/**\n * Contents of a state machine input\n */\ninterface StateMachineInputContents {\n name: string;\n type: StateMachineInputType;\n initialValue?: boolean | number;\n}\n\n/**\n * Contents of a state machine\n */\ninterface StateMachineContents {\n name: string;\n inputs: StateMachineInputContents[];\n}\n\n/**\n * Contents of an artboard\n */\ninterface ArtboardContents {\n animations: string[];\n stateMachines: StateMachineContents[];\n name: string;\n}\n\n/**\n * contents of a Rive file\n */\ninterface RiveFileContents {\n artboards?: ArtboardContents[];\n}\n\n// Loads Rive data from a URI via fetch.\nconst loadRiveFile = async (src: string): Promise<ArrayBuffer> => {\n const req = new Request(src);\n const res = await fetch(req);\n const buffer = await res.arrayBuffer();\n return buffer;\n};\n\n// #endregion\n\n// #region utility functions\n\n/*\n * Utility function to ensure an object is a string array\n */\nconst mapToStringArray = (obj?: string[] | string | undefined): string[] => {\n if (typeof obj === \"string\") {\n return [obj];\n } else if (obj instanceof Array) {\n return obj;\n }\n // If obj is undefined, return empty array\n return [];\n};\n\n// #endregion\n\n// #region testing utilities\n\n// Exports to only be used for tests\nexport const Testing = {\n EventManager: EventManager,\n TaskQueueManager: TaskQueueManager,\n};\n\n// #endregion\n\n// #region asset loaders\n\n/**\n * Decodes bytes into an audio asset.\n *\n * Be sure to call `.unref()` on the audio once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeAudio = async (bytes: Uint8Array): Promise<rc.Audio> => {\n const decodedPromise = new Promise<rc.Audio>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeAudio(bytes, resolve);\n }),\n );\n const audio: rc.Audio = await decodedPromise;\n const audioWrapper = new AudioWrapper(audio);\n finalizationRegistry.register(audioWrapper, audio);\n return audioWrapper;\n};\n\n/**\n * Decodes bytes into an image.\n *\n * Be sure to call `.unref()` on the image once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeImage = async (bytes: Uint8Array): Promise<rc.Image> => {\n const decodedPromise = new Promise<rc.Image>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeImage(bytes, resolve);\n }),\n );\n const image: rc.Image = await decodedPromise;\n const imageWrapper = new ImageWrapper(image);\n finalizationRegistry.register(imageWrapper, image);\n return imageWrapper;\n};\n\n/**\n * Decodes bytes into a font.\n *\n * Be sure to call `.unref()` on the font once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeFont = async (bytes: Uint8Array): Promise<rc.Font> => {\n const decodedPromise = new Promise<rc.Font>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeFont(bytes, resolve);\n }),\n );\n const font: rc.Font = await decodedPromise;\n const fontWrapper = new FontWrapper(font);\n finalizationRegistry.register(fontWrapper, font);\n return fontWrapper;\n};\n\n// #endregion\n"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"rive.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,eAAe;AACpG;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG,EAAE;AACL,yDAAyD;AACzD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,GAAG,EAAE;AACL,mEAAmE;AACnE;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE;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,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,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gBAAgB,0BAA0B;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,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA,GAAG;AACH;AACA;AACA;AACA,+IAA+I,0BAA0B;AACzK,yCAAyC,EAAE;AAC3C;AACA;AACA,GAAG;AACH;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,uEAAuE,OAAO;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qCAAqC;AACpE,oEAAoE,OAAO;AAC3E;AACA;AACA;AACA,MAAM;AACN,kBAAkB,qCAAqC;AACvD;AACA;AACA;AACA;AACA,wFAAwF,mBAAmB;AAC3G;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,EAAE;AACF,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,WAAW;AACX;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC,EAAE,QAAQ;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD,UAAU;AACV,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC,EAAE,QAAQ;AACX;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB,KAAK,MAAM,8FAA8F,UAAU,WAAW,QAAQ,MAAM,iBAAiB,UAAU,4EAA4E,QAAQ,MAAM,4BAA4B,YAAY,MAAM,MAAM,iBAAiB,aAAa;AACpW;AACA,kFAAkF;AAClF;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,KAAK;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,EAAE,KAAK;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,gBAAgB,OAAO;AACvB;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,IAAI;AACJ,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,UAAU;AACV,CAAC;AACD;AACA;AACA,CAAC,EAAE,EAAE;AACL;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACrB;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;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,qBAAqB;AACrB;AACA;AACA,YAAY;AACZ;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA,0DAA0D,EAAE,GAAG,EAAE;AACjE;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,GAAG;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,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,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAa;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;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,iBAAiB,UAAU;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,aAAa,iDAAiD;AAC9D;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,iBAAiB;AAClC,MAAM;AACN;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,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA,UAAU,6EAA6E;AACvF;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA,GAAG;AACH,2BAA2B,OAAO;AAClC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,OAAO;AAC3B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,oEAAoE,QAAQ;AAC3F;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oDAAoD,UAAU,IAAI,aAAa;AAC/E;AACA;AACA,CAAC;AACD,mBAAmB,KAAK;AACxB;AACA;AACA;AACA,CAAC;AACD,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA,CAAC,aAAa;AACd;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iBAAiB,GAAG,mBAAmB,MAAM;AAC7C;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,8BAA8B,GAAG,sBAAsB,EAAE;AACzD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,gDAAgD,SAAS,sBAAsB,OAAO;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA,yGAAyG,EAAE;AAC3G;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA,kDAAkD,OAAO,uBAAuB,OAAO;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,mDAAmD,iCAAiC,oBAAoB,UAAU;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,yDAAyD,iCAAiC,oBAAoB,UAAU;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,gCAAgC,MAAM,SAAS,UAAU;AACzD;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,mDAAmD,YAAY,oBAAoB,UAAU;AAC7F;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,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2DAA2D,EAAE,IAAI,EAAE;AACnE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,GAAG,cAAc,UAAU,sBAAsB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,mBAAmB,GAAG,uBAAuB,EAAE;AAC/C;AACA;AACA,mBAAmB,GAAG,mCAAmC,mBAAmB;AAC5E;AACA;AACA,yDAAyD,GAAG;AAC5D;AACA;AACA,CAAC;AACD;AACA,CAAC,QAAQ;AACT;AACA;AACA;AACA,CAAC,iFAAiF;AAClF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,oDAAoD,EAAE,KAAK,EAAE;AAC7D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE,KAAK,EAAE;AAC3D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,EAAE,KAAK,EAAE;AAC7D;AACA,CAAC;AACD;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,SAAS;AACV;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,CAAC,uFAAuF;AACxF,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB;AACtB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,eAAe;AAChB;AACA,aAAa,kOAAkO;AAC/O;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE,GAAG,KAAK;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,4CAA4C,EAAE,qDAAqD,EAAE,aAAa,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE,8BAA8B,EAAE,IAAI,EAAE,mBAAmB,GAAG,UAAU,SAAS;AACzH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;AACtE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH,2BAA2B,eAAe;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uCAAuC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW;AACX;AACA,WAAW,gBAAgB,UAAU,KAAK,gBAAgB;AAC1D;AACA;AACA;AACA,IAAI;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG,OAAO,6DAA6D,GAAG;AAChG;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH,6BAA6B;AAC7B;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,mCAAmC,6BAA6B,kBAAkB,aAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB,eAAe,UAAU;AAC1G,CAAC,EAAE;AACH;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD;AACA,KAAK;AACL,6CAA6C,QAAQ;AACrD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,GAAG,SAAS;AAC/C;AACA;AACA;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gEAAgE,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kDAAkD;AACvD,GAAG;AACH,CAAC;AACD,CAAC;AACD;AACA,QAAQ;AACR;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG,UAAU;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,GAAG,qCAAqC,SAAS,gBAAgB,4BAA4B;AAC5I;AACA;AACA,KAAK;AACL,8BAA8B,aAAa,QAAQ,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO,GAAG,EAAE,QAAQ;AACnC,0BAA0B,GAAG;AAC7B,KAAK;AACL;AACA,0BAA0B,GAAG;AAC7B,MAAM;AACN,qBAAqB,GAAG;AACxB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,gGAAgG,MAAM,eAAe,OAAO;AAC5H;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;AACA,eAAe,OAAO,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO,GAAG,EAAE,QAAQ;AACnC,0BAA0B,GAAG;AAC7B,KAAK;AACL,0CAA0C,GAAG;AAC7C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,GAAG,4FAA4F;AAC/F;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA8C,OAAO,QAAQ,eAAe,YAAY,OAAO,GAAG,EAAE;AACpG,GAAG,EAAE,EAAE;AACP;AACA;AACA,CAAC;AACD;AACA,QAAQ,8GAA8G;AACtH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG;AACzB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,QAAQ,wGAAwG;AAChH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAkE,GAAG,OAAO;AACpF,CAAC;AACD;AACA;AACA,QAAQ;AACR;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,EAAE;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,QAAQ;AACR,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI;AACJ,CAAC;AACD,WAAW;AACX,CAAC;AACD,iBAAiB,yDAAyD;AAC1E,CAAC;AACD;AACA,QAAQ;AACR,GAAG;AACH,GAAG,EAAE;AACL,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uBAAuB,8BAA8B,OAAO,OAAO;AACnE;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,iGAAiG;AAClG;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,CAAC;AACD,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,sBAAsB,qCAAqC;AAC3D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA,mFAAmF,MAAM,GAAG,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB,WAAW,SAAS,qCAAqC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,mCAAmC,oEAAoE;AACvG;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0FAA0F,EAAE;AAC5F;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACr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","sources":["webpack://rive/webpack/universalModuleDefinition","webpack://rive/./npm/webgl2_advanced/webgl2_advanced.mjs","webpack://rive/./src/animation/index.ts","webpack://rive/./src/animation/Animation.ts","webpack://rive/./src/utils/index.ts","webpack://rive/./src/utils/registerTouchInteractions.ts","webpack://rive/./src/utils/sanitizeUrl.ts","webpack://rive/./src/utils/finalizationRegistry.ts","webpack://rive/webpack/bootstrap","webpack://rive/webpack/runtime/define property getters","webpack://rive/webpack/runtime/hasOwnProperty shorthand","webpack://rive/webpack/runtime/make namespace object","webpack://rive/./src/rive.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, () => {\nreturn ","\nvar Rive = (() => {\n var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;\n \n return (\nfunction(moduleArg = {}) {\n var moduleRtn;\n\nvar l = moduleArg, aa, ba, ca = new Promise((a, b) => {\n aa = a;\n ba = b;\n}), da = \"object\" == typeof window, ea = \"function\" == typeof importScripts;\nfunction fa() {\n function a(g) {\n const k = d;\n c = b = 0;\n d = new Map();\n k.forEach(m => {\n try {\n m(g);\n } catch (n) {\n console.error(n);\n }\n });\n this.mb();\n e && e.Mb();\n }\n let b = 0, c = 0, d = new Map(), e = null, f = null;\n this.requestAnimationFrame = function(g) {\n b ||= requestAnimationFrame(a.bind(this));\n const k = ++c;\n d.set(k, g);\n return k;\n };\n this.cancelAnimationFrame = function(g) {\n d.delete(g);\n b && 0 == d.size && (cancelAnimationFrame(b), b = 0);\n };\n this.Kb = function(g) {\n f && (document.body.remove(f), f = null);\n g || (f = document.createElement(\"div\"), f.style.backgroundColor = \"black\", f.style.position = \"fixed\", f.style.right = 0, f.style.top = 0, f.style.color = \"white\", f.style.padding = \"4px\", f.innerHTML = \"RIVE FPS\", g = function(k) {\n f.innerHTML = \"RIVE FPS \" + k.toFixed(1);\n }, document.body.appendChild(f));\n e = new function() {\n let k = 0, m = 0;\n this.Mb = function() {\n var n = performance.now();\n m ? (++k, n -= m, 1000 < n && (g(1000 * k / n), k = m = 0)) : (m = n, k = 0);\n };\n }();\n };\n this.mb = function() {\n };\n}\nfunction ha() {\n console.assert(!0);\n const a = new Map();\n let b = -Infinity;\n this.push = function(c) {\n c = c + 255 >> 8;\n a.has(c) && clearTimeout(a.get(c));\n a.set(c, setTimeout(function() {\n a.delete(c);\n 0 == a.length ? b = -Infinity : c == b && (b = Math.max(...a.keys()), console.assert(b < c));\n }, 1000));\n b = Math.max(c, b);\n return b << 8;\n };\n}\nconst ia = l.onRuntimeInitialized;\nl.onRuntimeInitialized = function() {\n ia && ia();\n let a = l.decodeAudio;\n l.decodeAudio = function(e, f) {\n e = a(e);\n f(e);\n };\n let b = l.decodeFont;\n l.decodeFont = function(e, f) {\n e = b(e);\n f(e);\n };\n const c = l.FileAssetLoader;\n l.ptrToAsset = e => {\n let f = l.ptrToFileAsset(e);\n return f.isImage ? l.ptrToImageAsset(e) : f.isFont ? l.ptrToFontAsset(e) : f.isAudio ? l.ptrToAudioAsset(e) : f;\n };\n l.CustomFileAssetLoader = c.extend(\"CustomFileAssetLoader\", {__construct:function({loadContents:e}) {\n this.__parent.__construct.call(this);\n this.Bb = e;\n }, loadContents:function(e, f) {\n e = l.ptrToAsset(e);\n return this.Bb(e, f);\n },});\n l.CDNFileAssetLoader = c.extend(\"CDNFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n }, loadContents:function(e) {\n let f = l.ptrToAsset(e);\n e = f.cdnUuid;\n if (\"\" === e) {\n return !1;\n }\n (function(g, k) {\n var m = new XMLHttpRequest();\n m.responseType = \"arraybuffer\";\n m.onreadystatechange = function() {\n 4 == m.readyState && 200 == m.status && k(m);\n };\n m.open(\"GET\", g, !0);\n m.send(null);\n })(f.cdnBaseUrl + \"/\" + e, g => {\n f.decode(new Uint8Array(g.response));\n });\n return !0;\n },});\n l.FallbackFileAssetLoader = c.extend(\"FallbackFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n this.ib = [];\n }, addLoader:function(e) {\n this.ib.push(e);\n }, loadContents:function(e, f) {\n for (let g of this.ib) {\n if (g.loadContents(e, f)) {\n return !0;\n }\n }\n return !1;\n },});\n let d = l.computeAlignment;\n l.computeAlignment = function(e, f, g, k, m = 1.0) {\n return d.call(this, e, f, g, k, m);\n };\n};\nconst ja = l.onRuntimeInitialized;\nl.onRuntimeInitialized = function() {\n function a(r) {\n this.G = r;\n this.Ab = r.getContext(\"2d\");\n this.Db = d;\n this.S = [];\n this.ka = 0;\n this.clear = function() {\n console.assert(0 == this.ka);\n this.S = [];\n e.delete(this);\n };\n this.save = function() {\n ++this.ka;\n this.S.push(d.save.bind(d));\n };\n this.restore = function() {\n 0 < this.ka && (this.S.push(d.restore.bind(d)), --this.ka);\n };\n this.transform = function(u) {\n this.S.push(d.transform.bind(d, u));\n };\n this.align = function(u, y, z, C, F = 1.0) {\n this.S.push(d.align.bind(d, u, y, z, C, F));\n };\n this.flush = function() {\n console.assert(0 == this.ka);\n e.add(this);\n d.Ya || c();\n };\n this[\"delete\"] = function() {\n };\n }\n function b(r, u = !1) {\n var y = {alpha:!0, depth:u, stencil:u, antialias:u, premultipliedAlpha:!0, preserveDrawingBuffer:0, powerPreference:\"high-performance\", failIfMajorPerformanceCaveat:0, enableExtensionsByDefault:!1, explicitSwapControl:0, renderViaOffscreenBackBuffer:0,};\n u = r.getContext(\"webgl2\", y);\n if (!u) {\n return null;\n }\n y = ka(u, y);\n la(y);\n const z = f(r.width, r.height);\n z.La = y;\n z.G = r;\n z.Ma = r.width;\n z.Za = r.height;\n z.T = u;\n var C = z.delete;\n z.delete = function() {\n C.call(this);\n var F = this.La;\n q === w[F] && (q = null);\n \"object\" == typeof JSEvents && JSEvents.Kc(w[F].C.canvas);\n w[F] && w[F].C.canvas && (w[F].C.canvas.zb = void 0);\n this.La = this.G = this.Ma = this.T = w[F] = null;\n };\n return z;\n }\n function c() {\n if (d) {\n var r = d.Cb, u = 0, y = 0, z = 0, C = Array(e.size), F = 0;\n for (var I of e) {\n I.fa = Math.min(I.G.width, r), I.ea = Math.min(I.G.height, r), I.Ja = I.ea * I.fa, u = Math.max(u, I.fa), y = Math.max(y, I.ea), z += I.Ja, C[F++] = I;\n }\n e.clear();\n if (!(0 >= z)) {\n u = 1 << (0 >= u ? 0 : 32 - Math.clz32(u - 1));\n for (y = 1 << (0 >= y ? 0 : 32 - Math.clz32(y - 1)); y * u < z;) {\n u <= y ? u *= 2 : y *= 2;\n }\n u = Math.min(u, r);\n u = Math.min(y, r);\n C.sort((Z, mb) => mb.Ja - Z.Ja);\n z = new l.DynamicRectanizer(r);\n for (I = 0; I < C.length;) {\n z.reset(u, y);\n for (F = I; F < C.length; ++F) {\n var J = C[F], H = z.addRect(J.fa, J.ea);\n if (0 > H) {\n console.assert(F > I);\n break;\n }\n J.qa = H & 65535;\n J.ra = H >> 16;\n }\n J = m.push(z.drawWidth());\n H = n.push(z.drawHeight());\n console.assert(J >= z.drawWidth());\n console.assert(H >= z.drawHeight());\n console.assert(J <= r);\n console.assert(H <= r);\n d.G.width != J && (d.G.width = J);\n d.G.height != H && (d.G.height = H);\n d.clear();\n for (J = I; J < F; ++J) {\n H = C[J];\n d.saveClipRect(H.qa, H.ra, H.qa + H.fa, H.ra + H.ea);\n let Z = new l.Mat2D();\n Z.xx = H.fa / H.G.width;\n Z.yy = H.ea / H.G.height;\n Z.xy = Z.yx = 0;\n Z.tx = H.qa;\n Z.ty = H.ra;\n d.transform(Z);\n for (const mb of H.S) {\n mb();\n }\n d.restoreClipRect();\n H.S = [];\n }\n for (d.flush(); I < F; ++I) {\n J = C[I], H = J.Ab, H.globalCompositeOperation = \"copy\", H.drawImage(d.G, J.qa, J.ra, J.fa, J.ea, 0, 0, J.G.width, J.G.height);\n }\n I = F;\n }\n }\n }\n }\n ja && ja();\n let d = null;\n const e = new Set(), f = l.makeRenderer;\n l.makeRenderer = function(r, u) {\n if (!d) {\n function y(z) {\n var C = document.createElement(\"canvas\");\n C.width = 1;\n C.height = 1;\n d = b(C, z);\n d.Ya = !!d.T.getExtension(\"WEBGL_shader_pixel_local_storage\");\n d.Cb = Math.min(d.T.getParameter(d.T.MAX_RENDERBUFFER_SIZE), d.T.getParameter(d.T.MAX_TEXTURE_SIZE));\n d.Ka = !d.Ya;\n if (z = d.T.getExtension(\"WEBGL_debug_renderer_info\")) {\n C = d.T.getParameter(z.UNMASKED_RENDERER_WEBGL), d.T.getParameter(z.UNMASKED_VENDOR_WEBGL).includes(\"Google\") && C.includes(\"ANGLE Metal Renderer\") && (d.Ka = !1);\n }\n return d;\n }\n d = y(!0);\n d.Ka || (d = y(!1));\n }\n return u ? new a(r) : b(r, d.Ka);\n };\n const g = l.Artboard.prototype[\"delete\"];\n l.Artboard.prototype[\"delete\"] = function() {\n this.Eb = !0;\n g.call(this);\n };\n const k = l.Artboard.prototype.draw;\n l.Artboard.prototype.draw = function(r) {\n r.S ? r.S.push(() => {\n this.Eb || k.call(this, r.Db);\n }) : k.call(this, r);\n };\n const m = new ha(), n = new ha(), t = new fa();\n l.requestAnimationFrame = t.requestAnimationFrame.bind(t);\n l.cancelAnimationFrame = t.cancelAnimationFrame.bind(t);\n l.enableFPSCounter = t.Kb.bind(t);\n t.mb = c;\n l.resolveAnimationFrame = c;\n let v = l.load;\n l.load = function(r, u, y = !0) {\n const z = new l.FallbackFileAssetLoader();\n void 0 !== u && z.addLoader(u);\n y && (u = new l.CDNFileAssetLoader(), z.addLoader(u));\n return Promise.resolve(v(r, z));\n };\n const x = l.WebGL2Renderer.prototype.clear;\n l.WebGL2Renderer.prototype.clear = function() {\n la(this.La);\n const r = this.G;\n if (this.Ma != r.width || this.Za != r.height) {\n this.resize(r.width, r.height), this.Ma = r.width, this.Za = r.height;\n }\n x.call(this);\n };\n l.decodeImage = function(r, u) {\n r = l.decodeWebGL2Image(r);\n u(r);\n };\n let p = l.Renderer.prototype.align;\n l.Renderer.prototype.align = function(r, u, y, z, C = 1.0) {\n p.call(this, r, u, y, z, C);\n };\n};\nvar ma = Object.assign({}, l), na = \"./this.program\", A = \"\", oa, pa;\nif (da || ea) {\n ea ? A = self.location.href : \"undefined\" != typeof document && document.currentScript && (A = document.currentScript.src), _scriptName && (A = _scriptName), A.startsWith(\"blob:\") ? A = \"\" : A = A.substr(0, A.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1), ea && (pa = a => {\n var b = new XMLHttpRequest();\n b.open(\"GET\", a, !1);\n b.responseType = \"arraybuffer\";\n b.send(null);\n return new Uint8Array(b.response);\n }), oa = (a, b, c) => {\n if (qa(a)) {\n var d = new XMLHttpRequest();\n d.open(\"GET\", a, !0);\n d.responseType = \"arraybuffer\";\n d.onload = () => {\n 200 == d.status || 0 == d.status && d.response ? b(d.response) : c();\n };\n d.onerror = c;\n d.send(null);\n } else {\n fetch(a, {credentials:\"same-origin\"}).then(e => e.ok ? e.arrayBuffer() : Promise.reject(Error(e.status + \" : \" + e.url))).then(b, c);\n }\n };\n}\nvar ra = l.print || console.log.bind(console), sa = l.printErr || console.error.bind(console);\nObject.assign(l, ma);\nma = null;\nl.thisProgram && (na = l.thisProgram);\nvar ta;\nl.wasmBinary && (ta = l.wasmBinary);\nvar ua, va = !1, B, D, E, wa, G, K, xa, ya;\nfunction za() {\n var a = ua.buffer;\n l.HEAP8 = B = new Int8Array(a);\n l.HEAP16 = E = new Int16Array(a);\n l.HEAPU8 = D = new Uint8Array(a);\n l.HEAPU16 = wa = new Uint16Array(a);\n l.HEAP32 = G = new Int32Array(a);\n l.HEAPU32 = K = new Uint32Array(a);\n l.HEAPF32 = xa = new Float32Array(a);\n l.HEAPF64 = ya = new Float64Array(a);\n}\nvar Aa = [], Ba = [], Ca = [];\nfunction Da() {\n var a = l.preRun.shift();\n Aa.unshift(a);\n}\nvar Ea = 0, Fa = null, Ga = null;\nfunction Ha(a) {\n l.onAbort?.(a);\n a = \"Aborted(\" + a + \")\";\n sa(a);\n va = !0;\n a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n ba(a);\n throw a;\n}\nvar Ia = a => a.startsWith(\"data:application/octet-stream;base64,\"), qa = a => a.startsWith(\"file://\"), Ja;\nfunction Ka(a) {\n if (a == Ja && ta) {\n return new Uint8Array(ta);\n }\n if (pa) {\n return pa(a);\n }\n throw \"both async and sync fetching of the wasm failed\";\n}\nfunction La(a) {\n return ta ? Promise.resolve().then(() => Ka(a)) : new Promise((b, c) => {\n oa(a, d => b(new Uint8Array(d)), () => {\n try {\n b(Ka(a));\n } catch (d) {\n c(d);\n }\n });\n });\n}\nfunction Ma(a, b, c) {\n return La(a).then(d => WebAssembly.instantiate(d, b)).then(c, d => {\n sa(`failed to asynchronously prepare wasm: ${d}`);\n Ha(d);\n });\n}\nfunction Na(a, b) {\n var c = Ja;\n return ta || \"function\" != typeof WebAssembly.instantiateStreaming || Ia(c) || qa(c) || \"function\" != typeof fetch ? Ma(c, a, b) : fetch(c, {credentials:\"same-origin\"}).then(d => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n sa(`wasm streaming compile failed: ${e}`);\n sa(\"falling back to ArrayBuffer instantiation\");\n return Ma(c, a, b);\n }));\n}\nvar Oa, Pa, Ta = {544671:(a, b, c, d, e) => {\n if (\"undefined\" === typeof window || void 0 === (window.AudioContext || window.webkitAudioContext)) {\n return 0;\n }\n if (\"undefined\" === typeof window.h) {\n window.h = {Ea:0};\n window.h.I = {};\n window.h.I.Ca = a;\n window.h.I.capture = b;\n window.h.I.Pa = c;\n window.h.ia = {};\n window.h.ia.stopped = d;\n window.h.ia.ub = e;\n let f = window.h;\n f.D = [];\n f.lc = function(g) {\n for (var k = 0; k < f.D.length; ++k) {\n if (null == f.D[k]) {\n return f.D[k] = g, k;\n }\n }\n f.D.push(g);\n return f.D.length - 1;\n };\n f.yb = function(g) {\n for (f.D[g] = null; 0 < f.D.length;) {\n if (null == f.D[f.D.length - 1]) {\n f.D.pop();\n } else {\n break;\n }\n }\n };\n f.Mc = function(g) {\n for (var k = 0; k < f.D.length; ++k) {\n if (f.D[k] == g) {\n return f.yb(k);\n }\n }\n };\n f.ta = function(g) {\n return f.D[g];\n };\n f.Xa = [\"touchend\", \"click\"];\n f.unlock = function() {\n for (var g = 0; g < f.D.length; ++g) {\n var k = f.D[g];\n null != k && null != k.K && k.state === f.ia.ub && k.K.resume().then(() => {\n Qa(k.nb);\n }, m => {\n console.error(\"Failed to resume audiocontext\", m);\n });\n }\n f.Xa.map(function(m) {\n document.removeEventListener(m, f.unlock, !0);\n });\n };\n f.Xa.map(function(g) {\n document.addEventListener(g, f.unlock, !0);\n });\n }\n window.h.Ea += 1;\n return 1;\n}, 546849:() => {\n \"undefined\" !== typeof window.h && (window.h.Xa.map(function(a) {\n document.removeEventListener(a, window.h.unlock, !0);\n }), --window.h.Ea, 0 === window.h.Ea && delete window.h);\n}, 547153:() => void 0 !== navigator.mediaDevices && void 0 !== navigator.mediaDevices.getUserMedia, 547257:() => {\n try {\n var a = new (window.AudioContext || window.webkitAudioContext)(), b = a.sampleRate;\n a.close();\n return b;\n } catch (c) {\n return 0;\n }\n}, 547428:(a, b, c, d, e, f) => {\n if (\"undefined\" === typeof window.h) {\n return -1;\n }\n var g = {}, k = {};\n a == window.h.I.Ca && 0 != c && (k.sampleRate = c);\n g.K = new (window.AudioContext || window.webkitAudioContext)(k);\n g.K.suspend();\n g.state = window.h.ia.stopped;\n c = 0;\n a != window.h.I.Ca && (c = b);\n g.Y = g.K.createScriptProcessor(d, c, b);\n g.Y.onaudioprocess = function(m) {\n if (null == g.ua || 0 == g.ua.length) {\n g.ua = new Float32Array(xa.buffer, e, d * b);\n }\n if (a == window.h.I.capture || a == window.h.I.Pa) {\n for (var n = 0; n < b; n += 1) {\n for (var t = m.inputBuffer.getChannelData(n), v = g.ua, x = 0; x < d; x += 1) {\n v[x * b + n] = t[x];\n }\n }\n Ra(f, d, e);\n }\n if (a == window.h.I.Ca || a == window.h.I.Pa) {\n for (Sa(f, d, e), n = 0; n < m.outputBuffer.numberOfChannels; ++n) {\n for (t = m.outputBuffer.getChannelData(n), v = g.ua, x = 0; x < d; x += 1) {\n t[x] = v[x * b + n];\n }\n }\n } else {\n for (n = 0; n < m.outputBuffer.numberOfChannels; ++n) {\n m.outputBuffer.getChannelData(n).fill(0.0);\n }\n }\n };\n a != window.h.I.capture && a != window.h.I.Pa || navigator.mediaDevices.getUserMedia({audio:!0, video:!1}).then(function(m) {\n g.Fa = g.K.createMediaStreamSource(m);\n g.Fa.connect(g.Y);\n g.Y.connect(g.K.destination);\n }).catch(function(m) {\n console.log(\"Failed to get user media: \" + m);\n });\n a == window.h.I.Ca && g.Y.connect(g.K.destination);\n g.nb = f;\n return window.h.lc(g);\n}, 550305:a => window.h.ta(a).K.sampleRate, 550378:a => {\n a = window.h.ta(a);\n void 0 !== a.Y && (a.Y.onaudioprocess = function() {\n }, a.Y.disconnect(), a.Y = void 0);\n void 0 !== a.Fa && (a.Fa.disconnect(), a.Fa = void 0);\n a.K.close();\n a.K = void 0;\n a.nb = void 0;\n}, 550778:a => {\n window.h.yb(a);\n}, 550828:a => {\n a = window.h.ta(a);\n a.K.resume();\n a.state = window.h.ia.ub;\n}, 550967:a => {\n a = window.h.ta(a);\n a.K.suspend();\n a.state = window.h.ia.stopped;\n}}, Ua = a => {\n for (; 0 < a.length;) {\n a.shift()(l);\n }\n};\nfunction Va() {\n var a = G[+Wa >> 2];\n Wa += 4;\n return a;\n}\nvar Xa = (a, b) => {\n for (var c = 0, d = a.length - 1; 0 <= d; d--) {\n var e = a[d];\n \".\" === e ? a.splice(d, 1) : \"..\" === e ? (a.splice(d, 1), c++) : c && (a.splice(d, 1), c--);\n }\n if (b) {\n for (; c; c--) {\n a.unshift(\"..\");\n }\n }\n return a;\n}, Ya = a => {\n var b = \"/\" === a.charAt(0), c = \"/\" === a.substr(-1);\n (a = Xa(a.split(\"/\").filter(d => !!d), !b).join(\"/\")) || b || (a = \".\");\n a && c && (a += \"/\");\n return (b ? \"/\" : \"\") + a;\n}, Za = a => {\n var b = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);\n a = b[0];\n b = b[1];\n if (!a && !b) {\n return \".\";\n }\n b &&= b.substr(0, b.length - 1);\n return a + b;\n}, $a = a => {\n if (\"/\" === a) {\n return \"/\";\n }\n a = Ya(a);\n a = a.replace(/\\/$/, \"\");\n var b = a.lastIndexOf(\"/\");\n return -1 === b ? a : a.substr(b + 1);\n}, ab = () => {\n if (\"object\" == typeof crypto && \"function\" == typeof crypto.getRandomValues) {\n return a => crypto.getRandomValues(a);\n }\n Ha(\"initRandomDevice\");\n}, bb = a => (bb = ab())(a), cb = (...a) => {\n for (var b = \"\", c = !1, d = a.length - 1; -1 <= d && !c; d--) {\n c = 0 <= d ? a[d] : \"/\";\n if (\"string\" != typeof c) {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n }\n if (!c) {\n return \"\";\n }\n b = c + \"/\" + b;\n c = \"/\" === c.charAt(0);\n }\n b = Xa(b.split(\"/\").filter(e => !!e), !c).join(\"/\");\n return (c ? \"/\" : \"\") + b || \".\";\n}, db = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, L = (a, b, c) => {\n var d = b + c;\n for (c = b; a[c] && !(c >= d);) {\n ++c;\n }\n if (16 < c - b && a.buffer && db) {\n return db.decode(a.subarray(b, c));\n }\n for (d = \"\"; b < c;) {\n var e = a[b++];\n if (e & 128) {\n var f = a[b++] & 63;\n if (192 == (e & 224)) {\n d += String.fromCharCode((e & 31) << 6 | f);\n } else {\n var g = a[b++] & 63;\n e = 224 == (e & 240) ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;\n 65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n }\n } else {\n d += String.fromCharCode(e);\n }\n }\n return d;\n}, eb = [], fb = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 127 >= d ? b++ : 2047 >= d ? b += 2 : 55296 <= d && 57343 >= d ? (b += 4, ++c) : b += 3;\n }\n return b;\n}, gb = (a, b, c, d) => {\n if (!(0 < d)) {\n return 0;\n }\n var e = c;\n d = c + d - 1;\n for (var f = 0; f < a.length; ++f) {\n var g = a.charCodeAt(f);\n if (55296 <= g && 57343 >= g) {\n var k = a.charCodeAt(++f);\n g = 65536 + ((g & 1023) << 10) | k & 1023;\n }\n if (127 >= g) {\n if (c >= d) {\n break;\n }\n b[c++] = g;\n } else {\n if (2047 >= g) {\n if (c + 1 >= d) {\n break;\n }\n b[c++] = 192 | g >> 6;\n } else {\n if (65535 >= g) {\n if (c + 2 >= d) {\n break;\n }\n b[c++] = 224 | g >> 12;\n } else {\n if (c + 3 >= d) {\n break;\n }\n b[c++] = 240 | g >> 18;\n b[c++] = 128 | g >> 12 & 63;\n }\n b[c++] = 128 | g >> 6 & 63;\n }\n b[c++] = 128 | g & 63;\n }\n }\n b[c] = 0;\n return c - e;\n};\nfunction hb(a, b) {\n var c = Array(fb(a) + 1);\n a = gb(a, c, 0, c.length);\n b && (c.length = a);\n return c;\n}\nvar ib = [];\nfunction jb(a, b) {\n ib[a] = {input:[], H:[], V:b};\n kb(a, lb);\n}\nvar lb = {open(a) {\n var b = ib[a.node.Da];\n if (!b) {\n throw new M(43);\n }\n a.s = b;\n a.seekable = !1;\n}, close(a) {\n a.s.V.sa(a.s);\n}, sa(a) {\n a.s.V.sa(a.s);\n}, read(a, b, c, d) {\n if (!a.s || !a.s.V.hb) {\n throw new M(60);\n }\n for (var e = 0, f = 0; f < d; f++) {\n try {\n var g = a.s.V.hb(a.s);\n } catch (k) {\n throw new M(29);\n }\n if (void 0 === g && 0 === e) {\n throw new M(6);\n }\n if (null === g || void 0 === g) {\n break;\n }\n e++;\n b[c + f] = g;\n }\n e && (a.node.timestamp = Date.now());\n return e;\n}, write(a, b, c, d) {\n if (!a.s || !a.s.V.Sa) {\n throw new M(60);\n }\n try {\n for (var e = 0; e < d; e++) {\n a.s.V.Sa(a.s, b[c + e]);\n }\n } catch (f) {\n throw new M(29);\n }\n d && (a.node.timestamp = Date.now());\n return e;\n},}, nb = {hb() {\n a: {\n if (!eb.length) {\n var a = null;\n \"undefined\" != typeof window && \"function\" == typeof window.prompt && (a = window.prompt(\"Input: \"), null !== a && (a += \"\\n\"));\n if (!a) {\n a = null;\n break a;\n }\n eb = hb(a, !0);\n }\n a = eb.shift();\n }\n return a;\n}, Sa(a, b) {\n null === b || 10 === b ? (ra(L(a.H, 0)), a.H = []) : 0 != b && a.H.push(b);\n}, sa(a) {\n a.H && 0 < a.H.length && (ra(L(a.H, 0)), a.H = []);\n}, Vb() {\n return {sc:25856, uc:5, rc:191, tc:35387, qc:[3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]};\n}, Wb() {\n return 0;\n}, Xb() {\n return [24, 80];\n},}, ob = {Sa(a, b) {\n null === b || 10 === b ? (sa(L(a.H, 0)), a.H = []) : 0 != b && a.H.push(b);\n}, sa(a) {\n a.H && 0 < a.H.length && (sa(L(a.H, 0)), a.H = []);\n},};\nfunction pb(a, b) {\n var c = a.l ? a.l.length : 0;\n c >= b || (b = Math.max(b, c * (1048576 > c ? 2.0 : 1.125) >>> 0), 0 != c && (b = Math.max(b, 256)), c = a.l, a.l = new Uint8Array(b), 0 < a.v && a.l.set(c.subarray(0, a.v), 0));\n}\nvar N = {N:null, U() {\n return N.createNode(null, \"/\", 16895, 0);\n}, createNode(a, b, c, d) {\n if (24576 === (c & 61440) || 4096 === (c & 61440)) {\n throw new M(63);\n }\n N.N || (N.N = {dir:{node:{X:N.j.X, P:N.j.P, la:N.j.la, Aa:N.j.Aa, sb:N.j.sb, xb:N.j.xb, tb:N.j.tb, rb:N.j.rb, Ga:N.j.Ga}, stream:{aa:N.m.aa}}, file:{node:{X:N.j.X, P:N.j.P}, stream:{aa:N.m.aa, read:N.m.read, write:N.m.write, $a:N.m.$a, jb:N.m.jb, lb:N.m.lb}}, link:{node:{X:N.j.X, P:N.j.P, ma:N.j.ma}, stream:{}}, ab:{node:{X:N.j.X, P:N.j.P}, stream:qb}});\n c = rb(a, b, c, d);\n 16384 === (c.mode & 61440) ? (c.j = N.N.dir.node, c.m = N.N.dir.stream, c.l = {}) : 32768 === (c.mode & 61440) ? (c.j = N.N.file.node, c.m = N.N.file.stream, c.v = 0, c.l = null) : 40960 === (c.mode & 61440) ? (c.j = N.N.link.node, c.m = N.N.link.stream) : 8192 === (c.mode & 61440) && (c.j = N.N.ab.node, c.m = N.N.ab.stream);\n c.timestamp = Date.now();\n a && (a.l[b] = c, a.timestamp = c.timestamp);\n return c;\n}, Ac(a) {\n return a.l ? a.l.subarray ? a.l.subarray(0, a.v) : new Uint8Array(a.l) : new Uint8Array(0);\n}, j:{X(a) {\n var b = {};\n b.xc = 8192 === (a.mode & 61440) ? a.id : 1;\n b.Cc = a.id;\n b.mode = a.mode;\n b.Hc = 1;\n b.uid = 0;\n b.Bc = 0;\n b.Da = a.Da;\n 16384 === (a.mode & 61440) ? b.size = 4096 : 32768 === (a.mode & 61440) ? b.size = a.v : 40960 === (a.mode & 61440) ? b.size = a.link.length : b.size = 0;\n b.oc = new Date(a.timestamp);\n b.Gc = new Date(a.timestamp);\n b.vc = new Date(a.timestamp);\n b.Fb = 4096;\n b.pc = Math.ceil(b.size / b.Fb);\n return b;\n}, P(a, b) {\n void 0 !== b.mode && (a.mode = b.mode);\n void 0 !== b.timestamp && (a.timestamp = b.timestamp);\n if (void 0 !== b.size && (b = b.size, a.v != b)) {\n if (0 == b) {\n a.l = null, a.v = 0;\n } else {\n var c = a.l;\n a.l = new Uint8Array(b);\n c && a.l.set(c.subarray(0, Math.min(b, a.v)));\n a.v = b;\n }\n }\n}, la() {\n throw sb[44];\n}, Aa(a, b, c, d) {\n return N.createNode(a, b, c, d);\n}, sb(a, b, c) {\n if (16384 === (a.mode & 61440)) {\n try {\n var d = tb(b, c);\n } catch (f) {\n }\n if (d) {\n for (var e in d.l) {\n throw new M(55);\n }\n }\n }\n delete a.parent.l[a.name];\n a.parent.timestamp = Date.now();\n a.name = c;\n b.l[c] = a;\n b.timestamp = a.parent.timestamp;\n}, xb(a, b) {\n delete a.l[b];\n a.timestamp = Date.now();\n}, tb(a, b) {\n var c = tb(a, b), d;\n for (d in c.l) {\n throw new M(55);\n }\n delete a.l[b];\n a.timestamp = Date.now();\n}, rb(a) {\n var b = [\".\", \"..\"], c;\n for (c of Object.keys(a.l)) {\n b.push(c);\n }\n return b;\n}, Ga(a, b, c) {\n a = N.createNode(a, b, 41471, 0);\n a.link = c;\n return a;\n}, ma(a) {\n if (40960 !== (a.mode & 61440)) {\n throw new M(28);\n }\n return a.link;\n},}, m:{read(a, b, c, d, e) {\n var f = a.node.l;\n if (e >= a.node.v) {\n return 0;\n }\n a = Math.min(a.node.v - e, d);\n if (8 < a && f.subarray) {\n b.set(f.subarray(e, e + a), c);\n } else {\n for (d = 0; d < a; d++) {\n b[c + d] = f[e + d];\n }\n }\n return a;\n}, write(a, b, c, d, e, f) {\n b.buffer === B.buffer && (f = !1);\n if (!d) {\n return 0;\n }\n a = a.node;\n a.timestamp = Date.now();\n if (b.subarray && (!a.l || a.l.subarray)) {\n if (f) {\n return a.l = b.subarray(c, c + d), a.v = d;\n }\n if (0 === a.v && 0 === e) {\n return a.l = b.slice(c, c + d), a.v = d;\n }\n if (e + d <= a.v) {\n return a.l.set(b.subarray(c, c + d), e), d;\n }\n }\n pb(a, e + d);\n if (a.l.subarray && b.subarray) {\n a.l.set(b.subarray(c, c + d), e);\n } else {\n for (f = 0; f < d; f++) {\n a.l[e + f] = b[c + f];\n }\n }\n a.v = Math.max(a.v, e + d);\n return d;\n}, aa(a, b, c) {\n 1 === c ? b += a.position : 2 === c && 32768 === (a.node.mode & 61440) && (b += a.node.v);\n if (0 > b) {\n throw new M(28);\n }\n return b;\n}, $a(a, b, c) {\n pb(a.node, b + c);\n a.node.v = Math.max(a.node.v, b + c);\n}, jb(a, b, c, d, e) {\n if (32768 !== (a.node.mode & 61440)) {\n throw new M(43);\n }\n a = a.node.l;\n if (e & 2 || a.buffer !== B.buffer) {\n if (0 < c || c + b < a.length) {\n a.subarray ? a = a.subarray(c, c + b) : a = Array.prototype.slice.call(a, c, c + b);\n }\n c = !0;\n Ha();\n b = void 0;\n if (!b) {\n throw new M(48);\n }\n B.set(a, b);\n } else {\n c = !1, b = a.byteOffset;\n }\n return {o:b, nc:c};\n}, lb(a, b, c, d) {\n N.m.write(a, b, 0, d, c, !1);\n return 0;\n},},}, ub = (a, b) => {\n var c = 0;\n a && (c |= 365);\n b && (c |= 146);\n return c;\n}, vb = null, wb = {}, xb = [], yb = 1, zb = null, Ab = !0, M = class {\n constructor(a) {\n this.name = \"ErrnoError\";\n this.$ = a;\n }\n}, sb = {}, Bb = class {\n constructor() {\n this.h = {};\n this.node = null;\n }\n get flags() {\n return this.h.flags;\n }\n set flags(a) {\n this.h.flags = a;\n }\n get position() {\n return this.h.position;\n }\n set position(a) {\n this.h.position = a;\n }\n}, Cb = class {\n constructor(a, b, c, d) {\n a ||= this;\n this.parent = a;\n this.U = a.U;\n this.Ba = null;\n this.id = yb++;\n this.name = b;\n this.mode = c;\n this.j = {};\n this.m = {};\n this.Da = d;\n }\n get read() {\n return 365 === (this.mode & 365);\n }\n set read(a) {\n a ? this.mode |= 365 : this.mode &= -366;\n }\n get write() {\n return 146 === (this.mode & 146);\n }\n set write(a) {\n a ? this.mode |= 146 : this.mode &= -147;\n }\n};\nfunction Db(a, b = {}) {\n a = cb(a);\n if (!a) {\n return {path:\"\", node:null};\n }\n b = Object.assign({gb:!0, Ua:0}, b);\n if (8 < b.Ua) {\n throw new M(32);\n }\n a = a.split(\"/\").filter(g => !!g);\n for (var c = vb, d = \"/\", e = 0; e < a.length; e++) {\n var f = e === a.length - 1;\n if (f && b.parent) {\n break;\n }\n c = tb(c, a[e]);\n d = Ya(d + \"/\" + a[e]);\n c.Ba && (!f || f && b.gb) && (c = c.Ba.root);\n if (!f || b.fb) {\n for (f = 0; 40960 === (c.mode & 61440);) {\n if (c = Eb(d), d = cb(Za(d), c), c = Db(d, {Ua:b.Ua + 1}).node, 40 < f++) {\n throw new M(32);\n }\n }\n }\n }\n return {path:d, node:c};\n}\nfunction Fb(a) {\n for (var b;;) {\n if (a === a.parent) {\n return a = a.U.kb, b ? \"/\" !== a[a.length - 1] ? `${a}/${b}` : a + b : a;\n }\n b = b ? `${a.name}/${b}` : a.name;\n a = a.parent;\n }\n}\nfunction Gb(a, b) {\n for (var c = 0, d = 0; d < b.length; d++) {\n c = (c << 5) - c + b.charCodeAt(d) | 0;\n }\n return (a + c >>> 0) % zb.length;\n}\nfunction tb(a, b) {\n var c = 16384 === (a.mode & 61440) ? (c = Hb(a, \"x\")) ? c : a.j.la ? 0 : 2 : 54;\n if (c) {\n throw new M(c);\n }\n for (c = zb[Gb(a.id, b)]; c; c = c.$b) {\n var d = c.name;\n if (c.parent.id === a.id && d === b) {\n return c;\n }\n }\n return a.j.la(a, b);\n}\nfunction rb(a, b, c, d) {\n a = new Cb(a, b, c, d);\n b = Gb(a.parent.id, a.name);\n a.$b = zb[b];\n return zb[b] = a;\n}\nfunction Ib(a) {\n var b = [\"r\", \"w\", \"rw\"][a & 3];\n a & 512 && (b += \"w\");\n return b;\n}\nfunction Hb(a, b) {\n if (Ab) {\n return 0;\n }\n if (!b.includes(\"r\") || a.mode & 292) {\n if (b.includes(\"w\") && !(a.mode & 146) || b.includes(\"x\") && !(a.mode & 73)) {\n return 2;\n }\n } else {\n return 2;\n }\n return 0;\n}\nfunction Jb(a, b) {\n try {\n return tb(a, b), 20;\n } catch (c) {\n }\n return Hb(a, \"wx\");\n}\nfunction Kb(a) {\n a = xb[a];\n if (!a) {\n throw new M(8);\n }\n return a;\n}\nfunction Lb(a, b = -1) {\n a = Object.assign(new Bb(), a);\n if (-1 == b) {\n a: {\n for (b = 0; 4096 >= b; b++) {\n if (!xb[b]) {\n break a;\n }\n }\n throw new M(33);\n }\n }\n a.W = b;\n return xb[b] = a;\n}\nfunction Mb(a, b = -1) {\n a = Lb(a, b);\n a.m?.zc?.(a);\n return a;\n}\nvar qb = {open(a) {\n a.m = wb[a.node.Da].m;\n a.m.open?.(a);\n}, aa() {\n throw new M(70);\n},};\nfunction kb(a, b) {\n wb[a] = {m:b};\n}\nfunction Nb(a, b) {\n var c = \"/\" === b;\n if (c && vb) {\n throw new M(10);\n }\n if (!c && b) {\n var d = Db(b, {gb:!1});\n b = d.path;\n d = d.node;\n if (d.Ba) {\n throw new M(10);\n }\n if (16384 !== (d.mode & 61440)) {\n throw new M(54);\n }\n }\n b = {type:a, Jc:{}, kb:b, Yb:[]};\n a = a.U(b);\n a.U = b;\n b.root = a;\n c ? vb = a : d && (d.Ba = b, d.U && d.U.Yb.push(b));\n}\nfunction Ob(a, b, c) {\n var d = Db(a, {parent:!0}).node;\n a = $a(a);\n if (!a || \".\" === a || \"..\" === a) {\n throw new M(28);\n }\n var e = Jb(d, a);\n if (e) {\n throw new M(e);\n }\n if (!d.j.Aa) {\n throw new M(63);\n }\n return d.j.Aa(d, a, b, c);\n}\nfunction Pb(a) {\n return Ob(a, 16895, 0);\n}\nfunction Qb(a, b, c) {\n \"undefined\" == typeof c && (c = b, b = 438);\n Ob(a, b | 8192, c);\n}\nfunction Rb(a, b) {\n if (!cb(a)) {\n throw new M(44);\n }\n var c = Db(b, {parent:!0}).node;\n if (!c) {\n throw new M(44);\n }\n b = $a(b);\n var d = Jb(c, b);\n if (d) {\n throw new M(d);\n }\n if (!c.j.Ga) {\n throw new M(63);\n }\n c.j.Ga(c, b, a);\n}\nfunction Eb(a) {\n a = Db(a).node;\n if (!a) {\n throw new M(44);\n }\n if (!a.j.ma) {\n throw new M(28);\n }\n return cb(Fb(a.parent), a.j.ma(a));\n}\nfunction Sb(a, b, c) {\n if (\"\" === a) {\n throw new M(44);\n }\n if (\"string\" == typeof b) {\n var d = {r:0, \"r+\":2, w:577, \"w+\":578, a:1089, \"a+\":1090,}[b];\n if (\"undefined\" == typeof d) {\n throw Error(`Unknown file open mode: ${b}`);\n }\n b = d;\n }\n c = b & 64 ? (\"undefined\" == typeof c ? 438 : c) & 4095 | 32768 : 0;\n if (\"object\" == typeof a) {\n var e = a;\n } else {\n a = Ya(a);\n try {\n e = Db(a, {fb:!(b & 131072)}).node;\n } catch (f) {\n }\n }\n d = !1;\n if (b & 64) {\n if (e) {\n if (b & 128) {\n throw new M(20);\n }\n } else {\n e = Ob(a, c, 0), d = !0;\n }\n }\n if (!e) {\n throw new M(44);\n }\n 8192 === (e.mode & 61440) && (b &= -513);\n if (b & 65536 && 16384 !== (e.mode & 61440)) {\n throw new M(54);\n }\n if (!d && (c = e ? 40960 === (e.mode & 61440) ? 32 : 16384 === (e.mode & 61440) && (\"r\" !== Ib(b) || b & 512) ? 31 : Hb(e, Ib(b)) : 44)) {\n throw new M(c);\n }\n if (b & 512 && !d) {\n c = e;\n c = \"string\" == typeof c ? Db(c, {fb:!0}).node : c;\n if (!c.j.P) {\n throw new M(63);\n }\n if (16384 === (c.mode & 61440)) {\n throw new M(31);\n }\n if (32768 !== (c.mode & 61440)) {\n throw new M(28);\n }\n if (d = Hb(c, \"w\")) {\n throw new M(d);\n }\n c.j.P(c, {size:0, timestamp:Date.now()});\n }\n b &= -131713;\n e = Lb({node:e, path:Fb(e), flags:b, seekable:!0, position:0, m:e.m, mc:[], error:!1});\n e.m.open && e.m.open(e);\n !l.logReadFiles || b & 1 || (Tb ||= {}, a in Tb || (Tb[a] = 1));\n return e;\n}\nfunction Ub(a, b, c) {\n if (null === a.W) {\n throw new M(8);\n }\n if (!a.seekable || !a.m.aa) {\n throw new M(70);\n }\n if (0 != c && 1 != c && 2 != c) {\n throw new M(28);\n }\n a.position = a.m.aa(a, b, c);\n a.mc = [];\n}\nvar Vb;\nfunction Wb(a, b, c) {\n a = Ya(\"/dev/\" + a);\n var d = ub(!!b, !!c);\n Xb ||= 64;\n var e = Xb++ << 8 | 0;\n kb(e, {open(f) {\n f.seekable = !1;\n }, close() {\n c?.buffer?.length && c(10);\n }, read(f, g, k, m) {\n for (var n = 0, t = 0; t < m; t++) {\n try {\n var v = b();\n } catch (x) {\n throw new M(29);\n }\n if (void 0 === v && 0 === n) {\n throw new M(6);\n }\n if (null === v || void 0 === v) {\n break;\n }\n n++;\n g[k + t] = v;\n }\n n && (f.node.timestamp = Date.now());\n return n;\n }, write(f, g, k, m) {\n for (var n = 0; n < m; n++) {\n try {\n c(g[k + n]);\n } catch (t) {\n throw new M(29);\n }\n }\n m && (f.node.timestamp = Date.now());\n return n;\n }});\n Qb(a, d, e);\n}\nvar Xb, Yb = {}, Tb, Wa = void 0, Zb = (a, b) => Object.defineProperty(b, \"name\", {value:a}), $b = [], O = [], P, Q = a => {\n if (!a) {\n throw new P(\"Cannot use deleted val. handle = \" + a);\n }\n return O[a];\n}, ac = a => {\n switch(a) {\n case void 0:\n return 2;\n case null:\n return 4;\n case !0:\n return 6;\n case !1:\n return 8;\n default:\n const b = $b.pop() || O.length;\n O[b] = a;\n O[b + 1] = 1;\n return b;\n }\n}, bc = a => {\n var b = Error, c = Zb(a, function(d) {\n this.name = a;\n this.message = d;\n d = Error(d).stack;\n void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n c.prototype = Object.create(b.prototype);\n c.prototype.constructor = c;\n c.prototype.toString = function() {\n return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n };\n return c;\n}, cc, dc, R = a => {\n for (var b = \"\"; D[a];) {\n b += dc[D[a++]];\n }\n return b;\n}, ec = [], fc = () => {\n for (; ec.length;) {\n var a = ec.pop();\n a.g.ha = !1;\n a[\"delete\"]();\n }\n}, gc, hc = {}, ic = (a, b) => {\n if (void 0 === b) {\n throw new P(\"ptr should not be undefined\");\n }\n for (; a.B;) {\n b = a.oa(b), a = a.B;\n }\n return b;\n}, jc = {}, mc = a => {\n a = kc(a);\n var b = R(a);\n lc(a);\n return b;\n}, nc = (a, b) => {\n var c = jc[a];\n if (void 0 === c) {\n throw a = `${b} has unknown type ${mc(a)}`, new P(a);\n }\n return c;\n}, oc = () => {\n}, pc = !1, qc = (a, b, c) => {\n if (b === c) {\n return a;\n }\n if (void 0 === c.B) {\n return null;\n }\n a = qc(a, b, c.B);\n return null === a ? null : c.Ib(a);\n}, rc = {}, sc = (a, b) => {\n b = ic(a, b);\n return hc[b];\n}, tc, vc = (a, b) => {\n if (!b.u || !b.o) {\n throw new tc(\"makeClassHandle requires ptr and ptrType\");\n }\n if (!!b.J !== !!b.F) {\n throw new tc(\"Both smartPtrType and smartPtr must be specified\");\n }\n b.count = {value:1};\n return uc(Object.create(a, {g:{value:b, writable:!0,},}));\n}, uc = a => {\n if (\"undefined\" === typeof FinalizationRegistry) {\n return uc = b => b, a;\n }\n pc = new FinalizationRegistry(b => {\n b = b.g;\n --b.count.value;\n 0 === b.count.value && (b.F ? b.J.O(b.F) : b.u.i.O(b.o));\n });\n uc = b => {\n var c = b.g;\n c.F && pc.register(b, {g:c}, b);\n return b;\n };\n oc = b => {\n pc.unregister(b);\n };\n return uc(a);\n}, wc = {}, xc = a => {\n for (; a.length;) {\n var b = a.pop();\n a.pop()(b);\n }\n};\nfunction yc(a) {\n return this.fromWireType(K[a >> 2]);\n}\nvar zc = {}, Ac = {}, T = (a, b, c) => {\n function d(k) {\n k = c(k);\n if (k.length !== a.length) {\n throw new tc(\"Mismatched type converter count\");\n }\n for (var m = 0; m < a.length; ++m) {\n S(a[m], k[m]);\n }\n }\n a.forEach(function(k) {\n Ac[k] = b;\n });\n var e = Array(b.length), f = [], g = 0;\n b.forEach((k, m) => {\n jc.hasOwnProperty(k) ? e[m] = jc[k] : (f.push(k), zc.hasOwnProperty(k) || (zc[k] = []), zc[k].push(() => {\n e[m] = jc[k];\n ++g;\n g === f.length && d(e);\n }));\n });\n 0 === f.length && d(e);\n};\nfunction Bc(a, b, c = {}) {\n var d = b.name;\n if (!a) {\n throw new P(`type \"${d}\" must have a positive integer typeid pointer`);\n }\n if (jc.hasOwnProperty(a)) {\n if (c.Sb) {\n return;\n }\n throw new P(`Cannot register type '${d}' twice`);\n }\n jc[a] = b;\n delete Ac[a];\n zc.hasOwnProperty(a) && (b = zc[a], delete zc[a], b.forEach(e => e()));\n}\nfunction S(a, b, c = {}) {\n if (!(\"argPackAdvance\" in b)) {\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n }\n return Bc(a, b, c);\n}\nvar Cc = a => {\n throw new P(a.g.u.i.name + \" instance already deleted\");\n};\nfunction Dc() {\n}\nvar Ec = (a, b, c) => {\n if (void 0 === a[b].A) {\n var d = a[b];\n a[b] = function(...e) {\n if (!a[b].A.hasOwnProperty(e.length)) {\n throw new P(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].A})!`);\n }\n return a[b].A[e.length].apply(this, e);\n };\n a[b].A = [];\n a[b].A[d.ga] = d;\n }\n}, Fc = (a, b, c) => {\n if (l.hasOwnProperty(a)) {\n if (void 0 === c || void 0 !== l[a].A && void 0 !== l[a].A[c]) {\n throw new P(`Cannot register public name '${a}' twice`);\n }\n Ec(l, a, a);\n if (l.hasOwnProperty(c)) {\n throw new P(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);\n }\n l[a].A[c] = b;\n } else {\n l[a] = b, void 0 !== c && (l[a].Ic = c);\n }\n}, Gc = a => {\n if (void 0 === a) {\n return \"_unknown\";\n }\n a = a.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var b = a.charCodeAt(0);\n return 48 <= b && 57 >= b ? `_${a}` : a;\n};\nfunction Hc(a, b, c, d, e, f, g, k) {\n this.name = a;\n this.constructor = b;\n this.M = c;\n this.O = d;\n this.B = e;\n this.Nb = f;\n this.oa = g;\n this.Ib = k;\n this.ob = [];\n}\nvar Ic = (a, b, c) => {\n for (; b !== c;) {\n if (!b.oa) {\n throw new P(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);\n }\n a = b.oa(a);\n b = b.B;\n }\n return a;\n};\nfunction Jc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n return Ic(b.g.o, b.g.u.i, this.i);\n}\nfunction Lc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n if (this.wa) {\n var c = this.Ta();\n null !== a && a.push(this.O, c);\n return c;\n }\n return 0;\n }\n if (!b || !b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (!this.va && b.g.u.va) {\n throw new P(`Cannot convert argument of type ${b.g.J ? b.g.J.name : b.g.u.name} to parameter type ${this.name}`);\n }\n c = Ic(b.g.o, b.g.u.i, this.i);\n if (this.wa) {\n if (void 0 === b.g.F) {\n throw new P(\"Passing raw pointer to smart pointer is illegal\");\n }\n switch(this.fc) {\n case 0:\n if (b.g.J === this) {\n c = b.g.F;\n } else {\n throw new P(`Cannot convert argument of type ${b.g.J ? b.g.J.name : b.g.u.name} to parameter type ${this.name}`);\n }\n break;\n case 1:\n c = b.g.F;\n break;\n case 2:\n if (b.g.J === this) {\n c = b.g.F;\n } else {\n var d = b.clone();\n c = this.bc(c, ac(() => d[\"delete\"]()));\n null !== a && a.push(this.O, c);\n }\n break;\n default:\n throw new P(\"Unsupporting sharing policy\");\n }\n }\n return c;\n}\nfunction Mc(a, b) {\n if (null === b) {\n if (this.Ra) {\n throw new P(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!b.g) {\n throw new P(`Cannot pass \"${Kc(b)}\" as a ${this.name}`);\n }\n if (!b.g.o) {\n throw new P(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (b.g.u.va) {\n throw new P(`Cannot convert argument of type ${b.g.u.name} to parameter type ${this.name}`);\n }\n return Ic(b.g.o, b.g.u.i, this.i);\n}\nfunction Nc(a, b, c, d, e, f, g, k, m, n, t) {\n this.name = a;\n this.i = b;\n this.Ra = c;\n this.va = d;\n this.wa = e;\n this.ac = f;\n this.fc = g;\n this.qb = k;\n this.Ta = m;\n this.bc = n;\n this.O = t;\n e || void 0 !== b.B ? this.toWireType = Lc : (this.toWireType = d ? Jc : Mc, this.L = null);\n}\nvar Oc = (a, b, c) => {\n if (!l.hasOwnProperty(a)) {\n throw new tc(\"Replacing nonexistent public symbol\");\n }\n void 0 !== l[a].A && void 0 !== c ? l[a].A[c] = b : (l[a] = b, l[a].ga = c);\n}, Pc = [], Qc, Rc = a => {\n var b = Pc[a];\n b || (a >= Pc.length && (Pc.length = a + 1), Pc[a] = b = Qc.get(a));\n return b;\n}, Sc = (a, b, c = []) => {\n a.includes(\"j\") ? (a = a.replace(/p/g, \"i\"), b = (0,l[\"dynCall_\" + a])(b, ...c)) : b = Rc(b)(...c);\n return b;\n}, Tc = (a, b) => (...c) => Sc(a, b, c), U = (a, b) => {\n a = R(a);\n var c = a.includes(\"j\") ? Tc(a, b) : Rc(b);\n if (\"function\" != typeof c) {\n throw new P(`unknown function pointer with signature ${a}: ${b}`);\n }\n return c;\n}, Uc, Vc = (a, b) => {\n function c(f) {\n e[f] || jc[f] || (Ac[f] ? Ac[f].forEach(c) : (d.push(f), e[f] = !0));\n }\n var d = [], e = {};\n b.forEach(c);\n throw new Uc(`${a}: ` + d.map(mc).join([\", \"]));\n};\nfunction Wc(a) {\n for (var b = 1; b < a.length; ++b) {\n if (null !== a[b] && void 0 === a[b].L) {\n return !0;\n }\n }\n return !1;\n}\nfunction Xc(a, b, c, d, e) {\n var f = b.length;\n if (2 > f) {\n throw new P(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n }\n var g = null !== b[1] && null !== c, k = Wc(b), m = \"void\" !== b[0].name, n = f - 2, t = Array(n), v = [], x = [];\n return Zb(a, function(...p) {\n if (p.length !== n) {\n throw new P(`function ${a} called with ${p.length} arguments, expected ${n}`);\n }\n x.length = 0;\n v.length = g ? 2 : 1;\n v[0] = e;\n if (g) {\n var r = b[1].toWireType(x, this);\n v[1] = r;\n }\n for (var u = 0; u < n; ++u) {\n t[u] = b[u + 2].toWireType(x, p[u]), v.push(t[u]);\n }\n p = d(...v);\n if (k) {\n xc(x);\n } else {\n for (u = g ? 1 : 2; u < b.length; u++) {\n var y = 1 === u ? r : t[u - 2];\n null !== b[u].L && b[u].L(y);\n }\n }\n r = m ? b[0].fromWireType(p) : void 0;\n return r;\n });\n}\nvar Yc = (a, b) => {\n for (var c = [], d = 0; d < a; d++) {\n c.push(K[b + 4 * d >> 2]);\n }\n return c;\n}, Zc = a => {\n a = a.trim();\n const b = a.indexOf(\"(\");\n return -1 !== b ? a.substr(0, b) : a;\n}, $c = (a, b, c) => {\n if (!(a instanceof Object)) {\n throw new P(`${c} with invalid \"this\": ${a}`);\n }\n if (!(a instanceof b.i.constructor)) {\n throw new P(`${c} incompatible with \"this\" of type ${a.constructor.name}`);\n }\n if (!a.g.o) {\n throw new P(`cannot call emscripten binding method ${c} on deleted object`);\n }\n return Ic(a.g.o, a.g.u.i, b.i);\n}, ad = a => {\n 9 < a && 0 === --O[a + 1] && (O[a] = void 0, $b.push(a));\n}, bd = {name:\"emscripten::val\", fromWireType:a => {\n var b = Q(a);\n ad(a);\n return b;\n}, toWireType:(a, b) => ac(b), argPackAdvance:8, readValueFromPointer:yc, L:null,}, cd = (a, b, c) => {\n switch(b) {\n case 1:\n return c ? function(d) {\n return this.fromWireType(B[d]);\n } : function(d) {\n return this.fromWireType(D[d]);\n };\n case 2:\n return c ? function(d) {\n return this.fromWireType(E[d >> 1]);\n } : function(d) {\n return this.fromWireType(wa[d >> 1]);\n };\n case 4:\n return c ? function(d) {\n return this.fromWireType(G[d >> 2]);\n } : function(d) {\n return this.fromWireType(K[d >> 2]);\n };\n default:\n throw new TypeError(`invalid integer width (${b}): ${a}`);\n }\n}, Kc = a => {\n if (null === a) {\n return \"null\";\n }\n var b = typeof a;\n return \"object\" === b || \"array\" === b || \"function\" === b ? a.toString() : \"\" + a;\n}, dd = (a, b) => {\n switch(b) {\n case 4:\n return function(c) {\n return this.fromWireType(xa[c >> 2]);\n };\n case 8:\n return function(c) {\n return this.fromWireType(ya[c >> 3]);\n };\n default:\n throw new TypeError(`invalid float width (${b}): ${a}`);\n }\n}, ed = (a, b, c) => {\n switch(b) {\n case 1:\n return c ? d => B[d] : d => D[d];\n case 2:\n return c ? d => E[d >> 1] : d => wa[d >> 1];\n case 4:\n return c ? d => G[d >> 2] : d => K[d >> 2];\n default:\n throw new TypeError(`invalid integer width (${b}): ${a}`);\n }\n}, fd = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, gd = (a, b) => {\n var c = a >> 1;\n for (var d = c + b / 2; !(c >= d) && wa[c];) {\n ++c;\n }\n c <<= 1;\n if (32 < c - a && fd) {\n return fd.decode(D.subarray(a, c));\n }\n c = \"\";\n for (d = 0; !(d >= b / 2); ++d) {\n var e = E[a + 2 * d >> 1];\n if (0 == e) {\n break;\n }\n c += String.fromCharCode(e);\n }\n return c;\n}, hd = (a, b, c) => {\n c ??= 2147483647;\n if (2 > c) {\n return 0;\n }\n c -= 2;\n var d = b;\n c = c < 2 * a.length ? c / 2 : a.length;\n for (var e = 0; e < c; ++e) {\n E[b >> 1] = a.charCodeAt(e), b += 2;\n }\n E[b >> 1] = 0;\n return b - d;\n}, jd = a => 2 * a.length, kd = (a, b) => {\n for (var c = 0, d = \"\"; !(c >= b / 4);) {\n var e = G[a + 4 * c >> 2];\n if (0 == e) {\n break;\n }\n ++c;\n 65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n }\n return d;\n}, ld = (a, b, c) => {\n c ??= 2147483647;\n if (4 > c) {\n return 0;\n }\n var d = b;\n c = d + c - 4;\n for (var e = 0; e < a.length; ++e) {\n var f = a.charCodeAt(e);\n if (55296 <= f && 57343 >= f) {\n var g = a.charCodeAt(++e);\n f = 65536 + ((f & 1023) << 10) | g & 1023;\n }\n G[b >> 2] = f;\n b += 4;\n if (b + 4 > c) {\n break;\n }\n }\n G[b >> 2] = 0;\n return b - d;\n}, md = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 55296 <= d && 57343 >= d && ++c;\n b += 4;\n }\n return b;\n}, nd = (a, b, c) => {\n var d = [];\n a = a.toWireType(d, c);\n d.length && (K[b >> 2] = ac(d));\n return a;\n}, od = {}, pd = a => {\n var b = od[a];\n return void 0 === b ? R(a) : b;\n}, qd = [], rd = a => {\n var b = qd.length;\n qd.push(a);\n return b;\n}, sd = (a, b) => {\n for (var c = Array(a), d = 0; d < a; ++d) {\n c[d] = nc(K[b + 4 * d >> 2], \"parameter \" + d);\n }\n return c;\n}, td = Reflect.construct, ud = [], vd = a => {\n a.yc = a.getExtension(\"WEBGL_draw_instanced_base_vertex_base_instance\");\n}, wd = a => {\n a.Fc = a.getExtension(\"WEBGL_multi_draw_instanced_base_vertex_base_instance\");\n}, xd = a => {\n var b = \"EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw\".split(\" \");\n return (a.getSupportedExtensions() || []).filter(c => b.includes(c));\n}, yd = 1, zd = [], V = [], Ad = [], Bd = [], Cd = [], Dd = [], Ed = [], w = [], Fd = {}, Gd = 4, Hd = 0, Id = a => {\n for (var b = yd++, c = a.length; c < b; c++) {\n a[c] = null;\n }\n return b;\n}, Jd = (a, b, c, d) => {\n for (var e = 0; e < a; e++) {\n var f = W[c](), g = f && Id(d);\n f ? (f.name = g, d[g] = f) : X ||= 1282;\n G[b + 4 * e >> 2] = g;\n }\n}, ka = (a, b) => {\n var c = Id(w), d = {handle:c, attributes:b, version:b.Ec, C:a};\n a.canvas && (a.canvas.zb = d);\n w[c] = d;\n (\"undefined\" == typeof b.Jb || b.Jb) && Kd(d);\n return c;\n}, la = a => {\n q = w[a];\n l.wc = W = q?.C;\n return !(a && !W);\n}, Kd = a => {\n a ||= q;\n if (!a.Tb) {\n a.Tb = !0;\n var b = a.C;\n vd(b);\n wd(b);\n 2 <= a.version && (b.cb = b.getExtension(\"EXT_disjoint_timer_query_webgl2\"));\n if (2 > a.version || !b.cb) {\n b.cb = b.getExtension(\"EXT_disjoint_timer_query\");\n }\n b.Zb = b.getExtension(\"WEBGL_multi_draw\");\n xd(b).forEach(c => {\n c.includes(\"lose_context\") || c.includes(\"debug\") || b.getExtension(c);\n });\n }\n}, X, q, Ld = {}, Nd = () => {\n if (!Md) {\n var a = {USER:\"web_user\", LOGNAME:\"web_user\", PATH:\"/\", PWD:\"/\", HOME:\"/home/web_user\", LANG:(\"object\" == typeof navigator && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _:na || \"./this.program\"}, b;\n for (b in Ld) {\n void 0 === Ld[b] ? delete a[b] : a[b] = Ld[b];\n }\n var c = [];\n for (b in a) {\n c.push(`${b}=${a[b]}`);\n }\n Md = c;\n }\n return Md;\n}, Md, Od = [];\nfunction Pd() {\n var a = xd(W);\n return a = a.concat(a.map(b => \"GL_\" + b));\n}\nvar Qd = (a, b) => {\n if (b) {\n var c = void 0;\n switch(a) {\n case 36346:\n c = 1;\n break;\n case 36344:\n return;\n case 34814:\n case 36345:\n c = 0;\n break;\n case 34466:\n var d = W.getParameter(34467);\n c = d ? d.length : 0;\n break;\n case 33309:\n if (2 > q.version) {\n X ||= 1282;\n return;\n }\n c = Pd().length;\n break;\n case 33307:\n case 33308:\n if (2 > q.version) {\n X ||= 1280;\n return;\n }\n c = 33307 == a ? 3 : 0;\n }\n if (void 0 === c) {\n switch(d = W.getParameter(a), typeof d) {\n case \"number\":\n c = d;\n break;\n case \"boolean\":\n c = d ? 1 : 0;\n break;\n case \"string\":\n X ||= 1280;\n return;\n case \"object\":\n if (null === d) {\n switch(a) {\n case 34964:\n case 35725:\n case 34965:\n case 36006:\n case 36007:\n case 32873:\n case 34229:\n case 36662:\n case 36663:\n case 35053:\n case 35055:\n case 36010:\n case 35097:\n case 35869:\n case 32874:\n case 36389:\n case 35983:\n case 35368:\n case 34068:\n c = 0;\n break;\n default:\n X ||= 1280;\n return;\n }\n } else {\n if (d instanceof Float32Array || d instanceof Uint32Array || d instanceof Int32Array || d instanceof Array) {\n for (a = 0; a < d.length; ++a) {\n G[b + 4 * a >> 2] = d[a];\n }\n return;\n }\n try {\n c = d.name | 0;\n } catch (e) {\n X ||= 1280;\n sa(`GL_INVALID_ENUM in glGet${0}v: Unknown object returned from WebGL getParameter(${a})! (error: ${e})`);\n return;\n }\n }\n break;\n default:\n X ||= 1280;\n sa(`GL_INVALID_ENUM in glGet${0}v: Native code calling glGet${0}v(${a}) and it returns ${d} of type ${typeof d}!`);\n return;\n }\n }\n G[b >> 2] = c;\n } else {\n X ||= 1281;\n }\n}, Sd = a => {\n var b = fb(a) + 1, c = Rd(b);\n c && gb(a, D, c, b);\n return c;\n}, Td = a => \"]\" == a.slice(-1) && a.lastIndexOf(\"[\"), Ud = a => {\n a -= 5120;\n return 0 == a ? B : 1 == a ? D : 2 == a ? E : 4 == a ? G : 6 == a ? xa : 5 == a || 28922 == a || 28520 == a || 30779 == a || 30782 == a ? K : wa;\n}, Vd = a => 0 === a % 4 && (0 !== a % 100 || 0 === a % 400), Wd = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Xd = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Yd = (a, b, c, d) => {\n function e(p, r, u) {\n for (p = \"number\" == typeof p ? p.toString() : p || \"\"; p.length < r;) {\n p = u[0] + p;\n }\n return p;\n }\n function f(p, r) {\n return e(p, r, \"0\");\n }\n function g(p, r) {\n function u(z) {\n return 0 > z ? -1 : 0 < z ? 1 : 0;\n }\n var y;\n 0 === (y = u(p.getFullYear() - r.getFullYear())) && 0 === (y = u(p.getMonth() - r.getMonth())) && (y = u(p.getDate() - r.getDate()));\n return y;\n }\n function k(p) {\n switch(p.getDay()) {\n case 0:\n return new Date(p.getFullYear() - 1, 11, 29);\n case 1:\n return p;\n case 2:\n return new Date(p.getFullYear(), 0, 3);\n case 3:\n return new Date(p.getFullYear(), 0, 2);\n case 4:\n return new Date(p.getFullYear(), 0, 1);\n case 5:\n return new Date(p.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(p.getFullYear() - 1, 11, 30);\n }\n }\n function m(p) {\n var r = p.ca;\n for (p = new Date((new Date(p.da + 1900, 0, 1)).getTime()); 0 < r;) {\n var u = p.getMonth(), y = (Vd(p.getFullYear()) ? Wd : Xd)[u];\n if (r > y - p.getDate()) {\n r -= y - p.getDate() + 1, p.setDate(1), 11 > u ? p.setMonth(u + 1) : (p.setMonth(0), p.setFullYear(p.getFullYear() + 1));\n } else {\n p.setDate(p.getDate() + r);\n break;\n }\n }\n u = new Date(p.getFullYear() + 1, 0, 4);\n r = k(new Date(p.getFullYear(), 0, 4));\n u = k(u);\n return 0 >= g(r, p) ? 0 >= g(u, p) ? p.getFullYear() + 1 : p.getFullYear() : p.getFullYear() - 1;\n }\n var n = K[d + 40 >> 2];\n d = {jc:G[d >> 2], ic:G[d + 4 >> 2], Ha:G[d + 8 >> 2], Va:G[d + 12 >> 2], Ia:G[d + 16 >> 2], da:G[d + 20 >> 2], R:G[d + 24 >> 2], ca:G[d + 28 >> 2], Lc:G[d + 32 >> 2], hc:G[d + 36 >> 2], kc:n ? n ? L(D, n) : \"\" : \"\"};\n c = c ? L(D, c) : \"\";\n n = {\"%c\":\"%a %b %d %H:%M:%S %Y\", \"%D\":\"%m/%d/%y\", \"%F\":\"%Y-%m-%d\", \"%h\":\"%b\", \"%r\":\"%I:%M:%S %p\", \"%R\":\"%H:%M\", \"%T\":\"%H:%M:%S\", \"%x\":\"%m/%d/%y\", \"%X\":\"%H:%M:%S\", \"%Ec\":\"%c\", \"%EC\":\"%C\", \"%Ex\":\"%m/%d/%y\", \"%EX\":\"%H:%M:%S\", \"%Ey\":\"%y\", \"%EY\":\"%Y\", \"%Od\":\"%d\", \"%Oe\":\"%e\", \"%OH\":\"%H\", \"%OI\":\"%I\", \"%Om\":\"%m\", \"%OM\":\"%M\", \"%OS\":\"%S\", \"%Ou\":\"%u\", \"%OU\":\"%U\", \"%OV\":\"%V\", \"%Ow\":\"%w\", \"%OW\":\"%W\", \"%Oy\":\"%y\",};\n for (var t in n) {\n c = c.replace(new RegExp(t, \"g\"), n[t]);\n }\n var v = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"), x = \"January February March April May June July August September October November December\".split(\" \");\n n = {\"%a\":p => v[p.R].substring(0, 3), \"%A\":p => v[p.R], \"%b\":p => x[p.Ia].substring(0, 3), \"%B\":p => x[p.Ia], \"%C\":p => f((p.da + 1900) / 100 | 0, 2), \"%d\":p => f(p.Va, 2), \"%e\":p => e(p.Va, 2, \" \"), \"%g\":p => m(p).toString().substring(2), \"%G\":m, \"%H\":p => f(p.Ha, 2), \"%I\":p => {\n p = p.Ha;\n 0 == p ? p = 12 : 12 < p && (p -= 12);\n return f(p, 2);\n }, \"%j\":p => {\n for (var r = 0, u = 0; u <= p.Ia - 1; r += (Vd(p.da + 1900) ? Wd : Xd)[u++]) {\n }\n return f(p.Va + r, 3);\n }, \"%m\":p => f(p.Ia + 1, 2), \"%M\":p => f(p.ic, 2), \"%n\":() => \"\\n\", \"%p\":p => 0 <= p.Ha && 12 > p.Ha ? \"AM\" : \"PM\", \"%S\":p => f(p.jc, 2), \"%t\":() => \"\\t\", \"%u\":p => p.R || 7, \"%U\":p => f(Math.floor((p.ca + 7 - p.R) / 7), 2), \"%V\":p => {\n var r = Math.floor((p.ca + 7 - (p.R + 6) % 7) / 7);\n 2 >= (p.R + 371 - p.ca - 2) % 7 && r++;\n if (r) {\n 53 == r && (u = (p.R + 371 - p.ca) % 7, 4 == u || 3 == u && Vd(p.da) || (r = 1));\n } else {\n r = 52;\n var u = (p.R + 7 - p.ca - 1) % 7;\n (4 == u || 5 == u && Vd(p.da % 400 - 1)) && r++;\n }\n return f(r, 2);\n }, \"%w\":p => p.R, \"%W\":p => f(Math.floor((p.ca + 7 - (p.R + 6) % 7) / 7), 2), \"%y\":p => (p.da + 1900).toString().substring(2), \"%Y\":p => p.da + 1900, \"%z\":p => {\n p = p.hc;\n var r = 0 <= p;\n p = Math.abs(p) / 60;\n return (r ? \"+\" : \"-\") + String(\"0000\" + (p / 60 * 100 + p % 60)).slice(-4);\n }, \"%Z\":p => p.kc, \"%%\":() => \"%\"};\n c = c.replace(/%%/g, \"\\x00\\x00\");\n for (t in n) {\n c.includes(t) && (c = c.replace(new RegExp(t, \"g\"), n[t](d)));\n }\n c = c.replace(/\\0\\0/g, \"%\");\n t = hb(c, !1);\n if (t.length > b) {\n return 0;\n }\n B.set(t, a);\n return t.length - 1;\n};\n[44].forEach(a => {\n sb[a] = new M(a);\n sb[a].stack = \"<generic error, no stack>\";\n});\nzb = Array(4096);\nNb(N, \"/\");\nPb(\"/tmp\");\nPb(\"/home\");\nPb(\"/home/web_user\");\n(function() {\n Pb(\"/dev\");\n kb(259, {read:() => 0, write:(d, e, f, g) => g,});\n Qb(\"/dev/null\", 259);\n jb(1280, nb);\n jb(1536, ob);\n Qb(\"/dev/tty\", 1280);\n Qb(\"/dev/tty1\", 1536);\n var a = new Uint8Array(1024), b = 0, c = () => {\n 0 === b && (b = bb(a).byteLength);\n return a[--b];\n };\n Wb(\"random\", c);\n Wb(\"urandom\", c);\n Pb(\"/dev/shm\");\n Pb(\"/dev/shm/tmp\");\n})();\n(function() {\n Pb(\"/proc\");\n var a = Pb(\"/proc/self\");\n Pb(\"/proc/self/fd\");\n Nb({U() {\n var b = rb(a, \"fd\", 16895, 73);\n b.j = {la(c, d) {\n var e = Kb(+d);\n c = {parent:null, U:{kb:\"fake\"}, j:{ma:() => e.path},};\n return c.parent = c;\n }};\n return b;\n }}, \"/proc/self/fd\");\n})();\nP = l.BindingError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"BindingError\";\n }\n};\nO.push(0, 1, void 0, 1, null, 1, !0, 1, !1, 1,);\nl.count_emval_handles = () => O.length / 2 - 5 - $b.length;\ncc = l.PureVirtualError = bc(\"PureVirtualError\");\nfor (var Zd = Array(256), $d = 0; 256 > $d; ++$d) {\n Zd[$d] = String.fromCharCode($d);\n}\ndc = Zd;\nl.getInheritedInstanceCount = () => Object.keys(hc).length;\nl.getLiveInheritedInstances = () => {\n var a = [], b;\n for (b in hc) {\n hc.hasOwnProperty(b) && a.push(hc[b]);\n }\n return a;\n};\nl.flushPendingDeletes = fc;\nl.setDelayFunction = a => {\n gc = a;\n ec.length && gc && gc(fc);\n};\ntc = l.InternalError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"InternalError\";\n }\n};\nObject.assign(Dc.prototype, {isAliasOf:function(a) {\n if (!(this instanceof Dc && a instanceof Dc)) {\n return !1;\n }\n var b = this.g.u.i, c = this.g.o;\n a.g = a.g;\n var d = a.g.u.i;\n for (a = a.g.o; b.B;) {\n c = b.oa(c), b = b.B;\n }\n for (; d.B;) {\n a = d.oa(a), d = d.B;\n }\n return b === d && c === a;\n}, clone:function() {\n this.g.o || Cc(this);\n if (this.g.ja) {\n return this.g.count.value += 1, this;\n }\n var a = uc, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.g;\n a = a(c.call(b, d, {g:{value:{count:e.count, ha:e.ha, ja:e.ja, o:e.o, u:e.u, F:e.F, J:e.J,},}}));\n a.g.count.value += 1;\n a.g.ha = !1;\n return a;\n}, [\"delete\"]() {\n this.g.o || Cc(this);\n if (this.g.ha && !this.g.ja) {\n throw new P(\"Object already scheduled for deletion\");\n }\n oc(this);\n var a = this.g;\n --a.count.value;\n 0 === a.count.value && (a.F ? a.J.O(a.F) : a.u.i.O(a.o));\n this.g.ja || (this.g.F = void 0, this.g.o = void 0);\n}, isDeleted:function() {\n return !this.g.o;\n}, deleteLater:function() {\n this.g.o || Cc(this);\n if (this.g.ha && !this.g.ja) {\n throw new P(\"Object already scheduled for deletion\");\n }\n ec.push(this);\n 1 === ec.length && gc && gc(fc);\n this.g.ha = !0;\n return this;\n},});\nObject.assign(Nc.prototype, {Ob(a) {\n this.qb && (a = this.qb(a));\n return a;\n}, bb(a) {\n this.O?.(a);\n}, argPackAdvance:8, readValueFromPointer:yc, fromWireType:function(a) {\n function b() {\n return this.wa ? vc(this.i.M, {u:this.ac, o:c, J:this, F:a,}) : vc(this.i.M, {u:this, o:a,});\n }\n var c = this.Ob(a);\n if (!c) {\n return this.bb(a), null;\n }\n var d = sc(this.i, c);\n if (void 0 !== d) {\n if (0 === d.g.count.value) {\n return d.g.o = c, d.g.F = a, d.clone();\n }\n d = d.clone();\n this.bb(a);\n return d;\n }\n d = this.i.Nb(c);\n d = rc[d];\n if (!d) {\n return b.call(this);\n }\n d = this.va ? d.Gb : d.pointerType;\n var e = qc(c, this.i, d.i);\n return null === e ? b.call(this) : this.wa ? vc(d.i.M, {u:d, o:e, J:this, F:a,}) : vc(d.i.M, {u:d, o:e,});\n},});\nUc = l.UnboundTypeError = bc(\"UnboundTypeError\");\nfor (var W, ae = 0; 32 > ae; ++ae) {\n Od.push(Array(ae));\n}\nvar be = {__syscall_fcntl64:function(a, b, c) {\n Wa = c;\n try {\n var d = Kb(a);\n switch(b) {\n case 0:\n var e = Va();\n if (0 > e) {\n break;\n }\n for (; xb[e];) {\n e++;\n }\n return Mb(d, e).W;\n case 1:\n case 2:\n return 0;\n case 3:\n return d.flags;\n case 4:\n return e = Va(), d.flags |= e, 0;\n case 12:\n return e = Va(), E[e + 0 >> 1] = 2, 0;\n case 13:\n case 14:\n return 0;\n }\n return -28;\n } catch (f) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== f.name) {\n throw f;\n }\n return -f.$;\n }\n}, __syscall_ioctl:function(a, b, c) {\n Wa = c;\n try {\n var d = Kb(a);\n switch(b) {\n case 21509:\n return d.s ? 0 : -59;\n case 21505:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.Vb) {\n a = [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];\n var e = Va();\n G[e >> 2] = 25856;\n G[e + 4 >> 2] = 5;\n G[e + 8 >> 2] = 191;\n G[e + 12 >> 2] = 35387;\n for (var f = 0; 32 > f; f++) {\n B[e + f + 17] = a[f] || 0;\n }\n }\n return 0;\n case 21510:\n case 21511:\n case 21512:\n return d.s ? 0 : -59;\n case 21506:\n case 21507:\n case 21508:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.Wb) {\n for (e = Va(), a = [], f = 0; 32 > f; f++) {\n a.push(B[e + f + 17]);\n }\n }\n return 0;\n case 21519:\n if (!d.s) {\n return -59;\n }\n e = Va();\n return G[e >> 2] = 0;\n case 21520:\n return d.s ? -28 : -59;\n case 21531:\n e = Va();\n if (!d.m.Ub) {\n throw new M(59);\n }\n return d.m.Ub(d, b, e);\n case 21523:\n if (!d.s) {\n return -59;\n }\n d.s.V.Xb && (f = [24, 80], e = Va(), E[e >> 1] = f[0], E[e + 2 >> 1] = f[1]);\n return 0;\n case 21524:\n return d.s ? 0 : -59;\n case 21515:\n return d.s ? 0 : -59;\n default:\n return -28;\n }\n } catch (g) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return -g.$;\n }\n}, __syscall_openat:function(a, b, c, d) {\n Wa = d;\n try {\n b = b ? L(D, b) : \"\";\n var e = b;\n if (\"/\" === e.charAt(0)) {\n b = e;\n } else {\n var f = -100 === a ? \"/\" : Kb(a).path;\n if (0 == e.length) {\n throw new M(44);\n }\n b = Ya(f + \"/\" + e);\n }\n var g = d ? Va() : 0;\n return Sb(b, c, g).W;\n } catch (k) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== k.name) {\n throw k;\n }\n return -k.$;\n }\n}, _abort_js:() => {\n Ha(\"\");\n}, _embind_create_inheriting_constructor:(a, b, c) => {\n a = R(a);\n b = nc(b, \"wrapper\");\n c = Q(c);\n var d = b.i, e = d.M, f = d.B.M, g = d.B.constructor;\n a = Zb(a, function(...k) {\n d.B.ob.forEach(function(m) {\n if (this[m] === f[m]) {\n throw new cc(`Pure virtual function ${m} must be implemented in JavaScript`);\n }\n }.bind(this));\n Object.defineProperty(this, \"__parent\", {value:e});\n this.__construct(...k);\n });\n e.__construct = function(...k) {\n if (this === e) {\n throw new P(\"Pass correct 'this' to __construct\");\n }\n k = g.implement(this, ...k);\n oc(k);\n var m = k.g;\n k.notifyOnDestruction();\n m.ja = !0;\n Object.defineProperties(this, {g:{value:m}});\n uc(this);\n k = m.o;\n k = ic(d, k);\n if (hc.hasOwnProperty(k)) {\n throw new P(`Tried to register registered instance: ${k}`);\n }\n hc[k] = this;\n };\n e.__destruct = function() {\n if (this === e) {\n throw new P(\"Pass correct 'this' to __destruct\");\n }\n oc(this);\n var k = this.g.o;\n k = ic(d, k);\n if (hc.hasOwnProperty(k)) {\n delete hc[k];\n } else {\n throw new P(`Tried to unregister unregistered instance: ${k}`);\n }\n };\n a.prototype = Object.create(e);\n Object.assign(a.prototype, c);\n return ac(a);\n}, _embind_finalize_value_object:a => {\n var b = wc[a];\n delete wc[a];\n var c = b.Ta, d = b.O, e = b.eb, f = e.map(g => g.Rb).concat(e.map(g => g.dc));\n T([a], f, g => {\n var k = {};\n e.forEach((m, n) => {\n var t = g[n], v = m.Pb, x = m.Qb, p = g[n + e.length], r = m.cc, u = m.ec;\n k[m.Lb] = {read:y => t.fromWireType(v(x, y)), write:(y, z) => {\n var C = [];\n r(u, y, p.toWireType(C, z));\n xc(C);\n }};\n });\n return [{name:b.name, fromWireType:m => {\n var n = {}, t;\n for (t in k) {\n n[t] = k[t].read(m);\n }\n d(m);\n return n;\n }, toWireType:(m, n) => {\n for (var t in k) {\n if (!(t in n)) {\n throw new TypeError(`Missing field: \"${t}\"`);\n }\n }\n var v = c();\n for (t in k) {\n k[t].write(v, n[t]);\n }\n null !== m && m.push(d, v);\n return v;\n }, argPackAdvance:8, readValueFromPointer:yc, L:d,}];\n });\n}, _embind_register_bigint:() => {\n}, _embind_register_bool:(a, b, c, d) => {\n b = R(b);\n S(a, {name:b, fromWireType:function(e) {\n return !!e;\n }, toWireType:function(e, f) {\n return f ? c : d;\n }, argPackAdvance:8, readValueFromPointer:function(e) {\n return this.fromWireType(D[e]);\n }, L:null,});\n}, _embind_register_class:(a, b, c, d, e, f, g, k, m, n, t, v, x) => {\n t = R(t);\n f = U(e, f);\n k &&= U(g, k);\n n &&= U(m, n);\n x = U(v, x);\n var p = Gc(t);\n Fc(p, function() {\n Vc(`Cannot construct ${t} due to unbound types`, [d]);\n });\n T([a, b, c], d ? [d] : [], r => {\n r = r[0];\n if (d) {\n var u = r.i;\n var y = u.M;\n } else {\n y = Dc.prototype;\n }\n r = Zb(t, function(...I) {\n if (Object.getPrototypeOf(this) !== z) {\n throw new P(\"Use 'new' to construct \" + t);\n }\n if (void 0 === C.Z) {\n throw new P(t + \" has no accessible constructor\");\n }\n var J = C.Z[I.length];\n if (void 0 === J) {\n throw new P(`Tried to invoke ctor of ${t} with invalid number of parameters (${I.length}) - expected (${Object.keys(C.Z).toString()}) parameters instead!`);\n }\n return J.apply(this, I);\n });\n var z = Object.create(y, {constructor:{value:r},});\n r.prototype = z;\n var C = new Hc(t, r, z, x, u, f, k, n);\n if (C.B) {\n var F;\n (F = C.B).pa ?? (F.pa = []);\n C.B.pa.push(C);\n }\n u = new Nc(t, C, !0, !1, !1);\n F = new Nc(t + \"*\", C, !1, !1, !1);\n y = new Nc(t + \" const*\", C, !1, !0, !1);\n rc[a] = {pointerType:F, Gb:y};\n Oc(p, r);\n return [u, F, y];\n });\n}, _embind_register_class_class_function:(a, b, c, d, e, f, g) => {\n var k = Yc(c, d);\n b = R(b);\n b = Zc(b);\n f = U(e, f);\n T([], [a], m => {\n function n() {\n Vc(`Cannot call ${t} due to unbound types`, k);\n }\n m = m[0];\n var t = `${m.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n var v = m.i.constructor;\n void 0 === v[b] ? (n.ga = c - 1, v[b] = n) : (Ec(v, b, t), v[b].A[c - 1] = n);\n T([], k, x => {\n x = Xc(t, [x[0], null].concat(x.slice(1)), null, f, g);\n void 0 === v[b].A ? (x.ga = c - 1, v[b] = x) : v[b].A[c - 1] = x;\n if (m.i.pa) {\n for (const p of m.i.pa) {\n p.constructor.hasOwnProperty(b) || (p.constructor[b] = x);\n }\n }\n return [];\n });\n return [];\n });\n}, _embind_register_class_class_property:(a, b, c, d, e, f, g, k) => {\n b = R(b);\n f = U(e, f);\n T([], [a], m => {\n m = m[0];\n var n = `${m.name}.${b}`, t = {get() {\n Vc(`Cannot access ${n} due to unbound types`, [c]);\n }, enumerable:!0, configurable:!0};\n t.set = k ? () => {\n Vc(`Cannot access ${n} due to unbound types`, [c]);\n } : () => {\n throw new P(`${n} is a read-only property`);\n };\n Object.defineProperty(m.i.constructor, b, t);\n T([], [c], v => {\n v = v[0];\n var x = {get() {\n return v.fromWireType(f(d));\n }, enumerable:!0};\n k && (k = U(g, k), x.set = p => {\n var r = [];\n k(d, v.toWireType(r, p));\n xc(r);\n });\n Object.defineProperty(m.i.constructor, b, x);\n return [];\n });\n return [];\n });\n}, _embind_register_class_constructor:(a, b, c, d, e, f) => {\n var g = Yc(b, c);\n e = U(d, e);\n T([], [a], k => {\n k = k[0];\n var m = `constructor ${k.name}`;\n void 0 === k.i.Z && (k.i.Z = []);\n if (void 0 !== k.i.Z[b - 1]) {\n throw new P(`Cannot register multiple constructors with identical number of parameters (${b - 1}) for class '${k.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n }\n k.i.Z[b - 1] = () => {\n Vc(`Cannot construct ${k.name} due to unbound types`, g);\n };\n T([], g, n => {\n n.splice(1, 0, null);\n k.i.Z[b - 1] = Xc(m, n, null, e, f);\n return [];\n });\n return [];\n });\n}, _embind_register_class_function:(a, b, c, d, e, f, g, k) => {\n var m = Yc(c, d);\n b = R(b);\n b = Zc(b);\n f = U(e, f);\n T([], [a], n => {\n function t() {\n Vc(`Cannot call ${v} due to unbound types`, m);\n }\n n = n[0];\n var v = `${n.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n k && n.i.ob.push(b);\n var x = n.i.M, p = x[b];\n void 0 === p || void 0 === p.A && p.className !== n.name && p.ga === c - 2 ? (t.ga = c - 2, t.className = n.name, x[b] = t) : (Ec(x, b, v), x[b].A[c - 2] = t);\n T([], m, r => {\n r = Xc(v, r, n, f, g);\n void 0 === x[b].A ? (r.ga = c - 2, x[b] = r) : x[b].A[c - 2] = r;\n return [];\n });\n return [];\n });\n}, _embind_register_class_property:(a, b, c, d, e, f, g, k, m, n) => {\n b = R(b);\n e = U(d, e);\n T([], [a], t => {\n t = t[0];\n var v = `${t.name}.${b}`, x = {get() {\n Vc(`Cannot access ${v} due to unbound types`, [c, g]);\n }, enumerable:!0, configurable:!0};\n x.set = m ? () => Vc(`Cannot access ${v} due to unbound types`, [c, g]) : () => {\n throw new P(v + \" is a read-only property\");\n };\n Object.defineProperty(t.i.M, b, x);\n T([], m ? [c, g] : [c], p => {\n var r = p[0], u = {get() {\n var z = $c(this, t, v + \" getter\");\n return r.fromWireType(e(f, z));\n }, enumerable:!0};\n if (m) {\n m = U(k, m);\n var y = p[1];\n u.set = function(z) {\n var C = $c(this, t, v + \" setter\"), F = [];\n m(n, C, y.toWireType(F, z));\n xc(F);\n };\n }\n Object.defineProperty(t.i.M, b, u);\n return [];\n });\n return [];\n });\n}, _embind_register_emval:a => S(a, bd), _embind_register_enum:(a, b, c, d) => {\n function e() {\n }\n b = R(b);\n e.values = {};\n S(a, {name:b, constructor:e, fromWireType:function(f) {\n return this.constructor.values[f];\n }, toWireType:(f, g) => g.value, argPackAdvance:8, readValueFromPointer:cd(b, c, d), L:null,});\n Fc(b, e);\n}, _embind_register_enum_value:(a, b, c) => {\n var d = nc(a, \"enum\");\n b = R(b);\n a = d.constructor;\n d = Object.create(d.constructor.prototype, {value:{value:c}, constructor:{value:Zb(`${d.name}_${b}`, function() {\n })},});\n a.values[c] = d;\n a[b] = d;\n}, _embind_register_float:(a, b, c) => {\n b = R(b);\n S(a, {name:b, fromWireType:d => d, toWireType:(d, e) => e, argPackAdvance:8, readValueFromPointer:dd(b, c), L:null,});\n}, _embind_register_function:(a, b, c, d, e, f) => {\n var g = Yc(b, c);\n a = R(a);\n a = Zc(a);\n e = U(d, e);\n Fc(a, function() {\n Vc(`Cannot call ${a} due to unbound types`, g);\n }, b - 1);\n T([], g, k => {\n Oc(a, Xc(a, [k[0], null].concat(k.slice(1)), null, e, f), b - 1);\n return [];\n });\n}, _embind_register_integer:(a, b, c, d, e) => {\n b = R(b);\n -1 === e && (e = 4294967295);\n e = k => k;\n if (0 === d) {\n var f = 32 - 8 * c;\n e = k => k << f >>> f;\n }\n var g = b.includes(\"unsigned\") ? function(k, m) {\n return m >>> 0;\n } : function(k, m) {\n return m;\n };\n S(a, {name:b, fromWireType:e, toWireType:g, argPackAdvance:8, readValueFromPointer:ed(b, c, 0 !== d), L:null,});\n}, _embind_register_memory_view:(a, b, c) => {\n function d(f) {\n return new e(B.buffer, K[f + 4 >> 2], K[f >> 2]);\n }\n var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array,][b];\n c = R(c);\n S(a, {name:c, fromWireType:d, argPackAdvance:8, readValueFromPointer:d,}, {Sb:!0,});\n}, _embind_register_std_string:(a, b) => {\n b = R(b);\n var c = \"std::string\" === b;\n S(a, {name:b, fromWireType:function(d) {\n var e = K[d >> 2], f = d + 4;\n if (c) {\n for (var g = f, k = 0; k <= e; ++k) {\n var m = f + k;\n if (k == e || 0 == D[m]) {\n g = g ? L(D, g, m - g) : \"\";\n if (void 0 === n) {\n var n = g;\n } else {\n n += String.fromCharCode(0), n += g;\n }\n g = m + 1;\n }\n }\n } else {\n n = Array(e);\n for (k = 0; k < e; ++k) {\n n[k] = String.fromCharCode(D[f + k]);\n }\n n = n.join(\"\");\n }\n lc(d);\n return n;\n }, toWireType:function(d, e) {\n e instanceof ArrayBuffer && (e = new Uint8Array(e));\n var f = \"string\" == typeof e;\n if (!(f || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array)) {\n throw new P(\"Cannot pass non-string to std::string\");\n }\n var g = c && f ? fb(e) : e.length;\n var k = Rd(4 + g + 1), m = k + 4;\n K[k >> 2] = g;\n if (c && f) {\n gb(e, D, m, g + 1);\n } else {\n if (f) {\n for (f = 0; f < g; ++f) {\n var n = e.charCodeAt(f);\n if (255 < n) {\n throw lc(m), new P(\"String has UTF-16 code units that do not fit in 8 bits\");\n }\n D[m + f] = n;\n }\n } else {\n for (f = 0; f < g; ++f) {\n D[m + f] = e[f];\n }\n }\n }\n null !== d && d.push(lc, k);\n return k;\n }, argPackAdvance:8, readValueFromPointer:yc, L(d) {\n lc(d);\n },});\n}, _embind_register_std_wstring:(a, b, c) => {\n c = R(c);\n if (2 === b) {\n var d = gd;\n var e = hd;\n var f = jd;\n var g = k => wa[k >> 1];\n } else {\n 4 === b && (d = kd, e = ld, f = md, g = k => K[k >> 2]);\n }\n S(a, {name:c, fromWireType:k => {\n for (var m = K[k >> 2], n, t = k + 4, v = 0; v <= m; ++v) {\n var x = k + 4 + v * b;\n if (v == m || 0 == g(x)) {\n t = d(t, x - t), void 0 === n ? n = t : (n += String.fromCharCode(0), n += t), t = x + b;\n }\n }\n lc(k);\n return n;\n }, toWireType:(k, m) => {\n if (\"string\" != typeof m) {\n throw new P(`Cannot pass non-string to C++ string type ${c}`);\n }\n var n = f(m), t = Rd(4 + n + b);\n K[t >> 2] = n / b;\n e(m, t + 4, n + b);\n null !== k && k.push(lc, t);\n return t;\n }, argPackAdvance:8, readValueFromPointer:yc, L(k) {\n lc(k);\n }});\n}, _embind_register_value_object:(a, b, c, d, e, f) => {\n wc[a] = {name:R(b), Ta:U(c, d), O:U(e, f), eb:[],};\n}, _embind_register_value_object_field:(a, b, c, d, e, f, g, k, m, n) => {\n wc[a].eb.push({Lb:R(b), Rb:c, Pb:U(d, e), Qb:f, dc:g, cc:U(k, m), ec:n,});\n}, _embind_register_void:(a, b) => {\n b = R(b);\n S(a, {Dc:!0, name:b, argPackAdvance:0, fromWireType:() => {\n }, toWireType:() => {\n },});\n}, _emscripten_get_now_is_monotonic:() => 1, _emscripten_memcpy_js:(a, b, c) => D.copyWithin(a, b, b + c), _emval_as:(a, b, c) => {\n a = Q(a);\n b = nc(b, \"emval::as\");\n return nd(b, c, a);\n}, _emval_call_method:(a, b, c, d, e) => {\n a = qd[a];\n b = Q(b);\n c = pd(c);\n return a(b, b[c], d, e);\n}, _emval_decref:ad, _emval_get_method_caller:(a, b, c) => {\n var d = sd(a, b), e = d.shift();\n a--;\n var f = Array(a);\n b = `methodCaller<(${d.map(g => g.name).join(\", \")}) => ${e.name}>`;\n return rd(Zb(b, (g, k, m, n) => {\n for (var t = 0, v = 0; v < a; ++v) {\n f[v] = d[v].readValueFromPointer(n + t), t += d[v].argPackAdvance;\n }\n g = 1 === c ? td(k, f) : k.apply(g, f);\n return nd(e, m, g);\n }));\n}, _emval_get_property:(a, b) => {\n a = Q(a);\n b = Q(b);\n return ac(a[b]);\n}, _emval_incref:a => {\n 9 < a && (O[a + 1] += 1);\n}, _emval_new_array:() => ac([]), _emval_new_cstring:a => ac(pd(a)), _emval_new_object:() => ac({}), _emval_run_destructors:a => {\n var b = Q(a);\n xc(b);\n ad(a);\n}, _emval_set_property:(a, b, c) => {\n a = Q(a);\n b = Q(b);\n c = Q(c);\n a[b] = c;\n}, _emval_take_value:(a, b) => {\n a = nc(a, \"_emval_take_value\");\n a = a.readValueFromPointer(b);\n return ac(a);\n}, beginPixelLocalStorageWEBGL:function(a, b, c) {\n (a = w[a].C.ba) && a.beginPixelLocalStorageWEBGL(l.HEAPU32.subarray(c, c + b));\n}, decode_image:function(a, b, c) {\n var d = l.images;\n d || (d = new Map(), l.images = d);\n var e = new Image();\n d.set(a, e);\n b = l.HEAP8.subarray(b, b + c);\n c = new Uint8Array(c);\n c.set(b);\n e.src = URL.createObjectURL(new Blob([c], {type:\"image/png\"}));\n e.onload = function() {\n l._setWebImage(a, e.width, e.height);\n };\n}, delete_image:function(a) {\n var b = l.images;\n b && b.get(a) && b.delete(a);\n}, emscripten_asm_const_int:(a, b, c) => {\n ud.length = 0;\n for (var d; d = D[b++];) {\n var e = 105 != d;\n e &= 112 != d;\n c += e && c % 8 ? 4 : 0;\n ud.push(112 == d ? K[c >> 2] : 105 == d ? G[c >> 2] : ya[c >> 3]);\n c += e ? 8 : 4;\n }\n return Ta[a](...ud);\n}, emscripten_date_now:() => Date.now(), emscripten_get_now:() => performance.now(), emscripten_resize_heap:a => {\n var b = D.length;\n a >>>= 0;\n if (2147483648 < a) {\n return !1;\n }\n for (var c = 1; 4 >= c; c *= 2) {\n var d = b * (1 + 0.2 / c);\n d = Math.min(d, a + 100663296);\n var e = Math;\n d = Math.max(a, d);\n a: {\n e = (e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - ua.buffer.byteLength + 65535) / 65536;\n try {\n ua.grow(e);\n za();\n var f = 1;\n break a;\n } catch (g) {\n }\n f = void 0;\n }\n if (f) {\n return !0;\n }\n }\n return !1;\n}, emscripten_webgl_enable_extension:(a, b) => {\n a = w[a];\n b = b ? L(D, b) : \"\";\n b.startsWith(\"GL_\") && (b = b.substr(3));\n \"WEBGL_draw_instanced_base_vertex_base_instance\" == b && vd(W);\n \"WEBGL_multi_draw_instanced_base_vertex_base_instance\" == b && wd(W);\n \"WEBGL_multi_draw\" == b && (W.Zb = W.getExtension(\"WEBGL_multi_draw\"));\n return !!a.C.getExtension(b);\n}, emscripten_webgl_get_current_context:() => q ? q.handle : 0, emscripten_webgl_make_context_current:a => la(a) ? 0 : -5, enable_WEBGL_provoking_vertex:function(a) {\n a = w[a].C;\n a.pb = a.getExtension(\"WEBGL_provoking_vertex\");\n return !!a.pb;\n}, enable_WEBGL_shader_pixel_local_storage_coherent:function(a) {\n a = w[a].C;\n a.ba = a.getExtension(\"WEBGL_shader_pixel_local_storage\");\n return !(!a.ba || !a.ba.isCoherent());\n}, endPixelLocalStorageWEBGL:function(a, b, c) {\n (a = w[a].C.ba) && a.endPixelLocalStorageWEBGL(l.HEAPU32.subarray(c, c + b));\n}, environ_get:(a, b) => {\n var c = 0;\n Nd().forEach((d, e) => {\n var f = b + c;\n e = K[a + 4 * e >> 2] = f;\n for (f = 0; f < d.length; ++f) {\n B[e++] = d.charCodeAt(f);\n }\n B[e] = 0;\n c += d.length + 1;\n });\n return 0;\n}, environ_sizes_get:(a, b) => {\n var c = Nd();\n K[a >> 2] = c.length;\n var d = 0;\n c.forEach(e => d += e.length + 1);\n K[b >> 2] = d;\n return 0;\n}, fd_close:function(a) {\n try {\n var b = Kb(a);\n if (null === b.W) {\n throw new M(8);\n }\n b.Qa && (b.Qa = null);\n try {\n b.m.close && b.m.close(b);\n } catch (c) {\n throw c;\n } finally {\n xb[b.W] = null;\n }\n b.W = null;\n return 0;\n } catch (c) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== c.name) {\n throw c;\n }\n return c.$;\n }\n}, fd_read:function(a, b, c, d) {\n try {\n a: {\n var e = Kb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var k = K[a >> 2], m = K[a + 4 >> 2];\n a += 8;\n var n = e, t = f, v = B;\n if (0 > m || 0 > t) {\n throw new M(28);\n }\n if (null === n.W) {\n throw new M(8);\n }\n if (1 === (n.flags & 2097155)) {\n throw new M(8);\n }\n if (16384 === (n.node.mode & 61440)) {\n throw new M(31);\n }\n if (!n.m.read) {\n throw new M(28);\n }\n var x = \"undefined\" != typeof t;\n if (!x) {\n t = n.position;\n } else if (!n.seekable) {\n throw new M(70);\n }\n var p = n.m.read(n, v, k, m, t);\n x || (n.position += p);\n var r = p;\n if (0 > r) {\n var u = -1;\n break a;\n }\n b += r;\n if (r < m) {\n break;\n }\n \"undefined\" != typeof f && (f += r);\n }\n u = b;\n }\n K[d >> 2] = u;\n return 0;\n } catch (y) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== y.name) {\n throw y;\n }\n return y.$;\n }\n}, fd_seek:function(a, b, c, d, e) {\n b = c + 2097152 >>> 0 < 4194305 - !!b ? (b >>> 0) + 4294967296 * c : NaN;\n try {\n if (isNaN(b)) {\n return 61;\n }\n var f = Kb(a);\n Ub(f, b, d);\n Pa = [f.position >>> 0, (Oa = f.position, 1.0 <= +Math.abs(Oa) ? 0.0 < Oa ? +Math.floor(Oa / 4294967296.0) >>> 0 : ~~+Math.ceil((Oa - +(~~Oa >>> 0)) / 4294967296.0) >>> 0 : 0)];\n G[e >> 2] = Pa[0];\n G[e + 4 >> 2] = Pa[1];\n f.Qa && 0 === b && 0 === d && (f.Qa = null);\n return 0;\n } catch (g) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return g.$;\n }\n}, fd_write:function(a, b, c, d) {\n try {\n a: {\n var e = Kb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var k = K[a >> 2], m = K[a + 4 >> 2];\n a += 8;\n var n = e, t = k, v = m, x = f, p = B;\n if (0 > v || 0 > x) {\n throw new M(28);\n }\n if (null === n.W) {\n throw new M(8);\n }\n if (0 === (n.flags & 2097155)) {\n throw new M(8);\n }\n if (16384 === (n.node.mode & 61440)) {\n throw new M(31);\n }\n if (!n.m.write) {\n throw new M(28);\n }\n n.seekable && n.flags & 1024 && Ub(n, 0, 2);\n var r = \"undefined\" != typeof x;\n if (!r) {\n x = n.position;\n } else if (!n.seekable) {\n throw new M(70);\n }\n var u = n.m.write(n, p, t, v, x, void 0);\n r || (n.position += u);\n var y = u;\n if (0 > y) {\n var z = -1;\n break a;\n }\n b += y;\n \"undefined\" != typeof f && (f += y);\n }\n z = b;\n }\n K[d >> 2] = z;\n return 0;\n } catch (C) {\n if (\"undefined\" == typeof Yb || \"ErrnoError\" !== C.name) {\n throw C;\n }\n return C.$;\n }\n}, framebufferPixelLocalClearValuefvWEBGL:function(a, b, c, d, e, f) {\n (a = w[a].C.ba) && a.framebufferPixelLocalClearValuefvWEBGL(b, [c, d, e, f]);\n}, framebufferTexturePixelLocalStorageWEBGL:function(a, b, c, d, e) {\n (a = w[a].C.ba) && a.framebufferTexturePixelLocalStorageWEBGL(b, Cd[c], d, e);\n}, getFramebufferPixelLocalStorageParameterivWEBGL:function(a, b, c) {\n return (a = w[a].C.ba) ? a.getFramebufferPixelLocalStorageParameterWEBGL(b, c) : 0;\n}, glActiveTexture:a => W.activeTexture(a), glAttachShader:(a, b) => {\n W.attachShader(V[a], Dd[b]);\n}, glBindBuffer:(a, b) => {\n 35051 == a ? W.Na = b : 35052 == a && (W.Oa = b);\n W.bindBuffer(a, zd[b]);\n}, glBindBufferRange:(a, b, c, d, e) => {\n W.bindBufferRange(a, b, zd[c], d, e);\n}, glBindFramebuffer:(a, b) => {\n W.bindFramebuffer(a, Ad[b]);\n}, glBindRenderbuffer:(a, b) => {\n W.bindRenderbuffer(a, Bd[b]);\n}, glBindTexture:(a, b) => {\n W.bindTexture(a, Cd[b]);\n}, glBindVertexArray:a => {\n W.bindVertexArray(Ed[a]);\n}, glBlendEquation:a => W.blendEquation(a), glBlendFunc:(a, b) => W.blendFunc(a, b), glBlitFramebuffer:(a, b, c, d, e, f, g, k, m, n) => W.blitFramebuffer(a, b, c, d, e, f, g, k, m, n), glBufferData:(a, b, c, d) => {\n c && b ? W.bufferData(a, D, d, c, b) : W.bufferData(a, b, d);\n}, glBufferSubData:(a, b, c, d) => {\n c && W.bufferSubData(a, b, D, d, c);\n}, glClear:a => W.clear(a), glClearBufferfv:(a, b, c) => {\n W.clearBufferfv(a, b, xa, c >> 2);\n}, glClearBufferuiv:(a, b, c) => {\n W.clearBufferuiv(a, b, K, c >> 2);\n}, glClearColor:(a, b, c, d) => W.clearColor(a, b, c, d), glClearDepthf:a => W.clearDepth(a), glClearStencil:a => W.clearStencil(a), glColorMask:(a, b, c, d) => {\n W.colorMask(!!a, !!b, !!c, !!d);\n}, glCompileShader:a => {\n W.compileShader(Dd[a]);\n}, glCreateProgram:() => {\n var a = Id(V), b = W.createProgram();\n b.name = a;\n b.za = b.xa = b.ya = 0;\n b.Wa = 1;\n V[a] = b;\n return a;\n}, glCreateShader:a => {\n var b = Id(Dd);\n Dd[b] = W.createShader(a);\n return b;\n}, glCullFace:a => W.cullFace(a), glDeleteBuffers:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = zd[d];\n e && (W.deleteBuffer(e), e.name = 0, zd[d] = null, d == W.Na && (W.Na = 0), d == W.Oa && (W.Oa = 0));\n }\n}, glDeleteFramebuffers:(a, b) => {\n for (var c = 0; c < a; ++c) {\n var d = G[b + 4 * c >> 2], e = Ad[d];\n e && (W.deleteFramebuffer(e), e.name = 0, Ad[d] = null);\n }\n}, glDeleteProgram:a => {\n if (a) {\n var b = V[a];\n b ? (W.deleteProgram(b), b.name = 0, V[a] = null) : X ||= 1281;\n }\n}, glDeleteRenderbuffers:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = Bd[d];\n e && (W.deleteRenderbuffer(e), e.name = 0, Bd[d] = null);\n }\n}, glDeleteShader:a => {\n if (a) {\n var b = Dd[a];\n b ? (W.deleteShader(b), Dd[a] = null) : X ||= 1281;\n }\n}, glDeleteTextures:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2], e = Cd[d];\n e && (W.deleteTexture(e), e.name = 0, Cd[d] = null);\n }\n}, glDeleteVertexArrays:(a, b) => {\n for (var c = 0; c < a; c++) {\n var d = G[b + 4 * c >> 2];\n W.deleteVertexArray(Ed[d]);\n Ed[d] = null;\n }\n}, glDepthFunc:a => W.depthFunc(a), glDepthMask:a => {\n W.depthMask(!!a);\n}, glDepthRangef:(a, b) => W.depthRange(a, b), glDisable:a => W.disable(a), glDrawArrays:(a, b, c) => {\n W.drawArrays(a, b, c);\n}, glDrawArraysInstanced:(a, b, c, d) => {\n W.drawArraysInstanced(a, b, c, d);\n}, glDrawBuffers:(a, b) => {\n for (var c = Od[a], d = 0; d < a; d++) {\n c[d] = G[b + 4 * d >> 2];\n }\n W.drawBuffers(c);\n}, glDrawElements:(a, b, c, d) => {\n W.drawElements(a, b, c, d);\n}, glDrawElementsInstanced:(a, b, c, d, e) => {\n W.drawElementsInstanced(a, b, c, d, e);\n}, glEnable:a => W.enable(a), glEnableVertexAttribArray:a => {\n W.enableVertexAttribArray(a);\n}, glFlush:() => W.flush(), glFramebufferRenderbuffer:(a, b, c, d) => {\n W.framebufferRenderbuffer(a, b, c, Bd[d]);\n}, glFramebufferTexture2D:(a, b, c, d, e) => {\n W.framebufferTexture2D(a, b, c, Cd[d], e);\n}, glFrontFace:a => W.frontFace(a), glGenBuffers:(a, b) => {\n Jd(a, b, \"createBuffer\", zd);\n}, glGenFramebuffers:(a, b) => {\n Jd(a, b, \"createFramebuffer\", Ad);\n}, glGenRenderbuffers:(a, b) => {\n Jd(a, b, \"createRenderbuffer\", Bd);\n}, glGenTextures:(a, b) => {\n Jd(a, b, \"createTexture\", Cd);\n}, glGenVertexArrays:(a, b) => {\n Jd(a, b, \"createVertexArray\", Ed);\n}, glGenerateMipmap:a => W.generateMipmap(a), glGetError:() => {\n var a = W.getError() || X;\n X = 0;\n return a;\n}, glGetIntegerv:(a, b) => Qd(a, b), glGetProgramiv:(a, b, c) => {\n if (c) {\n if (a >= yd) {\n X ||= 1281;\n } else {\n if (a = V[a], 35716 == b) {\n a = W.getProgramInfoLog(a), null === a && (a = \"(unknown error)\"), G[c >> 2] = a.length + 1;\n } else if (35719 == b) {\n if (!a.za) {\n for (b = 0; b < W.getProgramParameter(a, 35718); ++b) {\n a.za = Math.max(a.za, W.getActiveUniform(a, b).name.length + 1);\n }\n }\n G[c >> 2] = a.za;\n } else if (35722 == b) {\n if (!a.xa) {\n for (b = 0; b < W.getProgramParameter(a, 35721); ++b) {\n a.xa = Math.max(a.xa, W.getActiveAttrib(a, b).name.length + 1);\n }\n }\n G[c >> 2] = a.xa;\n } else if (35381 == b) {\n if (!a.ya) {\n for (b = 0; b < W.getProgramParameter(a, 35382); ++b) {\n a.ya = Math.max(a.ya, W.getActiveUniformBlockName(a, b).length + 1);\n }\n }\n G[c >> 2] = a.ya;\n } else {\n G[c >> 2] = W.getProgramParameter(a, b);\n }\n }\n } else {\n X ||= 1281;\n }\n}, glGetString:a => {\n var b = Fd[a];\n if (!b) {\n switch(a) {\n case 7939:\n b = Sd(Pd().join(\" \"));\n break;\n case 7936:\n case 7937:\n case 37445:\n case 37446:\n (b = W.getParameter(a)) || (X ||= 1280);\n b = b ? Sd(b) : 0;\n break;\n case 7938:\n b = Sd(`OpenGL ES 3.0 (${W.getParameter(7938)})`);\n break;\n case 35724:\n b = W.getParameter(35724);\n var c = b.match(/^WebGL GLSL ES ([0-9]\\.[0-9][0-9]?)(?:$| .*)/);\n null !== c && (3 == c[1].length && (c[1] += \"0\"), b = `OpenGL ES GLSL ES ${c[1]} (${b})`);\n b = Sd(b);\n break;\n default:\n X ||= 1280;\n }\n Fd[a] = b;\n }\n return b;\n}, glGetUniformBlockIndex:(a, b) => W.getUniformBlockIndex(V[a], b ? L(D, b) : \"\"), glGetUniformLocation:(a, b) => {\n b = b ? L(D, b) : \"\";\n if (a = V[a]) {\n var c = a, d = c.na, e = c.wb, f;\n if (!d) {\n for (c.na = d = {}, c.vb = {}, f = 0; f < W.getProgramParameter(c, 35718); ++f) {\n var g = W.getActiveUniform(c, f);\n var k = g.name;\n g = g.size;\n var m = Td(k);\n m = 0 < m ? k.slice(0, m) : k;\n var n = c.Wa;\n c.Wa += g;\n e[m] = [g, n];\n for (k = 0; k < g; ++k) {\n d[n] = k, c.vb[n++] = m;\n }\n }\n }\n c = a.na;\n d = 0;\n e = b;\n f = Td(b);\n 0 < f && (d = parseInt(b.slice(f + 1)) >>> 0, e = b.slice(0, f));\n if ((e = a.wb[e]) && d < e[0] && (d += e[1], c[d] = c[d] || W.getUniformLocation(a, b))) {\n return d;\n }\n } else {\n X ||= 1281;\n }\n return -1;\n}, glInvalidateFramebuffer:(a, b, c) => {\n for (var d = Od[b], e = 0; e < b; e++) {\n d[e] = G[c + 4 * e >> 2];\n }\n W.invalidateFramebuffer(a, d);\n}, glLinkProgram:a => {\n a = V[a];\n W.linkProgram(a);\n a.na = 0;\n a.wb = {};\n}, glPixelStorei:(a, b) => {\n 3317 == a ? Gd = b : 3314 == a && (Hd = b);\n W.pixelStorei(a, b);\n}, glReadPixels:(a, b, c, d, e, f, g) => {\n if (W.Na) {\n W.readPixels(a, b, c, d, e, f, g);\n } else {\n var k = Ud(f);\n g >>>= 31 - Math.clz32(k.BYTES_PER_ELEMENT);\n W.readPixels(a, b, c, d, e, f, k, g);\n }\n}, glRenderbufferStorageMultisample:(a, b, c, d, e) => W.renderbufferStorageMultisample(a, b, c, d, e), glScissor:(a, b, c, d) => W.scissor(a, b, c, d), glShaderSource:(a, b, c, d) => {\n for (var e = \"\", f = 0; f < b; ++f) {\n var g = (g = K[c + 4 * f >> 2]) ? L(D, g, d ? K[d + 4 * f >> 2] : void 0) : \"\";\n e += g;\n }\n W.shaderSource(Dd[a], e);\n}, glStencilFunc:(a, b, c) => W.stencilFunc(a, b, c), glStencilFuncSeparate:(a, b, c, d) => W.stencilFuncSeparate(a, b, c, d), glStencilMask:a => W.stencilMask(a), glStencilOp:(a, b, c) => W.stencilOp(a, b, c), glStencilOpSeparate:(a, b, c, d) => W.stencilOpSeparate(a, b, c, d), glTexParameteri:(a, b, c) => W.texParameteri(a, b, c), glTexStorage2D:(a, b, c, d, e) => W.texStorage2D(a, b, c, d, e), glTexStorage3D:(a, b, c, d, e, f) => W.texStorage3D(a, b, c, d, e, f), glTexSubImage2D:(a, b, c, d, e, \nf, g, k, m) => {\n if (W.Oa) {\n W.texSubImage2D(a, b, c, d, e, f, g, k, m);\n } else {\n if (m) {\n var n = Ud(k);\n W.texSubImage2D(a, b, c, d, e, f, g, k, n, m >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT));\n } else {\n if (m) {\n n = Ud(k);\n var t = f * ((Hd || e) * ({5:3, 6:4, 8:2, 29502:3, 29504:4, 26917:2, 26918:2, 29846:3, 29847:4}[g - 6402] || 1) * n.BYTES_PER_ELEMENT + Gd - 1 & -Gd);\n m = n.subarray(m >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT), m + t >>> 31 - Math.clz32(n.BYTES_PER_ELEMENT));\n } else {\n m = null;\n }\n W.texSubImage2D(a, b, c, d, e, f, g, k, m);\n }\n }\n}, glUniform1i:(a, b) => {\n var c = W, d = c.uniform1i;\n var e = W.Hb;\n if (e) {\n var f = e.na[a];\n \"number\" == typeof f && (e.na[a] = f = W.getUniformLocation(e, e.vb[a] + (0 < f ? `[${f}]` : \"\")));\n a = f;\n } else {\n X ||= 1282, a = void 0;\n }\n d.call(c, a, b);\n}, glUniformBlockBinding:(a, b, c) => {\n a = V[a];\n W.uniformBlockBinding(a, b, c);\n}, glUseProgram:a => {\n a = V[a];\n W.useProgram(a);\n W.Hb = a;\n}, glVertexAttribDivisor:(a, b) => {\n W.vertexAttribDivisor(a, b);\n}, glVertexAttribIPointer:(a, b, c, d, e) => {\n W.vertexAttribIPointer(a, b, c, d, e);\n}, glVertexAttribPointer:(a, b, c, d, e, f) => {\n W.vertexAttribPointer(a, b, c, !!d, e, f);\n}, glViewport:(a, b, c, d) => W.viewport(a, b, c, d), provokingVertexWEBGL:function(a, b) {\n (a = w[a].C.pb) && a.provokingVertexWEBGL(b);\n}, strftime_l:(a, b, c, d) => Yd(a, b, c, d), upload_image:function(a, b) {\n var c = l.images;\n c && (b = c.get(b)) && (a = w[a].C, a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0), a.texImage2D(a.TEXTURE_2D, 0, a.RGBA, a.RGBA, a.UNSIGNED_BYTE, b), a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1));\n}}, Y = function() {\n function a(c) {\n Y = c.exports;\n ua = Y.memory;\n za();\n Qc = Y.__indirect_function_table;\n Ba.unshift(Y.__wasm_call_ctors);\n Ea--;\n l.monitorRunDependencies?.(Ea);\n 0 == Ea && (null !== Fa && (clearInterval(Fa), Fa = null), Ga && (c = Ga, Ga = null, c()));\n return Y;\n }\n var b = {env:be, wasi_snapshot_preview1:be,};\n Ea++;\n l.monitorRunDependencies?.(Ea);\n if (l.instantiateWasm) {\n try {\n return l.instantiateWasm(b, a);\n } catch (c) {\n sa(`Module.instantiateWasm callback failed with error: ${c}`), ba(c);\n }\n }\n Ja ||= Ia(\"webgl2_advanced.wasm\") ? \"webgl2_advanced.wasm\" : l.locateFile ? l.locateFile(\"webgl2_advanced.wasm\", A) : A + \"webgl2_advanced.wasm\";\n Na(b, function(c) {\n a(c.instance);\n }).catch(ba);\n return {};\n}(), lc = a => (lc = Y.free)(a), Rd = a => (Rd = Y.malloc)(a);\nl._setWebImage = (a, b, c) => (l._setWebImage = Y.setWebImage)(a, b, c);\nvar kc = a => (kc = Y.__getTypeName)(a), Qa = l._ma_device__on_notification_unlocked = a => (Qa = l._ma_device__on_notification_unlocked = Y.ma_device__on_notification_unlocked)(a);\nl._ma_malloc_emscripten = (a, b) => (l._ma_malloc_emscripten = Y.ma_malloc_emscripten)(a, b);\nl._ma_free_emscripten = (a, b) => (l._ma_free_emscripten = Y.ma_free_emscripten)(a, b);\nvar Ra = l._ma_device_process_pcm_frames_capture__webaudio = (a, b, c) => (Ra = l._ma_device_process_pcm_frames_capture__webaudio = Y.ma_device_process_pcm_frames_capture__webaudio)(a, b, c), Sa = l._ma_device_process_pcm_frames_playback__webaudio = (a, b, c) => (Sa = l._ma_device_process_pcm_frames_playback__webaudio = Y.ma_device_process_pcm_frames_playback__webaudio)(a, b, c);\nl.dynCall_iiiji = (a, b, c, d, e, f) => (l.dynCall_iiiji = Y.dynCall_iiiji)(a, b, c, d, e, f);\nl.dynCall_iij = (a, b, c, d) => (l.dynCall_iij = Y.dynCall_iij)(a, b, c, d);\nl.dynCall_iiji = (a, b, c, d, e) => (l.dynCall_iiji = Y.dynCall_iiji)(a, b, c, d, e);\nl.dynCall_jii = (a, b, c) => (l.dynCall_jii = Y.dynCall_jii)(a, b, c);\nl.dynCall_vijj = (a, b, c, d, e, f) => (l.dynCall_vijj = Y.dynCall_vijj)(a, b, c, d, e, f);\nl.dynCall_jiji = (a, b, c, d, e) => (l.dynCall_jiji = Y.dynCall_jiji)(a, b, c, d, e);\nl.dynCall_viijii = (a, b, c, d, e, f, g) => (l.dynCall_viijii = Y.dynCall_viijii)(a, b, c, d, e, f, g);\nl.dynCall_iiiiij = (a, b, c, d, e, f, g) => (l.dynCall_iiiiij = Y.dynCall_iiiiij)(a, b, c, d, e, f, g);\nl.dynCall_iiiiijj = (a, b, c, d, e, f, g, k, m) => (l.dynCall_iiiiijj = Y.dynCall_iiiiijj)(a, b, c, d, e, f, g, k, m);\nl.dynCall_iiiiiijj = (a, b, c, d, e, f, g, k, m, n) => (l.dynCall_iiiiiijj = Y.dynCall_iiiiiijj)(a, b, c, d, e, f, g, k, m, n);\nvar ce;\nGa = function de() {\n ce || ee();\n ce || (Ga = de);\n};\nfunction ee() {\n function a() {\n if (!ce && (ce = !0, l.calledRun = !0, !va)) {\n l.noFSInit || Vb || (Vb = !0, l.stdin = l.stdin, l.stdout = l.stdout, l.stderr = l.stderr, l.stdin ? Wb(\"stdin\", l.stdin) : Rb(\"/dev/tty\", \"/dev/stdin\"), l.stdout ? Wb(\"stdout\", null, l.stdout) : Rb(\"/dev/tty\", \"/dev/stdout\"), l.stderr ? Wb(\"stderr\", null, l.stderr) : Rb(\"/dev/tty1\", \"/dev/stderr\"), Sb(\"/dev/stdin\", 0), Sb(\"/dev/stdout\", 1), Sb(\"/dev/stderr\", 1));\n Ab = !1;\n Ua(Ba);\n aa(l);\n if (l.onRuntimeInitialized) {\n l.onRuntimeInitialized();\n }\n if (l.postRun) {\n for (\"function\" == typeof l.postRun && (l.postRun = [l.postRun]); l.postRun.length;) {\n var b = l.postRun.shift();\n Ca.unshift(b);\n }\n }\n Ua(Ca);\n }\n }\n if (!(0 < Ea)) {\n if (l.preRun) {\n for (\"function\" == typeof l.preRun && (l.preRun = [l.preRun]); l.preRun.length;) {\n Da();\n }\n }\n Ua(Aa);\n 0 < Ea || (l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n l.setStatus(\"\");\n }, 1);\n a();\n }, 1)) : a());\n }\n}\nif (l.preInit) {\n for (\"function\" == typeof l.preInit && (l.preInit = [l.preInit]); 0 < l.preInit.length;) {\n l.preInit.pop()();\n }\n}\nee();\nmoduleRtn = ca;\n\n\n\n return moduleRtn;\n}\n);\n})();\nexport default Rive;\n","export { Animation } from \"./Animation\";\n","import type {\n LinearAnimationInstance,\n LinearAnimation,\n Artboard,\n RiveCanvas,\n} from \"./../rive_advanced.mjs\";\n\n/**\n * Represents an animation that can be played on an Artboard. \n * Wraps animations and instances from the runtime and keeps track of playback state.\n *\n * The `Animation` class manages the state and behavior of a single animation instance,\n * including its current time, loop count, and ability to scrub to a specific time.\n *\n * The class provides methods to advance the animation, apply its interpolated keyframe\n * values to the Artboard, and clean up the underlying animation instance when the\n * animation is no longer needed.\n */\nexport class Animation {\n public loopCount = 0;\n public readonly instance: LinearAnimationInstance;\n\n /**\n * The time to which the animation should move to on the next render.\n * If not null, the animation will scrub to this time instead of advancing by the given time.\n */\n public scrubTo: number | null = null;\n\n /**\n * Constructs a new animation\n * @constructor\n * @param {any} animation: runtime animation object\n * @param {any} instance: runtime animation instance object\n */\n constructor(\n private animation: LinearAnimation,\n private artboard: Artboard,\n runtime: RiveCanvas,\n public playing: boolean\n ) {\n this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n }\n\n /**\n * Returns the animation's name\n */\n public get name(): string {\n return this.animation.name;\n }\n\n /**\n * Returns the animation's name\n */\n public get time(): number {\n return this.instance.time;\n }\n\n /**\n * Sets the animation's current time\n */\n public set time(value: number) {\n this.instance.time = value;\n }\n\n /**\n * Returns the animation's loop type\n */\n public get loopValue(): number {\n return this.animation.loopValue;\n }\n\n /**\n * Indicates whether the animation needs to be scrubbed.\n * @returns `true` if the animation needs to be scrubbed, `false` otherwise.\n */\n public get needsScrub(): boolean {\n return this.scrubTo !== null;\n }\n\n /**\n * Advances the animation by the give time. If the animation needs scrubbing,\n * time is ignored and the stored scrub value is used.\n * @param time the time to advance the animation by if no scrubbing required\n */\n public advance(time: number) {\n if (this.scrubTo === null) {\n this.instance.advance(time);\n } else {\n this.instance.time = 0;\n this.instance.advance(this.scrubTo);\n this.scrubTo = null;\n }\n }\n\n /**\n * Apply interpolated keyframe values to the artboard. This should be called after calling\n * .advance() on an animation instance so that new values are applied to properties.\n *\n * Note: This does not advance the artboard, which updates all objects on the artboard\n * @param mix - Mix value for the animation from 0 to 1\n */\n public apply(mix: number) {\n this.instance.apply(mix);\n }\n\n /**\n * Deletes the backing Wasm animation instance; once this is called, this\n * animation is no more.\n */\n public cleanup() {\n this.instance.delete();\n }\n}\n","export { registerTouchInteractions } from \"./registerTouchInteractions\";\nexport { BLANK_URL, sanitizeUrl } from \"./sanitizeUrl\";\nexport {\n Finalizable,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n FileAssetWrapper,\n ImageAssetWrapper,\n AudioAssetWrapper,\n FontAssetWrapper,\n finalizationRegistry,\n CustomFileAssetLoaderWrapper,\n AssetLoadCallbackWrapper,\n FileFinalizer,\n createFinalization,\n} from \"./finalizationRegistry\";\n","import * as rc from \"../rive_advanced.mjs\";\n\nexport interface TouchInteractionsParams {\n canvas: HTMLCanvasElement | OffscreenCanvas;\n artboard: rc.Artboard;\n stateMachines: rc.StateMachineInstance[];\n renderer: rc.Renderer;\n rive: rc.RiveCanvas;\n fit: rc.Fit;\n alignment: rc.Alignment;\n isTouchScrollEnabled?: boolean;\n dispatchPointerExit?: boolean;\n enableMultiTouch?: boolean;\n layoutScaleFactor?: number;\n}\n\ninterface ClientCoordinates {\n clientX: number;\n clientY: number;\n identifier: number;\n transformedX?: number | undefined;\n transformedY?: number | undefined;\n}\n\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nconst getClientCoordinates = (\n event: MouseEvent | TouchEvent,\n isTouchScrollEnabled: boolean,\n enableMultiTouch: boolean,\n): ClientCoordinates[] => {\n const coordinates: ClientCoordinates[] = [];\n if (\n [\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n (event as TouchEvent).changedTouches?.length\n ) {\n // This flag, if false, prevents touch events on the canvas default behavior\n // which may prevent scrolling if a drag motion on the canvas is performed\n if (!isTouchScrollEnabled) {\n event.preventDefault();\n }\n let cnt = 0;\n let totalTouches = enableMultiTouch\n ? (event as TouchEvent).changedTouches.length\n : 1;\n while (cnt < totalTouches) {\n const touch = (event as TouchEvent).changedTouches[cnt];\n coordinates.push({\n clientX: touch.clientX,\n clientY: touch.clientY,\n identifier: touch.identifier,\n });\n cnt++;\n }\n } else if (\n event.type === \"touchend\" &&\n (event as TouchEvent).changedTouches?.length\n ) {\n let cnt = 0;\n let totalTouches = enableMultiTouch\n ? (event as TouchEvent).changedTouches.length\n : 1;\n while (cnt < totalTouches) {\n const touch = (event as TouchEvent).changedTouches[cnt];\n coordinates.push({\n clientX: touch.clientX,\n clientY: touch.clientY,\n identifier: touch.identifier,\n });\n cnt++;\n }\n } else {\n coordinates.push({\n clientX: (event as MouseEvent).clientX,\n clientY: (event as MouseEvent).clientY,\n identifier: 0,\n });\n }\n return coordinates;\n};\n\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nexport const registerTouchInteractions = ({\n canvas,\n artboard,\n stateMachines = [],\n renderer,\n rive,\n fit,\n alignment,\n isTouchScrollEnabled = false,\n dispatchPointerExit = true,\n enableMultiTouch = false,\n layoutScaleFactor = 1.0,\n}: TouchInteractionsParams) => {\n if (\n !canvas ||\n !stateMachines.length ||\n !renderer ||\n !rive ||\n !artboard ||\n typeof window === \"undefined\"\n ) {\n return null;\n }\n /**\n * After a touchend event, some browsers may fire synthetic mouse events\n * (mouseover, mousedown, mousemove, mouseup) if the touch interaction did not cause\n * any default action (such as scrolling).\n *\n * This is done to simulate the behavior of a mouse for applications that do not support\n * touch events.\n *\n * We're keeping track of the previous event to not send the synthetic mouse events if the\n * touch event was a click (touchstart -> touchend).\n *\n * This is only needed when `isTouchScrollEnabled` is false\n * When true, `preventDefault()` is called which prevents this behaviour.\n **/\n let _prevEventType: string | null = null;\n let _syntheticEventsActive = false;\n const processEventCallback = (event: MouseEvent | TouchEvent) => {\n // Exit early out of all synthetic mouse events\n // https://stackoverflow.com/questions/9656990/how-to-prevent-simulated-mouse-events-in-mobile-browsers\n // https://stackoverflow.com/questions/25572070/javascript-touchend-versus-click-dilemma\n if (_syntheticEventsActive && event instanceof MouseEvent) {\n // Synthetic event finished\n if (event.type == \"mouseup\") {\n _syntheticEventsActive = false;\n }\n\n return;\n }\n\n // Test if it's a \"touch click\". This could cause the browser to send\n // synthetic mouse events.\n _syntheticEventsActive =\n isTouchScrollEnabled &&\n event.type === \"touchend\" &&\n _prevEventType === \"touchstart\";\n\n _prevEventType = event.type;\n\n const boundingRect = (\n event.currentTarget as HTMLCanvasElement\n ).getBoundingClientRect();\n\n const coordinateSets = getClientCoordinates(\n event,\n isTouchScrollEnabled,\n enableMultiTouch,\n );\n const forwardMatrix = rive.computeAlignment(\n fit,\n alignment,\n {\n minX: 0,\n minY: 0,\n maxX: boundingRect.width,\n maxY: boundingRect.height,\n },\n artboard.bounds,\n layoutScaleFactor,\n );\n const invertedMatrix = new rive.Mat2D();\n forwardMatrix.invert(invertedMatrix);\n\n coordinateSets.forEach((coordinateSet) => {\n const clientX = coordinateSet.clientX;\n const clientY = coordinateSet.clientY;\n if (!clientX && !clientY) {\n return;\n }\n const canvasX = clientX - boundingRect.left;\n const canvasY = clientY - boundingRect.top;\n const canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n const transformedVector = rive.mapXY(\n invertedMatrix,\n canvasCoordinatesVector,\n );\n const transformedX = transformedVector.x();\n const transformedY = transformedVector.y();\n coordinateSet.transformedX = transformedX;\n coordinateSet.transformedY = transformedY;\n transformedVector.delete();\n canvasCoordinatesVector.delete();\n });\n\n invertedMatrix.delete();\n forwardMatrix.delete();\n\n switch (event.type) {\n /**\n * There's a 2px buffer for a hitRadius when translating the pointer coordinates\n * down to the state machine. In cases where the hitbox is about that much away\n * from the Artboard border, we don't have exact precision on determining pointer\n * exit. We're therefore adding to the translated coordinates on mouseout of a canvas\n * to ensure that we report the mouse has truly exited the hitarea.\n * https://github.com/rive-app/rive-cpp/blob/master/src/animation/state_machine_instance.cpp#L336\n *\n */\n case \"mouseout\":\n for (const stateMachine of stateMachines) {\n if (dispatchPointerExit) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerExit(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n } else {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerMove(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n }\n break;\n\n // Pointer moving/hovering on the canvas\n case \"touchmove\":\n case \"mouseover\":\n case \"mousemove\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerMove(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n // Pointer click initiated but not released yet on the canvas\n case \"touchstart\":\n case \"mousedown\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerDown(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n // Pointer click released on the canvas\n case \"touchend\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerUp(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n stateMachine.pointerExit(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n case \"mouseup\": {\n for (const stateMachine of stateMachines) {\n coordinateSets.forEach((coordinateSet) => {\n stateMachine.pointerUp(\n coordinateSet.transformedX,\n coordinateSet.transformedY,\n coordinateSet.identifier,\n );\n });\n }\n break;\n }\n default:\n }\n };\n const callback = processEventCallback.bind(this);\n canvas.addEventListener(\"mouseover\", callback);\n canvas.addEventListener(\"mouseout\", callback);\n canvas.addEventListener(\"mousemove\", callback);\n canvas.addEventListener(\"mousedown\", callback);\n canvas.addEventListener(\"mouseup\", callback);\n canvas.addEventListener(\"touchmove\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchstart\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchend\", callback);\n return () => {\n canvas.removeEventListener(\"mouseover\", callback);\n canvas.removeEventListener(\"mouseout\", callback);\n canvas.removeEventListener(\"mousemove\", callback);\n canvas.removeEventListener(\"mousedown\", callback);\n canvas.removeEventListener(\"mouseup\", callback);\n canvas.removeEventListener(\"touchmove\", callback);\n canvas.removeEventListener(\"touchstart\", callback);\n canvas.removeEventListener(\"touchend\", callback);\n };\n};\n","// Reference: https://github.com/braintree/sanitize-url/tree/main\nconst invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nconst htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nconst htmlCtrlEntityRegex = /&(newline|tab);/gi;\nconst ctrlCharactersRegex =\n /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nconst urlSchemeRegex = /^.+(:|:)/gim;\nconst relativeFirstCharacters = [\".\", \"/\"];\nexport const BLANK_URL = \"about:blank\";\n\nfunction isRelativeUrlWithoutProtocol(url: string): boolean {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str: string) {\n const removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, (match, dec) => {\n return String.fromCharCode(dec);\n });\n}\n\nexport function sanitizeUrl(url?: string): string {\n if (!url) {\n return BLANK_URL;\n }\n\n const sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n\n if (!sanitizedUrl) {\n return BLANK_URL;\n }\n\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n const urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n\n const urlScheme = urlSchemeParseResults[0];\n\n if (invalidProtocolRegex.test(urlScheme)) {\n return BLANK_URL;\n }\n\n return sanitizedUrl;\n}\n","import * as rc from \"../rive_advanced.mjs\";\n\ninterface Finalizable {\n unref: () => void;\n}\n\nclass FileFinalizer implements Finalizable {\n private _file: rc.File;\n public selfUnref: boolean = false;\n constructor(file: rc.File) {\n this._file = file;\n }\n\n public unref() {\n if (this._file) {\n this._file.unref();\n }\n }\n}\n\nclass ObjectFinalizer<T extends Finalizable> {\n private _finalizableObject: T;\n constructor(finalizableObject: T) {\n this._finalizableObject = finalizableObject;\n }\n\n public unref() {\n this._finalizableObject.unref();\n }\n}\n\n\nclass AssetWrapper implements rc.FinalizableTarget {\n public selfUnref: boolean = false;\n public unref() {}\n}\n\nclass ImageWrapper extends AssetWrapper {\n private _nativeImage: rc.Image;\n\n constructor(image: rc.Image) {\n super();\n this._nativeImage = image;\n }\n\n public get nativeImage(): rc.ImageInternal {\n return this._nativeImage;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeImage.unref();\n }\n }\n}\n\nclass AudioWrapper extends AssetWrapper {\n private _nativeAudio: rc.Audio;\n\n constructor(audio: rc.Audio) {\n super();\n this._nativeAudio = audio;\n }\n\n public get nativeAudio(): rc.AudioInternal {\n return this._nativeAudio;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeAudio.unref();\n }\n }\n}\n\nclass FontWrapper extends AssetWrapper {\n private _nativeFont: rc.Font;\n\n constructor(font: rc.Font) {\n super();\n this._nativeFont = font;\n }\n\n public get nativeFont(): rc.FontInternal {\n return this._nativeFont;\n }\n\n public unref() {\n if (this.selfUnref) {\n this._nativeFont.unref();\n }\n }\n}\n\nexport type AssetLoadCallbackWrapper = (\n asset: rc.FileAssetInternal,\n bytes: Uint8Array,\n) => Boolean;\n\nclass CustomFileAssetLoaderWrapper {\n assetLoader: rc.CustomFileAssetLoader;\n _assetLoaderCallback: AssetLoadCallbackWrapper;\n\n constructor(\n runtime: rc.RiveCanvas,\n loaderCallback: AssetLoadCallbackWrapper,\n ) {\n this._assetLoaderCallback = loaderCallback;\n this.assetLoader = new runtime.CustomFileAssetLoader({\n loadContents: this.loadContents.bind(this),\n });\n }\n\n loadContents(asset: rc.FileAsset, bytes: any) {\n let assetWrapper: FileAssetWrapper;\n if (asset.isImage) {\n assetWrapper = new ImageAssetWrapper(asset);\n } else if (asset.isAudio) {\n assetWrapper = new AudioAssetWrapper(asset);\n } else if (asset.isFont) {\n assetWrapper = new FontAssetWrapper(asset);\n }\n return this._assetLoaderCallback(assetWrapper, bytes);\n }\n}\n\n/**\n * Rive class representing a FileAsset with relevant metadata fields to describe\n * an asset associated wtih the Rive File\n */\nclass FileAssetWrapper {\n _nativeFileAsset: rc.FileAssetInternal;\n\n constructor(nativeAsset: rc.FileAssetInternal) {\n this._nativeFileAsset = nativeAsset;\n }\n\n decode(bytes: Uint8Array): void {\n this._nativeFileAsset.decode(bytes);\n }\n\n get name(): string {\n return this._nativeFileAsset.name;\n }\n\n get fileExtension(): string {\n return this._nativeFileAsset.fileExtension;\n }\n\n get uniqueFilename(): string {\n return this._nativeFileAsset.uniqueFilename;\n }\n\n get isAudio(): boolean {\n return this._nativeFileAsset.isAudio;\n }\n\n get isImage(): boolean {\n return this._nativeFileAsset.isImage;\n }\n\n get isFont(): boolean {\n return this._nativeFileAsset.isFont;\n }\n\n get cdnUuid(): string {\n return this._nativeFileAsset.cdnUuid;\n }\n\n get nativeFileAsset() {\n return this._nativeFileAsset;\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setRenderImage()` API with a\n * decoded Image (via the `decodeImage()` API) to set a new Image on the Rive FileAsset\n */\nclass ImageAssetWrapper extends FileAssetWrapper {\n setRenderImage(image: ImageWrapper): void {\n (this._nativeFileAsset as rc.ImageAssetInternal).setRenderImage(\n image.nativeImage,\n );\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setAudioSource()` API with a\n * decoded Audio (via the `decodeAudio()` API) to set a new Audio on the Rive FileAsset\n */\nclass AudioAssetWrapper extends FileAssetWrapper {\n setAudioSource(audio: AudioWrapper): void {\n (this._nativeFileAsset as rc.AudioAssetInternal).setAudioSource(\n audio.nativeAudio,\n );\n }\n}\n\n/**\n * Rive class extending the FileAsset that exposes a `setFont()` API with a\n * decoded Font (via the `decodeFont()` API) to set a new Font on the Rive FileAsset\n */\nclass FontAssetWrapper extends FileAssetWrapper {\n setFont(font: FontWrapper): void {\n (this._nativeFileAsset as rc.FontAssetInternal).setFont(font.nativeFont);\n }\n}\n\ndeclare const FinalizationRegistry: {\n new (fn: Function): typeof FinalizationRegistry;\n\n register<T extends rc.FinalizableTarget>(\n object: T,\n description: Finalizable,\n ): void;\n\n unregister<T>(object: T): void;\n};\n\nclass FakeFinalizationRegistry {\n constructor(_: Function) {}\n register(object: rc.FinalizableTarget) {\n object.selfUnref = true;\n }\n\n unregister<T>(_: T) {}\n}\nconst MyFinalizationRegistry =\n typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : FakeFinalizationRegistry;\n\nconst finalizationRegistry = new MyFinalizationRegistry((ob: Finalizable) => {\n ob?.unref();\n});\n\nconst createFinalization = <T extends Finalizable>(\n target: rc.FinalizableTarget,\n finalizable: T,\n) => {\n const finalizer = new ObjectFinalizer<T>(finalizable);\n finalizationRegistry.register(target, finalizer);\n};\n\nexport {\n finalizationRegistry,\n createFinalization,\n Finalizable,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n ImageAssetWrapper,\n AudioAssetWrapper,\n FontAssetWrapper,\n CustomFileAssetLoaderWrapper,\n FileAssetWrapper,\n FileFinalizer,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as rc from \"./rive_advanced.mjs\";\nimport packageData from \"package.json\";\nimport { Animation } from \"./animation\";\nimport {\n registerTouchInteractions,\n sanitizeUrl,\n BLANK_URL,\n ImageWrapper,\n AudioWrapper,\n FontWrapper,\n finalizationRegistry,\n CustomFileAssetLoaderWrapper,\n FileFinalizer,\n createFinalization,\n} from \"./utils\";\nexport type AssetLoadCallback = (\n asset: rc.FileAsset,\n bytes: Uint8Array,\n) => Boolean;\n\nclass RiveError extends Error {\n public isHandledError = true;\n}\n\n// Note: Re-exporting a few types from rive_advanced.mjs to expose for high-level\n// API usage without re-defining their type definition here. May want to revisit\n// and see if we want to expose both types from rive.ts and rive_advanced.mjs in\n// the future\nexport type {\n FileAsset,\n AudioAsset,\n FontAsset,\n ImageAsset,\n} from \"./rive_advanced.mjs\";\n\n/**\n * Generic type for a parameterless void callback\n */\nexport type VoidCallback = () => void;\n\ninterface SetupRiveListenersOptions {\n isTouchScrollEnabled?: boolean;\n}\n\n/**\n * Type for artboard bounds\n */\nexport type Bounds = rc.AABB;\n\n// #regions helpers\nconst resolveErrorMessage = (error: any): string =>\n error && error.isHandledError\n ? error.message\n : \"Problem loading file; may be corrupt!\";\n\n// #region layout\n\n// Fit options for the canvas\nexport enum Fit {\n Cover = \"cover\",\n Contain = \"contain\",\n Fill = \"fill\",\n FitWidth = \"fitWidth\",\n FitHeight = \"fitHeight\",\n None = \"none\",\n ScaleDown = \"scaleDown\",\n Layout = \"layout\",\n}\n\n// Alignment options for the canvas\nexport enum Alignment {\n Center = \"center\",\n TopLeft = \"topLeft\",\n TopCenter = \"topCenter\",\n TopRight = \"topRight\",\n CenterLeft = \"centerLeft\",\n CenterRight = \"centerRight\",\n BottomLeft = \"bottomLeft\",\n BottomCenter = \"bottomCenter\",\n BottomRight = \"bottomRight\",\n}\n\n// Interface for the Layout static method contructor\nexport interface LayoutParameters {\n fit?: Fit;\n alignment?: Alignment;\n layoutScaleFactor?: number;\n minX?: number;\n minY?: number;\n maxX?: number;\n maxY?: number;\n}\n\n// Alignment options for Rive animations in a HTML canvas\nexport class Layout {\n // Runtime fit and alignment are accessed every frame, so we cache their\n // values to save cycles\n private cachedRuntimeFit: rc.Fit;\n private cachedRuntimeAlignment: rc.Alignment;\n\n public readonly fit: Fit;\n public readonly alignment: Alignment;\n public readonly layoutScaleFactor: number;\n public readonly minX: number;\n public readonly minY: number;\n public readonly maxX: number;\n public readonly maxY: number;\n\n constructor(params?: LayoutParameters) {\n this.fit = params?.fit ?? Fit.Contain;\n this.alignment = params?.alignment ?? Alignment.Center;\n this.layoutScaleFactor = params?.layoutScaleFactor ?? 1;\n this.minX = params?.minX ?? 0;\n this.minY = params?.minY ?? 0;\n this.maxX = params?.maxX ?? 0;\n this.maxY = params?.maxY ?? 0;\n }\n\n // Alternative constructor to build a Layout from an interface/object\n static new({\n fit,\n alignment,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n console.warn(\n \"This function is deprecated: please use `new Layout({})` instead\",\n );\n return new Layout({ fit, alignment, minX, minY, maxX, maxY });\n }\n\n /**\n * Makes a copy of the layout, replacing any specified parameters\n */\n public copyWith({\n fit,\n alignment,\n layoutScaleFactor,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n return new Layout({\n fit: fit ?? this.fit,\n alignment: alignment ?? this.alignment,\n layoutScaleFactor: layoutScaleFactor ?? this.layoutScaleFactor,\n minX: minX ?? this.minX,\n minY: minY ?? this.minY,\n maxX: maxX ?? this.maxX,\n maxY: maxY ?? this.maxY,\n });\n }\n\n // Returns fit for the Wasm runtime format\n public runtimeFit(rive: rc.RiveCanvas): rc.Fit {\n if (this.cachedRuntimeFit) return this.cachedRuntimeFit;\n\n let fit;\n if (this.fit === Fit.Cover) fit = rive.Fit.cover;\n else if (this.fit === Fit.Contain) fit = rive.Fit.contain;\n else if (this.fit === Fit.Fill) fit = rive.Fit.fill;\n else if (this.fit === Fit.FitWidth) fit = rive.Fit.fitWidth;\n else if (this.fit === Fit.FitHeight) fit = rive.Fit.fitHeight;\n else if (this.fit === Fit.ScaleDown) fit = rive.Fit.scaleDown;\n else if (this.fit === Fit.Layout) fit = rive.Fit.layout;\n else fit = rive.Fit.none;\n\n this.cachedRuntimeFit = fit;\n return fit;\n }\n\n // Returns alignment for the Wasm runtime format\n public runtimeAlignment(rive: rc.RiveCanvas): rc.Alignment {\n if (this.cachedRuntimeAlignment) return this.cachedRuntimeAlignment;\n\n let alignment;\n if (this.alignment === Alignment.TopLeft)\n alignment = rive.Alignment.topLeft;\n else if (this.alignment === Alignment.TopCenter)\n alignment = rive.Alignment.topCenter;\n else if (this.alignment === Alignment.TopRight)\n alignment = rive.Alignment.topRight;\n else if (this.alignment === Alignment.CenterLeft)\n alignment = rive.Alignment.centerLeft;\n else if (this.alignment === Alignment.CenterRight)\n alignment = rive.Alignment.centerRight;\n else if (this.alignment === Alignment.BottomLeft)\n alignment = rive.Alignment.bottomLeft;\n else if (this.alignment === Alignment.BottomCenter)\n alignment = rive.Alignment.bottomCenter;\n else if (this.alignment === Alignment.BottomRight)\n alignment = rive.Alignment.bottomRight;\n else alignment = rive.Alignment.center;\n\n this.cachedRuntimeAlignment = alignment;\n return alignment;\n }\n}\n\n// #endregion\n\n// #region runtime\n\n// Callback type when looking for a runtime instance\nexport type RuntimeCallback = (rive: rc.RiveCanvas) => void;\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nexport class RuntimeLoader {\n // Singleton helpers\n private static runtime: rc.RiveCanvas;\n // Flag to indicate that loading has started/completed\n private static isLoading = false;\n // List of callbacks for the runtime that come in while loading\n private static callBackQueue: RuntimeCallback[] = [];\n // Instance of the Rive runtime\n private static rive: rc.RiveCanvas;\n // Path to the Wasm file; default path works for testing only;\n // if embedded wasm is used then this is never used.\n private static wasmURL = `https://unpkg.com/${packageData.name}@${packageData.version}/rive.wasm`;\n\n // Class is never instantiated\n private constructor() {}\n\n // Loads the runtime\n private static loadRuntime(): void {\n rc.default({\n // Loads Wasm bundle\n locateFile: () => RuntimeLoader.wasmURL,\n })\n .then((rive: rc.RiveCanvas) => {\n RuntimeLoader.runtime = rive;\n // Fire all the callbacks\n while (RuntimeLoader.callBackQueue.length > 0) {\n RuntimeLoader.callBackQueue.shift()?.(RuntimeLoader.runtime);\n }\n })\n .catch((error) => {\n // Capture specific error details\n const errorDetails = {\n message: error?.message || \"Unknown error\",\n type: error?.name || \"Error\",\n // Some browsers may provide additional WebAssembly-specific details\n wasmError:\n error instanceof WebAssembly.CompileError ||\n error instanceof WebAssembly.RuntimeError,\n originalError: error,\n };\n\n // Log detailed error for debugging\n console.debug(\"Rive WASM load error details:\", errorDetails);\n\n // In case unpkg fails, or the wasm was not supported, we try to load the fallback module from jsdelivr.\n // This `rive_fallback.wasm` is compiled to support older architecture.\n // TODO: (Gordon): preemptively test browser support and load the correct wasm file. Then use jsdelvr only if unpkg fails.\n const backupJsdelivrUrl = `https://cdn.jsdelivr.net/npm/${packageData.name}@${packageData.version}/rive_fallback.wasm`;\n if (RuntimeLoader.wasmURL.toLowerCase() !== backupJsdelivrUrl) {\n console.warn(\n `Failed to load WASM from ${RuntimeLoader.wasmURL} (${errorDetails.message}), trying jsdelivr as a backup`,\n );\n RuntimeLoader.setWasmUrl(backupJsdelivrUrl);\n RuntimeLoader.loadRuntime();\n } else {\n const errorMessage = [\n `Could not load Rive WASM file from ${RuntimeLoader.wasmURL} or ${backupJsdelivrUrl}.`,\n \"Possible reasons:\",\n \"- Network connection is down\",\n \"- WebAssembly is not supported in this environment\",\n \"- The WASM file is corrupted or incompatible\",\n \"\\nError details:\",\n `- Type: ${errorDetails.type}`,\n `- Message: ${errorDetails.message}`,\n `- WebAssembly-specific error: ${errorDetails.wasmError}`,\n \"\\nTo resolve, you may need to:\",\n \"1. Check your network connection\",\n \"2. Set a new WASM source via RuntimeLoader.setWasmUrl()\",\n \"3. Call RuntimeLoader.loadRuntime() again\",\n ].join(\"\\n\");\n\n console.error(errorMessage);\n }\n });\n }\n\n // Provides a runtime instance via a callback\n public static getInstance(callback: RuntimeCallback): void {\n // If it's not loading, start loading runtime\n if (!RuntimeLoader.isLoading) {\n RuntimeLoader.isLoading = true;\n RuntimeLoader.loadRuntime();\n }\n if (!RuntimeLoader.runtime) {\n RuntimeLoader.callBackQueue.push(callback);\n } else {\n callback(RuntimeLoader.runtime);\n }\n }\n\n // Provides a runtime instance via a promise\n public static awaitInstance(): Promise<rc.RiveCanvas> {\n return new Promise<rc.RiveCanvas>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => resolve(rive)),\n );\n }\n\n // Manually sets the wasm url\n public static setWasmUrl(url: string): void {\n RuntimeLoader.wasmURL = url;\n }\n\n // Gets the current wasm url\n public static getWasmUrl(): string {\n return RuntimeLoader.wasmURL;\n }\n}\n\n// #endregion\n\n// #region state machines\n\nexport enum StateMachineInputType {\n Number = 56,\n Trigger = 58,\n Boolean = 59,\n}\n\n/**\n * An input for a state machine\n */\nexport class StateMachineInput {\n constructor(\n public readonly type: StateMachineInputType,\n private runtimeInput: rc.SMIInput,\n ) {}\n\n /**\n * Returns the name of the input\n */\n public get name(): string {\n return this.runtimeInput.name;\n }\n\n /**\n * Returns the current value of the input\n */\n public get value(): number | boolean {\n return this.runtimeInput.value;\n }\n\n /**\n * Sets the value of the input\n */\n public set value(value: number | boolean) {\n this.runtimeInput.value = value;\n }\n\n /**\n * Fires a trigger; does nothing on Number or Boolean input types\n */\n public fire(): void {\n if (this.type === StateMachineInputType.Trigger) {\n this.runtimeInput.fire();\n }\n }\n\n /**\n * Deletes the input\n */\n public delete(): void {\n this.runtimeInput = null;\n }\n}\n\nexport enum RiveEventType {\n General = 128,\n OpenUrl = 131,\n}\n\nclass BaseArtboard {\n public isBindableArtboard: boolean = false;\n constructor(_isBindableArtboard: boolean) {\n this.isBindableArtboard = _isBindableArtboard;\n }\n}\n\nclass Artboard extends BaseArtboard {\n public nativeArtboard: rc.Artboard;\n public file: RiveFile;\n constructor(artboard: rc.Artboard, _file: RiveFile) {\n super(false);\n this.nativeArtboard = artboard;\n this.file = _file;\n }\n}\n\nclass BindableArtboard extends BaseArtboard implements rc.FinalizableTarget {\n public selfUnref: boolean = false;\n public nativeArtboard: rc.BindableArtboard;\n constructor(artboard: rc.BindableArtboard) {\n super(true);\n this.nativeArtboard = artboard;\n }\n destroy() {\n if (this.selfUnref) {\n this.nativeArtboard.unref();\n }\n }\n}\n\nclass StateMachine {\n /**\n * Caches the inputs from the runtime\n */\n public readonly inputs: StateMachineInput[] = [];\n\n /**\n * Runtime state machine instance\n */\n public readonly instance: rc.StateMachineInstance;\n\n /**\n * @constructor\n * @param stateMachine runtime state machine object\n * @param instance runtime state machine instance object\n */\n constructor(\n private stateMachine: rc.StateMachine,\n runtime: rc.RiveCanvas,\n public playing: boolean,\n private artboard: rc.Artboard,\n ) {\n this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n this.initInputs(runtime);\n }\n\n public get name(): string {\n return this.stateMachine.name;\n }\n\n /**\n * Returns a list of state names that have changed on this frame\n */\n public get statesChanged(): string[] {\n const names: string[] = [];\n for (let i = 0; i < this.instance.stateChangedCount(); i++) {\n names.push(this.instance.stateChangedNameByIndex(i));\n }\n return names;\n }\n\n /**\n * Advances the state machine instance by a given time.\n * @param time - the time to advance the animation by in seconds\n */\n public advance(time: number) {\n this.instance.advance(time);\n }\n\n /**\n * Advances the state machine instance by a given time and apply changes to artboard.\n * @param time - the time to advance the animation by in seconds\n */\n public advanceAndApply(time: number) {\n this.instance.advanceAndApply(time);\n }\n\n /**\n * Returns the number of events reported from the last advance call\n * @returns Number of events reported\n */\n public reportedEventCount(): number {\n return this.instance.reportedEventCount();\n }\n\n /**\n * Returns a RiveEvent object emitted from the last advance call at the given index\n * of a list of potentially multiple events. If an event at the index is not found,\n * undefined is returned.\n * @param i index of the event reported in a list of potentially multiple events\n * @returns RiveEvent or extended RiveEvent object returned, or undefined\n */\n reportedEventAt(i: number): rc.OpenUrlEvent | rc.RiveEvent | undefined {\n return this.instance.reportedEventAt(i);\n }\n\n /**\n * Fetches references to the state machine's inputs and caches them\n * @param runtime an instance of the runtime; needed for the SMIInput types\n */\n private initInputs(runtime: rc.RiveCanvas): void {\n // Fetch the inputs from the runtime if we don't have them\n for (let i = 0; i < this.instance.inputCount(); i++) {\n const input = this.instance.input(i);\n this.inputs.push(this.mapRuntimeInput(input, runtime));\n }\n }\n\n /**\n * Maps a runtime input to it's appropriate type\n * @param input\n */\n private mapRuntimeInput(\n input: rc.SMIInput,\n runtime: rc.RiveCanvas,\n ): StateMachineInput {\n if (input.type === runtime.SMIInput.bool) {\n return new StateMachineInput(\n StateMachineInputType.Boolean,\n input.asBool(),\n );\n } else if (input.type === runtime.SMIInput.number) {\n return new StateMachineInput(\n StateMachineInputType.Number,\n input.asNumber(),\n );\n } else if (input.type === runtime.SMIInput.trigger) {\n return new StateMachineInput(\n StateMachineInputType.Trigger,\n input.asTrigger(),\n );\n }\n }\n\n /**\n * Deletes the backing Wasm state machine instance; once this is called, this\n * state machine is no more.\n */\n public cleanup() {\n this.inputs.forEach((input) => {\n input.delete();\n });\n this.inputs.length = 0;\n this.instance.delete();\n }\n\n public bindViewModelInstance(viewModelInstance: ViewModelInstance) {\n if (viewModelInstance.runtimeInstance != null) {\n this.instance.bindViewModelInstance(viewModelInstance.runtimeInstance);\n }\n }\n}\n\n// #endregion\n\n// #region animator\n\n/**\n * Manages animation\n */\nclass Animator {\n /**\n * Constructs a new animator\n * @constructor\n * @param runtime Rive runtime; needed to instance animations & state machines\n * @param artboard the artboard that holds all animations and state machines\n * @param animations optional list of animations\n * @param stateMachines optional list of state machines\n */\n constructor(\n private runtime: rc.RiveCanvas,\n private artboard: rc.Artboard,\n private eventManager: EventManager,\n public readonly animations: Animation[] = [],\n public readonly stateMachines: StateMachine[] = [],\n ) {}\n\n /**\n * Adds animations and state machines by their names. If names are shared\n * between animations & state machines, then the first one found will be\n * created. Best not to use the same names for these in your Rive file.\n * @param animatable the name(s) of animations and state machines to add\n * @returns a list of names of the playing animations and state machines\n */\n public add(\n animatables: string | string[],\n playing: boolean,\n fireEvent = true,\n ): string[] {\n animatables = mapToStringArray(animatables);\n // If animatables is empty, play or pause everything\n if (animatables.length === 0) {\n this.animations.forEach((a) => (a.playing = playing));\n this.stateMachines.forEach((m) => (m.playing = playing));\n } else {\n // Play/pause already instanced items, or create new instances\n const instancedAnimationNames = this.animations.map((a) => a.name);\n const instancedMachineNames = this.stateMachines.map((m) => m.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n const mIndex = instancedMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0 || mIndex >= 0) {\n if (aIndex >= 0) {\n // Animation is instanced, play/pause it\n this.animations[aIndex].playing = playing;\n } else {\n // State machine is instanced, play/pause it\n this.stateMachines[mIndex].playing = playing;\n }\n } else {\n // Try to create a new animation instance\n const anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n const newAnimation = new Animation(\n anim,\n this.artboard,\n this.runtime,\n playing,\n );\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n } else {\n // Try to create a new state machine instance\n const sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n const newStateMachine = new StateMachine(\n sm,\n this.runtime,\n playing,\n this.artboard,\n );\n this.stateMachines.push(newStateMachine);\n }\n }\n }\n }\n }\n // Fire play/paused events for animations\n if (fireEvent) {\n if (playing) {\n this.eventManager.fire({\n type: EventType.Play,\n data: this.playing,\n });\n } else {\n this.eventManager.fire({\n type: EventType.Pause,\n data: this.paused,\n });\n }\n }\n\n return playing ? this.playing : this.paused;\n }\n\n /**\n * Adds linear animations by their names.\n * @param animatables the name(s) of animations to add\n * @param playing whether animations should play on instantiation\n */\n public initLinearAnimations(animatables: string[], playing: boolean) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n const instancedAnimationNames = this.animations.map((a) => a.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.animations[aIndex].playing = playing;\n } else {\n // Try to create a new animation instance\n const anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n const newAnimation = new Animation(\n anim,\n this.artboard,\n this.runtime,\n playing,\n );\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n } else {\n console.error(`Animation with name ${animatables[i]} not found.`);\n }\n }\n }\n }\n\n /**\n * Adds state machines by their names.\n * @param animatables the name(s) of state machines to add\n * @param playing whether state machines should play on instantiation\n */\n public initStateMachines(animatables: string[], playing: boolean) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n const instancedStateMachineNames = this.stateMachines.map((a) => a.name);\n for (let i = 0; i < animatables.length; i++) {\n const aIndex = instancedStateMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.stateMachines[aIndex].playing = playing;\n } else {\n // Try to create a new state machine instance\n const sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n const newStateMachine = new StateMachine(\n sm,\n this.runtime,\n playing,\n this.artboard,\n );\n this.stateMachines.push(newStateMachine);\n } else {\n console.warn(`State Machine with name ${animatables[i]} not found.`);\n // In order to maintain compatibility with current behavior, if a state machine is not found\n // we look for an animation with the same name\n this.initLinearAnimations([animatables[i]], playing);\n }\n }\n }\n }\n\n /**\n * Play the named animations/state machines\n * @param animatables the names of the animations/machines to play; plays all if empty\n * @returns a list of the playing items\n */\n public play(animatables: string | string[]): string[] {\n return this.add(animatables, true);\n }\n\n /**\n * Advance state machines if they are paused after initialization\n */\n public advanceIfPaused(): void {\n this.stateMachines.forEach((sm) => {\n if (!sm.playing) {\n sm.advanceAndApply(0);\n }\n });\n }\n\n /**\n * Pauses named animations and state machines, or everything if nothing is\n * specified\n * @param animatables names of the animations and state machines to pause\n * @returns a list of names of the animations and state machines paused\n */\n public pause(animatables: string[]): string[] {\n return this.add(animatables, false);\n }\n\n /**\n * Set time of named animations\n * @param animations names of the animations to scrub\n * @param value time scrub value, a floating point number to which the playhead is jumped\n * @returns a list of names of the animations that were scrubbed\n */\n public scrub(animatables: string[], value: number): string[] {\n const forScrubbing = this.animations.filter((a) =>\n animatables.includes(a.name),\n );\n forScrubbing.forEach((a) => (a.scrubTo = value));\n return forScrubbing.map((a) => a.name);\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * playing\n */\n public get playing(): string[] {\n return this.animations\n .filter((a) => a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => m.playing).map((m) => m.name));\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * paused\n */\n public get paused(): string[] {\n return this.animations\n .filter((a) => !a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => !m.playing).map((m) => m.name));\n }\n\n /**\n * Stops and removes all named animations and state machines\n * @param animatables animations and state machines to remove\n * @returns a list of names of removed items\n */\n public stop(animatables?: string[] | string): string[] {\n animatables = mapToStringArray(animatables);\n\n // If nothing's specified, wipe them out, all of them\n let removedNames: string[] = [];\n // Stop everything\n if (animatables.length === 0) {\n removedNames = this.animations\n .map((a) => a.name)\n .concat(this.stateMachines.map((m) => m.name));\n // Clean up before emptying the arrays\n this.animations.forEach((a) => a.cleanup());\n this.stateMachines.forEach((m) => m.cleanup());\n // Empty out the arrays\n this.animations.splice(0, this.animations.length);\n this.stateMachines.splice(0, this.stateMachines.length);\n } else {\n // Remove only the named animations/state machines\n const animationsToRemove = this.animations.filter((a) =>\n animatables.includes(a.name),\n );\n\n animationsToRemove.forEach((a) => {\n a.cleanup();\n this.animations.splice(this.animations.indexOf(a), 1);\n });\n const machinesToRemove = this.stateMachines.filter((m) =>\n animatables.includes(m.name),\n );\n machinesToRemove.forEach((m) => {\n m.cleanup();\n this.stateMachines.splice(this.stateMachines.indexOf(m), 1);\n });\n removedNames = animationsToRemove\n .map((a) => a.name)\n .concat(machinesToRemove.map((m) => m.name));\n }\n\n this.eventManager.fire({\n type: EventType.Stop,\n data: removedNames,\n });\n\n // Return the list of animations removed\n return removedNames;\n }\n\n /**\n * Returns true if at least one animation is active\n */\n public get isPlaying(): boolean {\n return (\n this.animations.reduce((acc, curr) => acc || curr.playing, false) ||\n this.stateMachines.reduce((acc, curr) => acc || curr.playing, false)\n );\n }\n\n /**\n * Returns true if all animations are paused and there's at least one animation\n */\n public get isPaused(): boolean {\n return (\n !this.isPlaying &&\n (this.animations.length > 0 || this.stateMachines.length > 0)\n );\n }\n\n /**\n * Returns true if there are no playing or paused animations/state machines\n */\n public get isStopped(): boolean {\n return this.animations.length === 0 && this.stateMachines.length === 0;\n }\n\n /**\n * If there are no animations or state machines, add the first one found\n * @returns the name of the animation or state machine instanced\n */\n public atLeastOne(playing: boolean, fireEvent = true): string {\n let instancedName: string;\n if (this.animations.length === 0 && this.stateMachines.length === 0) {\n if (this.artboard.animationCount() > 0) {\n // Add the first animation\n this.add(\n [(instancedName = this.artboard.animationByIndex(0).name)],\n playing,\n fireEvent,\n );\n } else if (this.artboard.stateMachineCount() > 0) {\n // Add the first state machine\n this.add(\n [(instancedName = this.artboard.stateMachineByIndex(0).name)],\n playing,\n fireEvent,\n );\n }\n }\n return instancedName;\n }\n\n /**\n * Checks if any animations have looped and if so, fire the appropriate event\n */\n public handleLooping() {\n for (const animation of this.animations.filter((a) => a.playing)) {\n // Emit if the animation looped\n if (animation.loopValue === 0 && animation.loopCount) {\n animation.loopCount = 0;\n // This is a one-shot; if it has ended, delete the instance\n this.stop(animation.name);\n } else if (animation.loopValue === 1 && animation.loopCount) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.Loop },\n });\n animation.loopCount = 0;\n }\n // Wasm indicates a loop at each time the animation\n // changes direction, so a full loop/lap occurs every\n // two loop counts\n else if (animation.loopValue === 2 && animation.loopCount > 1) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.PingPong },\n });\n animation.loopCount = 0;\n }\n }\n }\n\n /**\n * Checks if states have changed in state machines and fires a statechange\n * event\n */\n public handleStateChanges() {\n const statesChanged: string[] = [];\n for (const stateMachine of this.stateMachines.filter((sm) => sm.playing)) {\n statesChanged.push(...stateMachine.statesChanged);\n }\n if (statesChanged.length > 0) {\n this.eventManager.fire({\n type: EventType.StateChange,\n data: statesChanged,\n });\n }\n }\n\n public handleAdvancing(time: number) {\n this.eventManager.fire({\n type: EventType.Advance,\n data: time,\n });\n }\n}\n\n// #endregion\n\n// #region events\n\n/**\n * Supported event types triggered in Rive\n */\nexport enum EventType {\n Load = \"load\",\n LoadError = \"loaderror\",\n Play = \"play\",\n Pause = \"pause\",\n Stop = \"stop\",\n Loop = \"loop\",\n Draw = \"draw\",\n Advance = \"advance\",\n StateChange = \"statechange\",\n RiveEvent = \"riveevent\",\n AudioStatusChange = \"audiostatuschange\", // internal event. TODO: split\n}\n\nexport type RiveEventPayload = rc.RiveEvent | rc.OpenUrlEvent;\n\n// Event reported by Rive for significant events during animation playback (i.e. play, pause, stop, etc.),\n// as well as for custom Rive events reported from the state machine defined at design-time.\nexport interface Event {\n type: EventType;\n data?: string | string[] | LoopEvent | number | RiveEventPayload | RiveFile;\n}\n\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nexport enum LoopType {\n OneShot = \"oneshot\", // has value 0 in runtime\n Loop = \"loop\", // has value 1 in runtime\n PingPong = \"pingpong\", // has value 2 in runtime\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport interface LoopEvent {\n animation: string;\n type: LoopType;\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport type EventCallback = (event: Event) => void;\n\n/**\n * Event listeners registered with the event manager\n */\nexport interface EventListener {\n type: EventType;\n callback: EventCallback;\n}\n\n/**\n * FPS Reporting through callbacks sent to the WASM runtime\n */\nexport type FPSCallback = (fps: number) => void;\n\n// Manages Rive events and listeners\nclass EventManager {\n constructor(private listeners: EventListener[] = []) {}\n\n // Gets listeners of specified type\n private getListeners(type: EventType): EventListener[] {\n return this.listeners.filter((e) => e.type === type);\n }\n\n // Adds a listener\n public add(listener: EventListener): void {\n if (!this.listeners.includes(listener)) {\n this.listeners.push(listener);\n }\n }\n\n /**\n * Removes a listener\n * @param listener the listener with the callback to be removed\n */\n public remove(listener: EventListener): void {\n // We can't simply look for the listener as it'll be a different instance to\n // one originally subscribed. Find all the listeners of the right type and\n // then check their callbacks which should match.\n for (let i = 0; i < this.listeners.length; i++) {\n const currentListener = this.listeners[i];\n if (currentListener.type === listener.type) {\n if (currentListener.callback === listener.callback) {\n this.listeners.splice(i, 1);\n break;\n }\n }\n }\n }\n\n /**\n * Clears all listeners of specified type, or every listener if no type is\n * specified\n * @param type the type of listeners to clear, or all listeners if not\n * specified\n */\n public removeAll(type?: EventType) {\n if (!type) {\n this.listeners.splice(0, this.listeners.length);\n } else {\n this.listeners\n .filter((l) => l.type === type)\n .forEach((l) => this.remove(l));\n }\n }\n\n // Fires an event\n public fire(event: Event): void {\n const eventListeners = this.getListeners(event.type);\n eventListeners.forEach((listener) => listener.callback(event));\n }\n}\n\n// #endregion\n\n// #region Manages a queue of tasks\n\n// A task in the queue; will fire the action when the queue is processed; will\n// also optionally fire an event.\nexport interface Task {\n action?: VoidCallback;\n event?: Event;\n}\n\n// Manages a queue of tasks\nclass TaskQueueManager {\n private queue: Task[] = [];\n\n constructor(private eventManager: EventManager) {}\n\n // Adds a task top the queue\n public add(task: Task): void {\n this.queue.push(task);\n }\n\n // Processes all tasks in the queue\n public process(): void {\n while (this.queue.length > 0) {\n const task = this.queue.shift();\n if (task?.action) {\n task.action();\n }\n if (task?.event) {\n this.eventManager.fire(task.event);\n }\n }\n }\n}\n\n// #endregion\n\n// #region Audio\n\nenum SystemAudioStatus {\n AVAILABLE,\n UNAVAILABLE,\n}\n\n// Class to handle audio context availability and status changes\nclass AudioManager extends EventManager {\n private _started: boolean = false;\n private _enabled: boolean = false;\n\n private _status: SystemAudioStatus = SystemAudioStatus.UNAVAILABLE;\n private _audioContext: AudioContext;\n\n private async delay(time: number) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n\n private async timeout() {\n return new Promise((_, reject) => setTimeout(reject, 50));\n }\n\n // Alerts animations on status changes and removes the listeners to avoid alerting twice.\n private reportToListeners() {\n this.fire({ type: EventType.AudioStatusChange });\n this.removeAll();\n }\n\n /**\n * The audio context has been resolved.\n * Alert any listeners that we can now play audio.\n * Rive will now play audio at the configured volume.\n */\n private async enableAudio() {\n if (!this._enabled) {\n this._enabled = true;\n this._status = SystemAudioStatus.AVAILABLE;\n this.reportToListeners();\n }\n }\n\n /**\n * Check if we are able to play audio.\n *\n * We currently check the audio context, when resume() returns before a timeout we know that the\n * audio context is running and we can enable audio.\n */\n private async testAudio() {\n if (\n this._status === SystemAudioStatus.UNAVAILABLE &&\n this._audioContext !== null\n ) {\n // if the audio context is not available, it will never resume,\n // so the timeout will throw after 50ms and a new cycle will start\n try {\n await Promise.race([this._audioContext.resume(), this.timeout()]);\n this.enableAudio();\n } catch {\n // we expect the promise race to timeout, which we ignore.\n }\n }\n }\n\n /**\n * Establish audio for use with rive.\n * We both test if we can use audio intermittently and listen for user interaction.\n * The aim is to enable audio playback as soon as the browser allows this.\n */\n private async _establishAudio() {\n if (!this._started) {\n this._started = true;\n // If window doesn't exist we assume they are not in a browser context\n // so audio will not be blocked\n if (typeof window == \"undefined\") {\n this.enableAudio();\n } else {\n this._audioContext = new AudioContext();\n this.listenForUserAction();\n while (this._status === SystemAudioStatus.UNAVAILABLE) {\n await this.testAudio();\n await this.delay(1000);\n }\n }\n }\n }\n\n private listenForUserAction() {\n // NOTE: AudioContexts are ready immediately if requested in a ui callback\n // we *could* re request one in this listener.\n const _clickListener = async () => {\n // note this has \"better\" results than calling `await this.testAudio()`\n // as we force audio to be enabled in the current thread, rather than chancing\n // the thread to be passed over for some other async context\n\n this.enableAudio();\n };\n // NOTE: we should test this on mobile/pads\n document.addEventListener(\"pointerdown\", _clickListener, {\n once: true,\n });\n }\n\n /**\n * Establish the audio context for rive, this lets rive know that we can play audio.\n */\n public async establishAudio() {\n this._establishAudio();\n }\n\n public get systemVolume() {\n if (this._status === SystemAudioStatus.UNAVAILABLE) {\n // We do an immediate test to avoid depending on the delay of the running test\n this.testAudio();\n return 0;\n }\n return 1;\n }\n\n public get status(): SystemAudioStatus {\n return this._status;\n }\n}\n\nconst audioManager = new AudioManager();\n\n// #endregion\n\n// #region Observers\n\ntype ObservedObject = {\n onResize: Function;\n element: HTMLCanvasElement;\n};\n\ntype MyResizeObserverType = {\n observe: Function;\n unobserve: Function;\n disconnect: Function;\n};\n\nclass FakeResizeObserver {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nconst MyResizeObserver = globalThis.ResizeObserver || FakeResizeObserver;\n\n/**\n * This class takes care of any observers that will be attached to an animation.\n * It should be treated as a singleton because observers are much more performant\n * when used for observing multiple elements by a single instance.\n */\n\nclass ObjectObservers {\n private _elementsMap: Map<HTMLCanvasElement, ObservedObject> = new Map();\n\n private _resizeObserver: MyResizeObserverType;\n\n constructor() {\n this._resizeObserver = new MyResizeObserver(this._onObserved);\n }\n\n /**\n * Resize observers trigger both when the element changes its size and also when the\n * element is added or removed from the document.\n */\n private _onObservedEntry = (entry: ResizeObserverEntry) => {\n const observed = this._elementsMap.get(entry.target as HTMLCanvasElement);\n if (observed !== null) {\n observed.onResize(\n entry.target.clientWidth == 0 || entry.target.clientHeight == 0,\n );\n } else {\n this._resizeObserver.unobserve(entry.target);\n }\n };\n\n private _onObserved = (entries: ResizeObserverEntry[]) => {\n entries.forEach(this._onObservedEntry);\n };\n\n // Adds an observable element\n public add(element: HTMLCanvasElement, onResize: Function) {\n let observed: ObservedObject = {\n onResize,\n element,\n };\n this._elementsMap.set(element, observed);\n this._resizeObserver.observe(element);\n return observed;\n }\n\n // Removes an observable element\n public remove(observed: ObservedObject) {\n this._resizeObserver.unobserve(observed.element);\n this._elementsMap.delete(observed.element);\n }\n}\n\nconst observers = new ObjectObservers();\n\n// #endregion\n\n// #region Rive\n\n// Interface for the Rive static method contructor\nexport interface RiveParameters {\n canvas: HTMLCanvasElement | OffscreenCanvas; // canvas is required\n src?: string; // one of src or buffer or file is required\n buffer?: ArrayBuffer; // one of src or buffer or file is required\n riveFile?: RiveFile;\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n layout?: Layout;\n autoplay?: boolean;\n useOffscreenRenderer?: boolean;\n /**\n * Allow the runtime to automatically load assets hosted in Rive's CDN.\n * enabled by default.\n */\n enableRiveAssetCDN?: boolean;\n /**\n * Turn off Rive Listeners. This means state machines that have Listeners\n * will not be invoked, and also, no event listeners pertaining to Listeners\n * will be attached to the <canvas> element\n */\n shouldDisableRiveListeners?: boolean;\n /**\n * For Rive Listeners, allows scrolling behavior to still occur on canvas elements\n * when a touch/drag action is performed on touch-enabled devices. Otherwise,\n * scroll behavior may be prevented on touch/drag actions on the canvas by default.\n */\n isTouchScrollEnabled?: boolean;\n /**\n * Enable Rive Events to be handled by the runtime. This means any special Rive Event may have\n * a side effect that takes place implicitly.\n *\n * For example, if during the render loop an OpenUrlEvent is detected, the\n * browser may try to open the specified URL in the payload.\n *\n * This flag is false by default to prevent any unwanted behaviors from taking place.\n * This means any special Rive Event will have to be handled manually by subscribing to\n * EventType.RiveEvent\n */\n automaticallyHandleEvents?: boolean;\n /**\n * Rive will look for a default view model and view model instance to bind to the artboard\n */\n autoBind?: boolean;\n /**\n * For Rive Listeners, dispatch a pointer exit when the pointer exits the canvas.\n */\n dispatchPointerExit?: boolean;\n /**\n * Enables multi touch support\n */\n enableMultiTouch?: boolean;\n onLoad?: EventCallback;\n onLoadError?: EventCallback;\n onPlay?: EventCallback;\n onPause?: EventCallback;\n onStop?: EventCallback;\n onLoop?: EventCallback;\n onStateChange?: EventCallback;\n onAdvance?: EventCallback;\n assetLoader?: AssetLoadCallback;\n /**\n * @deprecated Use `onLoad()` instead\n */\n onload?: EventCallback;\n /**\n * @deprecated Use `onLoadError()` instead\n */\n onloaderror?: EventCallback;\n /**\n * @deprecated Use `onPoad()` instead\n */\n onplay?: EventCallback;\n /**\n * @deprecated Use `onPause()` instead\n */\n onpause?: EventCallback;\n /**\n * @deprecated Use `onStop()` instead\n */\n onstop?: EventCallback;\n /**\n * @deprecated Use `onLoop()` instead\n */\n onloop?: EventCallback;\n /**\n * @deprecated Use `onStateChange()` instead\n */\n onstatechange?: EventCallback;\n}\n\n// Interface to Rive.load function\nexport interface RiveLoadParameters {\n src?: string;\n buffer?: ArrayBuffer;\n riveFile?: RiveFile;\n autoplay?: boolean;\n autoBind?: boolean;\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n useOffscreenRenderer?: boolean;\n shouldDisableRiveListeners?: boolean;\n}\n\n// Interface ot Rive.reset function\nexport interface RiveResetParameters {\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n autoplay?: boolean;\n autoBind?: boolean;\n}\n// Interface to RiveFile.load function\nexport interface RiveFileParameters {\n src?: string;\n buffer?: ArrayBuffer;\n assetLoader?: AssetLoadCallback;\n enableRiveAssetCDN?: boolean;\n onLoad?: EventCallback;\n onLoadError?: EventCallback;\n}\n\nexport class RiveFile implements rc.FinalizableTarget {\n // Error message for missing source or buffer\n private static readonly missingErrorMessage: string =\n \"Rive source file or data buffer required\";\n\n // Error message for file load error\n private static readonly fileLoadErrorMessage: string =\n \"The file failed to load\";\n\n // A url to a Rive file; may be undefined if a buffer is specified\n private src: string;\n\n // Raw Rive file data; may be undefined if a src is specified\n private buffer: ArrayBuffer;\n\n // Wasm runtime\n private runtime: rc.RiveCanvas;\n\n // Runtime file\n private file: rc.File;\n\n // AssetLoadCallback: allows customizing asset loading for images and fonts.\n private assetLoader: AssetLoadCallback;\n\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n private enableRiveAssetCDN: boolean = true;\n\n // Holds event listeners\n private eventManager: EventManager;\n\n private referenceCount: number = 0;\n\n private destroyed: boolean = false;\n\n public selfUnref: boolean = false;\n\n private bindableArtboards: BindableArtboard[] = [];\n\n constructor(params: RiveFileParameters) {\n this.src = params.src;\n this.buffer = params.buffer;\n\n if (params.assetLoader) this.assetLoader = params.assetLoader;\n this.enableRiveAssetCDN =\n typeof params.enableRiveAssetCDN == \"boolean\"\n ? params.enableRiveAssetCDN\n : true;\n\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad) this.on(EventType.Load, params.onLoad);\n if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n }\n\n private releaseFile() {\n if (this.selfUnref) {\n this.file?.unref();\n }\n this.file = null;\n }\n\n private releaseBindableArtboards() {\n this.bindableArtboards.forEach((bindableArtboard) =>\n bindableArtboard.destroy(),\n );\n }\n\n private async initData() {\n if (this.src) {\n this.buffer = await loadRiveFile(this.src);\n }\n if (this.destroyed) {\n return;\n }\n let loader;\n if (this.assetLoader) {\n const loaderWrapper = new CustomFileAssetLoaderWrapper(\n this.runtime,\n this.assetLoader,\n );\n loader = loaderWrapper.assetLoader;\n }\n // Load the Rive file\n this.file = await this.runtime.load(\n new Uint8Array(this.buffer),\n loader,\n this.enableRiveAssetCDN,\n );\n const fileFinalizer = new FileFinalizer(this.file);\n finalizationRegistry.register(this, fileFinalizer);\n\n if (this.destroyed) {\n this.releaseFile();\n return;\n }\n if (this.file !== null) {\n this.eventManager.fire({\n type: EventType.Load,\n data: this,\n });\n } else {\n this.fireLoadError(RiveFile.fileLoadErrorMessage);\n }\n }\n\n public async init() {\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer) {\n this.fireLoadError(RiveFile.missingErrorMessage);\n return;\n }\n\n try {\n this.runtime = await RuntimeLoader.awaitInstance();\n\n if (this.destroyed) {\n return;\n }\n\n await this.initData();\n } catch (error) {\n this.fireLoadError(\n error instanceof Error ? error.message : RiveFile.fileLoadErrorMessage,\n );\n }\n }\n\n private fireLoadError(message: string): void {\n this.eventManager.fire({\n type: EventType.LoadError,\n data: message,\n });\n\n throw new Error(message);\n }\n\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n public on(type: EventType, callback: EventCallback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n public off(type: EventType, callback: EventCallback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n }\n\n public cleanup() {\n this.referenceCount -= 1;\n if (this.referenceCount <= 0) {\n this.removeAllRiveEventListeners();\n this.releaseFile();\n this.releaseBindableArtboards();\n this.destroyed = true;\n }\n }\n\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public removeAllRiveEventListeners(type?: EventType) {\n this.eventManager.removeAll(type);\n }\n\n public getInstance(): rc.File {\n if (this.file !== null) {\n this.referenceCount += 1;\n return this.file;\n }\n }\n\n public destroyIfUnused() {\n if (this.referenceCount <= 0) {\n this.cleanup();\n }\n }\n\n private createBindableArtboard(\n nativeBindableArtboard: rc.BindableArtboard,\n ): BindableArtboard | null {\n if (nativeBindableArtboard != null) {\n const bindableArtboard = new BindableArtboard(nativeBindableArtboard);\n createFinalization(bindableArtboard, bindableArtboard.nativeArtboard);\n this.bindableArtboards.push(bindableArtboard);\n return bindableArtboard;\n }\n return null;\n }\n\n /**\n * @deprecated This function is deprecated. For better stability and memory management\n * use `getBindableArtboard()` instead.\n * @param {string} name - The name of the artboard.\n * @returns {Artboard} The artboard to bind to.\n */\n public getArtboard(name: string): Artboard | null {\n const nativeArtboard = this.file.artboardByName(name);\n if (nativeArtboard != null) {\n return new Artboard(nativeArtboard, this);\n }\n }\n\n public getBindableArtboard(name: string): BindableArtboard | null {\n const nativeArtboard = this.file.bindableArtboardByName(name);\n return this.createBindableArtboard(nativeArtboard);\n }\n\n public getDefaultBindableArtboard(): BindableArtboard | null {\n const nativeArtboard = this.file.bindableArtboardDefault();\n return this.createBindableArtboard(nativeArtboard);\n }\n\n public internalBindableArtboardFromArtboard(\n artboard: rc.Artboard,\n ): BindableArtboard | null {\n const nativeBindableArtboard =\n this.file.internalBindableArtboardFromArtboard(artboard);\n return this.createBindableArtboard(nativeBindableArtboard);\n }\n}\n\nexport class Rive {\n // Canvas in which to render the artboard\n private readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n\n // A url to a Rive file; may be undefined if a buffer is specified\n private src: string;\n\n // Raw Rive file data; may be undefined if a src is specified\n private buffer: ArrayBuffer;\n\n // The layout for rendering in the canvas\n private _layout: Layout;\n\n // The runtime renderer\n private renderer: rc.WrappedRenderer;\n\n // Tracks if a Rive file is loaded\n private loaded = false;\n\n // Tracks if a Rive file is destroyed\n private destroyed = false;\n\n // Reference of an object that handles any observers for the animation\n private _observed: ObservedObject | null = null;\n\n /**\n * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n * commands (e.g. contents) can be called as soon as the file is loaded.\n * However, playback commands need to be queued and run in order once initial\n * animations and autoplay has been sorted out. This applies to play, pause,\n * and start.\n */\n private readyForPlaying = false;\n\n // Wasm runtime\n private runtime: rc.RiveCanvas;\n\n // Runtime artboard\n private artboard: rc.Artboard | null = null;\n\n // place to clear up event listeners\n private eventCleanup: VoidCallback | null = null;\n\n // Runtime file\n private file: rc.File;\n\n // Rive file instance\n private riveFile: RiveFile;\n\n // Holds event listeners\n private eventManager: EventManager;\n\n // Manages the loading task queue\n private taskQueue: TaskQueueManager;\n\n // Animator: manages animations and state machines\n private animator: Animator;\n\n // AssetLoadCallback: allows customizing asset loading for images and fonts.\n private assetLoader: AssetLoadCallback;\n\n // Error message for missing source or buffer\n private static readonly missingErrorMessage: string =\n \"Rive source file or data buffer required\";\n\n // Error message for removed rive file\n private static readonly cleanupErrorMessage: string =\n \"Attempt to use file after calling cleanup.\";\n\n private shouldDisableRiveListeners = false;\n\n private automaticallyHandleEvents = false;\n\n private dispatchPointerExit = true;\n\n // Allow all pointers to be passed to the runtime\n private enableMultiTouch = false;\n\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n private enableRiveAssetCDN = true;\n\n // Keep a local value of the set volume to update it asynchronously\n private _volume = 1;\n\n // Keep a local value of the set width to update it asynchronously\n private _artboardWidth: number | undefined = undefined;\n\n // Keep a local value of the set height to update it asynchronously\n private _artboardHeight: number | undefined = undefined;\n\n // Keep a local value of the device pixel ratio used in rendering and canvas/artboard resizing\n private _devicePixelRatioUsed = 1;\n\n // Whether the canvas element's size is 0\n private _hasZeroSize = false;\n\n // Audio event listener\n private _audioEventListener: EventListener | null = null;\n\n // draw method bound to the class\n private _boundDraw: (t: number) => void | null = null;\n\n private _viewModelInstance: ViewModelInstance | null = null;\n private _dataEnums: DataEnum[] | null = null;\n\n // Durations to generate a frame for the last second. Used for performance profiling.\n public durations: number[] = [];\n public frameTimes: number[] = [];\n public frameCount = 0;\n public isTouchScrollEnabled = false;\n\n constructor(params: RiveParameters) {\n this._boundDraw = this.draw.bind(this);\n this.canvas = params.canvas;\n if (params.canvas.constructor === HTMLCanvasElement) {\n this._observed = observers.add(\n this.canvas as HTMLCanvasElement,\n this.onCanvasResize,\n );\n }\n this.src = params.src;\n this.buffer = params.buffer;\n this.riveFile = params.riveFile;\n this.layout = params.layout ?? new Layout();\n this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\n this.isTouchScrollEnabled = !!params.isTouchScrollEnabled;\n this.automaticallyHandleEvents = !!params.automaticallyHandleEvents;\n this.dispatchPointerExit =\n params.dispatchPointerExit === false\n ? params.dispatchPointerExit\n : this.dispatchPointerExit;\n this.enableMultiTouch = !!params.enableMultiTouch;\n this.enableRiveAssetCDN =\n params.enableRiveAssetCDN === undefined\n ? true\n : params.enableRiveAssetCDN;\n\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad) this.on(EventType.Load, params.onLoad);\n if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n if (params.onPlay) this.on(EventType.Play, params.onPlay);\n if (params.onPause) this.on(EventType.Pause, params.onPause);\n if (params.onStop) this.on(EventType.Stop, params.onStop);\n if (params.onLoop) this.on(EventType.Loop, params.onLoop);\n if (params.onStateChange)\n this.on(EventType.StateChange, params.onStateChange);\n if (params.onAdvance) this.on(EventType.Advance, params.onAdvance);\n\n /**\n * @deprecated Use camelCase'd versions instead.\n */\n if (params.onload && !params.onLoad) this.on(EventType.Load, params.onload);\n if (params.onloaderror && !params.onLoadError)\n this.on(EventType.LoadError, params.onloaderror);\n if (params.onplay && !params.onPlay) this.on(EventType.Play, params.onplay);\n if (params.onpause && !params.onPause)\n this.on(EventType.Pause, params.onpause);\n if (params.onstop && !params.onStop) this.on(EventType.Stop, params.onstop);\n if (params.onloop && !params.onLoop) this.on(EventType.Loop, params.onloop);\n if (params.onstatechange && !params.onStateChange)\n this.on(EventType.StateChange, params.onstatechange);\n\n /**\n * Asset loading\n */\n if (params.assetLoader) this.assetLoader = params.assetLoader;\n\n // Hook up the task queue\n this.taskQueue = new TaskQueueManager(this.eventManager);\n\n this.init({\n src: this.src,\n buffer: this.buffer,\n riveFile: this.riveFile,\n autoplay: params.autoplay,\n autoBind: params.autoBind,\n animations: params.animations,\n stateMachines: params.stateMachines,\n artboard: params.artboard,\n useOffscreenRenderer: params.useOffscreenRenderer,\n });\n }\n\n public get viewModelCount(): number {\n return this.file.viewModelCount();\n }\n\n // Alternative constructor to build a Rive instance from an interface/object\n public static new(params: RiveParameters): Rive {\n console.warn(\n \"This function is deprecated: please use `new Rive({})` instead\",\n );\n return new Rive(params);\n }\n\n // Event handler for when audio context becomes available\n private onSystemAudioChanged() {\n this.volume = this._volume;\n }\n\n private onCanvasResize = (hasZeroSize: boolean) => {\n const toggledDisplay = this._hasZeroSize !== hasZeroSize;\n this._hasZeroSize = hasZeroSize;\n if (!hasZeroSize) {\n if (toggledDisplay) {\n this.resizeDrawingSurfaceToCanvas();\n }\n } else if (!this._layout.maxX || !this._layout.maxY) {\n this.resizeToCanvas();\n }\n };\n\n // Initializes the Rive object either from constructor or load()\n private init({\n src,\n buffer,\n riveFile,\n animations,\n stateMachines,\n artboard,\n autoplay = false,\n useOffscreenRenderer = false,\n autoBind = false,\n }: RiveLoadParameters): void {\n if (this.destroyed) {\n return;\n }\n this.src = src;\n this.buffer = buffer;\n this.riveFile = riveFile;\n\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer && !this.riveFile) {\n throw new RiveError(Rive.missingErrorMessage);\n }\n\n // List of animations that should be initialized.\n const startingAnimationNames = mapToStringArray(animations);\n\n // List of state machines that should be initialized\n const startingStateMachineNames = mapToStringArray(stateMachines);\n\n // Ensure loaded is marked as false if loading new file\n this.loaded = false;\n this.readyForPlaying = false;\n\n // Ensure the runtime is loaded\n RuntimeLoader.awaitInstance()\n .then((runtime) => {\n if (this.destroyed) {\n return;\n }\n this.runtime = runtime;\n\n this.removeRiveListeners();\n this.deleteRiveRenderer();\n\n // Get the canvas where you want to render the animation and create a renderer\n this.renderer = this.runtime.makeRenderer(\n this.canvas,\n useOffscreenRenderer,\n );\n\n // Initial size adjustment based on devicePixelRatio if no width/height are\n // specified explicitly\n if (!(this.canvas.width || this.canvas.height)) {\n this.resizeDrawingSurfaceToCanvas();\n }\n\n // Load Rive data from a source uri or a data buffer\n this.initData(\n artboard,\n startingAnimationNames,\n startingStateMachineNames,\n autoplay,\n autoBind,\n )\n .then((hasInitialized: boolean) => {\n if (hasInitialized) {\n return this.setupRiveListeners();\n }\n })\n .catch((e) => {\n console.error(e);\n });\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n /**\n * Setup Rive Listeners on the canvas\n * @param riveListenerOptions - Enables TouchEvent events on the canvas. Set to true to allow\n * touch scrolling on the canvas element on touch-enabled devices\n * i.e. { isTouchScrollEnabled: true }\n */\n public setupRiveListeners(\n riveListenerOptions?: SetupRiveListenersOptions,\n ): void {\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n if (!this.shouldDisableRiveListeners) {\n const activeStateMachines = (this.animator.stateMachines || [])\n .filter((sm) => sm.playing && this.runtime.hasListeners(sm.instance))\n .map((sm) => sm.instance);\n let touchScrollEnabledOption = this.isTouchScrollEnabled;\n let dispatchPointerExit = this.dispatchPointerExit;\n let enableMultiTouch = this.enableMultiTouch;\n if (\n riveListenerOptions &&\n \"isTouchScrollEnabled\" in riveListenerOptions\n ) {\n touchScrollEnabledOption = riveListenerOptions.isTouchScrollEnabled;\n }\n this.eventCleanup = registerTouchInteractions({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachines,\n renderer: this.renderer,\n rive: this.runtime,\n fit: this._layout.runtimeFit(this.runtime),\n alignment: this._layout.runtimeAlignment(this.runtime),\n isTouchScrollEnabled: touchScrollEnabledOption,\n dispatchPointerExit: dispatchPointerExit,\n enableMultiTouch: enableMultiTouch,\n layoutScaleFactor: this._layout.layoutScaleFactor,\n });\n }\n }\n\n /**\n * Remove Rive Listeners setup on the canvas\n */\n public removeRiveListeners(): void {\n if (this.eventCleanup) {\n this.eventCleanup();\n this.eventCleanup = null;\n }\n }\n\n /**\n * If the instance has audio and the system audio is not ready\n * we hook the instance to the audio manager\n */\n private initializeAudio() {\n // Initialize audio if needed\n if (audioManager.status == SystemAudioStatus.UNAVAILABLE) {\n if (this.artboard?.hasAudio && this._audioEventListener === null) {\n this._audioEventListener = {\n type: EventType.AudioStatusChange,\n callback: () => this.onSystemAudioChanged(),\n };\n audioManager.add(this._audioEventListener);\n audioManager.establishAudio();\n }\n }\n }\n\n private initArtboardSize() {\n if (!this.artboard) return;\n\n // Use preset values if they are not undefined\n this._artboardWidth = this.artboard.width =\n this._artboardWidth || this.artboard.width;\n this._artboardHeight = this.artboard.height =\n this._artboardHeight || this.artboard.height;\n }\n\n // Initializes runtime with Rive data and preps for playing.\n // Returns true for successful initialization.\n private async initData(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean,\n autoBind: boolean,\n ): Promise<boolean> {\n try {\n if (this.riveFile == null) {\n const riveFile = new RiveFile({\n src: this.src,\n buffer: this.buffer,\n enableRiveAssetCDN: this.enableRiveAssetCDN,\n assetLoader: this.assetLoader,\n });\n this.riveFile = riveFile;\n await riveFile.init();\n if (this.destroyed) {\n // In the very unlikely scenario where the rive file created by this Rive is shared by\n // another rive file, we only want to destroy it if this file is the only owner.\n riveFile.destroyIfUnused();\n return false;\n }\n }\n this.file = this.riveFile.getInstance();\n // Initialize and draw frame\n this.initArtboard(\n artboardName,\n animationNames,\n stateMachineNames,\n autoplay,\n autoBind,\n );\n\n // Initialize the artboard size\n this.initArtboardSize();\n\n // Check for audio\n this.initializeAudio();\n\n // Everything's set up, emit a load event\n this.loaded = true;\n this.eventManager.fire({\n type: EventType.Load,\n data: this.src ?? \"buffer\",\n });\n\n // Only initialize paused state machines after the load event has been fired\n // to allow users to initialize inputs and view models before the first advance\n this.animator.advanceIfPaused();\n\n // Flag ready for playback commands and clear the task queue; this order\n // is important or it may infinitely recurse\n this.readyForPlaying = true;\n this.taskQueue.process();\n\n this.drawFrame();\n\n return true;\n } catch (error) {\n const msg = resolveErrorMessage(error);\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return Promise.reject(msg);\n }\n }\n\n // Initialize for playback\n private initArtboard(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean,\n autoBind: boolean,\n ): void {\n if (!this.file) {\n return;\n }\n // Fetch the artboard\n const rootArtboard = artboardName\n ? this.file.artboardByName(artboardName)\n : this.file.defaultArtboard();\n\n // Check we have a working artboard\n if (!rootArtboard) {\n const msg = \"Invalid artboard name or no default artboard\";\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return;\n }\n\n this.artboard = rootArtboard;\n rootArtboard.volume = this._volume * audioManager.systemVolume;\n\n // Initialize the animator\n this.animator = new Animator(\n this.runtime,\n this.artboard,\n this.eventManager,\n );\n\n // Initialize the animations; as loaded hasn't happened yet, we need to\n // suppress firing the play/pause events until the load event has fired. To\n // do this we tell the animator to suppress firing events, and add event\n // firing to the task queue.\n let instanceNames: string[];\n if (animationNames.length > 0 || stateMachineNames.length > 0) {\n instanceNames = animationNames.concat(stateMachineNames);\n this.animator.initLinearAnimations(animationNames, autoplay);\n this.animator.initStateMachines(stateMachineNames, autoplay);\n } else {\n instanceNames = [this.animator.atLeastOne(autoplay, false)];\n }\n // Queue up firing the playback events\n this.taskQueue.add({\n event: {\n type: autoplay ? EventType.Play : EventType.Pause,\n data: instanceNames,\n },\n });\n\n if (autoBind) {\n const viewModel = this.file.defaultArtboardViewModel(rootArtboard);\n if (viewModel !== null) {\n const runtimeInstance = viewModel.defaultInstance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(\n runtimeInstance,\n null,\n );\n createFinalization(\n viewModelInstance,\n viewModelInstance.runtimeInstance,\n );\n this.bindViewModelInstance(viewModelInstance);\n }\n }\n }\n }\n\n // Draws the current artboard frame\n public drawFrame() {\n if (document?.timeline?.currentTime) {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n this._boundDraw(document!.timeline!.currentTime as number);\n this.runtime?.resolveAnimationFrame();\n }\n } else {\n this.startRendering();\n }\n }\n\n // Tracks the last timestamp at which the animation was rendered. Used only in\n // draw().\n private lastRenderTime: number;\n\n // Tracks the current animation frame request\n private frameRequestId: number | null;\n\n /**\n * Used be draw to track when a second of active rendering time has passed.\n * Used for debugging purposes\n */\n private renderSecondTimer = 0;\n\n /**\n * Draw rendering loop; renders animation frames at the correct time interval.\n * @param time the time at which to render a frame\n */\n private draw(time: number, onSecond?: VoidCallback): void {\n // Clear the frameRequestId, as we're now rendering a fresh frame\n this.frameRequestId = null;\n\n const before = performance.now();\n\n // On the first pass, make sure lastTime has a valid value\n if (!this.lastRenderTime) {\n this.lastRenderTime = time;\n }\n\n // Handle the onSecond callback\n this.renderSecondTimer += time - this.lastRenderTime;\n if (this.renderSecondTimer > 5000) {\n this.renderSecondTimer = 0;\n onSecond?.();\n }\n\n // Calculate the elapsed time between frames in seconds\n const elapsedTime = (time - this.lastRenderTime) / 1000;\n this.lastRenderTime = time;\n\n // - Advance non-paused animations by the elapsed number of seconds\n // - Advance any animations that require scrubbing\n // - Advance to the first frame even when autoplay is false\n const activeAnimations = this.animator.animations\n .filter((a) => a.playing || a.needsScrub)\n // The scrubbed animations must be applied first to prevent weird artifacts\n // if the playing animations conflict with the scrubbed animating attribuates.\n .sort((first) => (first.needsScrub ? -1 : 1));\n for (const animation of activeAnimations) {\n animation.advance(elapsedTime);\n if (animation.instance.didLoop) {\n animation.loopCount += 1;\n }\n animation.apply(1.0);\n }\n\n // - Advance non-paused state machines by the elapsed number of seconds\n // - Advance to the first frame even when autoplay is false\n const activeStateMachines = this.animator.stateMachines.filter(\n (a) => a.playing,\n );\n for (const stateMachine of activeStateMachines) {\n // Check for events before the current frame's state machine advance\n const numEventsReported = stateMachine.reportedEventCount();\n if (numEventsReported) {\n for (let i = 0; i < numEventsReported; i++) {\n const event = stateMachine.reportedEventAt(i);\n\n if (event) {\n if (event.type === RiveEventType.OpenUrl) {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event as rc.OpenUrlEvent,\n });\n // Handle the event side effect if explicitly enabled\n if (this.automaticallyHandleEvents) {\n const newAnchorTag = document.createElement(\"a\");\n const { url, target } = event as rc.OpenUrlEvent;\n\n const sanitizedUrl = sanitizeUrl(url);\n url && newAnchorTag.setAttribute(\"href\", sanitizedUrl);\n target && newAnchorTag.setAttribute(\"target\", target);\n if (sanitizedUrl && sanitizedUrl !== BLANK_URL) {\n newAnchorTag.click();\n }\n }\n } else {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event as rc.RiveEvent,\n });\n }\n }\n }\n }\n stateMachine.advanceAndApply(elapsedTime);\n // stateMachine.instance.apply(this.artboard);\n }\n\n // Once the animations have been applied to the artboard, advance it\n // by the elapsed time.\n if (this.animator.stateMachines.length == 0) {\n this.artboard.advance(elapsedTime);\n }\n\n const { renderer } = this;\n // Canvas must be wiped to prevent artifacts\n renderer.clear();\n renderer.save();\n\n // Update the renderer alignment if necessary\n this.alignRenderer();\n\n // Do not draw on 0 canvas size\n if (!this._hasZeroSize) {\n this.artboard.draw(renderer);\n }\n\n renderer.restore();\n renderer.flush();\n\n // Check for any animations that looped\n this.animator.handleLooping();\n\n // Check for any state machines that had a state change\n this.animator.handleStateChanges();\n\n // Report advanced time\n this.animator.handleAdvancing(elapsedTime);\n\n // Add duration to create frame to durations array\n this.frameCount++;\n const after = performance.now();\n this.frameTimes.push(after);\n this.durations.push(after - before);\n while (this.frameTimes[0] <= after - 1000) {\n this.frameTimes.shift();\n this.durations.shift();\n }\n\n this._viewModelInstance?.handleCallbacks();\n\n // Calling requestAnimationFrame will rerun draw() at the correct rate:\n // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n if (this.animator.isPlaying) {\n // Request a new rendering frame\n this.startRendering();\n } else if (this.animator.isPaused) {\n // Reset the end time so on playback it starts at the correct frame\n this.lastRenderTime = 0;\n } else if (this.animator.isStopped) {\n // Reset animation instances, artboard and time\n // TODO: implement this properly when we have instancing\n // this.initArtboard();\n // this.drawFrame();\n this.lastRenderTime = 0;\n }\n }\n\n /**\n * Align the renderer\n */\n private alignRenderer(): void {\n const { renderer, runtime, _layout, artboard } = this;\n // Align things up safe in the knowledge we can restore if changed\n renderer.align(\n _layout.runtimeFit(runtime),\n _layout.runtimeAlignment(runtime),\n {\n minX: _layout.minX,\n minY: _layout.minY,\n maxX: _layout.maxX,\n maxY: _layout.maxY,\n },\n artboard.bounds,\n this._devicePixelRatioUsed * _layout.layoutScaleFactor,\n );\n }\n\n public get fps() {\n return this.durations.length;\n }\n\n public get frameTime() {\n if (this.durations.length === 0) {\n return 0;\n }\n return (\n this.durations.reduce((a, b) => a + b, 0) / this.durations.length\n ).toFixed(4);\n }\n\n /**\n * Cleans up all Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances,\n * renderer instance, file and runtime.\n *\n * Once this is called, you will need to initialise a new instance of the\n * Rive class\n */\n public cleanup() {\n this.destroyed = true;\n // Stop the renderer if it hasn't already been stopped.\n this.stopRendering();\n // Clean up any artboard, animation or state machine instances.\n this.cleanupInstances();\n // Remove from observer\n if (this._observed !== null) {\n observers.remove(this._observed);\n }\n this.removeRiveListeners();\n if (this.file) {\n this.riveFile?.cleanup();\n this.file = null;\n }\n this.riveFile = null;\n this.deleteRiveRenderer();\n if (this._audioEventListener !== null) {\n audioManager.remove(this._audioEventListener);\n this._audioEventListener = null;\n }\n this._viewModelInstance?.cleanup();\n this._viewModelInstance = null;\n this._dataEnums = null;\n }\n\n /**\n * Cleans up the Renderer object. Only call this API if you no longer\n * need to render Rive content in your session.\n */\n public deleteRiveRenderer() {\n this.renderer?.delete();\n this.renderer = null;\n }\n\n /**\n * Cleans up any Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances.\n *\n * Once this is called, things will need to be reinitialized or bad things\n * might happen.\n */\n public cleanupInstances() {\n if (this.eventCleanup !== null) {\n this.eventCleanup();\n }\n // Delete all animation and state machine instances\n this.stop();\n if (this.artboard) {\n this.artboard.delete();\n this.artboard = null;\n }\n }\n\n /**\n * Tries to query the setup Artboard for a text run node with the given name.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - TextValueRun node or undefined if the text run cannot be queried\n */\n private retrieveTextRun(textRunName: string): rc.TextValueRun | undefined {\n if (!textRunName) {\n console.warn(\"No text run name provided\");\n return;\n }\n if (!this.artboard) {\n console.warn(\"Tried to access text run, but the Artboard is null\");\n return;\n }\n const textRun: rc.TextValueRun = this.artboard.textRun(textRunName);\n if (!textRun) {\n console.warn(\n `Could not access a text run with name '${textRunName}' in the '${this.artboard?.name}' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime.`,\n );\n return;\n }\n return textRun;\n }\n\n /**\n * Returns a string from a given text run node name, or undefined if the text run\n * cannot be queried.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - String value of the text run node or undefined\n */\n public getTextRunValue(textRunName: string): string | undefined {\n const textRun = this.retrieveTextRun(textRunName);\n return textRun ? textRun.text : undefined;\n }\n\n /**\n * Sets a text value for a given text run node name if possible\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @param textRunValue - String value to set on the text run node\n */\n public setTextRunValue(textRunName: string, textRunValue: string): void {\n const textRun = this.retrieveTextRun(textRunName);\n if (textRun) {\n textRun.text = textRunValue;\n }\n }\n\n // Plays specified animations; if none specified, it unpauses everything.\n public play(animationNames?: string | string[], autoplay?: true): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, queue up the play\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.play(animationNames, autoplay),\n });\n return;\n }\n this.animator.play(animationNames);\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.setupRiveListeners();\n this.startRendering();\n }\n\n // Pauses specified animations; if none specified, pauses all.\n public pause(animationNames?: string | string[]): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.pause(animationNames),\n });\n return;\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.animator.pause(animationNames);\n }\n\n public scrub(animationNames?: string | string[], value?: number): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.scrub(animationNames, value),\n });\n return;\n }\n\n // Scrub the animation time; we draw a single frame here so that if\n // nothing's currently playing, the scrubbed animation is still rendered/\n this.animator.scrub(animationNames, value || 0);\n this.drawFrame();\n }\n\n // Stops specified animations; if none specifies, stops them all.\n public stop(animationNames?: string | string[] | undefined): void {\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.stop(animationNames),\n });\n return;\n }\n // If there is no artboard, this.animator will be undefined\n if (this.animator) {\n this.animator.stop(animationNames);\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n }\n\n /**\n * Resets the animation\n * @param artboard the name of the artboard, or default if none given\n * @param animations the names of animations for playback\n * @param stateMachines the names of state machines for playback\n * @param autoplay whether to autoplay when reset, defaults to false\n *\n */\n public reset(params?: RiveResetParameters): void {\n // Get the current artboard, animations, state machines, and playback states\n const artBoardName = params?.artboard;\n const animationNames = mapToStringArray(params?.animations);\n const stateMachineNames = mapToStringArray(params?.stateMachines);\n const autoplay = params?.autoplay ?? false;\n const autoBind = params?.autoBind ?? false;\n\n // Stop everything and clean up\n this.cleanupInstances();\n\n // Reinitialize an artboard instance with the state\n this.initArtboard(\n artBoardName,\n animationNames,\n stateMachineNames,\n autoplay,\n autoBind,\n );\n this.taskQueue.process();\n }\n\n // Loads a new Rive file, keeping listeners in place\n public load(params: RiveLoadParameters): void {\n this.file = null;\n // Stop all animations\n this.stop();\n // Reinitialize\n this.init(params);\n }\n\n // Sets a new layout\n public set layout(layout: Layout) {\n this._layout = layout;\n // If the maxX or maxY are 0, then set them to the canvas width and height\n if (!layout.maxX || !layout.maxY) {\n this.resizeToCanvas();\n }\n if (this.loaded && !this.animator.isPlaying) {\n this.drawFrame();\n }\n }\n\n /**\n * Returns the current layout. Note that layout should be treated as\n * immutable. If you want to change the layout, create a new one use the\n * layout setter\n */\n public get layout() {\n return this._layout;\n }\n\n /**\n * Sets the layout bounds to the current canvas size; this is typically called\n * when the canvas is resized\n */\n public resizeToCanvas() {\n this._layout = this.layout.copyWith({\n minX: 0,\n minY: 0,\n maxX: this.canvas.width,\n maxY: this.canvas.height,\n });\n }\n\n /**\n * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n * and resize the layout to match the new drawing surface afterwards.\n * Useful function for consumers to include in a window resize listener.\n *\n * This method will set the {@link devicePixelRatioUsed} property.\n *\n * Optionally, you can provide a {@link customDevicePixelRatio} to provide a\n * custom value.\n */\n public resizeDrawingSurfaceToCanvas(customDevicePixelRatio?: number) {\n if (this.canvas instanceof HTMLCanvasElement && !!window) {\n const { width, height } = this.canvas.getBoundingClientRect();\n const dpr = customDevicePixelRatio || window.devicePixelRatio || 1;\n this.devicePixelRatioUsed = dpr;\n this.canvas.width = dpr * width;\n this.canvas.height = dpr * height;\n this.resizeToCanvas();\n this.drawFrame();\n\n if (this.layout.fit === Fit.Layout) {\n const scaleFactor = this._layout.layoutScaleFactor;\n this.artboard.width = width / scaleFactor;\n this.artboard.height = height / scaleFactor;\n }\n }\n }\n\n // Returns the animation source, which may be undefined\n public get source(): string {\n return this.src;\n }\n\n /**\n * Returns the name of the active artboard\n */\n public get activeArtboard(): string {\n return this.artboard ? this.artboard.name : \"\";\n }\n\n // Returns a list of animation names on the chosen artboard\n public get animationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n const animationNames: string[] = [];\n for (let i = 0; i < this.artboard.animationCount(); i++) {\n animationNames.push(this.artboard.animationByIndex(i).name);\n }\n return animationNames;\n }\n\n /**\n * Returns a list of state machine names from the current artboard\n */\n public get stateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n const stateMachineNames: string[] = [];\n for (let i = 0; i < this.artboard.stateMachineCount(); i++) {\n stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n }\n return stateMachineNames;\n }\n\n /**\n * Returns the inputs for the specified instanced state machine, or an empty\n * list if the name is invalid or the state machine is not instanced\n * @param name the state machine name\n * @returns the inputs for the named state machine\n */\n public stateMachineInputs(name: string): StateMachineInput[] {\n // If the file's not loaded, early out, nothing to pause\n if (!this.loaded) {\n return;\n }\n const stateMachine = this.animator.stateMachines.find(\n (m) => m.name === name,\n );\n return stateMachine?.inputs;\n }\n\n // Returns the input with the provided name at the given path\n private retrieveInputAtPath(\n name: string,\n path: string,\n ): rc.SMIInput | undefined {\n if (!name) {\n console.warn(`No input name provided for path '${path}'`);\n return;\n }\n if (!this.artboard) {\n console.warn(\n `Tried to access input: '${name}', at path: '${path}', but the Artboard is null`,\n );\n return;\n }\n const input: rc.SMIInput = this.artboard.inputByPath(name, path);\n\n if (!input) {\n console.warn(\n `Could not access an input with name: '${name}', at path:'${path}'`,\n );\n return;\n }\n return input;\n }\n\n /**\n * Set the boolean input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n public setBooleanStateAtPath(\n inputName: string,\n value: boolean,\n path: string,\n ) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Boolean) {\n input.asBool().value = value;\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a boolean`,\n );\n }\n }\n\n /**\n * Set the number input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n public setNumberStateAtPath(inputName: string, value: number, path: string) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Number) {\n input.asNumber().value = value;\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a number`,\n );\n }\n }\n\n /**\n * Fire the trigger with the provided name at the given path\n * @param input the state machine input name\n * @param path the path the input is located at an artboard level\n */\n public fireStateAtPath(inputName: string, path: string) {\n const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n if (!input) return;\n\n if (input.type === StateMachineInputType.Trigger) {\n input.asTrigger().fire();\n } else {\n console.warn(\n `Input with name: '${inputName}', at path:'${path}' is not a trigger`,\n );\n }\n }\n\n // Returns the TextValueRun object for the provided name at the given path\n private retrieveTextAtPath(\n name: string,\n path: string,\n ): rc.TextValueRun | undefined {\n if (!name) {\n console.warn(`No text name provided for path '${path}'`);\n return;\n }\n if (!path) {\n console.warn(`No path provided for text '${name}'`);\n return;\n }\n if (!this.artboard) {\n console.warn(\n `Tried to access text: '${name}', at path: '${path}', but the Artboard is null`,\n );\n return;\n }\n const text: rc.TextValueRun = this.artboard.textByPath(name, path);\n if (!text) {\n console.warn(\n `Could not access text with name: '${name}', at path:'${path}'`,\n );\n return;\n }\n return text;\n }\n\n /**\n * Retrieves the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param path The path to the text run within the artboard\n * @returns The text value of the text run, or undefined if not found\n *\n * @example\n * // Get the text value for a text run named \"title\" at one nested artboard deep\n * const titleText = riveInstance.getTextRunValueAtPath(\"title\", \"artboard1\");\n *\n * @example\n * // Get the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * const subtitleText = riveInstance.getTextRunValueAtPath(\"subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n public getTextRunValueAtPath(\n textName: string,\n path: string,\n ): string | undefined {\n const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\n `Could not get text with name: '${textName}', at path:'${path}'`,\n );\n return;\n }\n return run.text;\n }\n\n /**\n * Sets the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param value The new text value to set\n * @param path The path to the text run within the artboard\n * @returns void\n *\n * @example\n * // Set the text value for a text run named \"title\" at one nested artboard deep\n * riveInstance.setTextRunValueAtPath(\"title\", \"New Title\", \"artboard1\");\n *\n * @example\n * // Set the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * riveInstance.setTextRunValueAtPath(\"subtitle\", \"New Subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n public setTextRunValueAtPath(textName: string, value: string, path: string) {\n const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\n `Could not set text with name: '${textName}', at path:'${path}'`,\n );\n return;\n }\n run.text = value;\n }\n\n // Returns a list of playing machine names\n public get playingStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => m.playing)\n .map((m) => m.name);\n }\n\n // Returns a list of playing animation names\n public get playingAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations.filter((a) => a.playing).map((a) => a.name);\n }\n\n // Returns a list of paused animation names\n public get pausedAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations\n .filter((a) => !a.playing)\n .map((a) => a.name);\n }\n\n /**\n * Returns a list of paused machine names\n * @returns a list of state machine names that are paused\n */\n public get pausedStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => !m.playing)\n .map((m) => m.name);\n }\n\n /**\n * @returns true if any animation is playing\n */\n public get isPlaying(): boolean {\n return this.animator.isPlaying;\n }\n\n /**\n * @returns true if all instanced animations are paused\n */\n public get isPaused(): boolean {\n return this.animator.isPaused;\n }\n\n /**\n * @returns true if no animations are playing or paused\n */\n public get isStopped(): boolean {\n return this.animator.isStopped;\n }\n\n /**\n * @returns the bounds of the current artboard, or undefined if the artboard\n * isn't loaded yet.\n */\n public get bounds(): Bounds {\n return this.artboard ? this.artboard.bounds : undefined;\n }\n\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n public on(type: EventType, callback: EventCallback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n public off(type: EventType, callback: EventCallback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @deprecated\n * @param callback the callback to unsubscribe from\n */\n public unsubscribe(type: EventType, callback: EventCallback) {\n console.warn(\"This function is deprecated: please use `off()` instead.\");\n this.off(type, callback);\n }\n\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public removeAllRiveEventListeners(type?: EventType) {\n this.eventManager.removeAll(type);\n }\n\n /**\n * Unsubscribes all listeners from an event type, or everything if no type is\n * given\n * @deprecated\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public unsubscribeAll(type?: EventType) {\n console.warn(\n \"This function is deprecated: please use `removeAllRiveEventListeners()` instead.\",\n );\n this.removeAllRiveEventListeners(type);\n }\n\n /**\n * Stops the rendering loop; this is different from pausing in that it doesn't\n * change the state of any animation. It stops rendering from occurring. This\n * is designed for situations such as when Rive isn't visible.\n *\n * The only way to start rendering again is to call `startRendering`.\n * Animations that are marked as playing will start from the position that\n * they would have been at if rendering had not been stopped.\n */\n public stopRendering() {\n if (this.loaded && this.frameRequestId) {\n if (this.runtime.cancelAnimationFrame) {\n this.runtime.cancelAnimationFrame(this.frameRequestId);\n } else {\n cancelAnimationFrame(this.frameRequestId);\n }\n this.frameRequestId = null;\n }\n }\n\n /**\n * Starts the rendering loop if it has been previously stopped. If the\n * renderer is already active, then this will have zero effect.\n */\n public startRendering() {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n if (this.runtime.requestAnimationFrame) {\n this.frameRequestId = this.runtime.requestAnimationFrame(\n this._boundDraw,\n );\n } else {\n this.frameRequestId = requestAnimationFrame(this._boundDraw);\n }\n }\n }\n\n /**\n * Enables frames-per-second (FPS) reporting for the runtime\n * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n * the page with the FPS reading\n * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n */\n public enableFPSCounter(fpsCallback?: FPSCallback) {\n this.runtime.enableFPSCounter(fpsCallback);\n }\n\n /**\n * Disables frames-per-second (FPS) reporting for the runtime\n */\n public disableFPSCounter() {\n this.runtime.disableFPSCounter();\n }\n\n /**\n * Returns the contents of a Rive file: the artboards, animations, and state machines\n */\n public get contents(): RiveFileContents {\n if (!this.loaded) {\n return undefined;\n }\n const riveContents: RiveFileContents = {\n artboards: [],\n };\n for (let i = 0; i < this.file.artboardCount(); i++) {\n const artboard = this.file.artboardByIndex(i);\n const artboardContents: ArtboardContents = {\n name: artboard.name,\n animations: [],\n stateMachines: [],\n };\n for (let j = 0; j < artboard.animationCount(); j++) {\n const animation = artboard.animationByIndex(j);\n artboardContents.animations.push(animation.name);\n }\n for (let k = 0; k < artboard.stateMachineCount(); k++) {\n const stateMachine = artboard.stateMachineByIndex(k);\n const name = stateMachine.name;\n const instance = new this.runtime.StateMachineInstance(\n stateMachine,\n artboard,\n );\n const inputContents: StateMachineInputContents[] = [];\n for (let l = 0; l < instance.inputCount(); l++) {\n const input = instance.input(l);\n inputContents.push({ name: input.name, type: input.type });\n }\n artboardContents.stateMachines.push({\n name: name,\n inputs: inputContents,\n });\n }\n riveContents.artboards.push(artboardContents);\n }\n return riveContents;\n }\n\n /**\n * Getter / Setter for the volume of the artboard\n */\n public get volume(): number {\n if (this.artboard && this.artboard.volume !== this._volume) {\n this._volume = this.artboard.volume;\n }\n return this._volume;\n }\n\n public set volume(value: number) {\n this._volume = value;\n if (this.artboard) {\n this.artboard.volume = value * audioManager.systemVolume;\n }\n }\n\n /**\n * The width of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * width has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard width is\n * automatically set.\n */\n public get artboardWidth(): number {\n if (this.artboard) {\n return this.artboard.width;\n }\n return this._artboardWidth ?? 0;\n }\n\n public set artboardWidth(value: number) {\n this._artboardWidth = value;\n if (this.artboard) {\n this.artboard.width = value;\n }\n }\n\n /**\n * The height of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * height has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard height is\n * automatically set.\n */\n public get artboardHeight(): number {\n if (this.artboard) {\n return this.artboard.height;\n }\n return this._artboardHeight ?? 0;\n }\n\n public set artboardHeight(value: number) {\n this._artboardHeight = value;\n\n if (this.artboard) {\n this.artboard.height = value;\n }\n }\n\n /**\n * Reset the artboard size to its original values.\n */\n public resetArtboardSize() {\n if (this.artboard) {\n this.artboard.resetArtboardSize();\n this._artboardWidth = this.artboard.width;\n this._artboardHeight = this.artboard.height;\n } else {\n // If the artboard isn't loaded, we need to reset the custom width and height\n this._artboardWidth = undefined;\n this._artboardHeight = undefined;\n }\n }\n\n /**\n * The device pixel ratio used in rendering and canvas/artboard resizing.\n *\n * This value will be overidden by the device pixel ratio used in\n * {@link resizeDrawingSurfaceToCanvas}. If you use that method, do not set this value.\n */\n public get devicePixelRatioUsed(): number {\n return this._devicePixelRatioUsed;\n }\n\n public set devicePixelRatioUsed(value: number) {\n this._devicePixelRatioUsed = value;\n }\n\n /**\n * Initialize the data context with the view model instance.\n */\n public bindViewModelInstance(viewModelInstance: ViewModelInstance | null) {\n if (this.artboard && !this.destroyed) {\n if (viewModelInstance && viewModelInstance.runtimeInstance) {\n viewModelInstance.internalIncrementReferenceCount();\n this._viewModelInstance?.cleanup();\n this._viewModelInstance = viewModelInstance;\n if (this.animator.stateMachines.length > 0) {\n this.animator.stateMachines.forEach((stateMachine) =>\n stateMachine.bindViewModelInstance(viewModelInstance),\n );\n } else {\n this.artboard.bindViewModelInstance(\n viewModelInstance.runtimeInstance,\n );\n }\n }\n }\n }\n\n public get viewModelInstance(): ViewModelInstance | null {\n return this._viewModelInstance;\n }\n\n public viewModelByIndex(index: number): ViewModel | null {\n const viewModel = this.file.viewModelByIndex(index);\n if (viewModel !== null) {\n return new ViewModel(viewModel);\n }\n return null;\n }\n\n public viewModelByName(name: string): ViewModel | null {\n const viewModel = this.file.viewModelByName(name);\n if (viewModel !== null) {\n return new ViewModel(viewModel);\n }\n return null;\n }\n\n public enums(): DataEnum[] {\n if (this._dataEnums === null) {\n const dataEnums = this.file.enums();\n this._dataEnums = dataEnums.map((dataEnum) => {\n return new DataEnum(dataEnum);\n });\n }\n return this._dataEnums;\n }\n\n public defaultViewModel(): ViewModel | null {\n if (this.artboard) {\n const viewModel = this.file.defaultArtboardViewModel(this.artboard);\n if (viewModel) {\n return new ViewModel(viewModel);\n }\n }\n return null;\n }\n\n /**\n * @deprecated This function is deprecated. For better stability and memory management\n * use `getBindableArtboard()` instead.\n * @param {string} name - The name of the artboard.\n * @returns {Artboard} The artboard to bind to.\n */\n public getArtboard(name: string): Artboard | null {\n return this.riveFile?.getArtboard(name) ?? null;\n }\n\n public getBindableArtboard(name: string): BindableArtboard | null {\n return this.riveFile?.getBindableArtboard(name) ?? null;\n }\n\n public getDefaultBindableArtboard(): BindableArtboard | null {\n return this.riveFile?.getDefaultBindableArtboard() ?? null;\n }\n}\n\nexport class ViewModel {\n private _viewModel: rc.ViewModel;\n\n constructor(viewModel: rc.ViewModel) {\n this._viewModel = viewModel;\n }\n\n public get instanceCount(): number {\n return this._viewModel.instanceCount;\n }\n\n public get name(): string {\n return this._viewModel.name;\n }\n\n public instanceByIndex(index: number): ViewModelInstance | null {\n const instance = this._viewModel.instanceByIndex(index);\n if (instance !== null) {\n const viewModelInstance = new ViewModelInstance(instance, null);\n createFinalization(viewModelInstance, instance);\n return viewModelInstance;\n }\n return null;\n }\n\n public instanceByName(name: string): ViewModelInstance | null {\n const instance = this._viewModel.instanceByName(name);\n if (instance !== null) {\n const viewModelInstance = new ViewModelInstance(instance, null);\n createFinalization(viewModelInstance, instance);\n return viewModelInstance;\n }\n return null;\n }\n\n public defaultInstance(): ViewModelInstance | null {\n const runtimeInstance = this._viewModel.defaultInstance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(runtimeInstance, null);\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public instance(): ViewModelInstance | null {\n const runtimeInstance = this._viewModel.instance();\n if (runtimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(runtimeInstance, null);\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public get properties(): rc.ViewModelProperty[] {\n return this._viewModel.getProperties();\n }\n\n public get instanceNames(): string[] {\n return this._viewModel.getInstanceNames();\n }\n}\n\nexport class DataEnum {\n private _dataEnum: rc.DataEnum;\n\n constructor(dataEnum: rc.DataEnum) {\n this._dataEnum = dataEnum;\n }\n\n public get name(): string {\n return this._dataEnum.name;\n }\n\n public get values(): string[] {\n return this._dataEnum.values;\n }\n}\n\nenum PropertyType {\n Number = \"number\",\n String = \"string\",\n Boolean = \"boolean\",\n Color = \"color\",\n Trigger = \"trigger\",\n Enum = \"enum\",\n List = \"list\",\n Image = \"image\",\n Artboard = \"artboard\",\n}\n\nexport class ViewModelInstance {\n private _runtimeInstance: rc.ViewModelInstance | null;\n\n private _parents: ViewModelInstance[] = [];\n\n private _children: ViewModelInstance[] = [];\n\n private _viewModelInstances: Map<string, ViewModelInstance> = new Map();\n\n private _propertiesWithCallbacks: ViewModelInstanceValue[] = [];\n\n private _referenceCount = 0;\n\n public selfUnref: boolean = false;\n\n constructor(\n runtimeInstance: rc.ViewModelInstance,\n parent: ViewModelInstance | null,\n ) {\n this._runtimeInstance = runtimeInstance;\n if (parent !== null) {\n this._parents.push(parent);\n }\n }\n\n public get runtimeInstance(): rc.ViewModelInstance | null {\n return this._runtimeInstance;\n }\n\n public get nativeInstance(): rc.ViewModelInstance | null {\n return this._runtimeInstance;\n }\n\n public handleCallbacks() {\n if (this._propertiesWithCallbacks.length !== 0) {\n this._propertiesWithCallbacks.forEach((property) => {\n property.handleCallbacks();\n });\n this._propertiesWithCallbacks.forEach((property) => {\n property.clearChanges();\n });\n }\n this._children.forEach((child) => child.handleCallbacks());\n }\n\n public addParent(parent: ViewModelInstance) {\n if (!this._parents.includes(parent)) {\n this._parents.push(parent);\n if (\n this._propertiesWithCallbacks.length > 0 ||\n this._children.length > 0\n ) {\n parent.addToViewModelCallbacks(this);\n }\n }\n }\n\n public removeParent(parent: ViewModelInstance) {\n const index = this._parents.indexOf(parent);\n if (index !== -1) {\n const parent = this._parents[index];\n parent.removeFromViewModelCallbacks(this);\n this._parents.splice(index, 1);\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public addToPropertyCallbacks(property: ViewModelInstanceValue) {\n if (!this._propertiesWithCallbacks.includes(property)) {\n this._propertiesWithCallbacks.push(property);\n if (this._propertiesWithCallbacks.length > 0) {\n this._parents.forEach((parent) => {\n parent.addToViewModelCallbacks(this);\n });\n }\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public removeFromPropertyCallbacks(property: ViewModelInstanceValue) {\n if (this._propertiesWithCallbacks.includes(property)) {\n this._propertiesWithCallbacks = this._propertiesWithCallbacks.filter(\n (prop) => prop !== property,\n );\n if (\n this._children.length === 0 &&\n this._propertiesWithCallbacks.length === 0\n ) {\n this._parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public addToViewModelCallbacks(instance: ViewModelInstance) {\n if (!this._children.includes(instance)) {\n this._children.push(instance);\n this._parents.forEach((parent) => {\n parent.addToViewModelCallbacks(this);\n });\n }\n }\n\n /*\n * method for internal use, it shouldn't be called externally\n */\n public removeFromViewModelCallbacks(instance: ViewModelInstance) {\n if (this._children.includes(instance)) {\n this._children = this._children.filter((child) => child !== instance);\n if (\n this._children.length === 0 &&\n this._propertiesWithCallbacks.length === 0\n ) {\n this._parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n }\n\n private clearCallbacks() {\n this._propertiesWithCallbacks.forEach((property) => {\n property.clearCallbacks();\n });\n }\n\n private propertyFromPath(\n path: string,\n type: PropertyType,\n ): ViewModelInstanceValue | null {\n const pathSegments = path.split(\"/\");\n return this.propertyFromPathSegments(pathSegments, 0, type);\n }\n\n private viewModelFromPathSegments(\n pathSegments: string[],\n index: number,\n ): ViewModelInstance | null {\n const viewModelInstance = this.internalViewModelInstance(\n pathSegments[index],\n );\n if (viewModelInstance !== null) {\n if (index == pathSegments.length - 1) {\n return viewModelInstance;\n } else {\n return viewModelInstance.viewModelFromPathSegments(\n pathSegments,\n index++,\n );\n }\n }\n return null;\n }\n\n private propertyFromPathSegments(\n pathSegments: string[],\n index: number,\n type: PropertyType,\n ): ViewModelInstanceValue | null {\n if (index < pathSegments.length - 1) {\n const viewModelInstance = this.internalViewModelInstance(\n pathSegments[index],\n );\n if (viewModelInstance !== null) {\n return viewModelInstance.propertyFromPathSegments(\n pathSegments,\n index + 1,\n type,\n );\n } else {\n return null;\n }\n }\n let instance: rc.ViewModelInstanceValue | null = null;\n switch (type) {\n case PropertyType.Number:\n instance = this._runtimeInstance?.number(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceNumber(\n instance as rc.ViewModelInstanceNumber,\n this,\n );\n }\n break;\n case PropertyType.String:\n instance = this._runtimeInstance?.string(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceString(\n instance as rc.ViewModelInstanceString,\n this,\n );\n }\n break;\n case PropertyType.Boolean:\n instance = this._runtimeInstance?.boolean(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceBoolean(\n instance as rc.ViewModelInstanceBoolean,\n this,\n );\n }\n break;\n case PropertyType.Color:\n instance = this._runtimeInstance?.color(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceColor(\n instance as rc.ViewModelInstanceColor,\n this,\n );\n }\n break;\n case PropertyType.Trigger:\n instance = this._runtimeInstance?.trigger(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceTrigger(\n instance as rc.ViewModelInstanceTrigger,\n this,\n );\n }\n break;\n case PropertyType.Enum:\n instance = this._runtimeInstance?.enum(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceEnum(\n instance as rc.ViewModelInstanceEnum,\n this,\n );\n }\n break;\n case PropertyType.List:\n instance = this._runtimeInstance?.list(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceList(\n instance as rc.ViewModelInstanceList,\n this,\n );\n }\n break;\n case PropertyType.Image:\n instance = this._runtimeInstance?.image(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceAssetImage(\n instance as rc.ViewModelInstanceAssetImage,\n this,\n );\n }\n break;\n case PropertyType.Artboard:\n instance = this._runtimeInstance?.artboard(pathSegments[index]) ?? null;\n if (instance !== null) {\n return new ViewModelInstanceArtboard(\n instance as rc.ViewModelInstanceArtboard,\n this,\n );\n }\n break;\n }\n return null;\n }\n\n private internalViewModelInstance(name: string): ViewModelInstance | null {\n if (this._viewModelInstances.has(name)) {\n return this._viewModelInstances.get(name)!;\n }\n const viewModelRuntimeInstance = this._runtimeInstance?.viewModel(name);\n if (viewModelRuntimeInstance !== null) {\n const viewModelInstance = new ViewModelInstance(\n viewModelRuntimeInstance!,\n this,\n );\n createFinalization(viewModelInstance, viewModelRuntimeInstance);\n viewModelInstance.internalIncrementReferenceCount();\n this._viewModelInstances.set(name, viewModelInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n /**\n * method to access a property instance of type number belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the number property\n */\n public number(path: string): ViewModelInstanceNumber | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Number,\n );\n return viewmodelInstanceValue as ViewModelInstanceNumber;\n }\n\n /**\n * method to access a property instance of type string belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the string property\n */\n public string(path: string): ViewModelInstanceString | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.String,\n );\n return viewmodelInstanceValue as ViewModelInstanceString | null;\n }\n\n /**\n * method to access a property instance of type boolean belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the boolean property\n */\n public boolean(path: string): ViewModelInstanceBoolean | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Boolean,\n );\n return viewmodelInstanceValue as ViewModelInstanceBoolean | null;\n }\n\n /**\n * method to access a property instance of type color belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the ttrigger property\n */\n public color(path: string): ViewModelInstanceColor | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Color,\n );\n return viewmodelInstanceValue as ViewModelInstanceColor | null;\n }\n\n /**\n * method to access a property instance of type trigger belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the trigger property\n */\n public trigger(path: string): ViewModelInstanceTrigger | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Trigger,\n );\n return viewmodelInstanceValue as ViewModelInstanceTrigger | null;\n }\n\n /**\n * method to access a property instance of type enum belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the enum property\n */\n public enum(path: string): ViewModelInstanceEnum | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Enum,\n );\n return viewmodelInstanceValue as ViewModelInstanceEnum | null;\n }\n\n /**\n * method to access a property instance of type list belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the list property\n */\n public list(path: string): ViewModelInstanceList | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.List,\n );\n return viewmodelInstanceValue as ViewModelInstanceList | null;\n }\n\n /**\n * method to access a view model property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the image property\n */\n public image(path: string): ViewModelInstanceAssetImage | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Image,\n );\n return viewmodelInstanceValue as ViewModelInstanceAssetImage | null;\n }\n\n /**\n * method to access an artboard property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the image property\n */\n public artboard(path: string): ViewModelInstanceArtboard | null {\n const viewmodelInstanceValue = this.propertyFromPath(\n path,\n PropertyType.Artboard,\n );\n return viewmodelInstanceValue as ViewModelInstanceArtboard | null;\n }\n\n /**\n * method to access a view model property instance belonging\n * to the view model instance or to a nested view model instance\n * @param path - path to the view model property\n */\n public viewModel(path: string): ViewModelInstance | null {\n const pathSegments = path.split(\"/\");\n const parentViewModelInstance =\n pathSegments.length > 1\n ? this.viewModelFromPathSegments(\n pathSegments.slice(0, pathSegments.length - 1),\n 0,\n )\n : this;\n if (parentViewModelInstance != null) {\n return parentViewModelInstance.internalViewModelInstance(\n pathSegments[pathSegments.length - 1],\n );\n }\n return null;\n }\n\n public internalReplaceViewModel(\n name: string,\n value: ViewModelInstance,\n ): boolean {\n if (value.runtimeInstance !== null) {\n const result =\n this._runtimeInstance?.replaceViewModel(name, value.runtimeInstance!) ||\n false;\n if (result) {\n value.internalIncrementReferenceCount();\n const oldInstance = this.internalViewModelInstance(name);\n if (oldInstance !== null) {\n oldInstance.removeParent(this);\n if (this._children.includes(oldInstance)) {\n this._children = this._children.filter(\n (child) => child !== oldInstance,\n );\n }\n oldInstance.cleanup();\n }\n this._viewModelInstances.set(name, value);\n value.addParent(this);\n }\n return result;\n }\n return false;\n }\n\n /**\n * method to replace a view model property with another view model value\n * @param path - path to the view model property\n * @param value - view model that will replace the original\n */\n public replaceViewModel(path: string, value: ViewModelInstance): boolean {\n const pathSegments = path.split(\"/\");\n const viewModelInstance =\n pathSegments.length > 1\n ? this.viewModelFromPathSegments(\n pathSegments.slice(0, pathSegments.length - 1),\n 0,\n )\n : this;\n return (\n viewModelInstance?.internalReplaceViewModel(\n pathSegments[pathSegments.length - 1],\n value,\n ) ?? false\n );\n }\n\n /*\n * method to add one to the reference counter of the instance.\n * Use if the file owning the reference is destroyed but the instance needs to stay around\n */\n public incrementReferenceCount() {\n this._referenceCount++;\n this._runtimeInstance?.incrementReferenceCount();\n }\n\n /*\n * method to subtract one to the reference counter of the instance.\n * Use if incrementReferenceCount has been called\n */\n public decrementReferenceCount() {\n this._referenceCount--;\n this._runtimeInstance?.decrementReferenceCount();\n }\n\n public get properties(): rc.ViewModelProperty[] {\n return (\n this._runtimeInstance?.getProperties().map((prop) => ({ ...prop })) || []\n );\n }\n\n public internalIncrementReferenceCount() {\n this._referenceCount++;\n }\n\n public cleanup() {\n this._referenceCount--;\n if (this._referenceCount <= 0) {\n if (this.selfUnref) {\n this._runtimeInstance?.unref();\n }\n this._runtimeInstance = null;\n this.clearCallbacks();\n this._propertiesWithCallbacks = [];\n this._viewModelInstances.forEach((value) => {\n value.cleanup();\n });\n this._viewModelInstances.clear();\n const children = [...this._children];\n this._children.length = 0;\n const parents = [...this._parents];\n this._parents.length = 0;\n children.forEach((child) => {\n child.removeParent(this);\n });\n parents.forEach((parent) => {\n parent.removeFromViewModelCallbacks(this);\n });\n }\n }\n}\n\nexport class ViewModelInstanceValue {\n protected _parentViewModel: ViewModelInstance;\n protected callbacks: EventCallback[] = [];\n protected _viewModelInstanceValue: rc.ViewModelInstanceValue;\n constructor(instance: rc.ViewModelInstanceValue, parent: ViewModelInstance) {\n this._viewModelInstanceValue = instance;\n this._parentViewModel = parent;\n }\n\n public on(callback: EventCallback) {\n // Since we don't clean the changed flag for properties that don't have listeners,\n // we clean it the first time we add a listener to it\n if (this.callbacks.length === 0) {\n this._viewModelInstanceValue.clearChanges();\n }\n if (!this.callbacks.includes(callback)) {\n this.callbacks.push(callback);\n this._parentViewModel.addToPropertyCallbacks(this);\n }\n }\n public off(callback?: EventCallback) {\n if (!callback) {\n this.callbacks.length = 0;\n } else {\n this.callbacks = this.callbacks.filter((cb) => cb !== callback);\n }\n if (this.callbacks.length === 0) {\n this._parentViewModel.removeFromPropertyCallbacks(this);\n }\n }\n public internalHandleCallback(callback: Function) {}\n\n public handleCallbacks() {\n if (this._viewModelInstanceValue.hasChanged) {\n this.callbacks.forEach((callback) => {\n this.internalHandleCallback(callback);\n });\n }\n }\n\n public clearChanges() {\n this._viewModelInstanceValue.clearChanges();\n }\n\n public clearCallbacks() {\n this.callbacks.length = 0;\n }\n\n public get name() {\n return this._viewModelInstanceValue.name;\n }\n}\n\nexport class ViewModelInstanceString extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceString, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): string {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceString).value;\n }\n\n public set value(val: string) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceString).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceNumber extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceNumber, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceNumber).value;\n }\n\n public set value(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceNumber).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceBoolean extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceBoolean,\n parent: ViewModelInstance,\n ) {\n super(instance, parent);\n }\n\n public get value(): boolean {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceBoolean).value;\n }\n\n public set value(val: boolean) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceBoolean).value = val;\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceTrigger extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceTrigger,\n parent: ViewModelInstance,\n ) {\n super(instance, parent);\n }\n\n public trigger(): void {\n return (\n this._viewModelInstanceValue as rc.ViewModelInstanceTrigger\n ).trigger();\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceEnum extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceEnum, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): string {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).value;\n }\n\n public set value(val: string) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).value = val;\n }\n\n public set valueIndex(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).valueIndex = val;\n }\n\n public get valueIndex(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum)\n .valueIndex;\n }\n\n public get values(): string[] {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceEnum).values;\n }\n\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceList extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceList, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get length(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceList).size;\n }\n\n public addInstance(instance: ViewModelInstance) {\n if (instance.runtimeInstance != null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).addInstance(\n instance.runtimeInstance!,\n );\n instance.addParent(this._parentViewModel);\n }\n }\n\n public addInstanceAt(instance: ViewModelInstance, index: number): boolean {\n if (instance.runtimeInstance != null) {\n if (\n (\n this._viewModelInstanceValue as rc.ViewModelInstanceList\n ).addInstanceAt(instance.runtimeInstance!, index)\n ) {\n instance.addParent(this._parentViewModel);\n return true;\n }\n }\n return false;\n }\n\n public removeInstance(instance: ViewModelInstance) {\n if (instance.runtimeInstance != null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).removeInstance(\n instance.runtimeInstance!,\n );\n instance.removeParent(this._parentViewModel);\n }\n }\n\n public removeInstanceAt(index: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).removeInstanceAt(\n index,\n );\n }\n\n public instanceAt(index: number): ViewModelInstance | null {\n const runtimeInstance = (\n this._viewModelInstanceValue as rc.ViewModelInstanceList\n ).instanceAt(index);\n if (runtimeInstance != null) {\n const viewModelInstance = new ViewModelInstance(\n runtimeInstance,\n this._parentViewModel,\n );\n createFinalization(viewModelInstance, runtimeInstance);\n return viewModelInstance;\n }\n return null;\n }\n\n public swap(a: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceList).swap(a, b);\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceColor extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceColor, parent: ViewModelInstance) {\n super(instance, parent);\n }\n\n public get value(): number {\n return (this._viewModelInstanceValue as rc.ViewModelInstanceColor).value;\n }\n\n public set value(val: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).value = val;\n }\n\n public rgb(r: number, g: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).rgb(r, g, b);\n }\n\n public rgba(r: number, g: number, b: number, a: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).argb(\n a,\n r,\n g,\n b,\n );\n }\n\n public argb(a: number, r: number, g: number, b: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).argb(\n a,\n r,\n g,\n b,\n );\n }\n\n // Value 0 to 255\n public alpha(a: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).alpha(a);\n }\n\n // Value 0 to 1\n public opacity(o: number) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceColor).alpha(\n Math.round(Math.max(0, Math.min(1, o)) * 255),\n );\n }\n public internalHandleCallback(callback: Function) {\n callback(this.value);\n }\n}\n\nexport class ViewModelInstanceAssetImage extends ViewModelInstanceValue {\n constructor(\n instance: rc.ViewModelInstanceAssetImage,\n root: ViewModelInstance,\n ) {\n super(instance, root);\n }\n\n public set value(image: rc.Image | null) {\n (this._viewModelInstanceValue as rc.ViewModelInstanceAssetImage).value(\n image?.nativeImage ?? null,\n );\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\nexport class ViewModelInstanceArtboard extends ViewModelInstanceValue {\n constructor(instance: rc.ViewModelInstanceArtboard, root: ViewModelInstance) {\n super(instance, root);\n }\n\n public set value(artboard: BaseArtboard | null) {\n let bindableArtboard: BindableArtboard;\n if (artboard.isBindableArtboard) {\n bindableArtboard = artboard as BindableArtboard;\n } else {\n bindableArtboard = (\n artboard as Artboard\n ).file.internalBindableArtboardFromArtboard(\n (artboard as Artboard).nativeArtboard,\n );\n }\n (this._viewModelInstanceValue as rc.ViewModelInstanceArtboard).value(\n bindableArtboard?.nativeArtboard ?? null,\n );\n }\n\n public internalHandleCallback(callback: Function) {\n callback();\n }\n}\n\n/**\n * Contents of a state machine input\n */\ninterface StateMachineInputContents {\n name: string;\n type: StateMachineInputType;\n initialValue?: boolean | number;\n}\n\n/**\n * Contents of a state machine\n */\ninterface StateMachineContents {\n name: string;\n inputs: StateMachineInputContents[];\n}\n\n/**\n * Contents of an artboard\n */\ninterface ArtboardContents {\n animations: string[];\n stateMachines: StateMachineContents[];\n name: string;\n}\n\n/**\n * contents of a Rive file\n */\ninterface RiveFileContents {\n artboards?: ArtboardContents[];\n}\n\n// Loads Rive data from a URI via fetch.\nconst loadRiveFile = async (src: string): Promise<ArrayBuffer> => {\n const req = new Request(src);\n const res = await fetch(req);\n const buffer = await res.arrayBuffer();\n return buffer;\n};\n\n// #endregion\n\n// #region utility functions\n\n/*\n * Utility function to ensure an object is a string array\n */\nconst mapToStringArray = (obj?: string[] | string | undefined): string[] => {\n if (typeof obj === \"string\") {\n return [obj];\n } else if (obj instanceof Array) {\n return obj;\n }\n // If obj is undefined, return empty array\n return [];\n};\n\n// #endregion\n\n// #region testing utilities\n\n// Exports to only be used for tests\nexport const Testing = {\n EventManager: EventManager,\n TaskQueueManager: TaskQueueManager,\n};\n\n// #endregion\n\n// #region asset loaders\n\n/**\n * Decodes bytes into an audio asset.\n *\n * Be sure to call `.unref()` on the audio once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeAudio = async (bytes: Uint8Array): Promise<rc.Audio> => {\n const decodedPromise = new Promise<rc.Audio>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeAudio(bytes, resolve);\n }),\n );\n const audio: rc.Audio = await decodedPromise;\n const audioWrapper = new AudioWrapper(audio);\n finalizationRegistry.register(audioWrapper, audio);\n return audioWrapper;\n};\n\n/**\n * Decodes bytes into an image.\n *\n * Be sure to call `.unref()` on the image once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeImage = async (bytes: Uint8Array): Promise<rc.Image> => {\n const decodedPromise = new Promise<rc.Image>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeImage(bytes, resolve);\n }),\n );\n const image: rc.Image = await decodedPromise;\n const imageWrapper = new ImageWrapper(image);\n finalizationRegistry.register(imageWrapper, image);\n return imageWrapper;\n};\n\n/**\n * Decodes bytes into a font.\n *\n * Be sure to call `.unref()` on the font once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeFont = async (bytes: Uint8Array): Promise<rc.Font> => {\n const decodedPromise = new Promise<rc.Font>((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n rive.decodeFont(bytes, resolve);\n }),\n );\n const font: rc.Font = await decodedPromise;\n const fontWrapper = new FontWrapper(font);\n finalizationRegistry.register(fontWrapper, font);\n return fontWrapper;\n};\n\n// #endregion\n"],"names":[],"sourceRoot":""}
|