@codingame/monaco-vscode-ipynb-default-extension 1.85.1 → 1.85.3

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/ipynbMain.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipynbMain.js","mappings":"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;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,+EAA+E;AAClG,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,4DAA4D;AAC/E,mBAAmB;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B;AACA;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;;AAEA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;;AAEA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU;AACjC,aAAa;AACb,eAAe,YAAY,YAAY,YAAY,wBAAwB;AAC3E;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA,cAAc,UAAU,UAAU;AAClC,cAAc;AACd,gBAAgB,YAAY,YAAY,YAAY,wBAAwB;AAC5E;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;;AAEA;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA;;AAEA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AACzE,aAAa,UAAU;AACvB,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC3K;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU;AAC1E,cAAc,UAAU;AACxB,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,wBAAwB;AAC5K;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;;AAEA;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA;;AAEA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACnK,cAAc,WAAW,WAAW,WAAW,WAAW;AAC1D,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/X;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY;AACpK,eAAe,WAAW,WAAW,WAAW,WAAW;AAC3D,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChY;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;;AAEA;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA;;AAEA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AACjH,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/zB;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpW,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW;AAClH,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AACh0B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;;AAEA;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,MAAM;AACpB,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA;;AAEA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,aAAa,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACnuB,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACrP,eAAe,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAC/rD;AACA;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,IAAI;AACJ;AACA;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,IAAI;AACJ;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA,cAAc,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACpuB,eAAe,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY;AACtP,gBAAgB,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,2BAA2B;AAChsD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,IAAI,KAA4B;;;;;;;;;AC3rDhC;;;gGAGgG;;;AAEhG,wCAAiI;AACjI,6CAAgD;AAEhD,oDAA2D;AAG3D;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,OAAyB;IACrE,kBAAS,CAAC,2BAA2B,CAAC,wBAAwB,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;AACnG,CAAC;AAFD,oEAEC;AAED,SAAS,wBAAwB,CAAC,CAA8B;IAC/D,MAAM,UAAU,GAAG,4CAAmB,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO;IACR,CAAC;IACD,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,YAAY,GAAG,iCAAe,EAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,YAAY,EAAE,EAAE,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YACD,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,sBAAa,EAAE,CAAC;YACjC,0HAA0H;YAC1H,MAAM,eAAe,GAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5F,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,qBAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5H,kBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAiF;IAC1G,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,QAA0B;IACjD,OAAO,IAAI,EAAE,CAAC;QACb,4HAA4H;QAC5H,kGAAkG;QAClG,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,iCAAe,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,SAAS;YACV,CAAC;YACD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACvB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACP,CAAC;QACF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;AACF,CAAC;AAGD;;GAEG;AACH,SAAS,YAAY;IACpB,iCAAiC;IACjC,SAAS,eAAe,CAAC,MAAkB;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,YAAY;IACZ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW;IACX,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,mBAAmB;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC,kBAAkB;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC;IACd,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC;IACd,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC;IACd,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC;IACd,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;AChID;;;gGAGgG;;;AAEhG,sCAAiC;AACjC,2CAAiE;AACjE,uCAAyC;AAEzC,IAAK,QAUJ;AAVD,WAAK,QAAQ;IACZ,6BAAiB;IACjB,6BAAiB;IACjB,6BAAiB;IACjB,+BAAmB;IACnB,6BAAiB;IACjB,+BAAmB;IACnB,+BAAmB;IACnB,gCAAoB;IACpB,qCAAyB;AAC1B,CAAC,EAVI,QAAQ,KAAR,QAAQ,QAUZ;AAED,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAS;IAC3D,QAAQ,CAAC,GAAG;IACZ,QAAQ,CAAC,GAAG;IACZ,QAAQ,CAAC,GAAG;IACZ,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,GAAG;IACZ,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,IAAI;CACb,CAAC,CAAC;AAEH,MAAM,cAAc,GAAgC,IAAI,GAAG,CAAiB;IAC3E,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;IACxB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;IACxB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;CACxB,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,GAAe;IACxC,OAAO,cAAc,CAAC,GAAG,CAAC,kBAAO,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,uBAAuB;IAA7B;QAEiB,OAAE,GAAG,kBAAkB,CAAC;IAkFzC,CAAC;IAhFA,KAAK,CAAC,yBAAyB,CAC9B,QAA6B,EAC7B,OAAgC,EAChC,YAAiC,EACjC,KAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;QACnH,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC/G,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QACjD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC7B,QAA6B,EAC7B,SAA0B,EAC1B,YAAiC,EACjC,KAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChE,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAChD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAC5C,QAA6B,EAC7B,YAAiC,EACjC,KAA+B;QAE/B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;YACxD,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,4DAA4D;QAC5D,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACR,CAAC;QAED,cAAc;QACd,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjG,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC7C,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9C,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/C,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5B,UAAU,CAAC,iBAAiB,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;YAC5C,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3G,IAAI,CAAC,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IACvC,CAAC;CACD;AAED,KAAK,UAAU,mBAAmB,CACjC,YAAiC,EACjC,KAA+B;IAG/B,2CAA2C;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAA4C,EAAE;QACtI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC,CAAC,CAAC;IACL,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,+CAA+C;IAC/C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpE,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO;YACR,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,EAAE,QAAQ,EAAE,mBAAQ,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAI,KAA0C;IAC9D,OAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAiC;IACjE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAkB,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK;IACvE,MAAM,cAAc,GAAG,kEAAkE,CAAC;IAC1F,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;IAEjG,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,CAAC;IACpE,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,IAAI,IAAI,CAAC;QAAC,CAAC;IAChC,CAAC;SAAM,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,IAAI,GAAG,CAAC;QAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AASD,SAAS,eAAe,CACvB,IAAyB,EACzB,WAA2C;IAE3C,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/B,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,kBAAO,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,kBAAkB,GAAG,mBAAQ,EAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAElE,IAAI,YAAY,GAAG,kBAAkB,GAAG,OAAO,CAAC;QAChD,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC;YACnF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1E,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,kCAAkC;gBAC1D,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,KAAK,UAAU,CAAC,QAAQ,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC,CAAC,wEAAwE;oBACpI,MAAM;gBACP,CAAC;qBAAM,CAAC;oBACP,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC;gBACvE,CAAC;YACF,CAAC;QACF,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACzE,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,aAAa;KACxB,CAAC;AACH,CAAC;AAED,SAAgB,uBAAuB;IACtC,MAAM,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC/C,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAC5B,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,8CAAkC,EAAE,QAAQ,EAAE;QAChG,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,cAAc,EAAE;YACf,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,OAAO;SAChB;KACD,CAAC,EACF,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,8CAAkC,EAAE,QAAQ,EAAE;QAC/F,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,aAAa,EAAE;YACd,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAChC,QAAQ,CAAC,OAAO;SAChB;KACD,CAAC,CACF,CAAC;AACH,CAAC;AAlBD,0DAkBC;;;;;;;;AC3TD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;AChhBA;;;gGAGgG;;;AAEhG,sCAAiC;AACjC,2CAA+F;AAC/F,yCAA4D;AAiB5D,IAAY,cAEX;AAFD,WA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","sources":["webpack://ipynb/external commonjs \"vscode\"","webpack://ipynb/./src/notebookSerializer.ts","webpack://ipynb/./node_modules/detect-indent/index.js","webpack://ipynb/./src/constants.ts","webpack://ipynb/./src/deserializers.ts","webpack://ipynb/./src/serializers.ts","webpack://ipynb/./node_modules/@enonic/fnv-plus/index.js","webpack://ipynb/./src/cellIdService.ts","webpack://ipynb/./src/notebookImagePaste.ts","webpack://ipynb/../../node_modules/path-browserify/index.js","webpack://ipynb/./src/notebookAttachmentCleaner.ts","webpack://ipynb/./src/helper.ts","webpack://ipynb/webpack/bootstrap","webpack://ipynb/./src/ipynbMain.ts"],"sourcesContent":["module.exports = require(\"vscode\");","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport type * as nbformat from '@jupyterlab/nbformat';\nimport * as detectIndent from 'detect-indent';\nimport * as vscode from 'vscode';\nimport { defaultNotebookFormat } from './constants';\nimport { getPreferredLanguage, jupyterNotebookModelToNotebookData } from './deserializers';\nimport { createJupyterCellFromNotebookCell, pruneCell, sortObjectPropertiesRecursively } from './serializers';\nimport * as fnv from '@enonic/fnv-plus';\n\nexport class NotebookSerializer implements vscode.NotebookSerializer {\n\tconstructor(readonly context: vscode.ExtensionContext) {\n\t}\n\n\tpublic async deserializeNotebook(content: Uint8Array, _token: vscode.CancellationToken): Promise<vscode.NotebookData> {\n\t\tlet contents = '';\n\t\ttry {\n\t\t\tcontents = new TextDecoder().decode(content);\n\t\t} catch {\n\t\t}\n\n\t\tlet json = contents && /\\S/.test(contents) ? (JSON.parse(contents) as Partial<nbformat.INotebookContent>) : {};\n\n\t\tif (json.__webview_backup) {\n\t\t\tconst backupId = json.__webview_backup;\n\t\t\tconst uri = this.context.globalStorageUri;\n\t\t\tconst folder = uri.with({ path: this.context.globalStorageUri.path.replace('vscode.ipynb', 'ms-toolsai.jupyter') });\n\t\t\tconst fileHash = fnv.fast1a32hex(backupId) as string;\n\t\t\tconst fileName = `${fileHash}.ipynb`;\n\t\t\tconst file = vscode.Uri.joinPath(folder, fileName);\n\t\t\tconst data = await vscode.workspace.fs.readFile(file);\n\t\t\tjson = data ? JSON.parse(data.toString()) : {};\n\n\t\t\tif (json.contents && typeof json.contents === 'string') {\n\t\t\t\tcontents = json.contents;\n\t\t\t\tjson = JSON.parse(contents) as Partial<nbformat.INotebookContent>;\n\t\t\t}\n\t\t}\n\n\t\tif (json.nbformat && json.nbformat < 4) {\n\t\t\tthrow new Error('Only Jupyter notebooks version 4+ are supported');\n\t\t}\n\n\t\t// Then compute indent from the contents (only use first 1K characters as a perf optimization)\n\t\tconst indentAmount = contents ? detectIndent(contents.substring(0, 1_000)).indent : ' ';\n\n\t\tconst preferredCellLanguage = getPreferredLanguage(json.metadata);\n\t\t// Ensure we always have a blank cell.\n\t\tif ((json.cells || []).length === 0) {\n\t\t\tjson.cells = [\n\t\t\t\t{\n\t\t\t\t\tcell_type: 'code',\n\t\t\t\t\texecution_count: null,\n\t\t\t\t\tmetadata: {},\n\t\t\t\t\toutputs: [],\n\t\t\t\t\tsource: ''\n\t\t\t\t}\n\t\t\t];\n\t\t}\n\n\t\t// For notebooks without metadata default the language in metadata to the preferred language.\n\t\tif (!json.metadata || (!json.metadata.kernelspec && !json.metadata.language_info)) {\n\t\t\tjson.metadata = json.metadata || {};\n\t\t\tjson.metadata.language_info = json.metadata.language_info || { name: preferredCellLanguage };\n\t\t}\n\n\t\tconst data = jupyterNotebookModelToNotebookData(\n\t\t\tjson,\n\t\t\tpreferredCellLanguage\n\t\t);\n\t\tdata.metadata = data.metadata || {};\n\t\tdata.metadata.indentAmount = indentAmount;\n\n\t\treturn data;\n\t}\n\n\tpublic serializeNotebook(data: vscode.NotebookData, _token: vscode.CancellationToken): Uint8Array {\n\t\treturn new TextEncoder().encode(this.serializeNotebookToString(data));\n\t}\n\n\tpublic serializeNotebookToString(data: vscode.NotebookData): string {\n\t\tconst notebookContent = getNotebookMetadata(data);\n\t\t// use the preferred language from document metadata or the first cell language as the notebook preferred cell language\n\t\tconst preferredCellLanguage = notebookContent.metadata?.language_info?.name ?? data.cells.find(cell => cell.kind === vscode.NotebookCellKind.Code)?.languageId;\n\n\t\tnotebookContent.cells = data.cells\n\t\t\t.map(cell => createJupyterCellFromNotebookCell(cell, preferredCellLanguage))\n\t\t\t.map(pruneCell);\n\n\t\tconst indentAmount = data.metadata && 'indentAmount' in data.metadata && typeof data.metadata.indentAmount === 'string' ?\n\t\t\tdata.metadata.indentAmount :\n\t\t\t' ';\n\t\t// ipynb always ends with a trailing new line (we add this so that SCMs do not show unnecessary changes, resulting from a missing trailing new line).\n\t\treturn JSON.stringify(sortObjectPropertiesRecursively(notebookContent), undefined, indentAmount) + '\\n';\n\t}\n}\n\nexport function getNotebookMetadata(document: vscode.NotebookDocument | vscode.NotebookData) {\n\tconst notebookContent: Partial<nbformat.INotebookContent> = document.metadata?.custom || {};\n\tnotebookContent.cells = notebookContent.cells || [];\n\tnotebookContent.nbformat = notebookContent.nbformat || defaultNotebookFormat.major;\n\tnotebookContent.nbformat_minor = notebookContent.nbformat_minor ?? defaultNotebookFormat.minor;\n\tnotebookContent.metadata = notebookContent.metadata || {};\n\treturn notebookContent;\n}\n","'use strict';\n\n// Detect either spaces or tabs but not both to properly handle tabs for indentation and spaces for alignment\nconst INDENT_REGEX = /^(?:( )+|\\t+)/;\n\nconst INDENT_TYPE_SPACE = 'space';\nconst INDENT_TYPE_TAB = 'tab';\n\n// Make a Map that counts how many indents/unindents have occurred for a given size and how many lines follow a given indentation.\n// The key is a concatenation of the indentation type (s = space and t = tab) and the size of the indents/unindents.\n//\n// indents = {\n// t3: [1, 0],\n// t4: [1, 5],\n// s5: [1, 0],\n// s12: [1, 0],\n// }\nfunction makeIndentsMap(string, ignoreSingleSpaces) {\n\tconst indents = new Map();\n\n\t// Remember the size of previous line's indentation\n\tlet previousSize = 0;\n\tlet previousIndentType;\n\n\t// Indents key (ident type + size of the indents/unindents)\n\tlet key;\n\n\tfor (const line of string.split(/\\n/g)) {\n\t\tif (!line) {\n\t\t\t// Ignore empty lines\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet indent;\n\t\tlet indentType;\n\t\tlet weight;\n\t\tlet entry;\n\t\tconst matches = line.match(INDENT_REGEX);\n\n\t\tif (matches === null) {\n\t\t\tpreviousSize = 0;\n\t\t\tpreviousIndentType = '';\n\t\t} else {\n\t\t\tindent = matches[0].length;\n\n\t\t\tif (matches[1]) {\n\t\t\t\tindentType = INDENT_TYPE_SPACE;\n\t\t\t} else {\n\t\t\t\tindentType = INDENT_TYPE_TAB;\n\t\t\t}\n\n\t\t\t// Ignore single space unless it's the only indent detected to prevent common false positives\n\t\t\tif (ignoreSingleSpaces && indentType === INDENT_TYPE_SPACE && indent === 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (indentType !== previousIndentType) {\n\t\t\t\tpreviousSize = 0;\n\t\t\t}\n\n\t\t\tpreviousIndentType = indentType;\n\n\t\t\tweight = 0;\n\n\t\t\tconst indentDifference = indent - previousSize;\n\t\t\tpreviousSize = indent;\n\n\t\t\t// Previous line have same indent?\n\t\t\tif (indentDifference === 0) {\n\t\t\t\tweight++;\n\t\t\t\t// We use the key from previous loop\n\t\t\t} else {\n\t\t\t\tconst absoluteIndentDifference = indentDifference > 0 ? indentDifference : -indentDifference;\n\t\t\t\tkey = encodeIndentsKey(indentType, absoluteIndentDifference);\n\t\t\t}\n\n\t\t\t// Update the stats\n\t\t\tentry = indents.get(key);\n\n\t\t\tif (entry === undefined) {\n\t\t\t\tentry = [1, 0]; // Init\n\t\t\t} else {\n\t\t\t\tentry = [++entry[0], entry[1] + weight];\n\t\t\t}\n\n\t\t\tindents.set(key, entry);\n\t\t}\n\t}\n\n\treturn indents;\n}\n\n// Encode the indent type and amount as a string (e.g. 's4') for use as a compound key in the indents Map.\nfunction encodeIndentsKey(indentType, indentAmount) {\n\tconst typeCharacter = indentType === INDENT_TYPE_SPACE ? 's' : 't';\n\treturn typeCharacter + String(indentAmount);\n}\n\n// Extract the indent type and amount from a key of the indents Map.\nfunction decodeIndentsKey(indentsKey) {\n\tconst keyHasTypeSpace = indentsKey[0] === 's';\n\tconst type = keyHasTypeSpace ? INDENT_TYPE_SPACE : INDENT_TYPE_TAB;\n\n\tconst amount = Number(indentsKey.slice(1));\n\n\treturn {type, amount};\n}\n\n// Return the key (e.g. 's4') from the indents Map that represents the most common indent,\n// or return undefined if there are no indents.\nfunction getMostUsedKey(indents) {\n\tlet result;\n\tlet maxUsed = 0;\n\tlet maxWeight = 0;\n\n\tfor (const [key, [usedCount, weight]] of indents) {\n\t\tif (usedCount > maxUsed || (usedCount === maxUsed && weight > maxWeight)) {\n\t\t\tmaxUsed = usedCount;\n\t\t\tmaxWeight = weight;\n\t\t\tresult = key;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction makeIndentString(type, amount) {\n\tconst indentCharacter = type === INDENT_TYPE_SPACE ? ' ' : '\\t';\n\treturn indentCharacter.repeat(amount);\n}\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Identify indents while skipping single space indents to avoid common edge cases (e.g. code comments)\n\t// If no indents are identified, run again and include all indents for comprehensive detection\n\tlet indents = makeIndentsMap(string, true);\n\tif (indents.size === 0) {\n\t\tindents = makeIndentsMap(string, false);\n\t}\n\n\tconst keyOfMostUsedIndent = getMostUsedKey(indents);\n\n\tlet type;\n\tlet amount = 0;\n\tlet indent = '';\n\n\tif (keyOfMostUsedIndent !== undefined) {\n\t\t({type, amount} = decodeIndentsKey(keyOfMostUsedIndent));\n\t\tindent = makeIndentString(type, amount);\n\t}\n\n\treturn {\n\t\tamount,\n\t\ttype,\n\t\tindent\n\t};\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as vscode from 'vscode';\n\nexport const defaultNotebookFormat = { major: 4, minor: 2 };\nexport const ATTACHMENT_CLEANUP_COMMANDID = 'ipynb.cleanInvalidImageAttachment';\n\nexport const JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR: vscode.DocumentSelector = { notebookType: 'jupyter-notebook', language: 'markdown' };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport type * as nbformat from '@jupyterlab/nbformat';\nimport { extensions, NotebookCellData, NotebookCellExecutionSummary, NotebookCellKind, NotebookCellOutput, NotebookCellOutputItem, NotebookData } from 'vscode';\nimport { CellMetadata, CellOutputMetadata } from './common';\n\nconst jupyterLanguageToMonacoLanguageMapping = new Map([\n\t['c#', 'csharp'],\n\t['f#', 'fsharp'],\n\t['q#', 'qsharp'],\n\t['c++11', 'c++'],\n\t['c++12', 'c++'],\n\t['c++14', 'c++']\n]);\n\nexport function getPreferredLanguage(metadata?: nbformat.INotebookMetadata) {\n\tconst jupyterLanguage =\n\t\tmetadata?.language_info?.name ||\n\t\t(metadata?.kernelspec as any)?.language;\n\n\t// Default to python language only if the Python extension is installed.\n\tconst defaultLanguage =\n\t\textensions.getExtension('ms-python.python')\n\t\t\t? 'python'\n\t\t\t: (extensions.getExtension('ms-dotnettools.dotnet-interactive-vscode') ? 'csharp' : 'python');\n\n\t// Note, whatever language is returned here, when the user selects a kernel, the cells (of blank documents) get updated based on that kernel selection.\n\treturn translateKernelLanguageToMonaco(jupyterLanguage || defaultLanguage);\n}\n\nfunction translateKernelLanguageToMonaco(language: string): string {\n\tlanguage = language.toLowerCase();\n\tif (language.length === 2 && language.endsWith('#')) {\n\t\treturn `${language.substring(0, 1)}sharp`;\n\t}\n\treturn jupyterLanguageToMonacoLanguageMapping.get(language) || language;\n}\n\nconst orderOfMimeTypes = [\n\t'application/vnd.*',\n\t'application/vdom.*',\n\t'application/geo+json',\n\t'application/x-nteract-model-debug+json',\n\t'text/html',\n\t'application/javascript',\n\t'image/gif',\n\t'text/latex',\n\t'text/markdown',\n\t'image/png',\n\t'image/svg+xml',\n\t'image/jpeg',\n\t'application/json',\n\t'text/plain'\n];\n\nfunction isEmptyVendoredMimeType(outputItem: NotebookCellOutputItem) {\n\tif (outputItem.mime.startsWith('application/vnd.')) {\n\t\ttry {\n\t\t\treturn outputItem.data.byteLength === 0 || Buffer.from(outputItem.data).toString().length === 0;\n\t\t} catch { }\n\t}\n\treturn false;\n}\nfunction isMimeTypeMatch(value: string, compareWith: string) {\n\tif (value.endsWith('.*')) {\n\t\tvalue = value.substr(0, value.indexOf('.*'));\n\t}\n\treturn compareWith.startsWith(value);\n}\n\nfunction sortOutputItemsBasedOnDisplayOrder(outputItems: NotebookCellOutputItem[]): NotebookCellOutputItem[] {\n\treturn outputItems\n\t\t.map(item => {\n\t\t\tlet index = orderOfMimeTypes.findIndex((mime) => isMimeTypeMatch(mime, item.mime));\n\t\t\t// Sometimes we can have mime types with empty data, e.g. when using holoview we can have `application/vnd.holoviews_load.v0+json` with empty value.\n\t\t\t// & in these cases we have HTML/JS and those take precedence.\n\t\t\t// https://github.com/microsoft/vscode-jupyter/issues/6109\n\t\t\tif (isEmptyVendoredMimeType(item)) {\n\t\t\t\tindex = -1;\n\t\t\t}\n\t\t\tindex = index === -1 ? 100 : index;\n\t\t\treturn {\n\t\t\t\titem, index\n\t\t\t};\n\t\t})\n\t\t.sort((outputItemA, outputItemB) => outputItemA.index - outputItemB.index).map(item => item.item);\n}\n\n\nenum CellOutputMimeTypes {\n\terror = 'application/vnd.code.notebook.error',\n\tstderr = 'application/vnd.code.notebook.stderr',\n\tstdout = 'application/vnd.code.notebook.stdout'\n}\n\nexport const textMimeTypes = ['text/plain', 'text/markdown', 'text/latex', CellOutputMimeTypes.stderr, CellOutputMimeTypes.stdout];\n\nfunction concatMultilineString(str: string | string[], trim?: boolean): string {\n\tconst nonLineFeedWhiteSpaceTrim = /(^[\\t\\f\\v\\r ]+|[\\t\\f\\v\\r ]+$)/g;\n\tif (Array.isArray(str)) {\n\t\tlet result = '';\n\t\tfor (let i = 0; i < str.length; i += 1) {\n\t\t\tconst s = str[i];\n\t\t\tif (i < str.length - 1 && !s.endsWith('\\n')) {\n\t\t\t\tresult = result.concat(`${s}\\n`);\n\t\t\t} else {\n\t\t\t\tresult = result.concat(s);\n\t\t\t}\n\t\t}\n\n\t\t// Just trim whitespace. Leave \\n in place\n\t\treturn trim ? result.replace(nonLineFeedWhiteSpaceTrim, '') : result;\n\t}\n\treturn trim ? str.toString().replace(nonLineFeedWhiteSpaceTrim, '') : str.toString();\n}\n\nfunction convertJupyterOutputToBuffer(mime: string, value: unknown): NotebookCellOutputItem {\n\tif (!value) {\n\t\treturn NotebookCellOutputItem.text('', mime);\n\t}\n\ttry {\n\t\tif (\n\t\t\t(mime.startsWith('text/') || textMimeTypes.includes(mime)) &&\n\t\t\t(Array.isArray(value) || typeof value === 'string')\n\t\t) {\n\t\t\tconst stringValue = Array.isArray(value) ? concatMultilineString(value) : value;\n\t\t\treturn NotebookCellOutputItem.text(stringValue, mime);\n\t\t} else if (mime.startsWith('image/') && typeof value === 'string' && mime !== 'image/svg+xml') {\n\t\t\t// Images in Jupyter are stored in base64 encoded format.\n\t\t\t// VS Code expects bytes when rendering images.\n\t\t\tif (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n\t\t\t\treturn new NotebookCellOutputItem(Buffer.from(value, 'base64'), mime);\n\t\t\t} else {\n\t\t\t\tconst data = Uint8Array.from(atob(value), c => c.charCodeAt(0));\n\t\t\t\treturn new NotebookCellOutputItem(data, mime);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n\t\t\treturn NotebookCellOutputItem.text(JSON.stringify(value), mime);\n\t\t} else if (mime === 'application/json') {\n\t\t\treturn NotebookCellOutputItem.json(value, mime);\n\t\t} else {\n\t\t\t// For everything else, treat the data as strings (or multi-line strings).\n\t\t\tvalue = Array.isArray(value) ? concatMultilineString(value) : value;\n\t\t\treturn NotebookCellOutputItem.text(value as string, mime);\n\t\t}\n\t} catch (ex) {\n\t\treturn NotebookCellOutputItem.error(ex);\n\t}\n}\n\nfunction getNotebookCellMetadata(cell: nbformat.IBaseCell): {\n\t[key: string]: any;\n} {\n\tconst cellMetadata: { [key: string]: any } = {};\n\t// We put this only for VSC to display in diff view.\n\t// Else we don't use this.\n\tconst custom: CellMetadata = {};\n\tif (cell['metadata']) {\n\t\tcustom['metadata'] = JSON.parse(JSON.stringify(cell['metadata']));\n\t}\n\n\tif ('id' in cell && typeof cell.id === 'string') {\n\t\tcustom.id = cell.id;\n\t}\n\n\tcellMetadata.custom = custom;\n\n\tif (cell['attachments']) {\n\t\tcellMetadata.attachments = JSON.parse(JSON.stringify(cell['attachments']));\n\t}\n\treturn cellMetadata;\n}\n\nfunction getOutputMetadata(output: nbformat.IOutput): CellOutputMetadata {\n\t// Add on transient data if we have any. This should be removed by our save functions elsewhere.\n\tconst metadata: CellOutputMetadata = {\n\t\toutputType: output.output_type\n\t};\n\tif (output.transient) {\n\t\tmetadata.transient = output.transient;\n\t}\n\n\tswitch (output.output_type as nbformat.OutputType) {\n\t\tcase 'display_data':\n\t\tcase 'execute_result':\n\t\tcase 'update_display_data': {\n\t\t\tmetadata.executionCount = output.execution_count;\n\t\t\tmetadata.metadata = output.metadata ? JSON.parse(JSON.stringify(output.metadata)) : {};\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn metadata;\n}\n\n\nfunction translateDisplayDataOutput(\n\toutput: nbformat.IDisplayData | nbformat.IDisplayUpdate | nbformat.IExecuteResult\n): NotebookCellOutput {\n\t// Metadata could be as follows:\n\t// We'll have metadata specific to each mime type as well as generic metadata.\n\t/*\n\tIDisplayData = {\n\t\toutput_type: 'display_data',\n\t\tdata: {\n\t\t\t'image/jpg': '/////'\n\t\t\t'image/png': '/////'\n\t\t\t'text/plain': '/////'\n\t\t},\n\t\tmetadata: {\n\t\t\t'image/png': '/////',\n\t\t\t'background': true,\n\t\t\t'xyz': '///\n\t\t}\n\t}\n\t*/\n\tconst metadata = getOutputMetadata(output);\n\tconst items: NotebookCellOutputItem[] = [];\n\tif (output.data) {\n\t\tfor (const key in output.data) {\n\t\t\titems.push(convertJupyterOutputToBuffer(key, output.data[key]));\n\t\t}\n\t}\n\n\treturn new NotebookCellOutput(sortOutputItemsBasedOnDisplayOrder(items), metadata);\n}\n\nfunction translateErrorOutput(output?: nbformat.IError): NotebookCellOutput {\n\toutput = output || { output_type: 'error', ename: '', evalue: '', traceback: [] };\n\treturn new NotebookCellOutput(\n\t\t[\n\t\t\tNotebookCellOutputItem.error({\n\t\t\t\tname: output?.ename || '',\n\t\t\t\tmessage: output?.evalue || '',\n\t\t\t\tstack: (output?.traceback || []).join('\\n')\n\t\t\t})\n\t\t],\n\t\t{ ...getOutputMetadata(output), originalError: output }\n\t);\n}\n\nfunction translateStreamOutput(output: nbformat.IStream): NotebookCellOutput {\n\tconst value = concatMultilineString(output.text);\n\tconst item = output.name === 'stderr' ? NotebookCellOutputItem.stderr(value) : NotebookCellOutputItem.stdout(value);\n\treturn new NotebookCellOutput([item], getOutputMetadata(output));\n}\n\nconst cellOutputMappers = new Map<nbformat.OutputType, (output: any) => NotebookCellOutput>();\ncellOutputMappers.set('display_data', translateDisplayDataOutput);\ncellOutputMappers.set('execute_result', translateDisplayDataOutput);\ncellOutputMappers.set('update_display_data', translateDisplayDataOutput);\ncellOutputMappers.set('error', translateErrorOutput);\ncellOutputMappers.set('stream', translateStreamOutput);\n\nexport function jupyterCellOutputToCellOutput(output: nbformat.IOutput): NotebookCellOutput {\n\t/**\n\t * Stream, `application/x.notebook.stream`\n\t * Error, `application/x.notebook.error-traceback`\n\t * Rich, { mime: value }\n\t *\n\t * outputs: [\n\t\t\tnew vscode.NotebookCellOutput([\n\t\t\t\tnew vscode.NotebookCellOutputItem('application/x.notebook.stream', 2),\n\t\t\t\tnew vscode.NotebookCellOutputItem('application/x.notebook.stream', 3),\n\t\t\t]),\n\t\t\tnew vscode.NotebookCellOutput([\n\t\t\t\tnew vscode.NotebookCellOutputItem('text/markdown', '## header 2'),\n\t\t\t\tnew vscode.NotebookCellOutputItem('image/svg+xml', [\n\t\t\t\t\t\"<svg baseProfile=\\\"full\\\" height=\\\"200\\\" version=\\\"1.1\\\" width=\\\"300\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\",\n\t\t\t\t\t\" <rect fill=\\\"blue\\\" height=\\\"100%\\\" width=\\\"100%\\\"/>\\n\",\n\t\t\t\t\t\" <circle cx=\\\"150\\\" cy=\\\"100\\\" fill=\\\"green\\\" r=\\\"80\\\"/>\\n\",\n\t\t\t\t\t\" <text fill=\\\"white\\\" font-size=\\\"60\\\" text-anchor=\\\"middle\\\" x=\\\"150\\\" y=\\\"125\\\">SVG</text>\\n\",\n\t\t\t\t\t\"</svg>\"\n\t\t\t\t\t]),\n\t\t\t]),\n\t\t]\n\t *\n\t */\n\tconst fn = cellOutputMappers.get(output.output_type as nbformat.OutputType);\n\tlet result: NotebookCellOutput;\n\tif (fn) {\n\t\tresult = fn(output);\n\t} else {\n\t\tresult = translateDisplayDataOutput(output as any);\n\t}\n\treturn result;\n}\n\nfunction createNotebookCellDataFromRawCell(cell: nbformat.IRawCell): NotebookCellData {\n\tconst cellData = new NotebookCellData(NotebookCellKind.Code, concatMultilineString(cell.source), 'raw');\n\tcellData.outputs = [];\n\tcellData.metadata = getNotebookCellMetadata(cell);\n\treturn cellData;\n}\nfunction createNotebookCellDataFromMarkdownCell(cell: nbformat.IMarkdownCell): NotebookCellData {\n\tconst cellData = new NotebookCellData(\n\t\tNotebookCellKind.Markup,\n\t\tconcatMultilineString(cell.source),\n\t\t'markdown'\n\t);\n\tcellData.outputs = [];\n\tcellData.metadata = getNotebookCellMetadata(cell);\n\treturn cellData;\n}\nfunction createNotebookCellDataFromCodeCell(cell: nbformat.ICodeCell, cellLanguage: string): NotebookCellData {\n\tconst cellOutputs = Array.isArray(cell.outputs) ? cell.outputs : [];\n\tconst outputs = cellOutputs.map(jupyterCellOutputToCellOutput);\n\tconst hasExecutionCount = typeof cell.execution_count === 'number' && cell.execution_count > 0;\n\n\tconst source = concatMultilineString(cell.source);\n\n\tconst executionSummary: NotebookCellExecutionSummary = hasExecutionCount\n\t\t? { executionOrder: cell.execution_count as number }\n\t\t: {};\n\n\tconst vscodeCustomMetadata = cell.metadata['vscode'] as { [key: string]: any } | undefined;\n\tconst cellLanguageId = vscodeCustomMetadata && vscodeCustomMetadata.languageId && typeof vscodeCustomMetadata.languageId === 'string' ? vscodeCustomMetadata.languageId : cellLanguage;\n\tconst cellData = new NotebookCellData(NotebookCellKind.Code, source, cellLanguageId);\n\n\tcellData.outputs = outputs;\n\tcellData.metadata = getNotebookCellMetadata(cell);\n\tcellData.executionSummary = executionSummary;\n\treturn cellData;\n}\n\nfunction createNotebookCellDataFromJupyterCell(\n\tcellLanguage: string,\n\tcell: nbformat.IBaseCell\n): NotebookCellData | undefined {\n\tswitch (cell.cell_type) {\n\t\tcase 'raw': {\n\t\t\treturn createNotebookCellDataFromRawCell(cell as nbformat.IRawCell);\n\t\t}\n\t\tcase 'markdown': {\n\t\t\treturn createNotebookCellDataFromMarkdownCell(cell as nbformat.IMarkdownCell);\n\t\t}\n\t\tcase 'code': {\n\t\t\treturn createNotebookCellDataFromCodeCell(cell as nbformat.ICodeCell, cellLanguage);\n\t\t}\n\t}\n\n\treturn;\n}\n\n/**\n * Converts a NotebookModel into VS Code format.\n */\nexport function jupyterNotebookModelToNotebookData(\n\tnotebookContent: Partial<nbformat.INotebookContent>,\n\tpreferredLanguage: string\n): NotebookData {\n\tconst notebookContentWithoutCells = { ...notebookContent, cells: [] };\n\tif (!notebookContent.cells || notebookContent.cells.length === 0) {\n\t\tthrow new Error('Notebook content is missing cells');\n\t}\n\n\tconst cells = notebookContent.cells\n\t\t.map(cell => createNotebookCellDataFromJupyterCell(preferredLanguage, cell))\n\t\t.filter((item): item is NotebookCellData => !!item);\n\n\tconst notebookData = new NotebookData(cells);\n\tnotebookData.metadata = { custom: notebookContentWithoutCells };\n\treturn notebookData;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport type * as nbformat from '@jupyterlab/nbformat';\nimport { NotebookCell, NotebookCellData, NotebookCellKind, NotebookCellOutput } from 'vscode';\nimport { CellOutputMetadata } from './common';\nimport { textMimeTypes } from './deserializers';\n\nconst textDecoder = new TextDecoder();\n\nenum CellOutputMimeTypes {\n\terror = 'application/vnd.code.notebook.error',\n\tstderr = 'application/vnd.code.notebook.stderr',\n\tstdout = 'application/vnd.code.notebook.stdout'\n}\n\nexport function createJupyterCellFromNotebookCell(\n\tvscCell: NotebookCellData,\n\tpreferredLanguage: string | undefined\n): nbformat.IRawCell | nbformat.IMarkdownCell | nbformat.ICodeCell {\n\tlet cell: nbformat.IRawCell | nbformat.IMarkdownCell | nbformat.ICodeCell;\n\tif (vscCell.kind === NotebookCellKind.Markup) {\n\t\tcell = createMarkdownCellFromNotebookCell(vscCell);\n\t} else if (vscCell.languageId === 'raw') {\n\t\tcell = createRawCellFromNotebookCell(vscCell);\n\t} else {\n\t\tcell = createCodeCellFromNotebookCell(vscCell, preferredLanguage);\n\t}\n\treturn cell;\n}\n\n\n/**\n * Sort the JSON to minimize unnecessary SCM changes.\n * Jupyter notbeooks/labs sorts the JSON keys in alphabetical order.\n * https://github.com/microsoft/vscode-python/issues/13155\n */\nexport function sortObjectPropertiesRecursively(obj: any): any {\n\tif (Array.isArray(obj)) {\n\t\treturn obj.map(sortObjectPropertiesRecursively);\n\t}\n\tif (obj !== undefined && obj !== null && typeof obj === 'object' && Object.keys(obj).length > 0) {\n\t\treturn (\n\t\t\tObject.keys(obj)\n\t\t\t\t.sort()\n\t\t\t\t.reduce<Record<string, any>>((sortedObj, prop) => {\n\t\t\t\t\tsortedObj[prop] = sortObjectPropertiesRecursively(obj[prop]);\n\t\t\t\t\treturn sortedObj;\n\t\t\t\t}, {}) as any\n\t\t);\n\t}\n\treturn obj;\n}\n\nexport function getCellMetadata(cell: NotebookCell | NotebookCellData) {\n\treturn {\n\t\t// it contains the cell id, and the cell metadata, along with other nb cell metadata\n\t\t...(cell.metadata?.custom ?? {}),\n\t\t// promote the cell attachments to the top level\n\t\tattachments: cell.metadata?.custom?.attachments ?? cell.metadata?.attachments\n\t};\n}\n\nfunction createCodeCellFromNotebookCell(cell: NotebookCellData, preferredLanguage: string | undefined): nbformat.ICodeCell {\n\tconst cellMetadata = getCellMetadata(cell);\n\tlet metadata = cellMetadata?.metadata || {}; // This cannot be empty.\n\tif (cell.languageId !== preferredLanguage) {\n\t\tmetadata = {\n\t\t\t...metadata,\n\t\t\tvscode: {\n\t\t\t\tlanguageId: cell.languageId\n\t\t\t}\n\t\t};\n\t} else {\n\t\t// cell current language is the same as the preferred cell language in the document, flush the vscode custom language id metadata\n\t\tmetadata.vscode = undefined;\n\t}\n\n\tconst codeCell: any = {\n\t\tcell_type: 'code',\n\t\texecution_count: cell.executionSummary?.executionOrder ?? null,\n\t\tsource: splitMultilineString(cell.value.replace(/\\r\\n/g, '\\n')),\n\t\toutputs: (cell.outputs || []).map(translateCellDisplayOutput),\n\t\tmetadata: metadata\n\t};\n\tif (cellMetadata?.id) {\n\t\tcodeCell.id = cellMetadata.id;\n\t}\n\treturn codeCell;\n}\n\nfunction createRawCellFromNotebookCell(cell: NotebookCellData): nbformat.IRawCell {\n\tconst cellMetadata = getCellMetadata(cell);\n\tconst rawCell: any = {\n\t\tcell_type: 'raw',\n\t\tsource: splitMultilineString(cell.value.replace(/\\r\\n/g, '\\n')),\n\t\tmetadata: cellMetadata?.metadata || {} // This cannot be empty.\n\t};\n\tif (cellMetadata?.attachments) {\n\t\trawCell.attachments = cellMetadata.attachments;\n\t}\n\tif (cellMetadata?.id) {\n\t\trawCell.id = cellMetadata.id;\n\t}\n\treturn rawCell;\n}\n\nfunction splitMultilineString(source: nbformat.MultilineString): string[] {\n\tif (Array.isArray(source)) {\n\t\treturn source as string[];\n\t}\n\tconst str = source.toString();\n\tif (str.length > 0) {\n\t\t// Each line should be a separate entry, but end with a \\n if not last entry\n\t\tconst arr = str.split('\\n');\n\t\treturn arr\n\t\t\t.map((s, i) => {\n\t\t\t\tif (i < arr.length - 1) {\n\t\t\t\t\treturn `${s}\\n`;\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t})\n\t\t\t.filter(s => s.length > 0); // Skip last one if empty (it's the only one that could be length 0)\n\t}\n\treturn [];\n}\n\nfunction translateCellDisplayOutput(output: NotebookCellOutput): JupyterOutput {\n\tconst customMetadata = output.metadata as CellOutputMetadata | undefined;\n\tlet result: JupyterOutput;\n\t// Possible some other extension added some output (do best effort to translate & save in ipynb).\n\t// In which case metadata might not contain `outputType`.\n\tconst outputType = customMetadata?.outputType as nbformat.OutputType;\n\tswitch (outputType) {\n\t\tcase 'error': {\n\t\t\tresult = translateCellErrorOutput(output);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'stream': {\n\t\t\tresult = convertStreamOutput(output);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'display_data': {\n\t\t\tresult = {\n\t\t\t\toutput_type: 'display_data',\n\t\t\t\tdata: output.items.reduce((prev: any, curr) => {\n\t\t\t\t\tprev[curr.mime] = convertOutputMimeToJupyterOutput(curr.mime, curr.data as Uint8Array);\n\t\t\t\t\treturn prev;\n\t\t\t\t}, {}),\n\t\t\t\tmetadata: customMetadata?.metadata || {} // This can never be undefined.\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase 'execute_result': {\n\t\t\tresult = {\n\t\t\t\toutput_type: 'execute_result',\n\t\t\t\tdata: output.items.reduce((prev: any, curr) => {\n\t\t\t\t\tprev[curr.mime] = convertOutputMimeToJupyterOutput(curr.mime, curr.data as Uint8Array);\n\t\t\t\t\treturn prev;\n\t\t\t\t}, {}),\n\t\t\t\tmetadata: customMetadata?.metadata || {}, // This can never be undefined.\n\t\t\t\texecution_count:\n\t\t\t\t\ttypeof customMetadata?.executionCount === 'number' ? customMetadata?.executionCount : null // This can never be undefined, only a number or `null`.\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tcase 'update_display_data': {\n\t\t\tresult = {\n\t\t\t\toutput_type: 'update_display_data',\n\t\t\t\tdata: output.items.reduce((prev: any, curr) => {\n\t\t\t\t\tprev[curr.mime] = convertOutputMimeToJupyterOutput(curr.mime, curr.data as Uint8Array);\n\t\t\t\t\treturn prev;\n\t\t\t\t}, {}),\n\t\t\t\tmetadata: customMetadata?.metadata || {} // This can never be undefined.\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t\tconst isError =\n\t\t\t\toutput.items.length === 1 && output.items.every((item) => item.mime === CellOutputMimeTypes.error);\n\t\t\tconst isStream = output.items.every(\n\t\t\t\t(item) => item.mime === CellOutputMimeTypes.stderr || item.mime === CellOutputMimeTypes.stdout\n\t\t\t);\n\n\t\t\tif (isError) {\n\t\t\t\treturn translateCellErrorOutput(output);\n\t\t\t}\n\n\t\t\t// In the case of .NET & other kernels, we need to ensure we save ipynb correctly.\n\t\t\t// Hence if we have stream output, save the output as Jupyter `stream` else `display_data`\n\t\t\t// Unless we already know its an unknown output type.\n\t\t\tconst outputType: nbformat.OutputType =\n\t\t\t\t<nbformat.OutputType>customMetadata?.outputType || (isStream ? 'stream' : 'display_data');\n\t\t\tlet unknownOutput: nbformat.IUnrecognizedOutput | nbformat.IDisplayData | nbformat.IStream;\n\t\t\tif (outputType === 'stream') {\n\t\t\t\t// If saving as `stream` ensure the mandatory properties are set.\n\t\t\t\tunknownOutput = convertStreamOutput(output);\n\t\t\t} else if (outputType === 'display_data') {\n\t\t\t\t// If saving as `display_data` ensure the mandatory properties are set.\n\t\t\t\tconst displayData: nbformat.IDisplayData = {\n\t\t\t\t\tdata: {},\n\t\t\t\t\tmetadata: {},\n\t\t\t\t\toutput_type: 'display_data'\n\t\t\t\t};\n\t\t\t\tunknownOutput = displayData;\n\t\t\t} else {\n\t\t\t\tunknownOutput = {\n\t\t\t\t\toutput_type: outputType\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (customMetadata?.metadata) {\n\t\t\t\tunknownOutput.metadata = customMetadata.metadata;\n\t\t\t}\n\t\t\tif (output.items.length > 0) {\n\t\t\t\tunknownOutput.data = output.items.reduce((prev: any, curr) => {\n\t\t\t\t\tprev[curr.mime] = convertOutputMimeToJupyterOutput(curr.mime, curr.data as Uint8Array);\n\t\t\t\t\treturn prev;\n\t\t\t\t}, {});\n\t\t\t}\n\t\t\tresult = unknownOutput;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Account for transient data as well\n\t// `transient.display_id` is used to update cell output in other cells, at least thats one use case we know of.\n\tif (result && customMetadata && customMetadata.transient) {\n\t\tresult.transient = customMetadata.transient;\n\t}\n\treturn result;\n}\n\nfunction translateCellErrorOutput(output: NotebookCellOutput): nbformat.IError {\n\t// it should have at least one output item\n\tconst firstItem = output.items[0];\n\t// Bug in VS Code.\n\tif (!firstItem.data) {\n\t\treturn {\n\t\t\toutput_type: 'error',\n\t\t\tename: '',\n\t\t\tevalue: '',\n\t\t\ttraceback: []\n\t\t};\n\t}\n\tconst originalError: undefined | nbformat.IError = output.metadata?.originalError;\n\tconst value: Error = JSON.parse(textDecoder.decode(firstItem.data));\n\treturn {\n\t\toutput_type: 'error',\n\t\tename: value.name,\n\t\tevalue: value.message,\n\t\t// VS Code needs an `Error` object which requires a `stack` property as a string.\n\t\t// Its possible the format could change when converting from `traceback` to `string` and back again to `string`\n\t\t// When .NET stores errors in output (with their .NET kernel),\n\t\t// stack is empty, hence store the message instead of stack (so that somethign gets displayed in ipynb).\n\t\ttraceback: originalError?.traceback || splitMultilineString(value.stack || value.message || '')\n\t};\n}\n\n\nfunction getOutputStreamType(output: NotebookCellOutput): string | undefined {\n\tif (output.items.length > 0) {\n\t\treturn output.items[0].mime === CellOutputMimeTypes.stderr ? 'stderr' : 'stdout';\n\t}\n\n\treturn;\n}\n\ntype JupyterOutput =\n\t| nbformat.IUnrecognizedOutput\n\t| nbformat.IExecuteResult\n\t| nbformat.IDisplayData\n\t| nbformat.IStream\n\t| nbformat.IError;\n\nfunction convertStreamOutput(output: NotebookCellOutput): JupyterOutput {\n\tconst outputs: string[] = [];\n\toutput.items\n\t\t.filter((opit) => opit.mime === CellOutputMimeTypes.stderr || opit.mime === CellOutputMimeTypes.stdout)\n\t\t.map((opit) => textDecoder.decode(opit.data))\n\t\t.forEach(value => {\n\t\t\t// Ensure each line is a separate entry in an array (ending with \\n).\n\t\t\tconst lines = value.split('\\n');\n\t\t\t// If the last item in `outputs` is not empty and the first item in `lines` is not empty, then concate them.\n\t\t\t// As they are part of the same line.\n\t\t\tif (outputs.length && lines.length && lines[0].length > 0) {\n\t\t\t\toutputs[outputs.length - 1] = `${outputs[outputs.length - 1]}${lines.shift()!}`;\n\t\t\t}\n\t\t\tfor (const line of lines) {\n\t\t\t\toutputs.push(line);\n\t\t\t}\n\t\t});\n\n\tfor (let index = 0; index < (outputs.length - 1); index++) {\n\t\toutputs[index] = `${outputs[index]}\\n`;\n\t}\n\n\t// Skip last one if empty (it's the only one that could be length 0)\n\tif (outputs.length && outputs[outputs.length - 1].length === 0) {\n\t\toutputs.pop();\n\t}\n\n\tconst streamType = getOutputStreamType(output) || 'stdout';\n\n\treturn {\n\t\toutput_type: 'stream',\n\t\tname: streamType,\n\t\ttext: outputs\n\t};\n}\n\nfunction convertOutputMimeToJupyterOutput(mime: string, value: Uint8Array) {\n\tif (!value) {\n\t\treturn '';\n\t}\n\ttry {\n\t\tif (mime === CellOutputMimeTypes.error) {\n\t\t\tconst stringValue = textDecoder.decode(value);\n\t\t\treturn JSON.parse(stringValue);\n\t\t} else if (mime.startsWith('text/') || textMimeTypes.includes(mime)) {\n\t\t\tconst stringValue = textDecoder.decode(value);\n\t\t\treturn splitMultilineString(stringValue);\n\t\t} else if (mime.startsWith('image/') && mime !== 'image/svg+xml') {\n\t\t\t// Images in Jupyter are stored in base64 encoded format.\n\t\t\t// VS Code expects bytes when rendering images.\n\t\t\tif (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {\n\t\t\t\treturn Buffer.from(value).toString('base64');\n\t\t\t} else {\n\t\t\t\treturn btoa(value.reduce((s: string, b: number) => s + String.fromCharCode(b), ''));\n\t\t\t}\n\t\t} else if (mime.toLowerCase().includes('json')) {\n\t\t\tconst stringValue = textDecoder.decode(value);\n\t\t\treturn stringValue.length > 0 ? JSON.parse(stringValue) : stringValue;\n\t\t} else if (mime === 'image/svg+xml') {\n\t\t\treturn splitMultilineString(textDecoder.decode(value));\n\t\t} else {\n\t\t\treturn textDecoder.decode(value);\n\t\t}\n\t} catch (ex) {\n\t\treturn '';\n\t}\n}\n\nexport function createMarkdownCellFromNotebookCell(cell: NotebookCellData): nbformat.IMarkdownCell {\n\tconst cellMetadata = getCellMetadata(cell);\n\tconst markdownCell: any = {\n\t\tcell_type: 'markdown',\n\t\tsource: splitMultilineString(cell.value.replace(/\\r\\n/g, '\\n')),\n\t\tmetadata: cellMetadata?.metadata || {} // This cannot be empty.\n\t};\n\tif (cellMetadata?.attachments) {\n\t\tmarkdownCell.attachments = cellMetadata.attachments;\n\t}\n\tif (cellMetadata?.id) {\n\t\tmarkdownCell.id = cellMetadata.id;\n\t}\n\treturn markdownCell;\n}\n\nexport function pruneCell(cell: nbformat.ICell): nbformat.ICell {\n\t// Source is usually a single string on input. Convert back to an array\n\tconst result = {\n\t\t...cell,\n\t\tsource: splitMultilineString(cell.source)\n\t} as nbformat.ICell;\n\n\t// Remove outputs and execution_count from non code cells\n\tif (result.cell_type !== 'code') {\n\t\tdelete (<any>result).outputs;\n\t\tdelete (<any>result).execution_count;\n\t} else {\n\t\t// Clean outputs from code cells\n\t\tresult.outputs = result.outputs ? (result.outputs as nbformat.IOutput[]).map(fixupOutput) : [];\n\t}\n\n\treturn result;\n}\nconst dummyStreamObj: nbformat.IStream = {\n\toutput_type: 'stream',\n\tname: 'stdout',\n\ttext: ''\n};\nconst dummyErrorObj: nbformat.IError = {\n\toutput_type: 'error',\n\tename: '',\n\tevalue: '',\n\ttraceback: ['']\n};\nconst dummyDisplayObj: nbformat.IDisplayData = {\n\toutput_type: 'display_data',\n\tdata: {},\n\tmetadata: {}\n};\nconst dummyExecuteResultObj: nbformat.IExecuteResult = {\n\toutput_type: 'execute_result',\n\tname: '',\n\texecution_count: 0,\n\tdata: {},\n\tmetadata: {}\n};\nconst AllowedCellOutputKeys = {\n\t['stream']: new Set(Object.keys(dummyStreamObj)),\n\t['error']: new Set(Object.keys(dummyErrorObj)),\n\t['display_data']: new Set(Object.keys(dummyDisplayObj)),\n\t['execute_result']: new Set(Object.keys(dummyExecuteResultObj))\n};\n\nfunction fixupOutput(output: nbformat.IOutput): nbformat.IOutput {\n\tlet allowedKeys: Set<string>;\n\tswitch (output.output_type) {\n\t\tcase 'stream':\n\t\tcase 'error':\n\t\tcase 'execute_result':\n\t\tcase 'display_data':\n\t\t\tallowedKeys = AllowedCellOutputKeys[output.output_type];\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn output;\n\t}\n\tconst result = { ...output };\n\tfor (const k of Object.keys(output)) {\n\t\tif (!allowedKeys.has(k)) {\n\t\t\tdelete result[k];\n\t\t}\n\t}\n\treturn result;\n}\n","/**\n * FNV-1a Hash implementation (32, 64, 128, 256, 512, and 1024 bit)\n * @author Travis Webb <me@traviswebb.com>\n * @see http://tools.ietf.org/html/draft-eastlake-fnv-06\n */\nvar fnvplus = (function(){\n\tvar i, hl = [], hl16 = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'],\n\t\tversion = '1a',\n\t\tuseUTF8 = false,\n\t\t_hash32, _hash52, _hash64, _hash128, _hash256, _hash512, _hash1024,\n\t\treferenceSeed = 'chongo <Landon Curt Noll> /\\\\../\\\\',\n\t\tdefaultKeyspace = 52,\n\t\tfnvConstants = {\n\t\t\t32: {offset: 0},\n\t\t\t64: {offset: [0,0,0,0]},\n\t\t\t128: {offset: [0,0,0,0,0,0,0,0]},\n\t\t\t256: {offset: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\n\t\t\t512: {offset: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\n\t\t\t1024: {offset: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}};\n\n\tfor(i=0; i < 256; i++){\n\t\thl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n\t}\n\n\tfunction hexToBase(hex, base){\n\t\tvar alphabet = '0123456789abcdefghijklmnopqrstuvwxyz',\n\t\t\tdigits = [0], carry, i, j, string = '';\n\n\t\tfor(i = 0; i < hex.length; i+=2){\n\t\t\tcarry = parseInt(hex.substr(i,2),16);\n\t\t\tfor(j = 0; j < digits.length; j++){\n\t\t\t\tcarry += digits[j] << 8;\n\t\t\t\tdigits[j] = carry % base;\n\t\t\t\tcarry = (carry / base) | 0;\n\t\t\t}\n\t\t\twhile (carry > 0) {\n\t\t\t\tdigits.push(carry % base);\n\t\t\t\tcarry = (carry / base) | 0;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = digits.length - 1; i >= 0; --i){\n\t\t\tstring += alphabet[digits[i]];\n\t\t}\n\n\t\treturn string;\n\t}\n\n\tfunction hashValHex(value, keyspace) {\n\t\treturn {\n\t\t\tbits: keyspace,\n\t\t\tvalue: value,\n\t\t\tdec: function(){return hexToBase(value, 10);},\n\t\t\thex: function(){return value;},\n\t\t\tstr: function(){return hexToBase(value, 36);}\n\t\t};\n\t}\n\n\tfunction hashValInt32(value, keyspace) {\n\t\treturn {\n\t\t\tbits: keyspace,\n\t\t\tvalue: value,\n\t\t\tdec: function(){return value.toString();},\n\t\t\thex: function(){return hl[value>>>24]+ hl[(value>>>16)&255]+hl[(value>>>8)&255]+hl[value&255];},\n\t\t\tstr: function(){return value.toString(36);}\n\t\t};\n\t}\n\n\tfunction hashValInt52(value, keyspace) {\n\t\treturn {\n\t\t\tbits: keyspace,\n\t\t\tvalue: value,\n\t\t\tdec: function(){return value.toString();},\n\t\t\thex: function(){return ('0000000000000000'+value.toString(16)).substr(-13);},\n\t\t\tstr: function(){return value.toString(36);}\n\t\t};\n\t}\n\n\tfunction hash(message, keyspace) {\n\t\tvar str = (typeof message === 'object') ? JSON.stringify(message) : message;\n\n\t\tswitch(keyspace || defaultKeyspace){\n\t\t\tcase 32:\n\t\t\t\treturn _hash32(str);\n\t\t\tcase 64:\n\t\t\t\treturn _hash64(str);\n\t\t\tcase 128:\n\t\t\t\treturn _hash128(str);\n\t\t\tcase 256:\n\t\t\t\treturn _hash256(str);\n\t\t\tcase 512:\n\t\t\t\treturn _hash512(str);\n\t\t\tcase 1024:\n\t\t\t\treturn _hash1024(str);\n\t\t\tdefault:\n\t\t\t\treturn _hash52(str);\n\t\t}\n\t}\n\n\tfunction setKeyspace(keyspace) {\n\t\tif (keyspace === 52 || fnvConstants[keyspace]) {\n\t\t\tdefaultKeyspace = keyspace;\n\t\t} else {\n\t\t\tthrow new Error('Supported FNV keyspacs: 32, 52, 64, 128, 256, 512, and 1024 bit');\n\t\t}\n\t}\n\n\tfunction setVersion(_version) {\n\t\tif (_version === '1a' ) {\n\t\t\tversion = _version;\n\t\t\t_hash32 = useUTF8 ? _hash32_1a_utf : _hash32_1a;\n\t\t\t_hash52 = useUTF8 ? _hash52_1a_utf : _hash52_1a;\n\t\t\t_hash64 = useUTF8 ? _hash64_1a_utf : _hash64_1a;\n\t\t\t_hash128 = useUTF8 ? _hash128_1a_utf : _hash128_1a;\n\t\t\t_hash256 = useUTF8 ? _hash256_1a_utf : _hash256_1a;\n\t\t\t_hash512 = useUTF8 ? _hash512_1a_utf : _hash512_1a;\n\t\t\t_hash1024 = useUTF8 ? _hash1024_1a_utf : _hash1024_1a;\n\t\t} else if (_version === '1') {\n\t\t\tversion = _version;\n\t\t\t_hash32 = useUTF8 ? _hash32_1_utf : _hash32_1;\n\t\t\t_hash52 = useUTF8 ? _hash52_1_utf : _hash52_1;\n\t\t\t_hash64 = useUTF8 ? _hash64_1_utf : _hash64_1;\n\t\t\t_hash128 = useUTF8 ? _hash128_1_utf : _hash128_1;\n\t\t\t_hash256 = useUTF8 ? _hash256_1_utf : _hash256_1;\n\t\t\t_hash512 = useUTF8 ? _hash512_1_utf : _hash512_1;\n\t\t\t_hash1024 = useUTF8 ? _hash1024_1_utf : _hash1024_1;\n\t\t} else {\n\t\t\tthrow new Error('Supported FNV versions: 1, 1a');\n\t\t}\n\t}\n\n\tfunction setUTF8(utf8) {\n\t\tif (utf8) {\n\t\t\tuseUTF8 = true;\n\t\t\t_hash32 = version == '1a' ? _hash32_1a_utf : _hash32_1_utf;\n\t\t\t_hash52 = version == '1a' ? _hash52_1a_utf : _hash52_1_utf;\n\t\t\t_hash64 = version == '1a' ? _hash64_1a_utf : _hash64_1_utf;\n\t\t\t_hash128 = version == '1a' ? _hash128_1a_utf : _hash128_1_utf;\n\t\t\t_hash256 = version == '1a' ? _hash256_1a_utf : _hash256_1_utf;\n\t\t\t_hash512 = version == '1a' ? _hash512_1a_utf : _hash512_1_utf;\n\t\t\t_hash1024 = version == '1a' ? _hash1024_1a_utf : _hash1024_1_utf;\n\t\t} else {\n\t\t\tuseUTF8 = false;\n\t\t\t_hash32 = version == '1a' ? _hash32_1a : _hash32_1;\n\t\t\t_hash52 = version == '1a' ? _hash52_1a : _hash52_1;\n\t\t\t_hash64 = version == '1a' ? _hash64_1a : _hash64_1;\n\t\t\t_hash128 = version == '1a' ? _hash128_1a : _hash128_1;\n\t\t\t_hash256 = version == '1a' ? _hash256_1a : _hash256_1;\n\t\t\t_hash512 = version == '1a' ? _hash512_1a : _hash512_1;\n\t\t\t_hash1024 = version == '1a' ? _hash1024_1a : _hash1024_1;\n\t\t}\n\t}\n\n\tfunction seed(seed) {\n\t\tvar oldVersion = version, res, i;\n\n\t\tseed = (seed || seed === 0) ? seed : referenceSeed;\n\n\t\tif (seed === referenceSeed) setVersion('1');\n\n\t\tfor (var keysize in fnvConstants) {\n\t\t\tfnvConstants[keysize].offset = [];\n\t\t\tfor(i = 0; i < keysize / 16; i++){\n\t\t\t\tfnvConstants[keysize].offset[i]\t= 0;\n\t\t\t}\n\t\t\tres = hash(seed, parseInt(keysize, 10)).hex();\n\t\t\tfor(i = 0; i < keysize / 16; i++){\n\t\t\t\tfnvConstants[keysize].offset[i]\t= parseInt(res.substr(i*4,4), 16);\n\t\t\t}\n\t\t}\n\n\t\tsetVersion(oldVersion);\n\t}\n\n\t/**\n\t * Implementation without library overhead.\n\t */\n\n\tfunction _hash32_1a_fast(str) {\n\t\tvar i, l = str.length-3, t0=0,v0=0x9dc5,t1=0,v1=0x811c;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\n\t\treturn ((v1<<16)>>>0)+v0;\n\t}\n\n\tfunction _hash32_1a_fast_hex(str) {\n\t\tvar i, l = str.length-3, t0=0,v0=0x9dc5,t1=0,v1=0x811c;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\n\t\treturn hl[(v1>>>8)&255]+hl[v1&255]+hl[(v0>>>8)&255]+hl[v0&255];\n\t}\n\n\tfunction _hash52_1a_fast(str){\n\t\tvar i,l=str.length-3,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn (v3&15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0^(v3>>4));\n\t}\n\n\tfunction _hash52_1a_fast_hex(str){\n\t\tvar i,l=str.length-3,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hl16[v3&15]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[(v0>>8)^(v3>>12)]+hl[(v0^(v3>>4))&255];\n\t}\n\n\tfunction _hash64_1a_fast(str){\n\t\tvar i,l=str.length-3,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255];\n\t}\n\n\tfunction _hash32_1a_fast_utf(str) {\n\t\tvar c,i,l=str.length,t0=0,v0=0x9dc5,t1=0,v1=0x811c;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\treturn ((v1<<16)>>>0)+v0;\n\t}\n\n\tfunction _hash32_1a_fast_hex_utf(str) {\n\t\tvar c,i,l=str.length,t0=0,v0=0x9dc5,t1=0,v1=0x811c;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\n\t\treturn hl[(v1>>>8)&255]+hl[v1&255]+hl[(v0>>>8)&255]+hl[v0&255];\n\t}\n\n\tfunction _hash52_1a_fast_utf(str){\n\t\tvar c,i,l=str.length,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn (v3&15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0^(v3>>4));\n\t}\n\n\tfunction _hash52_1a_fast_hex_utf (str){\n\t\tvar c,i,l=str.length,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hl16[v3&15]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[(v0>>8)^(v3>>12)]+hl[(v0^(v3>>4))&255];\n\t}\n\n\tfunction _hash64_1a_fast_utf(str){\n\t\tvar c,i,l=str.length,t0=0,v0=0x2325,t1=0,v1=0x8422,t2=0,v2=0x9ce4,t3=0,v3=0xcbf2;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255];\n\t}\n\t/**\n\t * Regular functions. This versions are accessible through API\n\t */\n\n\tfunction _hash32_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[32].offset,t0=0,v0=s[1]|0,t1=0,v1=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\treturn hashValInt32(((v1<<16)>>>0)+v0,32);\n\t}\n\n\tfunction _hash32_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[32].offset,t0=0,v0=s[1]|0,t1=0,v1=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValInt32(((v1<<16)>>>0)+v0,32);\n\t}\n\n\tfunction _hash32_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[32].offset,t0=0,v0=s[1]|0,t1=0,v1=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t}\n\n\t\treturn hashValInt32(((v1<<16)>>>0)+v0,32);\n\t}\n\n\tfunction _hash32_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[32].offset,t0=0,v0=s[1]|0,t1=0,v1=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*403;t1=v1*403;\n\t\t\tt1+=v0<<8;\n\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*403;t1=v1*403;\n\t\t\t\tt1+=v0<<8;\n\t\t\t\tv1=(t1+(t0>>>16))&65535;v0=t0&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValInt32(((v1<<16)>>>0)+v0,32);\n\t}\n\n\t_hash32 = _hash32_1a;\n\n\tfunction _hash52_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hashValInt52((v3&15)*281474976710656+v2*4294967296+v1*65536+(v0^(v3>>4)),52);\n\t}\n\n\tfunction _hash52_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValInt52((v3&15)*281474976710656+v2*4294967296+v1*65536+(v0^(v3>>4)),52);\n\t}\n\n\tfunction _hash52_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hashValInt52((v3&15)*281474976710656+v2*4294967296+v1*65536+(v0^(v3>>4)),52);\n\t}\n\n\tfunction _hash52_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValInt52((v3&15)*281474976710656+v2*4294967296+v1*65536+(v0^(v3>>4)),52);\n\t}\n\n\t_hash52 = _hash52_1a;\n\n\tfunction _hash64_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],64);\n\t}\n\n\tfunction _hash64_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValHex(hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],64);\n\t}\n\n\tfunction _hash64_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],64);\n\t}\n\n\tfunction _hash64_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[64].offset,t0=0,v0=s[3]|0,t1=0,v1=s[2]|0,t2=0,v2=s[1]|0,t3=0,v3=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*435;t1=v1*435;t2=v2*435;t3=v3*435;\n\t\t\t\tt2+=v0<<8;t3+=v1<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;v3=(t3+(t2>>>16))&65535;v2=t2&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValHex(hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],64);\n\t}\n\n\t_hash64 = _hash64_1a;\n\n\tfunction _hash128_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[128].offset,t0=0,v0=s[7]|0,t1=0,v1=s[6]|0,t2=0,v2=s[5]|0,t3=0,v3=s[4]|0,t4=0,v4=s[3]|0,t5=0,v5=s[2]|0,t6=0,v6=s[1]|0,t7=0,v7=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],128);\n\t}\n\n\tfunction _hash128_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[128].offset,t0=0,v0=s[7]|0,t1=0,v1=s[6]|0,t2=0,v2=s[5]|0,t3=0,v3=s[4]|0,t4=0,v4=s[3]|0,t5=0,v5=s[2]|0,t6=0,v6=s[1]|0,t7=0,v7=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValHex(hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],128);\n\t}\n\n\tfunction _hash128_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[128].offset,t0=0,v0=s[7]|0,t1=0,v1=s[6]|0,t2=0,v2=s[5]|0,t3=0,v3=s[4]|0,t4=0,v4=s[3]|0,t5=0,v5=s[2]|0,t6=0,v6=s[1]|0,t7=0,v7=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],128);\n\t}\n\n\tfunction _hash128_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[128].offset,t0=0,v0=s[7]|0,t1=0,v1=s[6]|0,t2=0,v2=s[5]|0,t3=0,v3=s[4]|0,t4=0,v4=s[3]|0,t5=0,v5=s[2]|0,t6=0,v6=s[1]|0,t7=0,v7=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*315;t1=v1*315;t2=v2*315;t3=v3*315;t4=v4*315;t5=v5*315;t6=v6*315;t7=v7*315;\n\t\t\t\tt5+=v0<<8;t6+=v1<<8;t7+=v2<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;v7=(t7+(t6>>>16))&65535;v6=t6&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValHex(hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],128);\n\t}\n\n\t_hash128 = _hash128_1a;\n\n\tfunction _hash256_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[256].offset,t0=0,v0=s[15]|0,t1=0,v1=s[14]|0,t2=0,v2=s[13]|0,t3=0,v3=s[12]|0,t4=0,v4=s[11]|0,t5=0,v5=s[10]|0,t6=0,v6=s[9]|0,t7=0,v7=s[8]|0,t8=0,v8=s[7]|0,t9=0,v9=s[6]|0,t10=0,v10=s[5]|0,t11=0,v11=s[4]|0,t12=0,v12=s[3]|0,t13=0,v13=s[2]|0,t14=0,v14=s[1]|0,t15=0,v15=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],256);\n\t}\n\n\tfunction _hash256_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[256].offset,t0=0,v0=s[15]|0,t1=0,v1=s[14]|0,t2=0,v2=s[13]|0,t3=0,v3=s[12]|0,t4=0,v4=s[11]|0,t5=0,v5=s[10]|0,t6=0,v6=s[9]|0,t7=0,v7=s[8]|0,t8=0,v8=s[7]|0,t9=0,v9=s[6]|0,t10=0,v10=s[5]|0,t11=0,v11=s[4]|0,t12=0,v12=s[3]|0,t13=0,v13=s[2]|0,t14=0,v14=s[1]|0,t15=0,v15=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValHex(hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],256);\n\t}\n\n\tfunction _hash256_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[256].offset,t0=0,v0=s[15]|0,t1=0,v1=s[14]|0,t2=0,v2=s[13]|0,t3=0,v3=s[12]|0,t4=0,v4=s[11]|0,t5=0,v5=s[10]|0,t6=0,v6=s[9]|0,t7=0,v7=s[8]|0,t8=0,v8=s[7]|0,t9=0,v9=s[6]|0,t10=0,v10=s[5]|0,t11=0,v11=s[4]|0,t12=0,v12=s[3]|0,t13=0,v13=s[2]|0,t14=0,v14=s[1]|0,t15=0,v15=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],256);\n\t}\n\n\tfunction _hash256_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[256].offset,t0=0,v0=s[15]|0,t1=0,v1=s[14]|0,t2=0,v2=s[13]|0,t3=0,v3=s[12]|0,t4=0,v4=s[11]|0,t5=0,v5=s[10]|0,t6=0,v6=s[9]|0,t7=0,v7=s[8]|0,t8=0,v8=s[7]|0,t9=0,v9=s[6]|0,t10=0,v10=s[5]|0,t11=0,v11=s[4]|0,t12=0,v12=s[3]|0,t13=0,v13=s[2]|0,t14=0,v14=s[1]|0,t15=0,v15=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*355;t1=v1*355;t2=v2*355;t3=v3*355;t4=v4*355;t5=v5*355;t6=v6*355;t7=v7*355;t8=v8*355;t9=v9*355;t10=v10*355;t11=v11*355;t12=v12*355;t13=v13*355;t14=v14*355;t15=v15*355;\n\t\t\t\tt10+=v0<<8;t11+=v1<<8;t12+=v2<<8;t13+=v3<<8;t14+=v4<<8;t15+=v5<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;v15=(t15+(t14>>>16))&65535;v14=t14&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValHex(hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],256);\n\t}\n\n\t_hash256 = _hash256_1a;\n\n\tfunction _hash512_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[512].offset,t0=0,v0=s[31]|0,t1=0,v1=s[30]|0,t2=0,v2=s[29]|0,t3=0,v3=s[28]|0,t4=0,v4=s[27]|0,t5=0,v5=s[26]|0,t6=0,v6=s[25]|0,t7=0,v7=s[24]|0,t8=0,v8=s[23]|0,t9=0,v9=s[22]|0,t10=0,v10=s[21]|0,t11=0,v11=s[20]|0,t12=0,v12=s[19]|0,t13=0,v13=s[18]|0,t14=0,v14=s[17]|0,t15=0,v15=s[16]|0,t16=0,v16=s[15]|0,t17=0,v17=s[14]|0,t18=0,v18=s[13]|0,t19=0,v19=s[12]|0,t20=0,v20=s[11]|0,t21=0,v21=s[10]|0,t22=0,v22=s[9]|0,t23=0,v23=s[8]|0,t24=0,v24=s[7]|0,t25=0,v25=s[6]|0,t26=0,v26=s[5]|0,t27=0,v27=s[4]|0,t28=0,v28=s[3]|0,t29=0,v29=s[2]|0,t30=0,v30=s[1]|0,t31=0,v31=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],512);\n\t}\n\n\tfunction _hash512_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[512].offset,t0=0,v0=s[31]|0,t1=0,v1=s[30]|0,t2=0,v2=s[29]|0,t3=0,v3=s[28]|0,t4=0,v4=s[27]|0,t5=0,v5=s[26]|0,t6=0,v6=s[25]|0,t7=0,v7=s[24]|0,t8=0,v8=s[23]|0,t9=0,v9=s[22]|0,t10=0,v10=s[21]|0,t11=0,v11=s[20]|0,t12=0,v12=s[19]|0,t13=0,v13=s[18]|0,t14=0,v14=s[17]|0,t15=0,v15=s[16]|0,t16=0,v16=s[15]|0,t17=0,v17=s[14]|0,t18=0,v18=s[13]|0,t19=0,v19=s[12]|0,t20=0,v20=s[11]|0,t21=0,v21=s[10]|0,t22=0,v22=s[9]|0,t23=0,v23=s[8]|0,t24=0,v24=s[7]|0,t25=0,v25=s[6]|0,t26=0,v26=s[5]|0,t27=0,v27=s[4]|0,t28=0,v28=s[3]|0,t29=0,v29=s[2]|0,t30=0,v30=s[1]|0,t31=0,v31=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValHex(hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],512);\n\t}\n\n\tfunction _hash512_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[512].offset,t0=0,v0=s[31]|0,t1=0,v1=s[30]|0,t2=0,v2=s[29]|0,t3=0,v3=s[28]|0,t4=0,v4=s[27]|0,t5=0,v5=s[26]|0,t6=0,v6=s[25]|0,t7=0,v7=s[24]|0,t8=0,v8=s[23]|0,t9=0,v9=s[22]|0,t10=0,v10=s[21]|0,t11=0,v11=s[20]|0,t12=0,v12=s[19]|0,t13=0,v13=s[18]|0,t14=0,v14=s[17]|0,t15=0,v15=s[16]|0,t16=0,v16=s[15]|0,t17=0,v17=s[14]|0,t18=0,v18=s[13]|0,t19=0,v19=s[12]|0,t20=0,v20=s[11]|0,t21=0,v21=s[10]|0,t22=0,v22=s[9]|0,t23=0,v23=s[8]|0,t24=0,v24=s[7]|0,t25=0,v25=s[6]|0,t26=0,v26=s[5]|0,t27=0,v27=s[4]|0,t28=0,v28=s[3]|0,t29=0,v29=s[2]|0,t30=0,v30=s[1]|0,t31=0,v31=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],512);\n\t}\n\n\tfunction _hash512_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[512].offset,t0=0,v0=s[31]|0,t1=0,v1=s[30]|0,t2=0,v2=s[29]|0,t3=0,v3=s[28]|0,t4=0,v4=s[27]|0,t5=0,v5=s[26]|0,t6=0,v6=s[25]|0,t7=0,v7=s[24]|0,t8=0,v8=s[23]|0,t9=0,v9=s[22]|0,t10=0,v10=s[21]|0,t11=0,v11=s[20]|0,t12=0,v12=s[19]|0,t13=0,v13=s[18]|0,t14=0,v14=s[17]|0,t15=0,v15=s[16]|0,t16=0,v16=s[15]|0,t17=0,v17=s[14]|0,t18=0,v18=s[13]|0,t19=0,v19=s[12]|0,t20=0,v20=s[11]|0,t21=0,v21=s[10]|0,t22=0,v22=s[9]|0,t23=0,v23=s[8]|0,t24=0,v24=s[7]|0,t25=0,v25=s[6]|0,t26=0,v26=s[5]|0,t27=0,v27=s[4]|0,t28=0,v28=s[3]|0,t29=0,v29=s[2]|0,t30=0,v30=s[1]|0,t31=0,v31=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*343;t1=v1*343;t2=v2*343;t3=v3*343;t4=v4*343;t5=v5*343;t6=v6*343;t7=v7*343;t8=v8*343;t9=v9*343;t10=v10*343;t11=v11*343;t12=v12*343;t13=v13*343;t14=v14*343;t15=v15*343;t16=v16*343;t17=v17*343;t18=v18*343;t19=v19*343;t20=v20*343;t21=v21*343;t22=v22*343;t23=v23*343;t24=v24*343;t25=v25*343;t26=v26*343;t27=v27*343;t28=v28*343;t29=v29*343;t30=v30*343;t31=v31*343;\n\t\t\t\tt21+=v0<<8;t22+=v1<<8;t23+=v2<<8;t24+=v3<<8;t25+=v4<<8;t26+=v5<<8;t27+=v6<<8;t28+=v7<<8;t29+=v8<<8;t30+=v9<<8;t31+=v10<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;v31=(t31+(t30>>>16))&65535;v30=t30&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValHex(hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],512);\n\t}\n\n\t_hash512 = _hash512_1a;\n\n\tfunction _hash1024_1a(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[1024].offset,t0=0,v0=s[63]|0,t1=0,v1=s[62]|0,t2=0,v2=s[61]|0,t3=0,v3=s[60]|0,t4=0,v4=s[59]|0,t5=0,v5=s[58]|0,t6=0,v6=s[57]|0,t7=0,v7=s[56]|0,t8=0,v8=s[55]|0,t9=0,v9=s[54]|0,t10=0,v10=s[53]|0,t11=0,v11=s[52]|0,t12=0,v12=s[51]|0,t13=0,v13=s[50]|0,t14=0,v14=s[49]|0,t15=0,v15=s[48]|0,t16=0,v16=s[47]|0,t17=0,v17=s[46]|0,t18=0,v18=s[45]|0,t19=0,v19=s[44]|0,t20=0,v20=s[43]|0,t21=0,v21=s[42]|0,t22=0,v22=s[41]|0,t23=0,v23=s[40]|0,t24=0,v24=s[39]|0,t25=0,v25=s[38]|0,t26=0,v26=s[37]|0,t27=0,v27=s[36]|0,t28=0,v28=s[35]|0,t29=0,v29=s[34]|0,t30=0,v30=s[33]|0,t31=0,v31=s[32]|0,t32=0,v32=s[31]|0,t33=0,v33=s[30]|0,t34=0,v34=s[29]|0,t35=0,v35=s[28]|0,t36=0,v36=s[27]|0,t37=0,v37=s[26]|0,t38=0,v38=s[25]|0,t39=0,v39=s[24]|0,t40=0,v40=s[23]|0,t41=0,v41=s[22]|0,t42=0,v42=s[21]|0,t43=0,v43=s[20]|0,t44=0,v44=s[19]|0,t45=0,v45=s[18]|0,t46=0,v46=s[17]|0,t47=0,v47=s[16]|0,t48=0,v48=s[15]|0,t49=0,v49=s[14]|0,t50=0,v50=s[13]|0,t51=0,v51=s[12]|0,t52=0,v52=s[11]|0,t53=0,v53=s[10]|0,t54=0,v54=s[9]|0,t55=0,v55=s[8]|0,t56=0,v56=s[7]|0,t57=0,v57=s[6]|0,t58=0,v58=s[5]|0,t59=0,v59=s[4]|0,t60=0,v60=s[3]|0,t61=0,v61=s[2]|0,t62=0,v62=s[1]|0,t63=0,v63=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v63>>8]+hl[v63&255]+hl[v62>>8]+hl[v62&255]+hl[v61>>8]+hl[v61&255]+hl[v60>>8]+hl[v60&255]+hl[v59>>8]+hl[v59&255]+hl[v58>>8]+hl[v58&255]+hl[v57>>8]+hl[v57&255]+hl[v56>>8]+hl[v56&255]+hl[v55>>8]+hl[v55&255]+hl[v54>>8]+hl[v54&255]+hl[v53>>8]+hl[v53&255]+hl[v52>>8]+hl[v52&255]+hl[v51>>8]+hl[v51&255]+hl[v50>>8]+hl[v50&255]+hl[v49>>8]+hl[v49&255]+hl[v48>>8]+hl[v48&255]+hl[v47>>8]+hl[v47&255]+hl[v46>>8]+hl[v46&255]+hl[v45>>8]+hl[v45&255]+hl[v44>>8]+hl[v44&255]+hl[v43>>8]+hl[v43&255]+hl[v42>>8]+hl[v42&255]+hl[v41>>8]+hl[v41&255]+hl[v40>>8]+hl[v40&255]+hl[v39>>8]+hl[v39&255]+hl[v38>>8]+hl[v38&255]+hl[v37>>8]+hl[v37&255]+hl[v36>>8]+hl[v36&255]+hl[v35>>8]+hl[v35&255]+hl[v34>>8]+hl[v34&255]+hl[v33>>8]+hl[v33&255]+hl[v32>>8]+hl[v32&255]+hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],1024);\n\t}\n\n\tfunction _hash1024_1(str){\n\t\tvar i,l=str.length-3,s=fnvConstants[1024].offset,t0=0,v0=s[63]|0,t1=0,v1=s[62]|0,t2=0,v2=s[61]|0,t3=0,v3=s[60]|0,t4=0,v4=s[59]|0,t5=0,v5=s[58]|0,t6=0,v6=s[57]|0,t7=0,v7=s[56]|0,t8=0,v8=s[55]|0,t9=0,v9=s[54]|0,t10=0,v10=s[53]|0,t11=0,v11=s[52]|0,t12=0,v12=s[51]|0,t13=0,v13=s[50]|0,t14=0,v14=s[49]|0,t15=0,v15=s[48]|0,t16=0,v16=s[47]|0,t17=0,v17=s[46]|0,t18=0,v18=s[45]|0,t19=0,v19=s[44]|0,t20=0,v20=s[43]|0,t21=0,v21=s[42]|0,t22=0,v22=s[41]|0,t23=0,v23=s[40]|0,t24=0,v24=s[39]|0,t25=0,v25=s[38]|0,t26=0,v26=s[37]|0,t27=0,v27=s[36]|0,t28=0,v28=s[35]|0,t29=0,v29=s[34]|0,t30=0,v30=s[33]|0,t31=0,v31=s[32]|0,t32=0,v32=s[31]|0,t33=0,v33=s[30]|0,t34=0,v34=s[29]|0,t35=0,v35=s[28]|0,t36=0,v36=s[27]|0,t37=0,v37=s[26]|0,t38=0,v38=s[25]|0,t39=0,v39=s[24]|0,t40=0,v40=s[23]|0,t41=0,v41=s[22]|0,t42=0,v42=s[21]|0,t43=0,v43=s[20]|0,t44=0,v44=s[19]|0,t45=0,v45=s[18]|0,t46=0,v46=s[17]|0,t47=0,v47=s[16]|0,t48=0,v48=s[15]|0,t49=0,v49=s[14]|0,t50=0,v50=s[13]|0,t51=0,v51=s[12]|0,t52=0,v52=s[11]|0,t53=0,v53=s[10]|0,t54=0,v54=s[9]|0,t55=0,v55=s[8]|0,t56=0,v56=s[7]|0,t57=0,v57=s[6]|0,t58=0,v58=s[5]|0,t59=0,v59=s[4]|0,t60=0,v60=s[3]|0,t61=0,v61=s[2]|0,t62=0,v62=s[1]|0,t63=0,v63=s[0]|0;\n\n\t\tfor (i = 0; i < l;) {\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\twhile(i<l+3){\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tv0^=str.charCodeAt(i++);\n\t\t}\n\n\t\treturn hashValHex(hl[v63>>8]+hl[v63&255]+hl[v62>>8]+hl[v62&255]+hl[v61>>8]+hl[v61&255]+hl[v60>>8]+hl[v60&255]+hl[v59>>8]+hl[v59&255]+hl[v58>>8]+hl[v58&255]+hl[v57>>8]+hl[v57&255]+hl[v56>>8]+hl[v56&255]+hl[v55>>8]+hl[v55&255]+hl[v54>>8]+hl[v54&255]+hl[v53>>8]+hl[v53&255]+hl[v52>>8]+hl[v52&255]+hl[v51>>8]+hl[v51&255]+hl[v50>>8]+hl[v50&255]+hl[v49>>8]+hl[v49&255]+hl[v48>>8]+hl[v48&255]+hl[v47>>8]+hl[v47&255]+hl[v46>>8]+hl[v46&255]+hl[v45>>8]+hl[v45&255]+hl[v44>>8]+hl[v44&255]+hl[v43>>8]+hl[v43&255]+hl[v42>>8]+hl[v42&255]+hl[v41>>8]+hl[v41&255]+hl[v40>>8]+hl[v40&255]+hl[v39>>8]+hl[v39&255]+hl[v38>>8]+hl[v38&255]+hl[v37>>8]+hl[v37&255]+hl[v36>>8]+hl[v36&255]+hl[v35>>8]+hl[v35&255]+hl[v34>>8]+hl[v34&255]+hl[v33>>8]+hl[v33&255]+hl[v32>>8]+hl[v32&255]+hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],1024);\n\t}\n\n\tfunction _hash1024_1a_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[1024].offset,t0=0,v0=s[63]|0,t1=0,v1=s[62]|0,t2=0,v2=s[61]|0,t3=0,v3=s[60]|0,t4=0,v4=s[59]|0,t5=0,v5=s[58]|0,t6=0,v6=s[57]|0,t7=0,v7=s[56]|0,t8=0,v8=s[55]|0,t9=0,v9=s[54]|0,t10=0,v10=s[53]|0,t11=0,v11=s[52]|0,t12=0,v12=s[51]|0,t13=0,v13=s[50]|0,t14=0,v14=s[49]|0,t15=0,v15=s[48]|0,t16=0,v16=s[47]|0,t17=0,v17=s[46]|0,t18=0,v18=s[45]|0,t19=0,v19=s[44]|0,t20=0,v20=s[43]|0,t21=0,v21=s[42]|0,t22=0,v22=s[41]|0,t23=0,v23=s[40]|0,t24=0,v24=s[39]|0,t25=0,v25=s[38]|0,t26=0,v26=s[37]|0,t27=0,v27=s[36]|0,t28=0,v28=s[35]|0,t29=0,v29=s[34]|0,t30=0,v30=s[33]|0,t31=0,v31=s[32]|0,t32=0,v32=s[31]|0,t33=0,v33=s[30]|0,t34=0,v34=s[29]|0,t35=0,v35=s[28]|0,t36=0,v36=s[27]|0,t37=0,v37=s[26]|0,t38=0,v38=s[25]|0,t39=0,v39=s[24]|0,t40=0,v40=s[23]|0,t41=0,v41=s[22]|0,t42=0,v42=s[21]|0,t43=0,v43=s[20]|0,t44=0,v44=s[19]|0,t45=0,v45=s[18]|0,t46=0,v46=s[17]|0,t47=0,v47=s[16]|0,t48=0,v48=s[15]|0,t49=0,v49=s[14]|0,t50=0,v50=s[13]|0,t51=0,v51=s[12]|0,t52=0,v52=s[11]|0,t53=0,v53=s[10]|0,t54=0,v54=s[9]|0,t55=0,v55=s[8]|0,t56=0,v56=s[7]|0,t57=0,v57=s[6]|0,t58=0,v58=s[5]|0,t59=0,v59=s[4]|0,t60=0,v60=s[3]|0,t61=0,v61=s[2]|0,t62=0,v62=s[1]|0,t63=0,v63=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t}\n\n\t\treturn hashValHex(hl[v63>>8]+hl[v63&255]+hl[v62>>8]+hl[v62&255]+hl[v61>>8]+hl[v61&255]+hl[v60>>8]+hl[v60&255]+hl[v59>>8]+hl[v59&255]+hl[v58>>8]+hl[v58&255]+hl[v57>>8]+hl[v57&255]+hl[v56>>8]+hl[v56&255]+hl[v55>>8]+hl[v55&255]+hl[v54>>8]+hl[v54&255]+hl[v53>>8]+hl[v53&255]+hl[v52>>8]+hl[v52&255]+hl[v51>>8]+hl[v51&255]+hl[v50>>8]+hl[v50&255]+hl[v49>>8]+hl[v49&255]+hl[v48>>8]+hl[v48&255]+hl[v47>>8]+hl[v47&255]+hl[v46>>8]+hl[v46&255]+hl[v45>>8]+hl[v45&255]+hl[v44>>8]+hl[v44&255]+hl[v43>>8]+hl[v43&255]+hl[v42>>8]+hl[v42&255]+hl[v41>>8]+hl[v41&255]+hl[v40>>8]+hl[v40&255]+hl[v39>>8]+hl[v39&255]+hl[v38>>8]+hl[v38&255]+hl[v37>>8]+hl[v37&255]+hl[v36>>8]+hl[v36&255]+hl[v35>>8]+hl[v35&255]+hl[v34>>8]+hl[v34&255]+hl[v33>>8]+hl[v33&255]+hl[v32>>8]+hl[v32&255]+hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],1024);\n\t}\n\n\tfunction _hash1024_1_utf(str){\n\t\tvar c,i,l=str.length,s=fnvConstants[1024].offset,t0=0,v0=s[63]|0,t1=0,v1=s[62]|0,t2=0,v2=s[61]|0,t3=0,v3=s[60]|0,t4=0,v4=s[59]|0,t5=0,v5=s[58]|0,t6=0,v6=s[57]|0,t7=0,v7=s[56]|0,t8=0,v8=s[55]|0,t9=0,v9=s[54]|0,t10=0,v10=s[53]|0,t11=0,v11=s[52]|0,t12=0,v12=s[51]|0,t13=0,v13=s[50]|0,t14=0,v14=s[49]|0,t15=0,v15=s[48]|0,t16=0,v16=s[47]|0,t17=0,v17=s[46]|0,t18=0,v18=s[45]|0,t19=0,v19=s[44]|0,t20=0,v20=s[43]|0,t21=0,v21=s[42]|0,t22=0,v22=s[41]|0,t23=0,v23=s[40]|0,t24=0,v24=s[39]|0,t25=0,v25=s[38]|0,t26=0,v26=s[37]|0,t27=0,v27=s[36]|0,t28=0,v28=s[35]|0,t29=0,v29=s[34]|0,t30=0,v30=s[33]|0,t31=0,v31=s[32]|0,t32=0,v32=s[31]|0,t33=0,v33=s[30]|0,t34=0,v34=s[29]|0,t35=0,v35=s[28]|0,t36=0,v36=s[27]|0,t37=0,v37=s[26]|0,t38=0,v38=s[25]|0,t39=0,v39=s[24]|0,t40=0,v40=s[23]|0,t41=0,v41=s[22]|0,t42=0,v42=s[21]|0,t43=0,v43=s[20]|0,t44=0,v44=s[19]|0,t45=0,v45=s[18]|0,t46=0,v46=s[17]|0,t47=0,v47=s[16]|0,t48=0,v48=s[15]|0,t49=0,v49=s[14]|0,t50=0,v50=s[13]|0,t51=0,v51=s[12]|0,t52=0,v52=s[11]|0,t53=0,v53=s[10]|0,t54=0,v54=s[9]|0,t55=0,v55=s[8]|0,t56=0,v56=s[7]|0,t57=0,v57=s[6]|0,t58=0,v58=s[5]|0,t59=0,v59=s[4]|0,t60=0,v60=s[3]|0,t61=0,v61=s[2]|0,t62=0,v62=s[1]|0,t63=0,v63=s[0]|0;\n\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\tif(c < 128){\n\t\t\t\tv0^=c;\n\t\t\t}else if(c < 2048){\n\t\t\t\tv0^=(c>>6)|192;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else if(((c&64512)==55296)&&(i+1)<l&&((str.charCodeAt(i+1)&64512)==56320)){\n\t\t\t\tc=65536+((c&1023)<<10)+(str.charCodeAt(++i)&1023);\n\t\t\t\tv0^=(c>>18)|240;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>12)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}else{\n\t\t\t\tv0^=(c>>12)|224;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=((c>>6)&63)|128;\n\t\t\t\tt0=v0*397;t1=v1*397;t2=v2*397;t3=v3*397;t4=v4*397;t5=v5*397;t6=v6*397;t7=v7*397;t8=v8*397;t9=v9*397;t10=v10*397;t11=v11*397;t12=v12*397;t13=v13*397;t14=v14*397;t15=v15*397;t16=v16*397;t17=v17*397;t18=v18*397;t19=v19*397;t20=v20*397;t21=v21*397;t22=v22*397;t23=v23*397;t24=v24*397;t25=v25*397;t26=v26*397;t27=v27*397;t28=v28*397;t29=v29*397;t30=v30*397;t31=v31*397;t32=v32*397;t33=v33*397;t34=v34*397;t35=v35*397;t36=v36*397;t37=v37*397;t38=v38*397;t39=v39*397;t40=v40*397;t41=v41*397;t42=v42*397;t43=v43*397;t44=v44*397;t45=v45*397;t46=v46*397;t47=v47*397;t48=v48*397;t49=v49*397;t50=v50*397;t51=v51*397;t52=v52*397;t53=v53*397;t54=v54*397;t55=v55*397;t56=v56*397;t57=v57*397;t58=v58*397;t59=v59*397;t60=v60*397;t61=v61*397;t62=v62*397;t63=v63*397;\n\t\t\t\tt42+=v0<<8;t43+=v1<<8;t44+=v2<<8;t45+=v3<<8;t46+=v4<<8;t47+=v5<<8;t48+=v6<<8;t49+=v7<<8;t50+=v8<<8;t51+=v9<<8;t52+=v10<<8;t53+=v11<<8;t54+=v12<<8;t55+=v13<<8;t56+=v14<<8;t57+=v15<<8;t58+=v16<<8;t59+=v17<<8;t60+=v18<<8;t61+=v19<<8;t62+=v20<<8;t63+=v21<<8;\n\t\t\t\tt1+=t0>>>16;v0=t0&65535;t2+=t1>>>16;v1=t1&65535;t3+=t2>>>16;v2=t2&65535;t4+=t3>>>16;v3=t3&65535;t5+=t4>>>16;v4=t4&65535;t6+=t5>>>16;v5=t5&65535;t7+=t6>>>16;v6=t6&65535;t8+=t7>>>16;v7=t7&65535;t9+=t8>>>16;v8=t8&65535;t10+=t9>>>16;v9=t9&65535;t11+=t10>>>16;v10=t10&65535;t12+=t11>>>16;v11=t11&65535;t13+=t12>>>16;v12=t12&65535;t14+=t13>>>16;v13=t13&65535;t15+=t14>>>16;v14=t14&65535;t16+=t15>>>16;v15=t15&65535;t17+=t16>>>16;v16=t16&65535;t18+=t17>>>16;v17=t17&65535;t19+=t18>>>16;v18=t18&65535;t20+=t19>>>16;v19=t19&65535;t21+=t20>>>16;v20=t20&65535;t22+=t21>>>16;v21=t21&65535;t23+=t22>>>16;v22=t22&65535;t24+=t23>>>16;v23=t23&65535;t25+=t24>>>16;v24=t24&65535;t26+=t25>>>16;v25=t25&65535;t27+=t26>>>16;v26=t26&65535;t28+=t27>>>16;v27=t27&65535;t29+=t28>>>16;v28=t28&65535;t30+=t29>>>16;v29=t29&65535;t31+=t30>>>16;v30=t30&65535;t32+=t31>>>16;v31=t31&65535;t33+=t32>>>16;v32=t32&65535;t34+=t33>>>16;v33=t33&65535;t35+=t34>>>16;v34=t34&65535;t36+=t35>>>16;v35=t35&65535;t37+=t36>>>16;v36=t36&65535;t38+=t37>>>16;v37=t37&65535;t39+=t38>>>16;v38=t38&65535;t40+=t39>>>16;v39=t39&65535;t41+=t40>>>16;v40=t40&65535;t42+=t41>>>16;v41=t41&65535;t43+=t42>>>16;v42=t42&65535;t44+=t43>>>16;v43=t43&65535;t45+=t44>>>16;v44=t44&65535;t46+=t45>>>16;v45=t45&65535;t47+=t46>>>16;v46=t46&65535;t48+=t47>>>16;v47=t47&65535;t49+=t48>>>16;v48=t48&65535;t50+=t49>>>16;v49=t49&65535;t51+=t50>>>16;v50=t50&65535;t52+=t51>>>16;v51=t51&65535;t53+=t52>>>16;v52=t52&65535;t54+=t53>>>16;v53=t53&65535;t55+=t54>>>16;v54=t54&65535;t56+=t55>>>16;v55=t55&65535;t57+=t56>>>16;v56=t56&65535;t58+=t57>>>16;v57=t57&65535;t59+=t58>>>16;v58=t58&65535;t60+=t59>>>16;v59=t59&65535;t61+=t60>>>16;v60=t60&65535;t62+=t61>>>16;v61=t61&65535;v63=(t63+(t62>>>16))&65535;v62=t62&65535;\n\t\t\t\tv0^=(c&63)|128;\n\t\t\t}\n\t\t}\n\n\t\treturn hashValHex(hl[v63>>8]+hl[v63&255]+hl[v62>>8]+hl[v62&255]+hl[v61>>8]+hl[v61&255]+hl[v60>>8]+hl[v60&255]+hl[v59>>8]+hl[v59&255]+hl[v58>>8]+hl[v58&255]+hl[v57>>8]+hl[v57&255]+hl[v56>>8]+hl[v56&255]+hl[v55>>8]+hl[v55&255]+hl[v54>>8]+hl[v54&255]+hl[v53>>8]+hl[v53&255]+hl[v52>>8]+hl[v52&255]+hl[v51>>8]+hl[v51&255]+hl[v50>>8]+hl[v50&255]+hl[v49>>8]+hl[v49&255]+hl[v48>>8]+hl[v48&255]+hl[v47>>8]+hl[v47&255]+hl[v46>>8]+hl[v46&255]+hl[v45>>8]+hl[v45&255]+hl[v44>>8]+hl[v44&255]+hl[v43>>8]+hl[v43&255]+hl[v42>>8]+hl[v42&255]+hl[v41>>8]+hl[v41&255]+hl[v40>>8]+hl[v40&255]+hl[v39>>8]+hl[v39&255]+hl[v38>>8]+hl[v38&255]+hl[v37>>8]+hl[v37&255]+hl[v36>>8]+hl[v36&255]+hl[v35>>8]+hl[v35&255]+hl[v34>>8]+hl[v34&255]+hl[v33>>8]+hl[v33&255]+hl[v32>>8]+hl[v32&255]+hl[v31>>8]+hl[v31&255]+hl[v30>>8]+hl[v30&255]+hl[v29>>8]+hl[v29&255]+hl[v28>>8]+hl[v28&255]+hl[v27>>8]+hl[v27&255]+hl[v26>>8]+hl[v26&255]+hl[v25>>8]+hl[v25&255]+hl[v24>>8]+hl[v24&255]+hl[v23>>8]+hl[v23&255]+hl[v22>>8]+hl[v22&255]+hl[v21>>8]+hl[v21&255]+hl[v20>>8]+hl[v20&255]+hl[v19>>8]+hl[v19&255]+hl[v18>>8]+hl[v18&255]+hl[v17>>8]+hl[v17&255]+hl[v16>>8]+hl[v16&255]+hl[v15>>8]+hl[v15&255]+hl[v14>>8]+hl[v14&255]+hl[v13>>8]+hl[v13&255]+hl[v12>>8]+hl[v12&255]+hl[v11>>8]+hl[v11&255]+hl[v10>>8]+hl[v10&255]+hl[v9>>8]+hl[v9&255]+hl[v8>>8]+hl[v8&255]+hl[v7>>8]+hl[v7&255]+hl[v6>>8]+hl[v6&255]+hl[v5>>8]+hl[v5&255]+hl[v4>>8]+hl[v4&255]+hl[v3>>8]+hl[v3&255]+hl[v2>>8]+hl[v2&255]+hl[v1>>8]+hl[v1&255]+hl[v0>>8]+hl[v0&255],1024);\n\t}\n\n\t_hash1024 = _hash1024_1a;\n\n\t// Init library.\n\tsetVersion('1a');\n\tsetUTF8(false);\n\tseed();\n\n\treturn {\n\t\thash: hash,\n\t\tsetKeyspace: setKeyspace,\n\t\tversion: setVersion,\n\t\tuseUTF8: setUTF8,\n\t\tseed: seed,\n\t\tfast1a32: _hash32_1a_fast,\n\t\tfast1a32hex:_hash32_1a_fast_hex,\n\t\tfast1a52: _hash52_1a_fast,\n\t\tfast1a52hex: _hash52_1a_fast_hex,\n\t\tfast1a64: _hash64_1a_fast,\n\t\tfast1a32utf: _hash32_1a_fast_utf,\n\t\tfast1a32hexutf:_hash32_1a_fast_hex_utf,\n\t\tfast1a52utf: _hash52_1a_fast_utf,\n\t\tfast1a52hexutf: _hash52_1a_fast_hex_utf,\n\t\tfast1a64utf: _hash64_1a_fast_utf\n\t};\n})();\n\nif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") module.exports = fnvplus;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ExtensionContext, NotebookDocument, NotebookDocumentChangeEvent, NotebookEdit, workspace, WorkspaceEdit } from 'vscode';\nimport { getCellMetadata } from './serializers';\nimport { CellMetadata } from './common';\nimport { getNotebookMetadata } from './notebookSerializer';\nimport type * as nbformat from '@jupyterlab/nbformat';\n\n/**\n * Ensure all new cells in notebooks with nbformat >= 4.5 have an id.\n * Details of the spec can be found here https://jupyter.org/enhancement-proposals/62-cell-id/cell-id.html#\n */\nexport function ensureAllNewCellsHaveCellIds(context: ExtensionContext) {\n\tworkspace.onDidChangeNotebookDocument(onDidChangeNotebookCells, undefined, context.subscriptions);\n}\n\nfunction onDidChangeNotebookCells(e: NotebookDocumentChangeEvent) {\n\tconst nbMetadata = getNotebookMetadata(e.notebook);\n\tif (!isCellIdRequired(nbMetadata)) {\n\t\treturn;\n\t}\n\te.contentChanges.forEach(change => {\n\t\tchange.addedCells.forEach(cell => {\n\t\t\tconst cellMetadata = getCellMetadata(cell);\n\t\t\tif (cellMetadata?.id) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst id = generateCellId(e.notebook);\n\t\t\tconst edit = new WorkspaceEdit();\n\t\t\t// Don't edit the metadata directly, always get a clone (prevents accidental singletons and directly editing the objects).\n\t\t\tconst updatedMetadata: CellMetadata = { ...JSON.parse(JSON.stringify(cellMetadata || {})) };\n\t\t\tupdatedMetadata.id = id;\n\t\t\tedit.set(cell.notebook.uri, [NotebookEdit.updateCellMetadata(cell.index, { ...(cell.metadata), custom: updatedMetadata })]);\n\t\t\tworkspace.applyEdit(edit);\n\t\t});\n\t});\n}\n\n/**\n * Cell ids are required in notebooks only in notebooks with nbformat >= 4.5\n */\nfunction isCellIdRequired(metadata: Pick<Partial<nbformat.INotebookContent>, 'nbformat' | 'nbformat_minor'>) {\n\tif ((metadata.nbformat || 0) >= 5) {\n\t\treturn true;\n\t}\n\tif ((metadata.nbformat || 0) === 4 && (metadata.nbformat_minor || 0) >= 5) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction generateCellId(notebook: NotebookDocument) {\n\twhile (true) {\n\t\t// Details of the id can be found here https://jupyter.org/enhancement-proposals/62-cell-id/cell-id.html#adding-an-id-field,\n\t\t// & here https://jupyter.org/enhancement-proposals/62-cell-id/cell-id.html#updating-older-formats\n\t\tconst id = generateUuid().replace(/-/g, '').substring(0, 8);\n\t\tlet duplicate = false;\n\t\tfor (let index = 0; index < notebook.cellCount; index++) {\n\t\t\tconst cell = notebook.cellAt(index);\n\t\t\tconst existingId = getCellMetadata(cell)?.id;\n\t\t\tif (!existingId) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (existingId === id) {\n\t\t\t\tduplicate = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!duplicate) {\n\t\t\treturn id;\n\t\t}\n\t}\n}\n\n\n/**\n * Copied from src/vs/base/common/uuid.ts\n */\nfunction generateUuid() {\n\t// use `randomValues` if possible\n\tfunction getRandomValues(bucket: Uint8Array): Uint8Array {\n\t\tfor (let i = 0; i < bucket.length; i++) {\n\t\t\tbucket[i] = Math.floor(Math.random() * 256);\n\t\t}\n\t\treturn bucket;\n\t}\n\n\t// prep-work\n\tconst _data = new Uint8Array(16);\n\tconst _hex: string[] = [];\n\tfor (let i = 0; i < 256; i++) {\n\t\t_hex.push(i.toString(16).padStart(2, '0'));\n\t}\n\n\t// get data\n\tgetRandomValues(_data);\n\n\t// set version bits\n\t_data[6] = (_data[6] & 0x0f) | 0x40;\n\t_data[8] = (_data[8] & 0x3f) | 0x80;\n\n\t// print as string\n\tlet i = 0;\n\tlet result = '';\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += '-';\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += '-';\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += '-';\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += '-';\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\tresult += _hex[_data[i++]];\n\treturn result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as vscode from 'vscode';\nimport { JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR } from './constants';\nimport { basename, extname } from 'path';\n\nenum MimeType {\n\tbmp = 'image/bmp',\n\tgif = 'image/gif',\n\tico = 'image/ico',\n\tjpeg = 'image/jpeg',\n\tpng = 'image/png',\n\ttiff = 'image/tiff',\n\twebp = 'image/webp',\n\tplain = 'text/plain',\n\turiList = 'text/uri-list',\n}\n\nconst imageMimeTypes: ReadonlySet<string> = new Set<string>([\n\tMimeType.bmp,\n\tMimeType.gif,\n\tMimeType.ico,\n\tMimeType.jpeg,\n\tMimeType.png,\n\tMimeType.tiff,\n\tMimeType.webp,\n]);\n\nconst imageExtToMime: ReadonlyMap<string, string> = new Map<string, string>([\n\t['.bmp', MimeType.bmp],\n\t['.gif', MimeType.gif],\n\t['.ico', MimeType.ico],\n\t['.jpe', MimeType.jpeg],\n\t['.jpeg', MimeType.jpeg],\n\t['.jpg', MimeType.jpeg],\n\t['.png', MimeType.png],\n\t['.tif', MimeType.tiff],\n\t['.tiff', MimeType.tiff],\n\t['.webp', MimeType.webp],\n]);\n\nfunction getImageMimeType(uri: vscode.Uri): string | undefined {\n\treturn imageExtToMime.get(extname(uri.fsPath).toLowerCase());\n}\n\nclass DropOrPasteEditProvider implements vscode.DocumentPasteEditProvider, vscode.DocumentDropEditProvider {\n\n\tpublic readonly id = 'insertAttachment';\n\n\tasync provideDocumentPasteEdits(\n\t\tdocument: vscode.TextDocument,\n\t\t_ranges: readonly vscode.Range[],\n\t\tdataTransfer: vscode.DataTransfer,\n\t\ttoken: vscode.CancellationToken,\n\t): Promise<vscode.DocumentPasteEdit | undefined> {\n\t\tconst enabled = vscode.workspace.getConfiguration('ipynb', document).get('pasteImagesAsAttachments.enabled', true);\n\t\tif (!enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst insert = await this.createInsertImageAttachmentEdit(document, dataTransfer, token);\n\t\tif (!insert) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pasteEdit = new vscode.DocumentPasteEdit(insert.insertText, vscode.l10n.t('Insert Image as Attachment'));\n\t\tpasteEdit.yieldTo = [{ mimeType: MimeType.plain }];\n\t\tpasteEdit.additionalEdit = insert.additionalEdit;\n\t\treturn pasteEdit;\n\t}\n\n\tasync provideDocumentDropEdits(\n\t\tdocument: vscode.TextDocument,\n\t\t_position: vscode.Position,\n\t\tdataTransfer: vscode.DataTransfer,\n\t\ttoken: vscode.CancellationToken,\n\t): Promise<vscode.DocumentDropEdit | undefined> {\n\t\tconst insert = await this.createInsertImageAttachmentEdit(document, dataTransfer, token);\n\t\tif (!insert) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst dropEdit = new vscode.DocumentDropEdit(insert.insertText);\n\t\tdropEdit.yieldTo = [{ mimeType: MimeType.plain }];\n\t\tdropEdit.additionalEdit = insert.additionalEdit;\n\t\tdropEdit.label = vscode.l10n.t('Insert Image as Attachment');\n\t\treturn dropEdit;\n\t}\n\n\tprivate async createInsertImageAttachmentEdit(\n\t\tdocument: vscode.TextDocument,\n\t\tdataTransfer: vscode.DataTransfer,\n\t\ttoken: vscode.CancellationToken,\n\t): Promise<{ insertText: vscode.SnippetString; additionalEdit: vscode.WorkspaceEdit } | undefined> {\n\t\tconst imageData = await getDroppedImageData(dataTransfer, token);\n\t\tif (!imageData.length || token.isCancellationRequested) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentCell = getCellFromCellDocument(document);\n\t\tif (!currentCell) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// create updated metadata for cell (prep for WorkspaceEdit)\n\t\tconst newAttachment = buildAttachment(currentCell, imageData);\n\t\tif (!newAttachment) {\n\t\t\treturn;\n\t\t}\n\n\t\t// build edits\n\t\tconst additionalEdit = new vscode.WorkspaceEdit();\n\t\tconst nbEdit = vscode.NotebookEdit.updateCellMetadata(currentCell.index, newAttachment.metadata);\n\t\tconst notebookUri = currentCell.notebook.uri;\n\t\tadditionalEdit.set(notebookUri, [nbEdit]);\n\n\t\t// create a snippet for paste\n\t\tconst insertText = new vscode.SnippetString();\n\t\tnewAttachment.filenames.forEach((filename, i) => {\n\t\t\tinsertText.appendText('![');\n\t\t\tinsertText.appendPlaceholder(`${filename}`);\n\t\t\tinsertText.appendText(`](${/\\s/.test(filename) ? `<attachment:${filename}>` : `attachment:${filename}`})`);\n\t\t\tif (i !== newAttachment.filenames.length - 1) {\n\t\t\t\tinsertText.appendText(' ');\n\t\t\t}\n\t\t});\n\n\t\treturn { insertText, additionalEdit };\n\t}\n}\n\nasync function getDroppedImageData(\n\tdataTransfer: vscode.DataTransfer,\n\ttoken: vscode.CancellationToken,\n): Promise<readonly ImageAttachmentData[]> {\n\n\t// Prefer using image data in the clipboard\n\tconst files = coalesce(await Promise.all(Array.from(dataTransfer, async ([mimeType, item]): Promise<ImageAttachmentData | undefined> => {\n\t\tif (!imageMimeTypes.has(mimeType)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = item.asFile();\n\t\tif (!file) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst data = await file.data();\n\t\treturn { fileName: file.name, mimeType, data };\n\t})));\n\tif (files.length) {\n\t\treturn files;\n\t}\n\n\t// Then fallback to image files in the uri-list\n\tconst urlList = await dataTransfer.get('text/uri-list')?.asString();\n\tif (token.isCancellationRequested) {\n\t\treturn [];\n\t}\n\n\tif (urlList) {\n\t\tconst uris: vscode.Uri[] = [];\n\t\tfor (const resource of urlList.split(/\\r?\\n/g)) {\n\t\t\ttry {\n\t\t\t\turis.push(vscode.Uri.parse(resource));\n\t\t\t} catch {\n\t\t\t\t// noop\n\t\t\t}\n\t\t}\n\n\t\tconst entries = await Promise.all(uris.map(async (uri) => {\n\t\t\tconst mimeType = getImageMimeType(uri);\n\t\t\tif (!mimeType) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = await vscode.workspace.fs.readFile(uri);\n\t\t\treturn { fileName: basename(uri.fsPath), mimeType, data };\n\t\t}));\n\n\t\treturn coalesce(entries);\n\t}\n\n\treturn [];\n}\n\nfunction coalesce<T>(array: ReadonlyArray<T | undefined | null>): T[] {\n\treturn <T[]>array.filter(e => !!e);\n}\n\nfunction getCellFromCellDocument(cellDocument: vscode.TextDocument): vscode.NotebookCell | undefined {\n\tfor (const notebook of vscode.workspace.notebookDocuments) {\n\t\tif (notebook.uri.path === cellDocument.uri.path) {\n\t\t\tfor (const cell of notebook.getCells()) {\n\t\t\t\tif (cell.document === cellDocument) {\n\t\t\t\t\treturn cell;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Taken from https://github.com/microsoft/vscode/blob/743b016722db90df977feecde0a4b3b4f58c2a4c/src/vs/base/common/buffer.ts#L350-L387\n */\nfunction encodeBase64(buffer: Uint8Array, padded = true, urlSafe = false) {\n\tconst base64Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tconst base64UrlSafeAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';\n\n\tconst dictionary = urlSafe ? base64UrlSafeAlphabet : base64Alphabet;\n\tlet output = '';\n\n\tconst remainder = buffer.byteLength % 3;\n\n\tlet i = 0;\n\tfor (; i < buffer.byteLength - remainder; i += 3) {\n\t\tconst a = buffer[i + 0];\n\t\tconst b = buffer[i + 1];\n\t\tconst c = buffer[i + 2];\n\n\t\toutput += dictionary[a >>> 2];\n\t\toutput += dictionary[(a << 4 | b >>> 4) & 0b111111];\n\t\toutput += dictionary[(b << 2 | c >>> 6) & 0b111111];\n\t\toutput += dictionary[c & 0b111111];\n\t}\n\n\tif (remainder === 1) {\n\t\tconst a = buffer[i + 0];\n\t\toutput += dictionary[a >>> 2];\n\t\toutput += dictionary[(a << 4) & 0b111111];\n\t\tif (padded) { output += '=='; }\n\t} else if (remainder === 2) {\n\t\tconst a = buffer[i + 0];\n\t\tconst b = buffer[i + 1];\n\t\toutput += dictionary[a >>> 2];\n\t\toutput += dictionary[(a << 4 | b >>> 4) & 0b111111];\n\t\toutput += dictionary[(b << 2) & 0b111111];\n\t\tif (padded) { output += '='; }\n\t}\n\n\treturn output;\n}\n\n\ninterface ImageAttachmentData {\n\treadonly fileName: string;\n\treadonly data: Uint8Array;\n\treadonly mimeType: string;\n}\n\nfunction buildAttachment(\n\tcell: vscode.NotebookCell,\n\tattachments: readonly ImageAttachmentData[],\n): { metadata: { [key: string]: any }; filenames: string[] } | undefined {\n\tconst cellMetadata = { ...cell.metadata };\n\tconst tempFilenames: string[] = [];\n\tif (!attachments.length) {\n\t\treturn undefined;\n\t}\n\n\tif (!cellMetadata.attachments) {\n\t\tcellMetadata.attachments = {};\n\t}\n\n\tfor (const attachment of attachments) {\n\t\tconst b64 = encodeBase64(attachment.data);\n\n\t\tconst fileExt = extname(attachment.fileName);\n\t\tconst filenameWithoutExt = basename(attachment.fileName, fileExt);\n\n\t\tlet tempFilename = filenameWithoutExt + fileExt;\n\t\tfor (let appendValue = 2; tempFilename in cellMetadata.attachments; appendValue++) {\n\t\t\tconst objEntries = Object.entries(cellMetadata.attachments[tempFilename]);\n\t\t\tif (objEntries.length) { // check that mime:b64 are present\n\t\t\t\tconst [mime, attachmentb64] = objEntries[0];\n\t\t\t\tif (mime === attachment.mimeType && attachmentb64 === b64) { // checking if filename can be reused, based on comparison of image data\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\ttempFilename = filenameWithoutExt.concat(`-${appendValue}`) + fileExt;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttempFilenames.push(tempFilename);\n\t\tcellMetadata.attachments[tempFilename] = { [attachment.mimeType]: b64 };\n\t}\n\n\treturn {\n\t\tmetadata: cellMetadata,\n\t\tfilenames: tempFilenames,\n\t};\n}\n\nexport function notebookImagePasteSetup(): vscode.Disposable {\n\tconst provider = new DropOrPasteEditProvider();\n\treturn vscode.Disposable.from(\n\t\tvscode.languages.registerDocumentPasteEditProvider(JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR, provider, {\n\t\t\tid: provider.id,\n\t\t\tpasteMimeTypes: [\n\t\t\t\tMimeType.png,\n\t\t\t\tMimeType.uriList,\n\t\t\t],\n\t\t}),\n\t\tvscode.languages.registerDocumentDropEditProvider(JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR, provider, {\n\t\t\tid: provider.id,\n\t\t\tdropMimeTypes: [\n\t\t\t\t...Object.values(imageExtToMime),\n\t\t\t\tMimeType.uriList,\n\t\t\t],\n\t\t})\n\t);\n}\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as vscode from 'vscode';\nimport { ATTACHMENT_CLEANUP_COMMANDID, JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR } from './constants';\nimport { deepClone, objectEquals, Delayer } from './helper';\n\ninterface AttachmentCleanRequest {\n\tnotebook: vscode.NotebookDocument;\n\tdocument: vscode.TextDocument;\n\tcell: vscode.NotebookCell;\n}\n\ninterface IAttachmentData {\n\t[key: string /** mimetype */]: string;/** b64-encoded */\n}\n\ninterface IAttachmentDiagnostic {\n\tname: string;\n\tranges: vscode.Range[];\n}\n\nexport enum DiagnosticCode {\n\tmissing_attachment = 'notebook.missing-attachment'\n}\n\nexport class AttachmentCleaner implements vscode.CodeActionProvider {\n\tprivate _attachmentCache:\n\t\tMap<string /** uri */, Map<string /** cell fragment*/, Map<string /** attachment filename */, IAttachmentData>>> = new Map();\n\n\tprivate _disposables: vscode.Disposable[];\n\tprivate _imageDiagnosticCollection: vscode.DiagnosticCollection;\n\tprivate readonly _delayer = new Delayer(750);\n\n\tconstructor() {\n\t\tthis._disposables = [];\n\t\tthis._imageDiagnosticCollection = vscode.languages.createDiagnosticCollection('Notebook Image Attachment');\n\t\tthis._disposables.push(this._imageDiagnosticCollection);\n\n\t\tthis._disposables.push(vscode.commands.registerCommand(ATTACHMENT_CLEANUP_COMMANDID, async (document: vscode.Uri, range: vscode.Range) => {\n\t\t\tconst workspaceEdit = new vscode.WorkspaceEdit();\n\t\t\tworkspaceEdit.delete(document, range);\n\t\t\tawait vscode.workspace.applyEdit(workspaceEdit);\n\t\t}));\n\n\t\tthis._disposables.push(vscode.languages.registerCodeActionsProvider(JUPYTER_NOTEBOOK_MARKDOWN_SELECTOR, this, {\n\t\t\tprovidedCodeActionKinds: [\n\t\t\t\tvscode.CodeActionKind.QuickFix\n\t\t\t],\n\t\t}));\n\n\t\tthis._disposables.push(vscode.workspace.onDidChangeNotebookDocument(e => {\n\t\t\tthis._delayer.trigger(() => {\n\n\t\t\t\te.cellChanges.forEach(change => {\n\t\t\t\t\tif (!change.document) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (change.cell.kind !== vscode.NotebookCellKind.Markup) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst metadataEdit = this.cleanNotebookAttachments({\n\t\t\t\t\t\tnotebook: e.notebook,\n\t\t\t\t\t\tcell: change.cell,\n\t\t\t\t\t\tdocument: change.document\n\t\t\t\t\t});\n\t\t\t\t\tif (metadataEdit) {\n\t\t\t\t\t\tconst workspaceEdit = new vscode.WorkspaceEdit();\n\t\t\t\t\t\tworkspaceEdit.set(e.notebook.uri, [metadataEdit]);\n\t\t\t\t\t\tvscode.workspace.applyEdit(workspaceEdit);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}));\n\n\n\t\tthis._disposables.push(vscode.workspace.onWillSaveNotebookDocument(e => {\n\t\t\tif (e.reason === vscode.TextDocumentSaveReason.Manual) {\n\t\t\t\tthis._delayer.dispose();\n\n\t\t\t\te.waitUntil(new Promise((resolve) => {\n\t\t\t\t\tif (e.notebook.getCells().length === 0) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst notebookEdits: vscode.NotebookEdit[] = [];\n\t\t\t\t\tfor (const cell of e.notebook.getCells()) {\n\t\t\t\t\t\tif (cell.kind !== vscode.NotebookCellKind.Markup) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst metadataEdit = this.cleanNotebookAttachments({\n\t\t\t\t\t\t\tnotebook: e.notebook,\n\t\t\t\t\t\t\tcell: cell,\n\t\t\t\t\t\t\tdocument: cell.document\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (metadataEdit) {\n\t\t\t\t\t\t\tnotebookEdits.push(metadataEdit);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst workspaceEdit = new vscode.WorkspaceEdit();\n\t\t\t\t\tworkspaceEdit.set(e.notebook.uri, notebookEdits);\n\n\t\t\t\t\tresolve(workspaceEdit);\n\t\t\t\t}));\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposables.push(vscode.workspace.onDidCloseNotebookDocument(e => {\n\t\t\tthis._attachmentCache.delete(e.uri.toString());\n\t\t}));\n\n\t\tthis._disposables.push(vscode.workspace.onWillRenameFiles(e => {\n\t\t\tconst re = /\\.ipynb$/;\n\t\t\tfor (const file of e.files) {\n\t\t\t\tif (!re.exec(file.oldUri.toString())) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// transfer cache to new uri\n\t\t\t\tif (this._attachmentCache.has(file.oldUri.toString())) {\n\t\t\t\t\tthis._attachmentCache.set(file.newUri.toString(), this._attachmentCache.get(file.oldUri.toString())!);\n\t\t\t\t\tthis._attachmentCache.delete(file.oldUri.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposables.push(vscode.workspace.onDidOpenTextDocument(e => {\n\t\t\tthis.analyzeMissingAttachments(e);\n\t\t}));\n\n\t\tthis._disposables.push(vscode.workspace.onDidCloseTextDocument(e => {\n\t\t\tthis.analyzeMissingAttachments(e);\n\t\t}));\n\n\t\tvscode.workspace.textDocuments.forEach(document => {\n\t\t\tthis.analyzeMissingAttachments(document);\n\t\t});\n\t}\n\n\tprovideCodeActions(document: vscode.TextDocument, _range: vscode.Range | vscode.Selection, context: vscode.CodeActionContext, _token: vscode.CancellationToken): vscode.ProviderResult<(vscode.CodeAction | vscode.Command)[]> {\n\t\tconst fixes: vscode.CodeAction[] = [];\n\n\t\tfor (const diagnostic of context.diagnostics) {\n\t\t\tswitch (diagnostic.code) {\n\t\t\t\tcase DiagnosticCode.missing_attachment:\n\t\t\t\t\t{\n\t\t\t\t\t\tconst fix = new vscode.CodeAction(\n\t\t\t\t\t\t\t'Remove invalid image attachment reference',\n\t\t\t\t\t\t\tvscode.CodeActionKind.QuickFix);\n\n\t\t\t\t\t\tfix.command = {\n\t\t\t\t\t\t\tcommand: ATTACHMENT_CLEANUP_COMMANDID,\n\t\t\t\t\t\t\ttitle: 'Remove invalid image attachment reference',\n\t\t\t\t\t\t\targuments: [document.uri, diagnostic.range],\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfixes.push(fix);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn fixes;\n\t}\n\n\t/**\n\t * take in a NotebookDocumentChangeEvent, and clean the attachment data for the cell(s) that have had their markdown source code changed\n\t * @param e NotebookDocumentChangeEvent from the onDidChangeNotebookDocument listener\n\t * @returns vscode.NotebookEdit, the metadata alteration performed on the json behind the ipynb\n\t */\n\tprivate cleanNotebookAttachments(e: AttachmentCleanRequest): vscode.NotebookEdit | undefined {\n\n\t\tif (e.notebook.isClosed) {\n\t\t\treturn;\n\t\t}\n\t\tconst document = e.document;\n\t\tconst cell = e.cell;\n\n\t\tconst markdownAttachmentsInUse: { [key: string /** filename */]: IAttachmentData } = {};\n\t\tconst cellFragment = cell.document.uri.fragment;\n\t\tconst notebookUri = e.notebook.uri.toString();\n\t\tconst diagnostics: IAttachmentDiagnostic[] = [];\n\t\tconst markdownAttachmentsRefedInCell = this.getAttachmentNames(document);\n\n\t\tif (markdownAttachmentsRefedInCell.size === 0) {\n\t\t\t// no attachments used in this cell, cache all images from cell metadata\n\t\t\tthis.saveAllAttachmentsToCache(cell.metadata, notebookUri, cellFragment);\n\t\t}\n\n\t\tif (this.checkMetadataHasAttachmentsField(cell.metadata)) {\n\t\t\t// the cell metadata contains attachments, check if any are used in the markdown source\n\n\t\t\tfor (const [currFilename, attachment] of Object.entries(cell.metadata.attachments)) {\n\t\t\t\t// means markdown reference is present in the metadata, rendering will work properly\n\t\t\t\t// therefore, we don't need to check it in the next loop either\n\t\t\t\tif (markdownAttachmentsRefedInCell.has(currFilename)) {\n\t\t\t\t\t// attachment reference is present in the markdown source, no need to cache it\n\t\t\t\t\tmarkdownAttachmentsRefedInCell.get(currFilename)!.valid = true;\n\t\t\t\t\tmarkdownAttachmentsInUse[currFilename] = attachment as IAttachmentData;\n\t\t\t\t} else {\n\t\t\t\t\t// attachment reference is not present in the markdown source, cache it\n\t\t\t\t\tthis.saveAttachmentToCache(notebookUri, cellFragment, currFilename, cell.metadata);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const [currFilename, attachment] of markdownAttachmentsRefedInCell) {\n\t\t\tif (attachment.valid) {\n\t\t\t\t// attachment reference is present in both the markdown source and the metadata, no op\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// if image is referenced in markdown source but not in metadata -> check if we have image in the cache\n\t\t\tconst cachedImageAttachment = this._attachmentCache.get(notebookUri)?.get(cellFragment)?.get(currFilename);\n\t\t\tif (cachedImageAttachment) {\n\t\t\t\tmarkdownAttachmentsInUse[currFilename] = cachedImageAttachment;\n\t\t\t\tthis._attachmentCache.get(notebookUri)?.get(cellFragment)?.delete(currFilename);\n\t\t\t} else {\n\t\t\t\t// if image is not in the cache, show warning\n\t\t\t\tdiagnostics.push({ name: currFilename, ranges: attachment.ranges });\n\t\t\t}\n\t\t}\n\n\t\tthis.updateDiagnostics(cell.document.uri, diagnostics);\n\n\t\tif (cell.index > -1 && !objectEquals(markdownAttachmentsInUse, cell.metadata.attachments)) {\n\t\t\tconst updateMetadata: { [key: string]: any } = deepClone(cell.metadata);\n\t\t\tif (Object.keys(markdownAttachmentsInUse).length === 0) {\n\t\t\t\tupdateMetadata.attachments = undefined;\n\t\t\t} else {\n\t\t\t\tupdateMetadata.attachments = markdownAttachmentsInUse;\n\t\t\t}\n\t\t\tconst metadataEdit = vscode.NotebookEdit.updateCellMetadata(cell.index, updateMetadata);\n\t\t\treturn metadataEdit;\n\t\t}\n\t\treturn;\n\t}\n\n\tprivate analyzeMissingAttachments(document: vscode.TextDocument): void {\n\t\tif (document.uri.scheme !== 'vscode-notebook-cell') {\n\t\t\t// not notebook\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.isClosed) {\n\t\t\tthis.updateDiagnostics(document.uri, []);\n\t\t\treturn;\n\t\t}\n\n\t\tlet notebook: vscode.NotebookDocument | undefined;\n\t\tlet activeCell: vscode.NotebookCell | undefined;\n\t\tfor (const notebookDocument of vscode.workspace.notebookDocuments) {\n\t\t\tconst cell = notebookDocument.getCells().find(cell => cell.document === document);\n\t\t\tif (cell) {\n\t\t\t\tnotebook = notebookDocument;\n\t\t\t\tactiveCell = cell;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!notebook || !activeCell) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst diagnostics: IAttachmentDiagnostic[] = [];\n\t\tconst markdownAttachments = this.getAttachmentNames(document);\n\t\tif (this.checkMetadataHasAttachmentsField(activeCell.metadata)) {\n\t\t\tfor (const [currFilename, attachment] of markdownAttachments) {\n\t\t\t\tif (!activeCell.metadata.attachments[currFilename]) {\n\t\t\t\t\t// no attachment reference in the metadata\n\t\t\t\t\tdiagnostics.push({ name: currFilename, ranges: attachment.ranges });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.updateDiagnostics(activeCell.document.uri, diagnostics);\n\t}\n\n\tprivate updateDiagnostics(cellUri: vscode.Uri, diagnostics: IAttachmentDiagnostic[]) {\n\t\tconst vscodeDiagnostics: vscode.Diagnostic[] = [];\n\t\tfor (const currDiagnostic of diagnostics) {\n\t\t\tcurrDiagnostic.ranges.forEach(range => {\n\t\t\t\tconst diagnostic = new vscode.Diagnostic(range, `The image named: '${currDiagnostic.name}' is not present in cell metadata.`, vscode.DiagnosticSeverity.Warning);\n\t\t\t\tdiagnostic.code = DiagnosticCode.missing_attachment;\n\t\t\t\tvscodeDiagnostics.push(diagnostic);\n\t\t\t});\n\t\t}\n\n\t\tthis._imageDiagnosticCollection.set(cellUri, vscodeDiagnostics);\n\t}\n\n\t/**\n\t * remove attachment from metadata and add it to the cache\n\t * @param notebookUri uri of the notebook currently being edited\n\t * @param cellFragment fragment of the cell currently being edited\n\t * @param currFilename filename of the image being pulled into the cell\n\t * @param metadata metadata of the cell currently being edited\n\t */\n\tprivate saveAttachmentToCache(notebookUri: string, cellFragment: string, currFilename: string, metadata: { [key: string]: any }): void {\n\t\tconst documentCache = this._attachmentCache.get(notebookUri);\n\t\tif (!documentCache) {\n\t\t\t// no cache for this notebook yet\n\t\t\tconst cellCache = new Map<string, IAttachmentData>();\n\t\t\tcellCache.set(currFilename, this.getMetadataAttachment(metadata, currFilename));\n\t\t\tconst documentCache = new Map();\n\t\t\tdocumentCache.set(cellFragment, cellCache);\n\t\t\tthis._attachmentCache.set(notebookUri, documentCache);\n\t\t} else if (!documentCache.has(cellFragment)) {\n\t\t\t// no cache for this cell yet\n\t\t\tconst cellCache = new Map<string, IAttachmentData>();\n\t\t\tcellCache.set(currFilename, this.getMetadataAttachment(metadata, currFilename));\n\t\t\tdocumentCache.set(cellFragment, cellCache);\n\t\t} else {\n\t\t\t// cache for this cell already exists\n\t\t\t// add to cell cache\n\t\t\tdocumentCache.get(cellFragment)?.set(currFilename, this.getMetadataAttachment(metadata, currFilename));\n\t\t}\n\t}\n\n\t/**\n\t * get an attachment entry from the given metadata\n\t * @param metadata metadata to extract image data from\n\t * @param currFilename filename of image being extracted\n\t * @returns\n\t */\n\tprivate getMetadataAttachment(metadata: { [key: string]: any }, currFilename: string): { [key: string]: any } {\n\t\treturn metadata.attachments[currFilename];\n\t}\n\n\t/**\n\t * returns a boolean that represents if there are any images in the attachment field of a cell's metadata\n\t * @param metadata metadata of cell\n\t * @returns boolean representing the presence of any attachments\n\t */\n\tprivate checkMetadataHasAttachmentsField(metadata: { [key: string]: unknown }): metadata is { readonly attachments: Record<string, unknown> } {\n\t\treturn !!metadata.attachments && typeof metadata.attachments === 'object';\n\t}\n\n\t/**\n\t * given metadata from a cell, cache every image (used in cases with no image links in markdown source)\n\t * @param metadata metadata for a cell with no images in markdown source\n\t * @param notebookUri uri for the notebook being edited\n\t * @param cellFragment fragment of cell being edited\n\t */\n\tprivate saveAllAttachmentsToCache(metadata: { [key: string]: unknown }, notebookUri: string, cellFragment: string): void {\n\t\tconst documentCache = this._attachmentCache.get(notebookUri) ?? new Map();\n\t\tthis._attachmentCache.set(notebookUri, documentCache);\n\t\tconst cellCache = documentCache.get(cellFragment) ?? new Map<string, IAttachmentData>();\n\t\tdocumentCache.set(cellFragment, cellCache);\n\n\t\tif (metadata.attachments && typeof metadata.attachments === 'object') {\n\t\t\tfor (const [currFilename, attachment] of Object.entries(metadata.attachments)) {\n\t\t\t\tcellCache.set(currFilename, attachment);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * pass in all of the markdown source code, and get a dictionary of all images referenced in the markdown. keys are image filenames, values are render state\n\t * @param document the text document for the cell, formatted as a string\n\t */\n\tprivate getAttachmentNames(document: vscode.TextDocument) {\n\t\tconst source = document.getText();\n\t\tconst filenames: Map<string, { valid: boolean; ranges: vscode.Range[] }> = new Map();\n\t\tconst re = /!\\[.*?\\]\\(<?attachment:(?<filename>.*?)>?\\)/gm;\n\n\t\tlet match;\n\t\twhile ((match = re.exec(source))) {\n\t\t\tif (match.groups?.filename) {\n\t\t\t\tconst index = match.index;\n\t\t\t\tconst length = match[0].length;\n\t\t\t\tconst startPosition = document.positionAt(index);\n\t\t\t\tconst endPosition = document.positionAt(index + length);\n\t\t\t\tconst range = new vscode.Range(startPosition, endPosition);\n\t\t\t\tconst filename = filenames.get(match.groups.filename) ?? { valid: false, ranges: [] };\n\t\t\t\tfilenames.set(match.groups.filename, filename);\n\t\t\t\tfilename.ranges.push(range);\n\t\t\t}\n\t\t}\n\t\treturn filenames;\n\t}\n\n\tdispose() {\n\t\tthis._disposables.forEach(d => d.dispose());\n\t\tthis._delayer.dispose();\n\t}\n}\n\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport function deepClone<T>(obj: T): T {\n\tif (!obj || typeof obj !== 'object') {\n\t\treturn obj;\n\t}\n\tif (obj instanceof RegExp) {\n\t\t// See https://github.com/microsoft/TypeScript/issues/10990\n\t\treturn obj as any;\n\t}\n\tconst result: any = Array.isArray(obj) ? [] : {};\n\tObject.keys(<any>obj).forEach((key: string) => {\n\t\tif ((<any>obj)[key] && typeof (<any>obj)[key] === 'object') {\n\t\t\tresult[key] = deepClone((<any>obj)[key]);\n\t\t} else {\n\t\t\tresult[key] = (<any>obj)[key];\n\t\t}\n\t});\n\treturn result;\n}\n\n// from https://github.com/microsoft/vscode/blob/43ae27a30e7b5e8711bf6b218ee39872ed2b8ef6/src/vs/base/common/objects.ts#L117\nexport function objectEquals(one: any, other: any) {\n\tif (one === other) {\n\t\treturn true;\n\t}\n\tif (one === null || one === undefined || other === null || other === undefined) {\n\t\treturn false;\n\t}\n\tif (typeof one !== typeof other) {\n\t\treturn false;\n\t}\n\tif (typeof one !== 'object') {\n\t\treturn false;\n\t}\n\tif ((Array.isArray(one)) !== (Array.isArray(other))) {\n\t\treturn false;\n\t}\n\n\tlet i: number;\n\tlet key: string;\n\n\tif (Array.isArray(one)) {\n\t\tif (one.length !== other.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (i = 0; i < one.length; i++) {\n\t\t\tif (!objectEquals(one[i], other[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst oneKeys: string[] = [];\n\n\t\tfor (key in one) {\n\t\t\toneKeys.push(key);\n\t\t}\n\t\toneKeys.sort();\n\t\tconst otherKeys: string[] = [];\n\t\tfor (key in other) {\n\t\t\totherKeys.push(key);\n\t\t}\n\t\totherKeys.sort();\n\t\tif (!objectEquals(oneKeys, otherKeys)) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (i = 0; i < oneKeys.length; i++) {\n\t\t\tif (!objectEquals(one[oneKeys[i]], other[oneKeys[i]])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * A helper to delay/debounce execution of a task, includes cancellation/disposal support.\n * Pulled from https://github.com/microsoft/vscode/blob/3059063b805ed0ac10a6d9539e213386bfcfb852/extensions/markdown-language-features/src/util/async.ts\n */\nexport class Delayer<T> {\n\n\tpublic defaultDelay: number;\n\tprivate _timeout: any; // Timer\n\tprivate _cancelTimeout: Promise<T | null> | null;\n\tprivate _onSuccess: ((value: T | PromiseLike<T> | undefined) => void) | null;\n\tprivate _task: ITask<T> | null;\n\n\tconstructor(defaultDelay: number) {\n\t\tthis.defaultDelay = defaultDelay;\n\t\tthis._timeout = null;\n\t\tthis._cancelTimeout = null;\n\t\tthis._onSuccess = null;\n\t\tthis._task = null;\n\t}\n\n\tdispose() {\n\t\tthis._doCancelTimeout();\n\t}\n\n\tpublic trigger(task: ITask<T>, delay: number = this.defaultDelay): Promise<T | null> {\n\t\tthis._task = task;\n\t\tif (delay >= 0) {\n\t\t\tthis._doCancelTimeout();\n\t\t}\n\n\t\tif (!this._cancelTimeout) {\n\t\t\tthis._cancelTimeout = new Promise<T | undefined>((resolve) => {\n\t\t\t\tthis._onSuccess = resolve;\n\t\t\t}).then(() => {\n\t\t\t\tthis._cancelTimeout = null;\n\t\t\t\tthis._onSuccess = null;\n\t\t\t\tconst result = this._task && this._task?.();\n\t\t\t\tthis._task = null;\n\t\t\t\treturn result;\n\t\t\t});\n\t\t}\n\n\t\tif (delay >= 0 || this._timeout === null) {\n\t\t\tthis._timeout = setTimeout(() => {\n\t\t\t\tthis._timeout = null;\n\t\t\t\tthis._onSuccess?.(undefined);\n\t\t\t}, delay >= 0 ? delay : this.defaultDelay);\n\t\t}\n\n\t\treturn this._cancelTimeout;\n\t}\n\n\tprivate _doCancelTimeout(): void {\n\t\tif (this._timeout !== null) {\n\t\t\tclearTimeout(this._timeout);\n\t\t\tthis._timeout = null;\n\t\t}\n\t}\n}\n\nexport interface ITask<T> {\n\t(): T;\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","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as vscode from 'vscode';\nimport { NotebookSerializer } from './notebookSerializer';\nimport { ensureAllNewCellsHaveCellIds } from './cellIdService';\nimport { notebookImagePasteSetup } from './notebookImagePaste';\nimport { AttachmentCleaner } from './notebookAttachmentCleaner';\n\n// From {nbformat.INotebookMetadata} in @jupyterlab/coreutils\ntype NotebookMetadata = {\n\tkernelspec?: {\n\t\tname: string;\n\t\tdisplay_name: string;\n\t\t[propName: string]: unknown;\n\t};\n\tlanguage_info?: {\n\t\tname: string;\n\t\tcodemirror_mode?: string | {};\n\t\tfile_extension?: string;\n\t\tmimetype?: string;\n\t\tpygments_lexer?: string;\n\t\t[propName: string]: unknown;\n\t};\n\torig_nbformat?: number;\n\t[propName: string]: unknown;\n};\n\nexport function activate(context: vscode.ExtensionContext) {\n\tconst serializer = new NotebookSerializer(context);\n\tensureAllNewCellsHaveCellIds(context);\n\tcontext.subscriptions.push(vscode.workspace.registerNotebookSerializer('jupyter-notebook', serializer, {\n\t\ttransientOutputs: false,\n\t\ttransientCellMetadata: {\n\t\t\tbreakpointMargin: true,\n\t\t\tcustom: false,\n\t\t\tattachments: false\n\t\t},\n\t\tcellContentMetadata: {\n\t\t\tattachments: true\n\t\t}\n\t} as vscode.NotebookDocumentContentOptions));\n\n\tcontext.subscriptions.push(vscode.workspace.registerNotebookSerializer('interactive', serializer, {\n\t\ttransientOutputs: false,\n\t\ttransientCellMetadata: {\n\t\t\tbreakpointMargin: true,\n\t\t\tcustom: false,\n\t\t\tattachments: false\n\t\t},\n\t\tcellContentMetadata: {\n\t\t\tattachments: true\n\t\t}\n\t} as vscode.NotebookDocumentContentOptions));\n\n\tvscode.languages.registerCodeLensProvider({ pattern: '**/*.ipynb' }, {\n\t\tprovideCodeLenses: (document) => {\n\t\t\tif (\n\t\t\t\tdocument.uri.scheme === 'vscode-notebook-cell' ||\n\t\t\t\tdocument.uri.scheme === 'vscode-notebook-cell-metadata' ||\n\t\t\t\tdocument.uri.scheme === 'vscode-notebook-cell-output'\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst codelens = new vscode.CodeLens(new vscode.Range(0, 0, 0, 0), { title: 'Open in Notebook Editor', command: 'ipynb.openIpynbInNotebookEditor', arguments: [document.uri] });\n\t\t\treturn [codelens];\n\t\t}\n\t});\n\n\tcontext.subscriptions.push(vscode.commands.registerCommand('ipynb.newUntitledIpynb', async () => {\n\t\tconst language = 'python';\n\t\tconst cell = new vscode.NotebookCellData(vscode.NotebookCellKind.Code, '', language);\n\t\tconst data = new vscode.NotebookData([cell]);\n\t\tdata.metadata = {\n\t\t\tcustom: {\n\t\t\t\tcells: [],\n\t\t\t\tmetadata: {},\n\t\t\t\tnbformat: 4,\n\t\t\t\tnbformat_minor: 2\n\t\t\t}\n\t\t};\n\t\tconst doc = await vscode.workspace.openNotebookDocument('jupyter-notebook', data);\n\t\tawait vscode.window.showNotebookDocument(doc);\n\t}));\n\n\tcontext.subscriptions.push(vscode.commands.registerCommand('ipynb.openIpynbInNotebookEditor', async (uri: vscode.Uri) => {\n\t\tif (vscode.window.activeTextEditor?.document.uri.toString() === uri.toString()) {\n\t\t\tawait vscode.commands.executeCommand('workbench.action.closeActiveEditor');\n\t\t}\n\t\tconst document = await vscode.workspace.openNotebookDocument(uri);\n\t\tawait vscode.window.showNotebookDocument(document);\n\t}));\n\n\tcontext.subscriptions.push(notebookImagePasteSetup());\n\n\tconst enabled = vscode.workspace.getConfiguration('ipynb').get('pasteImagesAsAttachments.enabled', false);\n\tif (enabled) {\n\t\tconst cleaner = new AttachmentCleaner();\n\t\tcontext.subscriptions.push(cleaner);\n\t}\n\n\t// Update new file contribution\n\tvscode.extensions.onDidChange(() => {\n\t\tvscode.commands.executeCommand('setContext', 'jupyterEnabled', vscode.extensions.getExtension('ms-toolsai.jupyter'));\n\t});\n\tvscode.commands.executeCommand('setContext', 'jupyterEnabled', vscode.extensions.getExtension('ms-toolsai.jupyter'));\n\n\n\treturn {\n\t\texportNotebook: (notebook: vscode.NotebookData): string => {\n\t\t\treturn exportNotebook(notebook, serializer);\n\t\t},\n\t\tsetNotebookMetadata: async (resource: vscode.Uri, metadata: Partial<NotebookMetadata>): Promise<boolean> => {\n\t\t\tconst document = vscode.workspace.notebookDocuments.find(doc => doc.uri.toString() === resource.toString());\n\t\t\tif (!document) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst edit = new vscode.WorkspaceEdit();\n\t\t\tedit.set(resource, [vscode.NotebookEdit.updateNotebookMetadata({\n\t\t\t\t...document.metadata,\n\t\t\t\tcustom: {\n\t\t\t\t\t...(document.metadata.custom ?? {}),\n\t\t\t\t\tmetadata: <NotebookMetadata>{\n\t\t\t\t\t\t...(document.metadata.custom?.metadata ?? {}),\n\t\t\t\t\t\t...metadata\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t})]);\n\t\t\treturn vscode.workspace.applyEdit(edit);\n\t\t},\n\t};\n}\n\nfunction exportNotebook(notebook: vscode.NotebookData, serializer: NotebookSerializer): string {\n\treturn serializer.serializeNotebookToString(notebook);\n}\n\nexport function deactivate() { }\n"],"names":[],"sourceRoot":""}