tweb/public/518.ede329767abdce9961b0.ch...

1 line
317 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"518.ede329767abdce9961b0.chunk.js","mappings":"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AM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,MAAM,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,IAAI,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,IAAI,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,MAAM,KAAO,KAAK,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,KAAK,KAAO,KAAK,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,KAAO,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,cAAc,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,mBAAmB,MAAM,kBAAkB,MAAM,QAAQ,MAAM,kBAAkB,MAAM,4CAA4C,MAAM,4CAA4C,MAAM,4CAA4C,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,mBAAmB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,mBAAmB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,6BAA6B,KAAK,wCAAwC,KAAK,QAAQ,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,8BAA8B,KAAK,yCAAyC,KAAK,yCAAyC,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,6BAA6B,KAAK,6BAA6B,KAAK,wCAAwC,KAAK,wCAAwC,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,IAAI,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,8BAA8B,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,iBAAiB,KAAK,iBAAiB,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GActs7DC,YAJgD,CAAC,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,KAAK,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EAAK,IAAI,EA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","sources":["webpack://tweb/./src/environment/webpSupport.ts","webpack://tweb/./src/helpers/calcImageInBox.ts","webpack://tweb/./src/helpers/date.ts","webpack://tweb/./src/helpers/mediaSizes.ts","webpack://tweb/./src/helpers/object/deepEqual.ts","webpack://tweb/./src/helpers/restrictions.ts","webpack://tweb/./src/helpers/schedulers/pause.ts","webpack://tweb/./src/helpers/tsNow.ts","webpack://tweb/./src/lib/appManagers/appRuntimeManager.ts","webpack://tweb/./src/lib/config.ts","webpack://tweb/./src/lib/langPack.ts","webpack://tweb/./src/helpers/string/capitalizeFirstLetter.ts","webpack://tweb/./src/lib/mtproto/mtproto.worker.ts","webpack://tweb/./src/lib/mtproto/transports/websocket.ts","webpack://tweb/./src/lib/mtproto/mtprotoworker.ts","webpack://tweb/./src/lib/crypto/crypto_methods.ts","webpack://tweb/./src/lib/mtproto/singleInstance.ts","webpack://tweb/./src/lib/mtproto/telegramMeWebManager.ts","webpack://tweb/./src/lib/mtproto/webPushApiManager.ts","webpack://tweb/./src/helpers/string/encodeEntities.ts","webpack://tweb/./src/lib/richtextprocessor.ts","webpack://tweb/./src/lib/webp/webp.worker.ts","webpack://tweb/./src/lib/webp/webpWorkerController.ts","webpack://tweb/./src/vendor/emoji/index.ts"],"sourcesContent":["const IS_WEBP_SUPPORTED = document.createElement('canvas').toDataURL('image/webp').startsWith('data:image/webp');\n\nexport default IS_WEBP_SUPPORTED;\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nimport { makeMediaSize } from \"./mediaSizes\";\r\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\r\n\r\nexport default function calcImageInBox(imageW: number, imageH: number, boxW: number, boxH: number, noZoom = true) {\r\n if(imageW < boxW && imageH < boxH && noZoom) {\r\n return makeMediaSize(imageW, imageH);\r\n }\r\n\r\n let boxedImageW = boxW;\r\n let boxedImageH = boxH;\r\n\r\n if((imageW / imageH) > (boxW / boxH)) {\r\n boxedImageH = (imageH * boxW / imageW) | 0;\r\n } else {\r\n boxedImageW = (imageW * boxH / imageH) | 0;\r\n if(boxedImageW > boxW) {\r\n boxedImageH = (boxedImageH * boxW / boxedImageW) | 0;\r\n boxedImageW = boxW;\r\n }\r\n }\r\n\r\n // if (Config.Navigator.retina) {\r\n // imageW = Math.floor(imageW / 2)\r\n // imageH = Math.floor(imageH / 2)\r\n // }\r\n\r\n if(noZoom && boxedImageW >= imageW && boxedImageH >= imageH) {\r\n boxedImageW = imageW;\r\n boxedImageH = imageH;\r\n }\r\n\r\n return makeMediaSize(boxedImageW, boxedImageH);\r\n}\r\n\r\nMOUNT_CLASS_TO.calcImageInBox = calcImageInBox;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\r\nimport I18n, { i18n } from \"../lib/langPack\";\r\nimport tsNow from './tsNow';\r\n\r\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\nexport const ONE_DAY = 86400;\r\n\r\n// https://stackoverflow.com/a/6117889\r\nexport const getWeekNumber = (date: Date) => {\r\n const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\r\n const dayNum = d.getUTCDay() || 7;\r\n d.setUTCDate(d.getUTCDate() + 4 - dayNum);\r\n const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));\r\n return Math.ceil((((d.getTime() - yearStart.getTime()) / ONE_DAY) + 1) / 7);\r\n};\r\n\r\nexport function formatDateAccordingToTodayNew(time: Date) {\r\n const today = new Date();\r\n const now = today.getTime() / 1000 | 0;\r\n const timestamp = time.getTime() / 1000 | 0;\r\n\r\n const options: Intl.DateTimeFormatOptions = {};\r\n if((now - timestamp) < ONE_DAY && today.getDate() === time.getDate()) { // if the same day\r\n options.hour = options.minute = '2-digit';\r\n } else if(today.getFullYear() !== time.getFullYear()) { // different year\r\n options.year = options.day = 'numeric';\r\n options.month = '2-digit';\r\n } else if((now - timestamp) < (ONE_DAY * 7) && getWeekNumber(today) === getWeekNumber(time)) { // current week\r\n options.weekday = 'short';\r\n } else { // same year\r\n options.month = 'short';\r\n options.day = 'numeric';\r\n }\r\n\r\n return new I18n.IntlDateElement({\r\n date: time,\r\n options\r\n }).element;\r\n}\r\n\r\nexport function formatFullSentTimeRaw(timestamp: number, options: {\r\n capitalize?: boolean\r\n} = {}) {\r\n const date = new Date();\r\n const time = new Date(timestamp * 1000);\r\n const now = date.getTime() / 1000;\r\n\r\n const timeEl = formatTime(time);\r\n\r\n let dateEl: Node | string;\r\n if((now - timestamp) < ONE_DAY && date.getDate() === time.getDate()) { // if the same day\r\n dateEl = i18n(options.capitalize ? 'Date.Today' : 'Peer.Status.Today');\r\n } else if((now - timestamp) < (ONE_DAY * 2) && (date.getDate() - 1) === time.getDate()) { // yesterday\r\n dateEl = i18n(options.capitalize ? 'Yesterday' : 'Peer.Status.Yesterday');\r\n\r\n if(options.capitalize) {\r\n (dateEl as HTMLElement).style.textTransform = 'capitalize';\r\n }\r\n } else if(date.getFullYear() !== time.getFullYear()) { // different year\r\n dateEl = new I18n.IntlDateElement({\r\n date: time,\r\n options: {\r\n month: 'short',\r\n day: 'numeric',\r\n year: 'numeric'\r\n }\r\n }).element;\r\n // dateStr = months[time.getMonth()].slice(0, 3) + ' ' + time.getDate() + ', ' + time.getFullYear();\r\n } else {\r\n dateEl = new I18n.IntlDateElement({\r\n date: time,\r\n options: {\r\n month: 'short',\r\n day: 'numeric'\r\n }\r\n }).element;\r\n // dateStr = months[time.getMonth()].slice(0, 3) + ' ' + time.getDate();\r\n }\r\n\r\n return {dateEl, timeEl};\r\n}\r\n\r\nexport function formatFullSentTime(timestamp: number) {\r\n const {dateEl, timeEl} = formatFullSentTimeRaw(timestamp, {\r\n capitalize: true\r\n });\r\n\r\n const fragment = document.createDocumentFragment();\r\n fragment.append(dateEl, ' ', i18n('ScheduleController.at'), ' ', timeEl);\r\n return fragment;\r\n}\r\n\r\nexport function formatTime(date: Date) {\r\n return new I18n.IntlDateElement({\r\n date,\r\n options: {\r\n hour: '2-digit',\r\n minute: '2-digit'\r\n }\r\n }).element;\r\n}\r\n\r\nMOUNT_CLASS_TO && (MOUNT_CLASS_TO.formatDateAccordingToTodayNew = formatDateAccordingToTodayNew);\r\n\r\nexport const getFullDate = (date: Date, options: Partial<{\r\n noTime: true, \r\n noSeconds: true,\r\n monthAsNumber: true,\r\n leadingZero: true\r\n}> = {}) => {\r\n const joiner = options.monthAsNumber ? '.' : ' ';\r\n const time = ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2) + (options.noSeconds ? '' : ':' + ('0' + date.getSeconds()).slice(-2));\r\n\r\n return (options.leadingZero ? ('0' + date.getDate()).slice(-2) : date.getDate()) + \r\n joiner + (options.monthAsNumber ? ('0' + (date.getMonth() + 1)).slice(-2) : months[date.getMonth()]) + \r\n joiner + date.getFullYear() + \r\n (options.noTime ? '' : ', ' + time);\r\n};\r\n\r\nexport {tsNow};\r\n\r\n// https://github.com/DrKLO/Telegram/blob/d52b2c921abd3c1e8d6368858313ad0cb0468c07/TMessagesProj/src/main/java/org/telegram/ui/Adapters/FiltersView.java\r\nconst minYear = 2013;\r\nconst yearPattern = new RegExp(\"20[0-9]{1,2}\");\r\nconst monthYearOrDayPattern = new RegExp(\"(\\\\w{3,}) ([0-9]{0,4})\", 'i');\r\nconst yearOrDayAndMonthPattern = new RegExp(\"([0-9]{0,4}) (\\\\w{2,})\", 'i');\r\nconst shortDate = new RegExp(\"^([0-9]{1,4})(\\\\.| |/|\\\\-)([0-9]{1,4})$\", 'i');\r\nconst longDate = new RegExp(\"^([0-9]{1,2})(\\\\.| |/|\\\\-)([0-9]{1,2})(\\\\.| |/|\\\\-)([0-9]{1,4})$\", 'i');\r\nconst numberOfDaysEachMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\nexport type DateData = {\r\n title: string,\r\n minDate: number,\r\n maxDate: number,\r\n};\r\nexport function fillTipDates(query: string, dates: DateData[]) {\r\n const q = query.trim().toLowerCase();\r\n\r\n if(q.length < 3) {\r\n return;\r\n }\r\n\r\n if(\"today\".indexOf(q) === 0) {\r\n const date = new Date();\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n date.setFullYear(year, month, day);\r\n date.setHours(0, 0, 0);\r\n\r\n const minDate = date.getTime();\r\n date.setFullYear(year, month, day + 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 1;\r\n dates.push({\r\n title: 'Today',\r\n minDate,\r\n maxDate\r\n });\r\n return;\r\n }\r\n\r\n if(\"yesterday\".indexOf(q) === 0) {\r\n const date = new Date();\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n date.setFullYear(year, month, day);\r\n date.setHours(0, 0, 0);\r\n\r\n const minDate = date.getTime() - 86400000;\r\n date.setFullYear(year, month, day + 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 86400001;\r\n dates.push({\r\n title: 'Yesterday',\r\n minDate,\r\n maxDate\r\n });\r\n return;\r\n }\r\n\r\n const dayOfWeek = getDayOfWeek(q);\r\n if(dayOfWeek >= 0) {\r\n const date = new Date();\r\n const now = date.getTime();\r\n const currentDay = date.getDay();\r\n const distance = dayOfWeek - currentDay;\r\n date.setDate(date.getDate() + distance);\r\n if(date.getTime() > now) {\r\n date.setTime(date.getTime() - 604800000);\r\n }\r\n const year = date.getFullYear()\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n date.setFullYear(year, month, day);\r\n date.setHours(0, 0, 0);\r\n\r\n const minDate = date.getTime();\r\n date.setFullYear(year, month, day + 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 1;\r\n dates.push({\r\n title: formatWeekLong(minDate),\r\n minDate,\r\n maxDate\r\n });\r\n return;\r\n }\r\n\r\n let matches: any[];\r\n if((matches = shortDate.exec(q)) !== null) {\r\n const g1 = matches[1];\r\n const g2 = matches[3];\r\n const k = parseInt(g1);\r\n const k1 = parseInt(g2);\r\n if(k > 0 && k <= 31) {\r\n if(k1 >= minYear && k <= 12) {\r\n const selectedYear = k1;\r\n const month = k - 1;\r\n createForMonthYear(dates, month, selectedYear);\r\n return;\r\n } else if (k1 <= 12) {\r\n const day = k - 1;\r\n const month = k1 - 1;\r\n createForDayMonth(dates, day, month);\r\n }\r\n } else if (k >= minYear && k1 <= 12) {\r\n const selectedYear = k;\r\n const month = k1 - 1;\r\n createForMonthYear(dates, month, selectedYear);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if((matches = longDate.exec(q)) !== null) {\r\n const g1 = matches[1];\r\n const g2 = matches[3];\r\n const g3 = matches[5];\r\n if(!matches[2] === matches[4]) {\r\n return;\r\n }\r\n\r\n const day = parseInt(g1);\r\n const month = parseInt(g2) - 1;\r\n let year = parseInt(g3);\r\n if(year >= 10 && year <= 99) {\r\n year += 2000;\r\n }\r\n\r\n const currentYear = new Date().getFullYear();\r\n if(validDateForMonth(day - 1, month) && year >= minYear && year <= currentYear) {\r\n const date = new Date();\r\n date.setFullYear(year, month, day);\r\n date.setHours(0, 0, 0);\r\n \r\n const minDate = date.getTime();\r\n date.setFullYear(year, month, day + 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 1;\r\n dates.push({\r\n title: formatterYearMax(minDate),\r\n minDate,\r\n maxDate\r\n });\r\n return;\r\n }\r\n\r\n return;\r\n }\r\n\r\n if((matches = yearPattern.exec(q)) !== null) {\r\n let selectedYear = +q;\r\n const currentYear = new Date().getFullYear();\r\n if(selectedYear < minYear) {\r\n selectedYear = minYear;\r\n for(let i = currentYear; i >= selectedYear; i--) {\r\n const date = new Date();\r\n date.setFullYear(i, 0, 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const minDate = date.getTime();\r\n date.setFullYear(i + 1, 0, 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 1;\r\n dates.push({\r\n title: '' + i,\r\n minDate,\r\n maxDate\r\n });\r\n }\r\n } else if(selectedYear <= currentYear) {\r\n const date = new Date();\r\n date.setFullYear(selectedYear, 0, 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const minDate = date.getTime();\r\n date.setFullYear(selectedYear + 1, 0, 1);\r\n date.setHours(0, 0, 0);\r\n\r\n const maxDate = date.getTime() - 1;\r\n dates.push({\r\n title: '' + selectedYear,\r\n minDate,\r\n maxDate\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n if((matches = monthYearOrDayPattern.exec(q)) !== null) {\r\n const g1 = matches[1];\r\n const g2 = matches[2];\r\n const month = getMonth(g1);\r\n if(month >= 0) {\r\n const k = +g2;\r\n if(k > 0 && k <= 31) {\r\n const day = k - 1;\r\n createForDayMonth(dates, day, month);\r\n return;\r\n } else if(k >= minYear) {\r\n const selectedYear = k;\r\n createForMonthYear(dates, month, selectedYear);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if((matches = yearOrDayAndMonthPattern.exec(q)) !== null) {\r\n const g1 = matches[1];\r\n const g2 = matches[2];\r\n const month = getMonth(g2);\r\n if(month >= 0) {\r\n const k = +g1;\r\n if(k > 0 && k <= 31) {\r\n const day = k - 1;\r\n createForDayMonth(dates, day, month);\r\n return;\r\n } else if (k >= minYear) {\r\n const selectedYear = k;\r\n createForMonthYear(dates, month, selectedYear);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction createForMonthYear(dates: DateData[], month: number, selectedYear: number) {\r\n const currentYear = new Date().getFullYear();\r\n const today = Date.now();\r\n if(selectedYear >= minYear && selectedYear <= currentYear) {\r\n const date = new Date();\r\n date.setFullYear(selectedYear, month, 1);\r\n date.setHours(0, 0, 0);\r\n const minDate = date.getTime();\r\n if(minDate > today) {\r\n return;\r\n }\r\n date.setMonth(date.getMonth() + 1);\r\n const maxDate = date.getTime() - 1;\r\n\r\n dates.push({\r\n title: formatterMonthYear(minDate),\r\n minDate,\r\n maxDate\r\n });\r\n }\r\n}\r\n\r\nfunction createForDayMonth(dates: DateData[], day: number, month: number) {\r\n if(validDateForMonth(day, month)) {\r\n const currentYear = new Date().getFullYear();\r\n const today = Date.now();\r\n \r\n for(let i = currentYear; i >= minYear; i--) {\r\n if(month === 1 && day === 28 && !isLeapYear(i)) {\r\n continue;\r\n }\r\n\r\n const date = new Date();\r\n date.setFullYear(i, month, day + 1);\r\n date.setHours(0, 0, 0);\r\n \r\n const minDate = date.getTime();\r\n if(minDate > today) {\r\n continue;\r\n }\r\n\r\n date.setFullYear(i, month, day + 2);\r\n date.setHours(0, 0, 0);\r\n const maxDate = date.getTime() - 1;\r\n if(i === currentYear) {\r\n dates.push({\r\n title: formatterDayMonth(minDate),\r\n minDate,\r\n maxDate\r\n });\r\n } else {\r\n dates.push({\r\n title: formatterYearMax(minDate),\r\n minDate,\r\n maxDate\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction formatterMonthYear(timestamp: number) {\r\n const date = new Date(timestamp);\r\n return months[date.getMonth()].slice(0, 3) + ' ' + date.getFullYear();\r\n}\r\n\r\nfunction formatterDayMonth(timestamp: number) {\r\n const date = new Date(timestamp);\r\n return months[date.getMonth()].slice(0, 3) + ' ' + date.getDate();\r\n}\r\n\r\nfunction formatterYearMax(timestamp: number) {\r\n const date = new Date(timestamp);\r\n return ('0' + date.getDate()).slice(-2) + '.' + ('0' + (date.getMonth() + 1)).slice(-2) + '.' + date.getFullYear();\r\n}\r\n\r\nfunction formatWeekLong(timestamp: number) {\r\n const date = new Date(timestamp);\r\n return days[date.getDay()];\r\n}\r\n\r\nfunction validDateForMonth(day: number, month: number) {\r\n if(month >= 0 && month < 12) {\r\n if(day >= 0 && day < numberOfDaysEachMonth[month]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction isLeapYear(year: number) {\r\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\r\n}\r\n\r\nfunction getMonth(q: string) {\r\n /* String[] months = new String[]{\r\n LocaleController.getString(\"January\", R.string.January).toLowerCase(),\r\n LocaleController.getString(\"February\", R.string.February).toLowerCase(),\r\n LocaleController.getString(\"March\", R.string.March).toLowerCase(),\r\n LocaleController.getString(\"April\", R.string.April).toLowerCase(),\r\n LocaleController.getString(\"May\", R.string.May).toLowerCase(),\r\n LocaleController.getString(\"June\", R.string.June).toLowerCase(),\r\n LocaleController.getString(\"July\", R.string.July).toLowerCase(),\r\n LocaleController.getString(\"August\", R.string.August).toLowerCase(),\r\n LocaleController.getString(\"September\", R.string.September).toLowerCase(),\r\n LocaleController.getString(\"October\", R.string.October).toLowerCase(),\r\n LocaleController.getString(\"November\", R.string.November).toLowerCase(),\r\n LocaleController.getString(\"December\", R.string.December).toLowerCase()\r\n }; */\r\n\r\n /* String[] monthsEng = new String[12];\r\n Calendar c = Calendar.getInstance();\r\n for (int i = 1; i <= 12; i++) {\r\n c.set(0, 0, 0, 0, 0, 0);\r\n c.set(Calendar.MONTH, i);\r\n monthsEng[i - 1] = c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH).toLowerCase();\r\n } */\r\n\r\n q = q.toLowerCase();\r\n for(let i = 0; i < 12; i++) {\r\n const month = months[i].toLowerCase();\r\n if(month.indexOf(q) === 0) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\n\r\nfunction getDayOfWeek(q: string) {\r\n const c = new Date();\r\n if(q.length <= 3) {\r\n return -1;\r\n }\r\n \r\n for(let i = 0; i < 7; i++) {\r\n c.setDate(c.getDate() + 1);\r\n \r\n if(formatWeekLong(c.getTime()).toLowerCase().indexOf(q) === 0) {\r\n return c.getDay();\r\n }\r\n }\r\n return -1;\r\n}\r\n\r\nMOUNT_CLASS_TO.fillTipDates = fillTipDates;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport { MOUNT_CLASS_TO } from \"../config/debug\";\r\nimport calcImageInBox from \"./calcImageInBox\";\r\nimport EventListenerBase from \"./eventListenerBase\";\r\n\r\nexport class MediaSize {\r\n constructor(public width = 0, public height = width) {\r\n\r\n }\r\n\r\n public aspect(boxSize: MediaSize, fitted: boolean) {\r\n return calcImageInBox(this.width, this.height, boxSize.width, boxSize.height, fitted);\r\n }\r\n\r\n public aspectFitted(boxSize: MediaSize) {\r\n return this.aspect(boxSize, true);\r\n }\r\n\r\n public aspectCovered(boxSize: MediaSize) {\r\n return this.aspect(boxSize, false);\r\n }\r\n}\r\n\r\nexport function makeMediaSize(width?: number, height?: number): MediaSize {\r\n return new MediaSize(width, height);\r\n}\r\n\r\ntype MediaTypeSizes = {\r\n regular: MediaSize,\r\n webpage: MediaSize,\r\n album: MediaSize,\r\n esgSticker: MediaSize,\r\n animatedSticker: MediaSize,\r\n staticSticker: MediaSize,\r\n emojiSticker: MediaSize,\r\n poll: MediaSize,\r\n round: MediaSize\r\n};\r\n\r\nexport enum ScreenSize {\r\n mobile,\r\n medium,\r\n large\r\n}\r\n\r\nconst MOBILE_SIZE = 600;\r\nconst MEDIUM_SIZE = 1275;\r\nconst LARGE_SIZE = 1680;\r\n\r\nclass MediaSizes extends EventListenerBase<{\r\n changeScreen: (from: ScreenSize, to: ScreenSize) => void,\r\n resize: () => void\r\n}> {\r\n private screenSizes: {key: ScreenSize, value: number}[] = [\r\n {key: ScreenSize.mobile, value: MOBILE_SIZE},\r\n {key: ScreenSize.medium, value: MEDIUM_SIZE},\r\n {key: ScreenSize.large, value: LARGE_SIZE}\r\n ];\r\n\r\n private sizes: {[k in 'desktop' | 'handhelds']: MediaTypeSizes} = {\r\n handhelds: {\r\n regular: makeMediaSize(270, 270),\r\n webpage: makeMediaSize(270, 200),\r\n album: makeMediaSize(270, 0),\r\n esgSticker: makeMediaSize(68, 68),\r\n animatedSticker: makeMediaSize(180, 180),\r\n staticSticker: makeMediaSize(180, 180),\r\n emojiSticker: makeMediaSize(112, 112),\r\n poll: makeMediaSize(240, 0),\r\n round: makeMediaSize(200, 200)\r\n },\r\n desktop: {\r\n regular: makeMediaSize(420, 340),\r\n webpage: makeMediaSize(420, 340),\r\n album: makeMediaSize(420, 0),\r\n esgSticker: makeMediaSize(80, 80),\r\n animatedSticker: makeMediaSize(200, 200),\r\n staticSticker: makeMediaSize(200, 200),\r\n emojiSticker: makeMediaSize(112, 112),\r\n poll: makeMediaSize(330, 0),\r\n round: makeMediaSize(280, 280)\r\n }\r\n };\r\n\r\n public isMobile = false;\r\n public active: MediaTypeSizes;\r\n public activeScreen: ScreenSize;\r\n private rAF: number;\r\n\r\n constructor() {\r\n super();\r\n\r\n window.addEventListener('resize', () => {\r\n if(this.rAF) window.cancelAnimationFrame(this.rAF);\r\n this.rAF = window.requestAnimationFrame(() => {\r\n this.handleResize();\r\n this.rAF = 0;\r\n });\r\n });\r\n this.handleResize();\r\n }\r\n\r\n private handleResize = () => {\r\n const innerWidth = window.innerWidth;\r\n //this.isMobile = innerWidth <= 720;\r\n \r\n let activeScreen = this.screenSizes[0].key;\r\n for(let i = this.screenSizes.length - 1; i >= 0; --i) {\r\n if(this.screenSizes[i].value < innerWidth) {\r\n activeScreen = (this.screenSizes[i + 1] || this.screenSizes[i]).key;\r\n break;\r\n }\r\n }\r\n\r\n const wasScreen = this.activeScreen;\r\n this.activeScreen = activeScreen;\r\n this.isMobile = this.activeScreen === ScreenSize.mobile;\r\n this.active = this.isMobile ? this.sizes.handhelds : this.sizes.desktop;\r\n\r\n //console.time('esg');\r\n //const computedStyle = window.getComputedStyle(document.documentElement);\r\n //this.active.esgSticker.width = parseFloat(computedStyle.getPropertyValue('--esg-sticker-size'));\r\n //console.timeEnd('esg');\r\n\r\n if(wasScreen !== activeScreen) {\r\n //console.log('changeScreen', this.activeScreen, activeScreen);\r\n\r\n if(wasScreen !== undefined) {\r\n this.dispatchEvent('changeScreen', wasScreen, activeScreen);\r\n }\r\n }\r\n\r\n if(wasScreen !== undefined) {\r\n this.dispatchEvent('resize');\r\n }\r\n\r\n /* if(this.isMobile) {\r\n for(let i in this.active) {\r\n // @ts-ignore\r\n let size = this.active[i];\r\n size.width = innerWidth \r\n }\r\n } */\r\n };\r\n}\r\n\r\nconst mediaSizes = new MediaSizes();\r\nMOUNT_CLASS_TO.mediaSizes = mediaSizes;\r\nexport default mediaSizes;\r\n","export default function deepEqual(x: any, y: any): boolean {\n const ok = Object.keys, tx = typeof x, ty = typeof y;\n return x && y && tx === 'object' && tx === ty ? (\n ok(x).length === ok(y).length &&\n ok(x).every(key => deepEqual(x[key], y[key]))\n ) : (x === y);\n}\n","import { RestrictionReason } from \"../layer\";\n\nconst platforms = new Set([\n 'all',\n 'web',\n 'webk'\n]);\n\nconst ignore = new Set();\n\nexport function getRestrictionReason(reasons: RestrictionReason[]) {\n // return reasons[0];\n return reasons.find(reason => platforms.has(reason.platform) && !ignore.has(reason.reason));\n}\n\nexport function isRestricted(reasons: RestrictionReason[]) {\n return !!getRestrictionReason(reasons);\n}\n\nexport function ignoreRestrictionReasons(reasons: string[]) {\n ignore.clear();\n reasons.forEach(reason => {\n ignore.add(reason);\n });\n}\n","export const pause = (ms: number) => new Promise<void>((resolve) => {\r\n setTimeout(resolve, ms);\r\n});\r\n","export default function tsNow(seconds?: true) {\n const t = Date.now();\n return seconds ? t / 1000 | 0 : t;\n}\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nexport class AppRuntimeManager {\r\n public reload() {\r\n try {\r\n location.reload();\r\n } catch(e) {};\r\n\r\n // if(window.chrome && chrome.runtime && chrome.runtime.reload) {\r\n // chrome.runtime.reload();\r\n // }\r\n }\r\n\r\n public close() {\r\n try {\r\n window.close();\r\n } catch(e) {}\r\n }\r\n\r\n /**\r\n * Better to call from event\r\n */\r\n public focus() {\r\n // // @ts-ignore\r\n // if(window.navigator.mozApps && document.hidden) {\r\n // // Get app instance and launch it to bring app to foreground\r\n // // @ts-ignore\r\n // window.navigator.mozApps.getSelf().onsuccess = function() {\r\n // this.result.launch();\r\n // };\r\n // } else {\r\n // // @ts-ignore\r\n // if(window.chrome && chrome.app && chrome.app.window) {\r\n // // @ts-ignore\r\n // chrome.app.window.current().focus();\r\n // }\r\n\r\n window.focus();\r\n // }\r\n }\r\n}\r\n\r\nconst appRuntimeManager = new AppRuntimeManager();\r\nexport default appRuntimeManager;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nimport { MOUNT_CLASS_TO } from '../config/debug';\r\nimport mediaSizes from '../helpers/mediaSizes';\r\n\r\n// !WARNING, ТУТ СЛОЖНО! по-хорошему, надо бы это переделать без fe0f, но они здесь необходимы чтобы отрендерить панель, и ниже дописаны 3 элемента которые не воспроизводятся без fe0f\r\nexport const Emoji: {[emoji: string]: number} = {\"2049\":62748,\"2122\":62776,\"2139\":62801,\"2194\":62678,\"2195\":62677,\"2196\":62676,\"2197\":62670,\"2198\":62672,\"2199\":62674,\"2328\":61155,\"2600\":4954,\"2601\":4962,\"2602\":4977,\"2603\":4982,\"2604\":4984,\"2611\":62764,\"2614\":4978,\"2615\":3750,\"2618\":2639,\"2620\":196,\"2622\":62667,\"2623\":62668,\"2626\":62697,\"2638\":62694,\"2639\":168,\"2648\":62702,\"2649\":62703,\"2650\":62710,\"2651\":62711,\"2652\":62712,\"2653\":62713,\"2660\":51057,\"2663\":51060,\"2665\":51058,\"2666\":51059,\"2668\":4832,\"2692\":61258,\"2693\":4887,\"2694\":61261,\"2696\":61272,\"2697\":61280,\"2699\":61270,\"2702\":61245,\"2705\":62763,\"2708\":4895,\"2709\":61206,\"2712\":61220,\"2714\":62765,\"2716\":62742,\"2721\":62693,\"2728\":5993,\"2733\":62771,\"2734\":62772,\"2744\":4981,\"2747\":62773,\"2753\":62749,\"2754\":62750,\"2755\":62751,\"2757\":62752,\"2763\":1127,\"2764\":1129,\"2795\":62743,\"2796\":62744,\"2797\":62745,\"2934\":62681,\"2935\":62682,\"3030\":62753,\"3297\":62825,\"3299\":62826,\"0023-20e3\":62777,\"002a-20e3\":62778,\"0030-20e3\":62779,\"0031-20e3\":62780,\"0032-20e3\":62781,\"0033-20e3\":62782,\"0034-20e3\":62783,\"0035-20e3\":62784,\"0036-20e3\":62785,\"0037-20e3\":62786,\"0038-20e3\":62787,\"0039-20e3\":62788,\"00a9\":62774,\"00ae\":62775,\"1f004\":51063,\"1f0cf\":51062,\"1f170\":62795,\"1f171\":62797,\"1f17e\":62806,\"1f17f\":62808,\"1f18e\":62796,\"1f191\":62798,\"1f192\":62799,\"1f193\":62800,\"1f194\":62802,\"1f195\":62804,\"1f196\":62805,\"1f197\":62807,\"1f198\":62809,\"1f199\":62810,\"1f19a\":62811,\"1f1e6-1f1e8\":71550,\"1f1e6-1f1e9\":71551,\"1f1e6-1f1ea\":71552,\"1f1e6-1f1eb\":71553,\"1f1e6-1f1ec\":71554,\"1f1e6-1f1ee\":71555,\"1f1e6-1f1f1\":71556,\"1f1e6-1f1f2\":71557,\"1f1e6-1f1f4\":71558,\"1f1e6-1f1f6\":71559,\"1f1e6-1f1f7\":71560,\"1f1e6-1f1f8\":71561,\"1f1e6-1f1f9\":71562,\"1f1e6-1f1fa\":71563,\"1f1e6-1f1fc\":71564,\"1f1e6-1f1fd\":71565,\"1f1e6-1f1ff\":71566,\"1f1e7-1f1e6\":71567,\"1f1e7-1f1e7\":71568,\"1f1e7-1f1e9\":71569,\"1f1e7-1f1ea\":71570,\"1f1e7-1f1eb\":71571,\"1f1e7-1f1ec\":71572,\"1f1e7-1f1ed\":71573,\"1f1e7-1f1ee\":71574,\"1f1e7-1f1ef\":71575,\"1f1e7-1f1f1\":71576,\"1f1e7-1f1f2\":71577,\"1f1e7-1f1f3\":71578,\"1f1e7-1f1f4\":71579,\"1f1e7-1f1f6\":71580,\"1f1e7-1f1f7\":71581,\"1f1e7-1f1f8\":71582,\"1f1e7-1f1f9\":71583,\"1f1e7-1f1fb\":71584,\"1f1e7-1f1fc\":71585,\"1f1e7-1f1fe\":71586,\"1f1e7-1f1ff\":71587,\"1f1e8-1f1e6\":71588,\"1f1e8-1f1e8\":71589,\"1f1e8-1f1e9\":71590,\"1f1e8-1f1eb\":71591,\"1f1e8-1f1ec\":71592,\"1f1e8-1f1ed\":71593,\"1f1e8-1f1ee\":71594,\"1f1e8-1f1f0\":71595,\"1f1e8-1f1f1\":71596,\"1f1e8-1f1f2\":71597,\"1f1e8-1f1f3\":71598,\"1f1e8-1f1f4\":71599,\"1f1e8-1f1f5\":71600,\"1f1e8-1f1f7\":71601,\"1f1e8-1f1fa\":71602,\"1f1e8-1f1fb\":71603,\"1f1e8-1f1fc\":71604,\"1f1e8-1f1fd\":71605,\"1f1e8-1f1fe\":71606,\"1f1e8-1f1ff\":71607,\"1f1e9-1f1ea\":71608,\"1f1e9-1f1ec\":71609,\"1f1e9-1f1ef\":71610,\"1f1e9-1f1f0\":71611,\"1f1e9-1f1f2\":71612,\"1f1e9-1f1f4\":71613,\"1f1e9-1f1ff\":71614,\"1f1ea-1f1e6\":71615,\"1f1ea-1f1e8\":71616,\"1f1ea-1f1ea\":71617,\"1f1ea-1f1ec\":71618,\"1f1ea-1f1ed\":71619,\"1f1ea-1f1f7\":71620,\"1f1ea-1f1f8\":71621,\"1f1ea-1f1f9\":71622,\"1f1ea-1f1fa\":71623,\"1f1eb-1f1ee\":71624,\"1f1eb-1f1ef\":71625,\"1f1eb-1f1f0\":71626,\"1f1eb-1f1f2\":71627,\"1f1eb-1f1f4\":71628,\"1f1eb-1f1f7\":71629,\"1f1ec-1f1e6\":71630,\"1f1ec-1f1e7\":71631,\"1f1ec-1f1e9\":71632,\"1f1ec-1f1ea\":71633,\"1f1ec-1f1eb\":71634,\"1f1ec-1f1ec\":71635,\"1f1ec-1f1ed\":71636,\"1f1ec-1f1ee\":71637,\"1f1ec-1f1f1\":71638,\"1f1ec-1f1f2\":71639,\"1f1ec-1f1f3\":71640,\"1f1ec-1f1f5\":71641,\"1f1ec-1f1f6\":71642,\"1f1ec-1f1f7\":71643,\"1f1ec-1f1f8\":71644,\"1f1ec-1f1f9\":71645,\"1f1ec-1f1fa\":71646,\"1f1ec-1f1fc\":71647,\"1f1ec-1f1fe\":71648,\"1f1ed-1f1f0\":71649,\"1f1ed-1f1f2\":71650,\"1f1ed-1f1f3\":71651,\"1f1ed-1f1f7\":71652,\"1f1ed-1f1f9\":71653,\"1f1ed-1f1fa\":71654,\"1f1ee-1f1e8\":71655,\"1f1ee-1f1e9\":71656,\"1f1ee-1f1ea\":71657,\"1f1ee-1f1f1\":71658,\"1f1ee-1f1f2\":71659,\"1f1ee-1f1f3\":71660,\"1f1ee-1f1f4\":71661,\"1f1ee-1f1f6\":71662,\"1f1ee-1f1f7\":71663,\"1f1ee-1f1f8\":71664,\"1f1ee-1f1f9\":71665,\"1f1ef-1f1ea\":71666,\"1f1ef-1f1f2\":71667,\"1f1ef-1f1f4\":71668,\"1f1ef-1f1f5\":71669,\"1f1f0-1f1ea\":71670,\"1f1f0-1f1ec\":71671,\"1f1f0-1f1ed\":71672,\"1f1f0-1f1ee\":71673,\"1f1f0-1f1f2\":71674,\"1f1f0-1f1f3\":71675,\"1f1f0-1f1f5\":71676,\"1f1f0-1f1f7\":71677,\"1f1f0-1f1fc\":71678,\"1f1f0-1f1fe\":71679,\"1f1f0-1f1ff\":71680,\"1f1f1-1f1e6\":71681,\"1f1f1-1f1e7\":71682,\"1f1f1-1f1e8\":71683,\"1f1f1-1f1ee\":71684,\"1f1f1-1f1f0\":71685,\"1f1f1-1f1f7\":71686,\"1f1f1-1f1f8\":71687,\"1f1f1-1f1f9\":71688,\"1f1f1-1f1fa\":71689,\"1f1f1-1f1fb\":71690,\"1f1f1-1f1fe\":71691,\"1f1f2-1f1e6\":71692,\"1f1f2-1f1e8\":71693,\"1f1f2-1f1e9\":71694,\"1f1f2-1f1ea\":71695,\"1f1f2-1f1eb\":71696,\"1f1f2-1f1ec\":71697,\"1f1f2-1f1ed\":71698,\"1f1f2-1f1f0\":71699,\"1f1f2-1f1f1\":71700,\"1f1f2-1f1f2\":71701,\"1f1f2-1f1f3\":71702,\"1f1f2-1f1f4\":71703,\"1f1f2-1f1f5\":71704,\"1f1f2-1f1f6\":71705,\"1f1f2-1f1f7\":71706,\"1f1f2-1f1f8\":71707,\"1f1f2-1f1f9\":71708,\"1f1f2-1f1fa\":71709,\"1f1f2-1f1fb\":71710,\"1f1f2-1f1fc\":71711,\"1f1f2-1f1fd\":71712,\"1f1f2-1f1fe\":71713,\"1f1f2-1f1ff\":71714,\"1f1f3-1f1e6\":71715,\"1f1f3-1f1e8\":71716,\"1f1f3-1f1ea\":71717,\"1f1f3-1f1eb\":71718,\"1f1f3-1f1ec\":71719,\"1f1f3-1f1ee\":71720,\"1f1f3-1f1f1\":71721,\"1f1f3-1f1f4\":71722,\"1f1f3-1f1f5\":71723,\"1f1f3-1f1f7\":71724,\"1f1f3-1f1fa\":71725,\"1f1f3-1f1ff\":71726,\"1f1f4-1f1f2\":71727,\"1f1f5-1f1e6\":71728,\"1f1f5-1f1ea\":71729,\"1f1f5-1f1eb\":71730,\"1f1f5-1f1ec\":71731,\"1f1f5-1f1ed\":71732,\"1f1f5-1f1f0\":71733,\"1f1f5-1f1f1\":71734,\"1f1f5-1f1f2\":71735,\"1f1f5-1f1f3\":71736,\"1f1f5-1f1f7\":71737,\"1f1f5-1f1f8\":71738,\"1f1f5-1f1f9\":71739,\"1f1f5-1f1fc\":71740,\"1f1f5-1f1fe\":71741,\"1f1f6-1f1e6\":71742,\"1f1f7-1f1ea\":71743,\"1f1f7-1f1f4\":71744,\"1f1f7-1f1f8\":71745,\"1f1f7-1f1fa\":71746,\"1f1f7-1f1fc\":71747,\"1f1f8-1f1e6\":71748,\"1f1f8-1f1e7\":71749,\"1f1f8-1f1e8\":71750,\"1f1f8-1f1e9\":71751,\"1f1f8-1f1ea\":71752,\"1f1f8-1f1ec\":71753,\"1f1f8-1f1ed\":71754,\"1f1f8-1f1ee\":71755,\"1f1f8-1f1ef\":71756,\"1f1f8-1f1f0\":71757,\"1f1f8-1f1f1\":71758,\"1f1f8-1f1f2\":71759,\"1f1f8-1f1f3\":71760,\"1f1f8-1f1f4\":71761,\"1f1f8-1f1f7\":71762,\"1f1f8-1f1f8\":71763,\"1f1f8-1f1f9\":71764,\"1f1f8-1f1fb\":71765,\"1f1f8-1f1fd\":71766,\"1f1f8-1f1fe\":71767,\"1f1f8-1f1ff\":71768,\"1f1f9-1f1e6\":71769,\"1f1f9-1f1e8\":71770,\"1f1f9-1f1e9\":71771,\"1f1f9-1f1eb\":71772,\"1f1f9-1f1ec\":71773,\"1f1f9-1f1ed\":71774,\"1f1f9-1f1ef\":71775,\"1f1f9-1f1f0\":71776,\"1f1f9-1f1f1\":71777,\"1f1f9-1f1f2\":71778,\"1f1f9-1f1f3\":71779,\"1f1f9-1f1f4\":71780,\"1f1f9-1f1f7\":71781,\"1f1f9-1f1f9\":71782,\"1f1f9-1f1fb\":71783,\"1f1f9-1f1fc\":71784,\"1f1f9-1f1ff\":71785,\"1f1fa-1f1e6\":71786,\"1f1fa-1f1ec\":71787,\"1f1fa-1f1f2\":71788,\"1f1fa-1f1f3\":71789,\"1f1fa-1f1f8\":71790,\"1f1fa-1f1fe\":71791,\"1f1fa-1f1ff\":71792,\"1f1fb-1f1e6\":71793,\"1f1fb-1f1e8\":71794,\"1f1fb-1f1ea\":71795,\"1f1fb-1f1ec\":71796,\"1f1fb-1f1ee\":71797,\"1f1fb-1f1f3\":71798,\"1f1fb-1f1fa\":71799,\"1f1fc-1f1eb\":71800,\"1f1fc-1f1f8\":71801,\"1f1fd-1f1f0\":71802,\"1f1fe-1f1ea\":71803,\"1f1fe-1f1f9\":71804,\"1f1ff-1f1e6\":71805,\"1f1ff-1f1f2\":71806,\"1f1ff-1f1fc\":71807,\"1f201\":62812,\"1f202\":62813,\"1f21a\":62819,\"1f22f\":62816,\"1f232\":62820,\"1f233\":62824,\"1f234\":62823,\"1f235\":62828,\"1f236\":62815,\"1f237\":62814,\"1f238\":62822,\"1f239\":62818,\"1f23a\":62827,\"1f250\":62817,\"1f251\":62821,\"1f300\":4974,\"1f301\":4824,\"1f302\":4976,\"1f303\":4825,\"1f304\":4827,\"1f305\":4828,\"1f306\":4829,\"1f307\":4830,\"1f308\":4975,\"1f309\":4831,\"1f30a\":4987,\"1f30b\":4782,\"1f30c\":4961,\"1f30d\":4773,\"1f30e\":4774,\"1f30f\":4775,\"1f310\":4776,\"1f311\":4941,\"1f312\":4942,\"1f313\":4943,\"1f314\":4944,\"1f315\":4945,\"1f316\":4946,\"1f317\":4947,\"1f318\":4948,\"1f319\":4949,\"1f31a\":4950,\"1f31b\":4951,\"1f31c\":4952,\"1f31d\":4955,\"1f31e\":4956,\"1f31f\":4959,\"1f320\":4960,\"1f321\":4953,\"1f324\":4965,\"1f325\":4966,\"1f326\":4967,\"1f327\":4968,\"1f328\":4969,\"1f329\":4970,\"1f32a\":4971,\"1f32b\":4972,\"1f32c\":4973,\"1f32d\":3694,\"1f32e\":3696,\"1f32f\":3697,\"1f330\":3677,\"1f331\":2631,\"1f332\":2633,\"1f333\":2634,\"1f334\":2635,\"1f335\":2636,\"1f336\":3668,\"1f337\":2630,\"1f338\":2622,\"1f339\":2625,\"1f33a\":2627,\"1f33b\":2628,\"1f33c\":2629,\"1f33d\":3667,\"1f33e\":2637,\"1f33f\":2638,\"1f340\":2640,\"1f341\":2641,\"1f342\":2642,\"1f343\":2643,\"1f344\":3675,\"1f345\":3660,\"1f346\":3664,\"1f347\":3644,\"1f348\":3645,\"1f349\":3646,\"1f34a\":3647,\"1f34b\":3648,\"1f34c\":3649,\"1f34d\":3650,\"1f34e\":3652,\"1f34f\":3653,\"1f350\":3654,\"1f351\":3655,\"1f352\":3656,\"1f353\":3657,\"1f354\":3691,\"1f355\":3693,\"1f356\":3687,\"1f357\":3688,\"1f358\":3713,\"1f359\":3714,\"1f35a\":3715,\"1f35b\":3716,\"1f35c\":3717,\"1f35d\":3718,\"1f35e\":3678,\"1f35f\":3692,\"1f360\":3719,\"1f361\":3725,\"1f362\":3720,\"1f363\":3721,\"1f364\":3722,\"1f365\":3723,\"1f366\":3734,\"1f367\":3735,\"1f368\":3736,\"1f369\":3737,\"1f36a\":3738,\"1f36b\":3743,\"1f36c\":3744,\"1f36d\":3745,\"1f36e\":3746,\"1f36f\":3747,\"1f370\":3740,\"1f371\":3712,\"1f372\":3704,\"1f373\":3702,\"1f374\":3769,\"1f375\":3752,\"1f376\":3753,\"1f377\":3755,\"1f378\":3756,\"1f379\":3757,\"1f37a\":3758,\"1f37b\":3759,\"1f37c\":3748,\"1f37d\":3768,\"1f37e\":3754,\"1f37f\":3708,\"1f380\":51004,\"1f381\":51005,\"1f382\":3739,\"1f383\":5988,\"1f384\":5989,\"1f385\":1490,\"1f386\":5990,\"1f387\":5991,\"1f388\":5994,\"1f389\":5995,\"1f38a\":5996,\"1f38b\":5997,\"1f38c\":71544,\"1f38d\":5998,\"1f38e\":5999,\"1f38f\":51000,\"1f390\":51001,\"1f391\":51002,\"1f392\":61096,\"1f393\":61109,\"1f396\":51009,\"1f397\":51006,\"1f399\":61129,\"1f39a\":61130,\"1f39b\":61131,\"1f39e\":61164,\"1f39f\":51007,\"1f3a0\":4833,\"1f3a1\":4834,\"1f3a2\":4835,\"1f3a3\":51036,\"1f3a4\":61132,\"1f3a5\":61163,\"1f3a6\":62733,\"1f3a7\":61133,\"1f3a8\":51067,\"1f3a9\":61108,\"1f3aa\":4837,\"1f3ab\":51008,\"1f3ac\":61166,\"1f3ad\":51065,\"1f3ae\":51049,\"1f3af\":51042,\"1f3b0\":51051,\"1f3b1\":51045,\"1f3b2\":51052,\"1f3b3\":51024,\"1f3b4\":51064,\"1f3b5\":61127,\"1f3b6\":61128,\"1f3b7\":61135,\"1f3b8\":61137,\"1f3b9\":61138,\"1f3ba\":61139,\"1f3bb\":61140,\"1f3bc\":61126,\"1f3bd\":51038,\"1f3be\":51022,\"1f3bf\":51039,\"1f3c0\":51018,\"1f3c1\":71542,\"1f3c2\":1562,\"1f3c3-200d-2640\":1546,\"1f3c3-200d-2642\":1545,\"1f3c3\":1544,\"1f3c4-200d-2640\":1568,\"1f3c4-200d-2642\":1567,\"1f3c4\":1566,\"1f3c5\":51011,\"1f3c6\":51010,\"1f3c7\":1560,\"1f3c8\":51020,\"1f3c9\":51021,\"1f3ca-200d-2640\":1574,\"1f3ca-200d-2642\":1573,\"1f3ca\":1572,\"1f3cb-200d-2640\":1580,\"1f3cb-200d-2642\":1579,\"1f3cb\":1578,\"1f3cc-200d-2640\":1565,\"1f3cc-200d-2642\":1564,\"1f3cc\":1563,\"1f3cd\":4868,\"1f3ce\":4867,\"1f3cf\":51025,\"1f3d0\":51019,\"1f3d1\":51026,\"1f3d2\":51027,\"1f3d3\":51029,\"1f3d4\":4780,\"1f3d5\":4784,\"1f3d6\":4785,\"1f3d7\":4791,\"1f3d8\":4796,\"1f3d9\":4826,\"1f3da\":4797,\"1f3db\":4790,\"1f3dc\":4786,\"1f3dd\":4787,\"1f3de\":4788,\"1f3df\":4789,\"1f3e0\":4798,\"1f3e1\":4799,\"1f3e2\":4800,\"1f3e3\":4801,\"1f3e4\":4802,\"1f3e5\":4803,\"1f3e6\":4804,\"1f3e7\":62643,\"1f3e8\":4805,\"1f3e9\":4806,\"1f3ea\":4807,\"1f3eb\":4808,\"1f3ec\":4809,\"1f3ed\":4810,\"1f3ee\":61177,\"1f3ef\":4811,\"1f3f0\":4812,\"1f3f3-200d-1f308\":71547,\"1f3f3-200d-26a7\":71548,\"1f3f3\":71546,\"1f3f4-200d-2620\":71549,\"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f\":71808,\"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f\":71809,\"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f\":71810,\"1f3f4\":71545,\"1f3f5\":2624,\"1f3f7\":61195,\"1f3f8\":51030,\"1f3f9\":61264,\"1f3fa\":3772,\"1f3fb\":9499,\"1f3fc\":9500,\"1f3fd\":9501,\"1f3fe\":9502,\"1f3ff\":9503,\"1f400\":2550,\"1f401\":2549,\"1f402\":2530,\"1f403\":2531,\"1f404\":2532,\"1f405\":2521,\"1f406\":2522,\"1f407\":2553,\"1f408-200d-2b1b\":2518,\"1f408\":2517,\"1f409\":2592,\"1f40a\":2587,\"1f40b\":2596,\"1f40c\":2605,\"1f40d\":2590,\"1f40e\":2524,\"1f40f\":2537,\"1f410\":2539,\"1f411\":2538,\"1f412\":2505,\"1f413\":2570,\"1f414\":2569,\"1f415-200d-1f9ba\":2511,\"1f415\":2509,\"1f416\":2534,\"1f417\":2535,\"1f418\":2544,\"1f419\":2603,\"1f41a\":2604,\"1f41b\":2607,\"1f41c\":2608,\"1f41d\":2609,\"1f41e\":2611,\"1f41f\":2599,\"1f420\":2600,\"1f421\":2601,\"1f422\":2588,\"1f423\":2571,\"1f424\":2572,\"1f425\":2573,\"1f426\":2574,\"1f427\":2575,\"1f428\":2560,\"1f429\":2512,\"1f42a\":2540,\"1f42b\":2541,\"1f42c\":2597,\"1f42d\":2548,\"1f42e\":2529,\"1f42f\":2520,\"1f430\":2552,\"1f431\":2516,\"1f432\":2591,\"1f433\":2595,\"1f434\":2523,\"1f435\":2504,\"1f436\":2508,\"1f437\":2533,\"1f438\":2586,\"1f439\":2551,\"1f43a\":2513,\"1f43b-200d-2744\":2559,\"1f43b\":2558,\"1f43c\":2561,\"1f43d\":2536,\"1f43e\":2567,\"1f43f\":2554,\"1f440\":1350,\"1f441-200d-1f5e8\":1147,\"1f441\":1351,\"1f442\":1342,\"1f443\":1344,\"1f444\":1353,\"1f445\":1352,\"1f446\":1318,\"1f447\":1320,\"1f448\":1316,\"1f449\":1317,\"1f44a\":1325,\"1f44b\":1303,\"1f44c\":1308,\"1f44d\":1322,\"1f44e\":1323,\"1f44f\":1328,\"1f450\":1330,\"1f451\":61106,\"1f452\":61107,\"1f453\":61072,\"1f454\":61077,\"1f455\":61078,\"1f456\":61079,\"1f457\":61084,\"1f458\":61085,\"1f459\":61090,\"1f45a\":61091,\"1f45b\":61092,\"1f45c\":61093,\"1f45d\":61094,\"1f45e\":61098,\"1f45f\":61099,\"1f460\":61102,\"1f461\":61103,\"1f462\":61105,\"1f463\":1649,\"1f464\":1646,\"1f465\":1647,\"1f466\":1356,\"1f467\":1357,\"1f468-200d-1f33e\":1423,\"1f468-200d-1f373\":1426,\"1f468-200d-1f37c\":1487,\"1f468-200d-1f393\":1414,\"1f468-200d-1f3a4\":1444,\"1f468-200d-1f3a8\":1447,\"1f468-200d-1f3eb\":1417,\"1f468-200d-1f3ed\":1432,\"1f468-200d-1f466-200d-1f466\":1636,\"1f468-200d-1f466\":1635,\"1f468-200d-1f467-200d-1f466\":1638,\"1f468-200d-1f467-200d-1f467\":1639,\"1f468-200d-1f467\":1637,\"1f468-200d-1f468-200d-1f466\":1625,\"1f468-200d-1f468-200d-1f466-200d-1f466\":1628,\"1f468-200d-1f468-200d-1f467\":1626,\"1f468-200d-1f468-200d-1f467-200d-1f466\":1627,\"1f468-200d-1f468-200d-1f467-200d-1f467\":1629,\"1f468-200d-1f469-200d-1f466\":1620,\"1f468-200d-1f469-200d-1f466-200d-1f466\":1623,\"1f468-200d-1f469-200d-1f467\":1621,\"1f468-200d-1f469-200d-1f467-200d-1f466\":1622,\"1f468-200d-1f469-200d-1f467-200d-1f467\":1624,\"1f468-200d-1f4bb\":1441,\"1f468-200d-1f4bc\":1435,\"1f468-200d-1f527\":1429,\"1f468-200d-1f52c\":1438,\"1f468-200d-1f680\":1453,\"1f468-200d-1f692\":1456,\"1f468-200d-1f9af\":1536,\"1f468-200d-1f9b0\":1362,\"1f468-200d-1f9b1\":1363,\"1f468-200d-1f9b2\":1365,\"1f468-200d-1f9b3\":1364,\"1f468-200d-1f9bc\":1539,\"1f468-200d-1f9bd\":1542,\"1f468-200d-2695\":1411,\"1f468-200d-2696\":1420,\"1f468-200d-2708\":1450,\"1f468-200d-2764-200d-1f468\":1617,\"1f468-200d-2764-200d-1f48b-200d-1f468\":1613,\"1f468\":1360,\"1f469-200d-1f33e\":1424,\"1f469-200d-1f373\":1427,\"1f469-200d-1f37c\":1486,\"1f469-200d-1f393\":1415,\"1f469-200d-1f3a4\":1445,\"1f469-200d-1f3a8\":1448,\"1f469-200d-1f3eb\":1418,\"1f469-200d-1f3ed\":1433,\"1f469-200d-1f466-200d-1f466\":1641,\"1f469-200d-1f466\":1640,\"1f469-200d-1f467-200d-1f466\":1643,\"1f469-200d-1f467-200d-1f467\":1644,\"1f469-200d-1f467\":1642,\"1f469-200d-1f469-200d-1f466\":1630,\"1f469-200d-1f469-200d-1f466-200d-1f466\":1633,\"1f469-200d-1f469-200d-1f467\":1631,\"1f469-200d-1f469-200d-1f467-200d-1f466\":1632,\"1f469-200d-1f469-200d-1f467-200d-1f467\":1634,\"1f469-200d-1f4bb\":1442,\"1f469-200d-1f4bc\":1436,\"1f469-200d-1f527\":1430,\"1f469-200d-1f52c\":1439,\"1f469-200d-1f680\":1454,\"1f469-200d-1f692\":1457,\"1f469-200d-1f9af\":1537,\"1f469-200d-1f9b0\":1367,\"1f469-200d-1f9b1\":1369,\"1f469-200d-1f9b2\":1373,\"1f469-200d-1f9b3\":1371,\"1f469-200d-1f9bc\":1540,\"1f469-200d-1f9bd\":1543,\"1f469-200d-2695\":1412,\"1f469-200d-2696\":1421,\"1f469-200d-2708\":1451,\"1f469-200d-2764-200d-1f468\":1616,\"1f469-200d-2764-200d-1f469\":1618,\"1f469-200d-2764-200d-1f48b-200d-1f468\":1612,\"1f469-200d-2764-200d-1f48b-200d-1f469\":1614,\"1f469\":1366,\"1f46a\":1619,\"1f46b\":1609,\"1f46c\":1610,\"1f46d\":1608,\"1f46e-200d-2640\":1460,\"1f46e-200d-2642\":1459,\"1f46e\":1458,\"1f46f-200d-2640\":1552,\"1f46f-200d-2642\":1551,\"1f46f\":1550,\"1f470-200d-2640\":1483,\"1f470-200d-2642\":1482,\"1f470\":1481,\"1f471-200d-2640\":1375,\"1f471-200d-2642\":1376,\"1f471\":1359,\"1f472\":1476,\"1f473-200d-2640\":1475,\"1f473-200d-2642\":1474,\"1f473\":1473,\"1f474\":1378,\"1f475\":1379,\"1f476\":1354,\"1f477-200d-2640\":1470,\"1f477-200d-2642\":1469,\"1f477\":1468,\"1f478\":1472,\"1f479\":199,\"1f47a\":1100,\"1f47b\":1101,\"1f47c\":1489,\"1f47d\":1102,\"1f47e\":1103,\"1f47f\":194,\"1f480\":195,\"1f481-200d-2640\":1394,\"1f481-200d-2642\":1393,\"1f481\":1392,\"1f482-200d-2640\":1466,\"1f482-200d-2642\":1465,\"1f482\":1464,\"1f483\":1547,\"1f484\":61114,\"1f485\":1335,\"1f486-200d-2640\":1522,\"1f486-200d-2642\":1521,\"1f486\":1520,\"1f487-200d-2640\":1525,\"1f487-200d-2642\":1524,\"1f487\":1523,\"1f488\":4836,\"1f489\":61287,\"1f48a\":61289,\"1f48b\":1117,\"1f48c\":1118,\"1f48d\":61115,\"1f48e\":61116,\"1f48f\":1611,\"1f490\":2621,\"1f491\":1615,\"1f492\":4813,\"1f493\":1123,\"1f494\":1128,\"1f495\":1125,\"1f496\":1121,\"1f497\":1122,\"1f498\":1119,\"1f499\":1133,\"1f49a\":1132,\"1f49b\":1131,\"1f49c\":1134,\"1f49d\":1120,\"1f49e\":1124,\"1f49f\":1126,\"1f4a0\":62859,\"1f4a1\":61175,\"1f4a2\":1139,\"1f4a3\":1145,\"1f4a4\":1151,\"1f4a5\":1140,\"1f4a6\":1142,\"1f4a7\":4986,\"1f4a8\":1143,\"1f4a9\":197,\"1f4aa\":1337,\"1f4ab\":1141,\"1f4ac\":1146,\"1f4ad\":1150,\"1f4ae\":2623,\"1f4af\":1138,\"1f4b0\":61196,\"1f4b1\":62754,\"1f4b2\":62755,\"1f4b3\":61203,\"1f4b4\":61198,\"1f4b5\":61199,\"1f4b6\":61200,\"1f4b7\":61201,\"1f4b8\":61202,\"1f4b9\":61205,\"1f4ba\":4900,\"1f4bb\":61152,\"1f4bc\":61226,\"1f4bd\":61158,\"1f4be\":61159,\"1f4bf\":61160,\"1f4c0\":61161,\"1f4c1\":61227,\"1f4c2\":61228,\"1f4c3\":61188,\"1f4c4\":61190,\"1f4c5\":61230,\"1f4c6\":61231,\"1f4c7\":61234,\"1f4c8\":61235,\"1f4c9\":61236,\"1f4ca\":61237,\"1f4cb\":61238,\"1f4cc\":61239,\"1f4cd\":61240,\"1f4ce\":61241,\"1f4cf\":61243,\"1f4d0\":61244,\"1f4d1\":61193,\"1f4d2\":61187,\"1f4d3\":61186,\"1f4d4\":61179,\"1f4d5\":61180,\"1f4d6\":61181,\"1f4d7\":61182,\"1f4d8\":61183,\"1f4d9\":61184,\"1f4da\":61185,\"1f4db\":62760,\"1f4dc\":61189,\"1f4dd\":61225,\"1f4de\":61147,\"1f4df\":61148,\"1f4e0\":61149,\"1f4e1\":61286,\"1f4e2\":61121,\"1f4e3\":61122,\"1f4e4\":61210,\"1f4e5\":61211,\"1f4e6\":61212,\"1f4e7\":61207,\"1f4e8\":61208,\"1f4e9\":61209,\"1f4ea\":61214,\"1f4eb\":61213,\"1f4ec\":61215,\"1f4ed\":61216,\"1f4ee\":61217,\"1f4ef\":61123,\"1f4f0\":61191,\"1f4f1\":61144,\"1f4f2\":61145,\"1f4f3\":62737,\"1f4f4\":62738,\"1f4f5\":62665,\"1f4f6\":62736,\"1f4f7\":61168,\"1f4f8\":61169,\"1f4f9\":61170,\"1f4fa\":61167,\"1f4fb\":61134,\"1f4fc\":61171,\"1f4fd\":61165,\"1f4ff\":61113,\"1f500\":62715,\"1f501\":62716,\"1f502\":62717,\"1f503\":62683,\"1f504\":62684,\"1f505\":62734,\"1f506\":62735,\"1f507\":61117,\"1f508\":61118,\"1f509\":61119,\"1f50a\":61120,\"1f50b\":61150,\"1f50c\":61151,\"1f50d\":61172,\"1f50e\":61173,\"1f50f\":61251,\"1f510\":61252,\"1f511\":61253,\"1f512\":61249,\"1f513\":61250,\"1f514\":61124,\"1f515\":61125,\"1f516\":61194,\"1f517\":61274,\"1f518\":62860,\"1f519\":62685,\"1f51a\":62686,\"1f51b\":62687,\"1f51c\":62688,\"1f51d\":62689,\"1f51e\":62666,\"1f51f\":62789,\"1f520\":62790,\"1f521\":62791,\"1f522\":62792,\"1f523\":62793,\"1f524\":62794,\"1f525\":4985,\"1f526\":61176,\"1f527\":61267,\"1f528\":61255,\"1f529\":61269,\"1f52a\":3771,\"1f52b\":61262,\"1f52c\":61284,\"1f52d\":61285,\"1f52e\":51046,\"1f52f\":62701,\"1f530\":62761,\"1f531\":62759,\"1f532\":62862,\"1f533\":62861,\"1f534\":62829,\"1f535\":62833,\"1f536\":62853,\"1f537\":62854,\"1f538\":62855,\"1f539\":62856,\"1f53a\":62857,\"1f53b\":62858,\"1f53c\":62725,\"1f53d\":62727,\"1f549\":62692,\"1f54a\":2576,\"1f54b\":4821,\"1f54c\":4817,\"1f54d\":4819,\"1f54e\":62700,\"1f550\":4919,\"1f551\":4921,\"1f552\":4923,\"1f553\":4925,\"1f554\":4927,\"1f555\":4929,\"1f556\":4931,\"1f557\":4933,\"1f558\":4935,\"1f559\":4937,\"1f55a\":4939,\"1f55b\":4917,\"1f55c\":4920,\"1f55d\":4922,\"1f55e\":4924,\"1f55f\":4926,\"1f560\":4928,\"1f561\":4930,\"1f562\":4932,\"1f563\":4934,\"1f564\":4936,\"1f565\":4938,\"1f566\":4940,\"1f567\":4918,\"1f56f\":61174,\"1f570\":4916,\"1f573\":1144,\"1f574\":1549,\"1f575-200d-2640\":1463,\"1f575-200d-2642\":1462,\"1f575\":1461,\"1f576\":61073,\"1f577\":2614,\"1f578\":2615,\"1f579\":51050,\"1f57a\":1548,\"1f587\":61242,\"1f58a\":61222,\"1f58b\":61221,\"1f58c\":61223,\"1f58d\":61224,\"1f590\":1305,\"1f595\":1319,\"1f596\":1307,\"1f5a4\":1136,\"1f5a5\":61153,\"1f5a8\":61154,\"1f5b1\":61156,\"1f5b2\":61157,\"1f5bc\":51066,\"1f5c2\":61229,\"1f5c3\":61246,\"1f5c4\":61247,\"1f5d1\":61248,\"1f5d2\":61232,\"1f5d3\":61233,\"1f5dc\":61271,\"1f5dd\":61254,\"1f5de\":61192,\"1f5e1\":61260,\"1f5e3\":1645,\"1f5e8\":1148,\"1f5ef\":1149,\"1f5f3\":61218,\"1f5fa\":4777,\"1f5fb\":4783,\"1f5fc\":4814,\"1f5fd\":4815,\"1f5fe\":4778,\"1f5ff\":61320,\"1f600\":11,\"1f601\":14,\"1f602\":18,\"1f603\":12,\"1f604\":13,\"1f605\":16,\"1f606\":15,\"1f607\":113,\"1f608\":193,\"1f609\":111,\"1f60a\":112,\"1f60b\":123,\"1f60c\":143,\"1f60d\":115,\"1f60e\":162,\"1f60f\":138,\"1f610\":135,\"1f611\":136,\"1f612\":139,\"1f613\":185,\"1f614\":144,\"1f615\":165,\"1f616\":182,\"1f617\":118,\"1f618\":117,\"1f619\":121,\"1f61a\":120,\"1f61b\":124,\"1f61c\":125,\"1f61d\":127,\"1f61e\":184,\"1f61f\":166,\"1f620\":191,\"1f621\":190,\"1f622\":179,\"1f623\":183,\"1f624\":189,\"1f625\":178,\"1f626\":174,\"1f627\":175,\"1f628\":176,\"1f629\":186,\"1f62a\":145,\"1f62b\":187,\"1f62c\":141,\"1f62d\":180,\"1f62e\":169,\"1f62f\":170,\"1f630\":177,\"1f631\":181,\"1f632\":171,\"1f633\":172,\"1f634\":147,\"1f635\":157,\"1f636\":137,\"1f637\":148,\"1f638\":1106,\"1f639\":1107,\"1f63a\":1105,\"1f63b\":1108,\"1f63c\":1109,\"1f63d\":1110,\"1f63e\":1113,\"1f63f\":1112,\"1f640\":1111,\"1f641\":167,\"1f642\":19,\"1f643\":110,\"1f644\":140,\"1f645-200d-2640\":1388,\"1f645-200d-2642\":1387,\"1f645\":1386,\"1f646-200d-2640\":1391,\"1f646-200d-2642\":1390,\"1f646\":1389,\"1f647-200d-2640\":1403,\"1f647-200d-2642\":1402,\"1f647\":1401,\"1f648\":1114,\"1f649\":1115,\"1f64a\":1116,\"1f64b-200d-2640\":1397,\"1f64b-200d-2642\":1396,\"1f64b\":1395,\"1f64c\":1329,\"1f64d-200d-2640\":1382,\"1f64d-200d-2642\":1381,\"1f64d\":1380,\"1f64e-200d-2640\":1385,\"1f64e-200d-2642\":1384,\"1f64e\":1383,\"1f64f\":1333,\"1f680\":4906,\"1f681\":4901,\"1f682\":4838,\"1f683\":4839,\"1f684\":4840,\"1f685\":4841,\"1f686\":4842,\"1f687\":4843,\"1f688\":4844,\"1f689\":4845,\"1f68a\":4846,\"1f68b\":4849,\"1f68c\":4850,\"1f68d\":4851,\"1f68e\":4852,\"1f68f\":4877,\"1f690\":4853,\"1f691\":4854,\"1f692\":4855,\"1f693\":4856,\"1f694\":4857,\"1f695\":4858,\"1f696\":4859,\"1f697\":4860,\"1f698\":4861,\"1f699\":4862,\"1f69a\":4864,\"1f69b\":4865,\"1f69c\":4866,\"1f69d\":4847,\"1f69e\":4848,\"1f69f\":4902,\"1f6a0\":4903,\"1f6a1\":4904,\"1f6a2\":4894,\"1f6a3-200d-2640\":1571,\"1f6a3-200d-2642\":1570,\"1f6a3\":1569,\"1f6a4\":4890,\"1f6a5\":4883,\"1f6a6\":4884,\"1f6a7\":4886,\"1f6a8\":4882,\"1f6a9\":71543,\"1f6aa\":61292,\"1f6ab\":62659,\"1f6ac\":61316,\"1f6ad\":62661,\"1f6ae\":62644,\"1f6af\":62662,\"1f6b0\":62645,\"1f6b1\":62663,\"1f6b2\":4873,\"1f6b3\":62660,\"1f6b4-200d-2640\":1583,\"1f6b4-200d-2642\":1582,\"1f6b4\":1581,\"1f6b5-200d-2640\":1586,\"1f6b5-200d-2642\":1585,\"1f6b5\":1584,\"1f6b6-200d-2640\":1528,\"1f6b6-200d-2642\":1527,\"1f6b6\":1526,\"1f6b7\":62664,\"1f6b8\":62657,\"1f6b9\":62647,\"1f6ba\":62648,\"1f6bb\":62649,\"1f6bc\":62650,\"1f6bd\":61299,\"1f6be\":62651,\"1f6bf\":61301,\"1f6c0\":1605,\"1f6c1\":61302,\"1f6c2\":62652,\"1f6c3\":62653,\"1f6c4\":62654,\"1f6c5\":62655,\"1f6cb\":61297,\"1f6cc\":1606,\"1f6cd\":61095,\"1f6ce\":4908,\"1f6cf\":61296,\"1f6d0\":62690,\"1f6d1\":4885,\"1f6d2\":61315,\"1f6d5\":4818,\"1f6d6\":4795,\"1f6d7\":61293,\"1f6e0\":61259,\"1f6e1\":61265,\"1f6e2\":4880,\"1f6e3\":4878,\"1f6e4\":4879,\"1f6e5\":4893,\"1f6e9\":4896,\"1f6eb\":4897,\"1f6ec\":4898,\"1f6f0\":4905,\"1f6f3\":4891,\"1f6f4\":4874,\"1f6f5\":4869,\"1f6f6\":4889,\"1f6f7\":51040,\"1f6f8\":4907,\"1f6f9\":4875,\"1f6fa\":4872,\"1f6fb\":4863,\"1f6fc\":4876,\"1f7e0\":62830,\"1f7e1\":62831,\"1f7e2\":62832,\"1f7e3\":62834,\"1f7e4\":62835,\"1f7e5\":62838,\"1f7e6\":62842,\"1f7e7\":62839,\"1f7e8\":62840,\"1f7e9\":62841,\"1f7ea\":62843,\"1f7eb\":62844,\"1f90c\":1309,\"1f90d\":1137,\"1f90e\":1135,\"1f90f\":1310,\"1f910\":133,\"1f911\":128,\"1f912\":149,\"1f913\":163,\"1f914\":132,\"1f915\":150,\"1f916\":1104,\"1f917\":129,\"1f918\":1314,\"1f919\":1315,\"1f91a\":1304,\"1f91b\":1326,\"1f91c\":1327,\"1f91d\":1332,\"1f91e\":1312,\"1f91f\":1313,\"1f920\":159,\"1f921\":198,\"1f922\":151,\"1f923\":17,\"1f924\":146,\"1f925\":142,\"1f926-200d-2640\":1406,\"1f926-200d-2642\":1405,\"1f926\":1404,\"1f927\":153,\"1f928\":134,\"1f929\":116,\"1f92a\":126,\"1f92b\":131,\"1f92c\":192,\"1f92d\":130,\"1f92e\":152,\"1f92f\":158,\"1f930\":1484,\"1f931\":1485,\"1f932\":1331,\"1f933\":1336,\"1f934\":1471,\"1f935-200d-2640\":1480,\"1f935-200d-2642\":1479,\"1f935\":1478,\"1f936\":1491,\"1f937-200d-2640\":1409,\"1f937-200d-2642\":1408,\"1f937\":1407,\"1f938-200d-2640\":1589,\"1f938-200d-2642\":1588,\"1f938\":1587,\"1f939-200d-2640\":1601,\"1f939-200d-2642\":1600,\"1f939\":1599,\"1f93a\":1559,\"1f93c-200d-2640\":1592,\"1f93c-200d-2642\":1591,\"1f93c\":1590,\"1f93d-200d-2640\":1595,\"1f93d-200d-2642\":1594,\"1f93d\":1593,\"1f93e-200d-2640\":1598,\"1f93e-200d-2642\":1597,\"1f93e\":1596,\"1f93f\":51037,\"1f940\":2626,\"1f941\":61142,\"1f942\":3760,\"1f943\":3761,\"1f944\":3770,\"1f945\":51033,\"1f947\":51012,\"1f948\":51013,\"1f949\":51014,\"1f94a\":51031,\"1f94b\":51032,\"1f94c\":51041,\"1f94d\":51028,\"1f94e\":51017,\"1f94f\":51023,\"1f950\":3679,\"1f951\":3663,\"1f952\":3670,\"1f953\":3690,\"1f954\":3665,\"1f955\":3666,\"1f956\":3680,\"1f957\":3707,\"1f958\":3703,\"1f959\":3699,\"1f95a\":3701,\"1f95b\":3749,\"1f95c\":3676,\"1f95d\":3659,\"1f95e\":3684,\"1f95f\":3726,\"1f960\":3727,\"1f961\":3728,\"1f962\":3767,\"1f963\":3706,\"1f964\":3762,\"1f965\":3662,\"1f966\":3672,\"1f967\":3742,\"1f968\":3682,\"1f969\":3689,\"1f96a\":3695,\"1f96b\":3711,\"1f96c\":3671,\"1f96d\":3651,\"1f96e\":3724,\"1f96f\":3683,\"1f970\":114,\"1f971\":188,\"1f972\":122,\"1f973\":160,\"1f974\":156,\"1f975\":154,\"1f976\":155,\"1f977\":1467,\"1f978\":161,\"1f97a\":173,\"1f97b\":61086,\"1f97c\":61075,\"1f97d\":61074,\"1f97e\":61100,\"1f97f\":61101,\"1f980\":3729,\"1f981\":2519,\"1f982\":2616,\"1f983\":2568,\"1f984\":2525,\"1f985\":2577,\"1f986\":2578,\"1f987\":2557,\"1f988\":2602,\"1f989\":2580,\"1f98a\":2514,\"1f98b\":2606,\"1f98c\":2527,\"1f98d\":2506,\"1f98e\":2589,\"1f98f\":2546,\"1f990\":3731,\"1f991\":3732,\"1f992\":2543,\"1f993\":2526,\"1f994\":2556,\"1f995\":2593,\"1f996\":2594,\"1f997\":2612,\"1f998\":2565,\"1f999\":2542,\"1f99a\":2584,\"1f99b\":2547,\"1f99c\":2585,\"1f99d\":2515,\"1f99e\":3730,\"1f99f\":2617,\"1f9a0\":2620,\"1f9a1\":2566,\"1f9a2\":2579,\"1f9a3\":2545,\"1f9a4\":2581,\"1f9a5\":2562,\"1f9a6\":2563,\"1f9a7\":2507,\"1f9a8\":2564,\"1f9a9\":2583,\"1f9aa\":3733,\"1f9ab\":2555,\"1f9ac\":2528,\"1f9ad\":2598,\"1f9ae\":2510,\"1f9af\":61273,\"1f9b4\":1349,\"1f9b5\":1340,\"1f9b6\":1341,\"1f9b7\":1348,\"1f9b8-200d-2640\":1495,\"1f9b8-200d-2642\":1494,\"1f9b8\":1493,\"1f9b9-200d-2640\":1498,\"1f9b9-200d-2642\":1497,\"1f9b9\":1496,\"1f9ba\":61076,\"1f9bb\":1343,\"1f9bc\":4871,\"1f9bd\":4870,\"1f9be\":1338,\"1f9bf\":1339,\"1f9c0\":3686,\"1f9c1\":3741,\"1f9c2\":3710,\"1f9c3\":3764,\"1f9c4\":3673,\"1f9c5\":3674,\"1f9c6\":3700,\"1f9c7\":3685,\"1f9c8\":3709,\"1f9c9\":3765,\"1f9ca\":3766,\"1f9cb\":3763,\"1f9cd-200d-2640\":1531,\"1f9cd-200d-2642\":1530,\"1f9cd\":1529,\"1f9ce-200d-2640\":1534,\"1f9ce-200d-2642\":1533,\"1f9ce\":1532,\"1f9cf-200d-2640\":1400,\"1f9cf-200d-2642\":1399,\"1f9cf\":1398,\"1f9d0\":164,\"1f9d1-200d-1f33e\":1422,\"1f9d1-200d-1f373\":1425,\"1f9d1-200d-1f37c\":1488,\"1f9d1-200d-1f384\":1492,\"1f9d1-200d-1f393\":1413,\"1f9d1-200d-1f3a4\":1443,\"1f9d1-200d-1f3a8\":1446,\"1f9d1-200d-1f3eb\":1416,\"1f9d1-200d-1f3ed\":1431,\"1f9d1-200d-1f4bb\":1440,\"1f9d1-200d-1f4bc\":1434,\"1f9d1-200d-1f527\":1428,\"1f9d1-200d-1f52c\":1437,\"1f9d1-200d-1f680\":1452,\"1f9d1-200d-1f692\":1455,\"1f9d1-200d-1f91d-200d-1f9d1\":1607,\"1f9d1-200d-1f9af\":1535,\"1f9d1-200d-1f9b0\":1368,\"1f9d1-200d-1f9b1\":1370,\"1f9d1-200d-1f9b2\":1374,\"1f9d1-200d-1f9b3\":1372,\"1f9d1-200d-1f9bc\":1538,\"1f9d1-200d-1f9bd\":1541,\"1f9d1-200d-2695\":1410,\"1f9d1-200d-2696\":1419,\"1f9d1-200d-2708\":1449,\"1f9d1\":1358,\"1f9d2\":1355,\"1f9d3\":1377,\"1f9d4\":1361,\"1f9d5\":1477,\"1f9d6-200d-2640\":1555,\"1f9d6-200d-2642\":1554,\"1f9d6\":1553,\"1f9d7-200d-2640\":1558,\"1f9d7-200d-2642\":1557,\"1f9d7\":1556,\"1f9d8-200d-2640\":1604,\"1f9d8-200d-2642\":1603,\"1f9d8\":1602,\"1f9d9-200d-2640\":1501,\"1f9d9-200d-2642\":1500,\"1f9d9\":1499,\"1f9da-200d-2640\":1504,\"1f9da-200d-2642\":1503,\"1f9da\":1502,\"1f9db-200d-2640\":1507,\"1f9db-200d-2642\":1506,\"1f9db\":1505,\"1f9dc-200d-2640\":1510,\"1f9dc-200d-2642\":1509,\"1f9dc\":1508,\"1f9dd-200d-2640\":1513,\"1f9dd-200d-2642\":1512,\"1f9dd\":1511,\"1f9de-200d-2640\":1516,\"1f9de-200d-2642\":1515,\"1f9de\":1514,\"1f9df-200d-2640\":1519,\"1f9df-200d-2642\":1518,\"1f9df\":1517,\"1f9e0\":1345,\"1f9e1\":1130,\"1f9e2\":61110,\"1f9e3\":61080,\"1f9e4\":61081,\"1f9e5\":61082,\"1f9e6\":61083,\"1f9e7\":51003,\"1f9e8\":5992,\"1f9e9\":51053,\"1f9ea\":61281,\"1f9eb\":61282,\"1f9ec\":61283,\"1f9ed\":4779,\"1f9ee\":61162,\"1f9ef\":61314,\"1f9f0\":61277,\"1f9f1\":4792,\"1f9f2\":61278,\"1f9f3\":4909,\"1f9f4\":61305,\"1f9f5\":51068,\"1f9f6\":51070,\"1f9f7\":61306,\"1f9f8\":51054,\"1f9f9\":61307,\"1f9fa\":61308,\"1f9fb\":61309,\"1f9fc\":61311,\"1f9fd\":61313,\"1f9fe\":61204,\"1f9ff\":51048,\"1fa70\":61104,\"1fa71\":61087,\"1fa72\":61088,\"1fa73\":61089,\"1fa74\":61097,\"1fa78\":61288,\"1fa79\":61290,\"1fa7a\":61291,\"1fa80\":51043,\"1fa81\":51044,\"1fa82\":4899,\"1fa83\":61263,\"1fa84\":51047,\"1fa85\":51055,\"1fa86\":51056,\"1fa90\":4957,\"1fa91\":61298,\"1fa92\":61304,\"1fa93\":61256,\"1fa94\":61178,\"1fa95\":61141,\"1fa96\":61111,\"1fa97\":61136,\"1fa98\":61143,\"1fa99\":61197,\"1fa9a\":61266,\"1fa9b\":61268,\"1fa9c\":61279,\"1fa9d\":61276,\"1fa9e\":61294,\"1fa9f\":61295,\"1faa0\":61300,\"1faa1\":51069,\"1faa2\":51071,\"1faa3\":61310,\"1faa4\":61303,\"1faa5\":61312,\"1faa6\":61318,\"1faa7\":61321,\"1faa8\":4793,\"1fab0\":2618,\"1fab1\":2619,\"1fab2\":2610,\"1fab3\":2613,\"1fab4\":2632,\"1fab5\":4794,\"1fab6\":2582,\"1fac0\":1346,\"1fac1\":1347,\"1fac2\":1648,\"1fad0\":3658,\"1fad1\":3669,\"1fad2\":3661,\"1fad3\":3681,\"1fad4\":3698,\"1fad5\":3705,\"1fad6\":3751,\"203c\":62747,\"21a9\":62679,\"21aa\":62680,\"231a\":4912,\"231b\":4910,\"23cf\":62732,\"23e9\":62719,\"23ea\":62723,\"23eb\":62726,\"23ec\":62728,\"23ed\":62720,\"23ee\":62724,\"23ef\":62721,\"23f0\":4913,\"23f1\":4914,\"23f2\":4915,\"23f3\":4911,\"23f8\":62729,\"23f9\":62730,\"23fa\":62731,\"24c2\":62803,\"25aa\":62851,\"25ab\":62852,\"25b6\":62718,\"25c0\":62722,\"25fb\":62848,\"25fc\":62847,\"25fd\":62850,\"25fe\":62849,\"260e\":61146,\"261d\":1321,\"262a\":62698,\"262e\":62699,\"262f\":62695,\"263a\":119,\"264a\":62704,\"264b\":62705,\"264c\":62706,\"264d\":62707,\"264e\":62708,\"264f\":62709,\"265f\":51061,\"267b\":62757,\"267e\":62746,\"267f\":62646,\"269b\":62691,\"269c\":62758,\"26a0\":62656,\"26a1\":4980,\"26a7\":62741,\"26aa\":62837,\"26ab\":62836,\"26b0\":61317,\"26b1\":61319,\"26bd\":51015,\"26be\":51016,\"26c4\":4983,\"26c5\":4963,\"26c8\":4964,\"26ce\":62714,\"26cf\":61257,\"26d1\":61112,\"26d3\":61275,\"26d4\":62658,\"26e9\":4820,\"26ea\":4816,\"26f0\":4781,\"26f1\":4979,\"26f2\":4822,\"26f3\":51034,\"26f4\":4892,\"26f5\":4888,\"26f7\":1561,\"26f8\":51035,\"26f9-200d-2640\":1577,\"26f9-200d-2642\":1576,\"26f9\":1575,\"26fa\":4823,\"26fd\":4881,\"270a\":1324,\"270b\":1306,\"270c\":1311,\"270d\":1334,\"270f\":61219,\"271d\":62696,\"274c\":62766,\"274e\":62767,\"27a1\":62671,\"27b0\":62768,\"27bf\":62769,\"2b05\":62675,\"2b06\":62669,\"2b07\":62673,\"2b1b\":62845,\"2b1c\":62846,\"2b50\":4958,\"2b55\":62762,\"303d\":62770,\"1f385-1f3fb\":0,\"1f385-1f3fc\":0,\"1f385-1f3fd\":0,\"1f385-1f3fe\":0,\"1f385-1f3ff\":0,\"1f3c2-1f3fb\":0,\"1f3c2-1f3fc\":0,\"1f3c2-1f3fd\":0,\"1f3c2-1f3fe\":0,\"1f3c2-1f3ff\":0,\"1f3c3-1f3fb-200d-2640\":0,\"1f3c3-1f3fc-200d-2640\":0,\"1f3c3-1f3fd-200d-2640\":0,\"1f3c3-1f3fe-200d-2640\":0,\"1f3c3-1f3ff-200d-2640\":0,\"1f3c3-1f3fb-200d-2642\":0,\"1f3c3-1f3fc-200d-2642\":0,\"1f3c3-1f3fd-200d-2642\":0,\"1f3c3-1f3fe-200d-2642\":0,\"1f3c3-1f3ff-200d-2642\":0,\"1f3c3-1f3fb\":0,\"1f3c3-1f3fc\":0,\"1f3c3-1f3fd\":0,\"1f3c3-1f3fe\":0,\"1f3c3-1f3ff\":0,\"1f3c4-1f3fb-200d-2640\":0,\"1f3c4-1f3fc-200d-2640\":0,\"1f3c4-1f3fd-200d-2640\":0,\"1f3c4-1f3fe-200d-2640\":0,\"1f3c4-1f3ff-200d-2640\":0,\"1f3c4-1f3fb-200d-2642\":0,\"1f3c4-1f3fc-200d-2642\":0,\"1f3c4-1f3fd-200d-2642\":0,\"1f3c4-1f3fe-200d-2642\":0,\"1f3c4-1f3ff-200d-2642\":0,\"1f3c4-1f3fb\":0,\"1f3c4-1f3fc\":0,\"1f3c4-1f3fd\":0,\"1f3c4-1f3fe\":0,\"1f3c4-1f3ff\":0,\"1f3c7-1f3fb\":0,\"1f3c7-1f3fc\":0,\"1f3c7-1f3fd\":0,\"1f3c7-1f3fe\":0,\"1f3c7-1f3ff\":0,\"1f3ca-1f3fb-200d-2640\":0,\"1f3ca-1f3fc-200d-2640\":0,\"1f3ca-1f3fd-200d-2640\":0,\"1f3ca-1f3fe-200d-2640\":0,\"1f3ca-1f3ff-200d-2640\":0,\"1f3ca-1f3fb-200d-2642\":0,\"1f3ca-1f3fc-200d-2642\":0,\"1f3ca-1f3fd-200d-2642\":0,\"1f3ca-1f3fe-200d-2642\":0,\"1f3ca-1f3ff-200d-2642\":0,\"1f3ca-1f3fb\":0,\"1f3ca-1f3fc\":0,\"1f3ca-1f3fd\":0,\"1f3ca-1f3fe\":0,\"1f3ca-1f3ff\":0,\"1f3cb-1f3fb-200d-2640\":0,\"1f3cb-1f3fc-200d-2640\":0,\"1f3cb-1f3fd-200d-2640\":0,\"1f3cb-1f3fe-200d-2640\":0,\"1f3cb-1f3ff-200d-2640\":0,\"1f3cb-1f3fb-200d-2642\":0,\"1f3cb-1f3fc-200d-2642\":0,\"1f3cb-1f3fd-200d-2642\":0,\"1f3cb-1f3fe-200d-2642\":0,\"1f3cb-1f3ff-200d-2642\":0,\"1f3cb-1f3fb\":0,\"1f3cb-1f3fc\":0,\"1f3cb-1f3fd\":0,\"1f3cb-1f3fe\":0,\"1f3cb-1f3ff\":0,\"1f3cc-1f3fb-200d-2640\":0,\"1f3cc-1f3fc-200d-2640\":0,\"1f3cc-1f3fd-200d-2640\":0,\"1f3cc-1f3fe-200d-2640\":0,\"1f3cc-1f3ff-200d-2640\":0,\"1f3cc-1f3fb-200d-2642\":0,\"1f3cc-1f3fc-200d-2642\":0,\"1f3cc-1f3fd-200d-2642\":0,\"1f3cc-1f3fe-200d-2642\":0,\"1f3cc-1f3ff-200d-2642\":0,\"1f3cc-1f3fb\":0,\"1f3cc-1f3fc\":0,\"1f3cc-1f3fd\":0,\"1f3cc-1f3fe\":0,\"1f3cc-1f3ff\":0,\"1f442-1f3fb\":0,\"1f442-1f3fc\":0,\"1f442-1f3fd\":0,\"1f442-1f3fe\":0,\"1f442-1f3ff\":0,\"1f443-1f3fb\":0,\"1f443-1f3fc\":0,\"1f443-1f3fd\":0,\"1f443-1f3fe\":0,\"1f443-1f3ff\":0,\"1f446-1f3fb\":0,\"1f446-1f3fc\":0,\"1f446-1f3fd\":0,\"1f446-1f3fe\":0,\"1f446-1f3ff\":0,\"1f447-1f3fb\":0,\"1f447-1f3fc\":0,\"1f447-1f3fd\":0,\"1f447-1f3fe\":0,\"1f447-1f3ff\":0,\"1f448-1f3fb\":0,\"1f448-1f3fc\":0,\"1f448-1f3fd\":0,\"1f448-1f3fe\":0,\"1f448-1f3ff\":0,\"1f449-1f3fb\":0,\"1f449-1f3fc\":0,\"1f449-1f3fd\":0,\"1f449-1f3fe\":0,\"1f449-1f3ff\":0,\"1f44a-1f3fb\":0,\"1f44a-1f3fc\":0,\"1f44a-1f3fd\":0,\"1f44a-1f3fe\":0,\"1f44a-1f3ff\":0,\"1f44b-1f3fb\":0,\"1f44b-1f3fc\":0,\"1f44b-1f3fd\":0,\"1f44b-1f3fe\":0,\"1f44b-1f3ff\":0,\"1f44c-1f3fb\":0,\"1f44c-1f3fc\":0,\"1f44c-1f3fd\":0,\"1f44c-1f3fe\":0,\"1f44c-1f3ff\":0,\"1f44d-1f3fb\":0,\"1f44d-1f3fc\":0,\"1f44d-1f3fd\":0,\"1f44d-1f3fe\":0,\"1f44d-1f3ff\":0,\"1f44e-1f3fb\":0,\"1f44e-1f3fc\":0,\"1f44e-1f3fd\":0,\"1f44e-1f3fe\":0,\"1f44e-1f3ff\":0,\"1f44f-1f3fb\":0,\"1f44f-1f3fc\":0,\"1f44f-1f3fd\":0,\"1f44f-1f3fe\":0,\"1f44f-1f3ff\":0,\"1f450-1f3fb\":0,\"1f450-1f3fc\":0,\"1f450-1f3fd\":0,\"1f450-1f3fe\":0,\"1f450-1f3ff\":0,\"1f466-1f3fb\":0,\"1f466-1f3fc\":0,\"1f466-1f3fd\":0,\"1f466-1f3fe\":0,\"1f466-1f3ff\":0,\"1f467-1f3fb\":0,\"1f467-1f3fc\":0,\"1f467-1f3fd\":0,\"1f467-1f3fe\":0,\"1f467-1f3ff\":0,\"1f468-1f3fb-200d-1f33e\":0,\"1f468-1f3fc-200d-1f33e\":0,\"1f468-1f3fd-200d-1f33e\":0,\"1f468-1f3fe-200d-1f33e\":0,\"1f468-1f3ff-200d-1f33e\":0,\"1f468-1f3fb-200d-1f373\":0,\"1f468-1f3fc-200d-1f373\":0,\"1f468-1f3fd-200d-1f373\":0,\"1f468-1f3fe-200d-1f373\":0,\"1f468-1f3ff-200d-1f373\":0,\"1f468-1f3fb-200d-1f37c\":0,\"1f468-1f3fc-200d-1f37c\":0,\"1f468-1f3fd-200d-1f37c\":0,\"1f468-1f3fe-200d-1f37c\":0,\"1f468-1f3ff-200d-1f37c\":0,\"1f468-1f3fb-200d-1f393\":0,\"1f468-1f3fc-200d-1f393\":0,\"1f468-1f3fd-200d-1f393\":0,\"1f468-1f3fe-200d-1f393\":0,\"1f468-1f3ff-200d-1f393\":0,\"1f468-1f3fb-200d-1f3a4\":0,\"1f468-1f3fc-200d-1f3a4\":0,\"1f468-1f3fd-200d-1f3a4\":0,\"1f468-1f3fe-200d-1f3a4\":0,\"1f468-1f3ff-200d-1f3a4\":0,\"1f468-1f3fb-200d-1f3a8\":0,\"1f468-1f3fc-200d-1f3a8\":0,\"1f468-1f3fd-200d-1f3a8\":0,\"1f468-1f3fe-200d-1f3a8\":0,\"1f468-1f3ff-200d-1f3a8\":0,\"1f468-1f3fb-200d-1f3eb\":0,\"1f468-1f3fc-200d-1f3eb\":0,\"1f468-1f3fd-200d-1f3eb\":0,\"1f468-1f3fe-200d-1f3eb\":0,\"1f468-1f3ff-200d-1f3eb\":0,\"1f468-1f3fb-200d-1f3ed\":0,\"1f468-1f3fc-200d-1f3ed\":0,\"1f468-1f3fd-200d-1f3ed\":0,\"1f468-1f3fe-200d-1f3ed\":0,\"1f468-1f3ff-200d-1f3ed\":0,\"1f468-1f3fb-200d-1f4bb\":0,\"1f468-1f3fc-200d-1f4bb\":0,\"1f468-1f3fd-200d-1f4bb\":0,\"1f468-1f3fe-200d-1f4bb\":0,\"1f468-1f3ff-200d-1f4bb\":0,\"1f468-1f3fb-200d-1f4bc\":0,\"1f468-1f3fc-200d-1f4bc\":0,\"1f468-1f3fd-200d-1f4bc\":0,\"1f468-1f3fe-200d-1f4bc\":0,\"1f468-1f3ff-200d-1f4bc\":0,\"1f468-1f3fb-200d-1f527\":0,\"1f468-1f3fc-200d-1f527\":0,\"1f468-1f3fd-200d-1f527\":0,\"1f468-1f3fe-200d-1f527\":0,\"1f468-1f3ff-200d-1f527\":0,\"1f468-1f3fb-200d-1f52c\":0,\"1f468-1f3fc-200d-1f52c\":0,\"1f468-1f3fd-200d-1f52c\":0,\"1f468-1f3fe-200d-1f52c\":0,\"1f468-1f3ff-200d-1f52c\":0,\"1f468-1f3fb-200d-1f680\":0,\"1f468-1f3fc-200d-1f680\":0,\"1f468-1f3fd-200d-1f680\":0,\"1f468-1f3fe-200d-1f680\":0,\"1f468-1f3ff-200d-1f680\":0,\"1f468-1f3fb-200d-1f692\":0,\"1f468-1f3fc-200d-1f692\":0,\"1f468-1f3fd-200d-1f692\":0,\"1f468-1f3fe-200d-1f692\":0,\"1f468-1f3ff-200d-1f692\":0,\"1f468-1f3fb-200d-1f9af\":0,\"1f468-1f3fc-200d-1f9af\":0,\"1f468-1f3fd-200d-1f9af\":0,\"1f468-1f3fe-200d-1f9af\":0,\"1f468-1f3ff-200d-1f9af\":0,\"1f468-1f3fb-200d-1f9b0\":0,\"1f468-1f3fc-200d-1f9b0\":0,\"1f468-1f3fd-200d-1f9b0\":0,\"1f468-1f3fe-200d-1f9b0\":0,\"1f468-1f3ff-200d-1f9b0\":0,\"1f468-1f3fb-200d-1f9b1\":0,\"1f468-1f3fc-200d-1f9b1\":0,\"1f468-1f3fd-200d-1f9b1\":0,\"1f468-1f3fe-200d-1f9b1\":0,\"1f468-1f3ff-200d-1f9b1\":0,\"1f468-1f3fb-200d-1f9b2\":0,\"1f468-1f3fc-200d-1f9b2\":0,\"1f468-1f3fd-200d-1f9b2\":0,\"1f468-1f3fe-200d-1f9b2\":0,\"1f468-1f3ff-200d-1f9b2\":0,\"1f468-1f3fb-200d-1f9b3\":0,\"1f468-1f3fc-200d-1f9b3\":0,\"1f468-1f3fd-200d-1f9b3\":0,\"1f468-1f3fe-200d-1f9b3\":0,\"1f468-1f3ff-200d-1f9b3\":0,\"1f468-1f3fb-200d-1f9bc\":0,\"1f468-1f3fc-200d-1f9bc\":0,\"1f468-1f3fd-200d-1f9bc\":0,\"1f468-1f3fe-200d-1f9bc\":0,\"1f468-1f3ff-200d-1f9bc\":0,\"1f468-1f3fb-200d-1f9bd\":0,\"1f468-1f3fc-200d-1f9bd\":0,\"1f468-1f3fd-200d-1f9bd\":0,\"1f468-1f3fe-200d-1f9bd\":0,\"1f468-1f3ff-200d-1f9bd\":0,\"1f468-1f3fb-200d-2695\":0,\"1f468-1f3fc-200d-2695\":0,\"1f468-1f3fd-200d-2695\":0,\"1f468-1f3fe-200d-2695\":0,\"1f468-1f3ff-200d-2695\":0,\"1f468-1f3fb-200d-2696\":0,\"1f468-1f3fc-200d-2696\":0,\"1f468-1f3fd-200d-2696\":0,\"1f468-1f3fe-200d-2696\":0,\"1f468-1f3ff-200d-2696\":0,\"1f468-1f3fb-200d-2708\":0,\"1f468-1f3fc-200d-2708\":0,\"1f468-1f3fd-200d-2708\":0,\"1f468-1f3fe-200d-2708\":0,\"1f468-1f3ff-200d-2708\":0,\"1f468-1f3fb\":0,\"1f468-1f3fc\":0,\"1f468-1f3fd\":0,\"1f468-1f3fe\":0,\"1f468-1f3ff\":0,\"1f469-1f3fb-200d-1f33e\":0,\"1f469-1f3fc-200d-1f33e\":0,\"1f469-1f3fd-200d-1f33e\":0,\"1f469-1f3fe-200d-1f33e\":0,\"1f469-1f3ff-200d-1f33e\":0,\"1f469-1f3fb-200d-1f373\":0,\"1f469-1f3fc-200d-1f373\":0,\"1f469-1f3fd-200d-1f373\":0,\"1f469-1f3fe-200d-1f373\":0,\"1f469-1f3ff-200d-1f373\":0,\"1f469-1f3fb-200d-1f37c\":0,\"1f469-1f3fc-200d-1f37c\":0,\"1f469-1f3fd-200d-1f37c\":0,\"1f469-1f3fe-200d-1f37c\":0,\"1f469-1f3ff-200d-1f37c\":0,\"1f469-1f3fb-200d-1f393\":0,\"1f469-1f3fc-200d-1f393\":0,\"1f469-1f3fd-200d-1f393\":0,\"1f469-1f3fe-200d-1f393\":0,\"1f469-1f3ff-200d-1f393\":0,\"1f469-1f3fb-200d-1f3a4\":0,\"1f469-1f3fc-200d-1f3a4\":0,\"1f469-1f3fd-200d-1f3a4\":0,\"1f469-1f3fe-200d-1f3a4\":0,\"1f469-1f3ff-200d-1f3a4\":0,\"1f469-1f3fb-200d-1f3a8\":0,\"1f469-1f3fc-200d-1f3a8\":0,\"1f469-1f3fd-200d-1f3a8\":0,\"1f469-1f3fe-200d-1f3a8\":0,\"1f469-1f3ff-200d-1f3a8\":0,\"1f469-1f3fb-200d-1f3eb\":0,\"1f469-1f3fc-200d-1f3eb\":0,\"1f469-1f3fd-200d-1f3eb\":0,\"1f469-1f3fe-200d-1f3eb\":0,\"1f469-1f3ff-200d-1f3eb\":0,\"1f469-1f3fb-200d-1f3ed\":0,\"1f469-1f3fc-200d-1f3ed\":0,\"1f469-1f3fd-200d-1f3ed\":0,\"1f469-1f3fe-200d-1f3ed\":0,\"1f469-1f3ff-200d-1f3ed\":0,\"1f469-1f3fb-200d-1f4bb\":0,\"1f469-1f3fc-200d-1f4bb\":0,\"1f469-1f3fd-200d-1f4bb\":0,\"1f469-1f3fe-200d-1f4bb\":0,\"1f469-1f3ff-200d-1f4bb\":0,\"1f469-1f3fb-200d-1f4bc\":0,\"1f469-1f3fc-200d-1f4bc\":0,\"1f469-1f3fd-200d-1f4bc\":0,\"1f469-1f3fe-200d-1f4bc\":0,\"1f469-1f3ff-200d-1f4bc\":0,\"1f469-1f3fb-200d-1f527\":0,\"1f469-1f3fc-200d-1f527\":0,\"1f469-1f3fd-200d-1f527\":0,\"1f469-1f3fe-200d-1f527\":0,\"1f469-1f3ff-200d-1f527\":0,\"1f469-1f3fb-200d-1f52c\":0,\"1f469-1f3fc-200d-1f52c\":0,\"1f469-1f3fd-200d-1f52c\":0,\"1f469-1f3fe-200d-1f52c\":0,\"1f469-1f3ff-200d-1f52c\":0,\"1f469-1f3fb-200d-1f680\":0,\"1f469-1f3fc-200d-1f680\":0,\"1f469-1f3fd-200d-1f680\":0,\"1f469-1f3fe-200d-1f680\":0,\"1f469-1f3ff-200d-1f680\":0,\"1f469-1f3fb-200d-1f692\":0,\"1f469-1f3fc-200d-1f692\":0,\"1f469-1f3fd-200d-1f692\":0,\"1f469-1f3fe-200d-1f692\":0,\"1f469-1f3ff-200d-1f692\":0,\"1f469-1f3fb-200d-1f9af\":0,\"1f469-1f3fc-200d-1f9af\":0,\"1f469-1f3fd-200d-1f9af\":0,\"1f469-1f3fe-200d-1f9af\":0,\"1f469-1f3ff-200d-1f9af\":0,\"1f469-1f3fb-200d-1f9b0\":0,\"1f469-1f3fc-200d-1f9b0\":0,\"1f469-1f3fd-200d-1f9b0\":0,\"1f469-1f3fe-200d-1f9b0\":0,\"1f469-1f3ff-200d-1f9b0\":0,\"1f469-1f3fb-200d-1f9b1\":0,\"1f469-1f3fc-200d-1f9b1\":0,\"1f469-1f3fd-200d-1f9b1\":0,\"1f469-1f3fe-200d-1f9b1\":0,\"1f469-1f3ff-200d-1f9b1\":0,\"1f469-1f3fb-200d-1f9b2\":0,\"1f469-1f3fc-200d-1f9b2\":0,\"1f469-1f3fd-200d-1f9b2\":0,\"1f469-1f3fe-200d-1f9b2\":0,\"1f469-1f3ff-200d-1f9b2\":0,\"1f469-1f3fb-200d-1f9b3\":0,\"1f469-1f3fc-200d-1f9b3\":0,\"1f469-1f3fd-200d-1f9b3\":0,\"1f469-1f3fe-200d-1f9b3\":0,\"1f469-1f3ff-200d-1f9b3\":0,\"1f469-1f3fb-200d-1f9bc\":0,\"1f469-1f3fc-200d-1f9bc\":0,\"1f469-1f3fd-200d-1f9bc\":0,\"1f469-1f3fe-200d-1f9bc\":0,\"1f469-1f3ff-200d-1f9bc\":0,\"1f469-1f3fb-200d-1f9bd\":0,\"1f469-1f3fc-200d-1f9bd\":0,\"1f469-1f3fd-200d-1f9bd\":0,\"1f469-1f3fe-200d-1f9bd\":0,\"1f469-1f3ff-200d-1f9bd\":0,\"1f469-1f3fb-200d-2695\":0,\"1f469-1f3fc-200d-2695\":0,\"1f469-1f3fd-200d-2695\":0,\"1f469-1f3fe-200d-2695\":0,\"1f469-1f3ff-200d-2695\":0,\"1f469-1f3fb-200d-2696\":0,\"1f469-1f3fc-200d-2696\":0,\"1f469-1f3fd-200d-2696\":0,\"1f469-1f3fe-200d-2696\":0,\"1f469-1f3ff-200d-2696\":0,\"1f469-1f3fb-200d-2708\":0,\"1f469-1f3fc-200d-2708\":0,\"1f469-1f3fd-200d-2708\":0,\"1f469-1f3fe-200d-2708\":0,\"1f469-1f3ff-200d-2708\":0,\"1f469-1f3fb\":0,\"1f469-1f3fc\":0,\"1f469-1f3fd\":0,\"1f469-1f3fe\":0,\"1f469-1f3ff\":0,\"1f46b-1f3fb\":0,\"1f46b-1f3fc\":0,\"1f46b-1f3fd\":0,\"1f46b-1f3fe\":0,\"1f46b-1f3ff\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe\":0,\"1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd\":0,\"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe\":0,\"1f46c-1f3fb\":0,\"1f46c-1f3fc\":0,\"1f46c-1f3fd\":0,\"1f46c-1f3fe\":0,\"1f46c-1f3ff\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe\":0,\"1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd\":0,\"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe\":0,\"1f46d-1f3fb\":0,\"1f46d-1f3fc\":0,\"1f46d-1f3fd\":0,\"1f46d-1f3fe\":0,\"1f46d-1f3ff\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe\":0,\"1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd\":0,\"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe\":0,\"1f46e-1f3fb-200d-2640\":0,\"1f46e-1f3fc-200d-2640\":0,\"1f46e-1f3fd-200d-2640\":0,\"1f46e-1f3fe-200d-2640\":0,\"1f46e-1f3ff-200d-2640\":0,\"1f46e-1f3fb-200d-2642\":0,\"1f46e-1f3fc-200d-2642\":0,\"1f46e-1f3fd-200d-2642\":0,\"1f46e-1f3fe-200d-2642\":0,\"1f46e-1f3ff-200d-2642\":0,\"1f46e-1f3fb\":0,\"1f46e-1f3fc\":0,\"1f46e-1f3fd\":0,\"1f46e-1f3fe\":0,\"1f46e-1f3ff\":0,\"1f470-1f3fb-200d-2640\":0,\"1f470-1f3fc-200d-2640\":0,\"1f470-1f3fd-200d-2640\":0,\"1f470-1f3fe-200d-2640\":0,\"1f470-1f3ff-200d-2640\":0,\"1f470-1f3fb-200d-2642\":0,\"1f470-1f3fc-200d-2642\":0,\"1f470-1f3fd-200d-2642\":0,\"1f470-1f3fe-200d-2642\":0,\"1f470-1f3ff-200d-2642\":0,\"1f470-1f3fb\":0,\"1f470-1f3fc\":0,\"1f470-1f3fd\":0,\"1f470-1f3fe\":0,\"1f470-1f3ff\":0,\"1f471-1f3fb-200d-2640\":0,\"1f471-1f3fc-200d-2640\":0,\"1f471-1f3fd-200d-2640\":0,\"1f471-1f3fe-200d-2640\":0,\"1f471-1f3ff-200d-2640\":0,\"1f471-1f3fb-200d-2642\":0,\"1f471-1f3fc-200d-2642\":0,\"1f471-1f3fd-200d-2642\":0,\"1f471-1f3fe-200d-2642\":0,\"1f471-1f3ff-200d-2642\":0,\"1f471-1f3fb\":0,\"1f471-1f3fc\":0,\"1f471-1f3fd\":0,\"1f471-1f3fe\":0,\"1f471-1f3ff\":0,\"1f472-1f3fb\":0,\"1f472-1f3fc\":0,\"1f472-1f3fd\":0,\"1f472-1f3fe\":0,\"1f472-1f3ff\":0,\"1f473-1f3fb-200d-2640\":0,\"1f473-1f3fc-200d-2640\":0,\"1f473-1f3fd-200d-2640\":0,\"1f473-1f3fe-200d-2640\":0,\"1f473-1f3ff-200d-2640\":0,\"1f473-1f3fb-200d-2642\":0,\"1f473-1f3fc-200d-2642\":0,\"1f473-1f3fd-200d-2642\":0,\"1f473-1f3fe-200d-2642\":0,\"1f473-1f3ff-200d-2642\":0,\"1f473-1f3fb\":0,\"1f473-1f3fc\":0,\"1f473-1f3fd\":0,\"1f473-1f3fe\":0,\"1f473-1f3ff\":0,\"1f474-1f3fb\":0,\"1f474-1f3fc\":0,\"1f474-1f3fd\":0,\"1f474-1f3fe\":0,\"1f474-1f3ff\":0,\"1f475-1f3fb\":0,\"1f475-1f3fc\":0,\"1f475-1f3fd\":0,\"1f475-1f3fe\":0,\"1f475-1f3ff\":0,\"1f476-1f3fb\":0,\"1f476-1f3fc\":0,\"1f476-1f3fd\":0,\"1f476-1f3fe\":0,\"1f476-1f3ff\":0,\"1f477-1f3fb-200d-2640\":0,\"1f477-1f3fc-200d-2640\":0,\"1f477-1f3fd-200d-2640\":0,\"1f477-1f3fe-200d-2640\":0,\"1f477-1f3ff-200d-2640\":0,\"1f477-1f3fb-200d-2642\":0,\"1f477-1f3fc-200d-2642\":0,\"1f477-1f3fd-200d-2642\":0,\"1f477-1f3fe-200d-2642\":0,\"1f477-1f3ff-200d-2642\":0,\"1f477-1f3fb\":0,\"1f477-1f3fc\":0,\"1f477-1f3fd\":0,\"1f477-1f3fe\":0,\"1f477-1f3ff\":0,\"1f478-1f3fb\":0,\"1f478-1f3fc\":0,\"1f478-1f3fd\":0,\"1f478-1f3fe\":0,\"1f478-1f3ff\":0,\"1f47c-1f3fb\":0,\"1f47c-1f3fc\":0,\"1f47c-1f3fd\":0,\"1f47c-1f3fe\":0,\"1f47c-1f3ff\":0,\"1f481-1f3fb-200d-2640\":0,\"1f481-1f3fc-200d-2640\":0,\"1f481-1f3fd-200d-2640\":0,\"1f481-1f3fe-200d-2640\":0,\"1f481-1f3ff-200d-2640\":0,\"1f481-1f3fb-200d-2642\":0,\"1f481-1f3fc-200d-2642\":0,\"1f481-1f3fd-200d-2642\":0,\"1f481-1f3fe-200d-2642\":0,\"1f481-1f3ff-200d-2642\":0,\"1f481-1f3fb\":0,\"1f481-1f3fc\":0,\"1f481-1f3fd\":0,\"1f481-1f3fe\":0,\"1f481-1f3ff\":0,\"1f482-1f3fb-200d-2640\":0,\"1f482-1f3fc-200d-2640\":0,\"1f482-1f3fd-200d-2640\":0,\"1f482-1f3fe-200d-2640\":0,\"1f482-1f3ff-200d-2640\":0,\"1f482-1f3fb-200d-2642\":0,\"1f482-1f3fc-200d-2642\":0,\"1f482-1f3fd-200d-2642\":0,\"1f482-1f3fe-200d-2642\":0,\"1f482-1f3ff-200d-2642\":0,\"1f482-1f3fb\":0,\"1f482-1f3fc\":0,\"1f482-1f3fd\":0,\"1f482-1f3fe\":0,\"1f482-1f3ff\":0,\"1f483-1f3fb\":0,\"1f483-1f3fc\":0,\"1f483-1f3fd\":0,\"1f483-1f3fe\":0,\"1f483-1f3ff\":0,\"1f485-1f3fb\":0,\"1f485-1f3fc\":0,\"1f485-1f3fd\":0,\"1f485-1f3fe\":0,\"1f485-1f3ff\":0,\"1f486-1f3fb-200d-2640\":0,\"1f486-1f3fc-200d-2640\":0,\"1f486-1f3fd-200d-2640\":0,\"1f486-1f3fe-200d-2640\":0,\"1f486-1f3ff-200d-2640\":0,\"1f486-1f3fb-200d-2642\":0,\"1f486-1f3fc-200d-2642\":0,\"1f486-1f3fd-200d-2642\":0,\"1f486-1f3fe-200d-2642\":0,\"1f486-1f3ff-200d-2642\":0,\"1f486-1f3fb\":0,\"1f486-1f3fc\":0,\"1f486-1f3fd\":0,\"1f486-1f3fe\":0,\"1f486-1f3ff\":0,\"1f487-1f3fb-200d-2640\":0,\"1f487-1f3fc-200d-2640\":0,\"1f487-1f3fd-200d-2640\":0,\"1f487-1f3fe-200d-2640\":0,\"1f487-1f3ff-200d-2640\":0,\"1f487-1f3fb-200d-2642\":0,\"1f487-1f3fc-200d-2642\":0,\"1f487-1f3fd-200d-2642\":0,\"1f487-1f3fe-200d-2642\":0,\"1f487-1f3ff-200d-2642\":0,\"1f487-1f3fb\":0,\"1f487-1f3fc\":0,\"1f487-1f3fd\":0,\"1f487-1f3fe\":0,\"1f487-1f3ff\":0,\"1f4aa-1f3fb\":0,\"1f4aa-1f3fc\":0,\"1f4aa-1f3fd\":0,\"1f4aa-1f3fe\":0,\"1f4aa-1f3ff\":0,\"1f574-1f3fb\":0,\"1f574-1f3fc\":0,\"1f574-1f3fd\":0,\"1f574-1f3fe\":0,\"1f574-1f3ff\":0,\"1f575-1f3fb-200d-2640\":0,\"1f575-1f3fc-200d-2640\":0,\"1f575-1f3fd-200d-2640\":0,\"1f575-1f3fe-200d-2640\":0,\"1f575-1f3ff-200d-2640\":0,\"1f575-1f3fb-200d-2642\":0,\"1f575-1f3fc-200d-2642\":0,\"1f575-1f3fd-200d-2642\":0,\"1f575-1f3fe-200d-2642\":0,\"1f575-1f3ff-200d-2642\":0,\"1f575-1f3fb\":0,\"1f575-1f3fc\":0,\"1f575-1f3fd\":0,\"1f575-1f3fe\":0,\"1f575-1f3ff\":0,\"1f57a-1f3fb\":0,\"1f57a-1f3fc\":0,\"1f57a-1f3fd\":0,\"1f57a-1f3fe\":0,\"1f57a-1f3ff\":0,\"1f590-1f3fb\":0,\"1f590-1f3fc\":0,\"1f590-1f3fd\":0,\"1f590-1f3fe\":0,\"1f590-1f3ff\":0,\"1f595-1f3fb\":0,\"1f595-1f3fc\":0,\"1f595-1f3fd\":0,\"1f595-1f3fe\":0,\"1f595-1f3ff\":0,\"1f596-1f3fb\":0,\"1f596-1f3fc\":0,\"1f596-1f3fd\":0,\"1f596-1f3fe\":0,\"1f596-1f3ff\":0,\"1f645-1f3fb-200d-2640\":0,\"1f645-1f3fc-200d-2640\":0,\"1f645-1f3fd-200d-2640\":0,\"1f645-1f3fe-200d-2640\":0,\"1f645-1f3ff-200d-2640\":0,\"1f645-1f3fb-200d-2642\":0,\"1f645-1f3fc-200d-2642\":0,\"1f645-1f3fd-200d-2642\":0,\"1f645-1f3fe-200d-2642\":0,\"1f645-1f3ff-200d-2642\":0,\"1f645-1f3fb\":0,\"1f645-1f3fc\":0,\"1f645-1f3fd\":0,\"1f645-1f3fe\":0,\"1f645-1f3ff\":0,\"1f646-1f3fb-200d-2640\":0,\"1f646-1f3fc-200d-2640\":0,\"1f646-1f3fd-200d-2640\":0,\"1f646-1f3fe-200d-2640\":0,\"1f646-1f3ff-200d-2640\":0,\"1f646-1f3fb-200d-2642\":0,\"1f646-1f3fc-200d-2642\":0,\"1f646-1f3fd-200d-2642\":0,\"1f646-1f3fe-200d-2642\":0,\"1f646-1f3ff-200d-2642\":0,\"1f646-1f3fb\":0,\"1f646-1f3fc\":0,\"1f646-1f3fd\":0,\"1f646-1f3fe\":0,\"1f646-1f3ff\":0,\"1f647-1f3fb-200d-2640\":0,\"1f647-1f3fc-200d-2640\":0,\"1f647-1f3fd-200d-2640\":0,\"1f647-1f3fe-200d-2640\":0,\"1f647-1f3ff-200d-2640\":0,\"1f647-1f3fb-200d-2642\":0,\"1f647-1f3fc-200d-2642\":0,\"1f647-1f3fd-200d-2642\":0,\"1f647-1f3fe-200d-2642\":0,\"1f647-1f3ff-200d-2642\":0,\"1f647-1f3fb\":0,\"1f647-1f3fc\":0,\"1f647-1f3fd\":0,\"1f647-1f3fe\":0,\"1f647-1f3ff\":0,\"1f64b-1f3fb-200d-2640\":0,\"1f64b-1f3fc-200d-2640\":0,\"1f64b-1f3fd-200d-2640\":0,\"1f64b-1f3fe-200d-2640\":0,\"1f64b-1f3ff-200d-2640\":0,\"1f64b-1f3fb-200d-2642\":0,\"1f64b-1f3fc-200d-2642\":0,\"1f64b-1f3fd-200d-2642\":0,\"1f64b-1f3fe-200d-2642\":0,\"1f64b-1f3ff-200d-2642\":0,\"1f64b-1f3fb\":0,\"1f64b-1f3fc\":0,\"1f64b-1f3fd\":0,\"1f64b-1f3fe\":0,\"1f64b-1f3ff\":0,\"1f64c-1f3fb\":0,\"1f64c-1f3fc\":0,\"1f64c-1f3fd\":0,\"1f64c-1f3fe\":0,\"1f64c-1f3ff\":0,\"1f64d-1f3fb-200d-2640\":0,\"1f64d-1f3fc-200d-2640\":0,\"1f64d-1f3fd-200d-2640\":0,\"1f64d-1f3fe-200d-2640\":0,\"1f64d-1f3ff-200d-2640\":0,\"1f64d-1f3fb-200d-2642\":0,\"1f64d-1f3fc-200d-2642\":0,\"1f64d-1f3fd-200d-2642\":0,\"1f64d-1f3fe-200d-2642\":0,\"1f64d-1f3ff-200d-2642\":0,\"1f64d-1f3fb\":0,\"1f64d-1f3fc\":0,\"1f64d-1f3fd\":0,\"1f64d-1f3fe\":0,\"1f64d-1f3ff\":0,\"1f64e-1f3fb-200d-2640\":0,\"1f64e-1f3fc-200d-2640\":0,\"1f64e-1f3fd-200d-2640\":0,\"1f64e-1f3fe-200d-2640\":0,\"1f64e-1f3ff-200d-2640\":0,\"1f64e-1f3fb-200d-2642\":0,\"1f64e-1f3fc-200d-2642\":0,\"1f64e-1f3fd-200d-2642\":0,\"1f64e-1f3fe-200d-2642\":0,\"1f64e-1f3ff-200d-2642\":0,\"1f64e-1f3fb\":0,\"1f64e-1f3fc\":0,\"1f64e-1f3fd\":0,\"1f64e-1f3fe\":0,\"1f64e-1f3ff\":0,\"1f64f-1f3fb\":0,\"1f64f-1f3fc\":0,\"1f64f-1f3fd\":0,\"1f64f-1f3fe\":0,\"1f64f-1f3ff\":0,\"1f6a3-1f3fb-200d-2640\":0,\"1f6a3-1f3fc-200d-2640\":0,\"1f6a3-1f3fd-200d-2640\":0,\"1f6a3-1f3fe-200d-2640\":0,\"1f6a3-1f3ff-200d-2640\":0,\"1f6a3-1f3fb-200d-2642\":0,\"1f6a3-1f3fc-200d-2642\":0,\"1f6a3-1f3fd-200d-2642\":0,\"1f6a3-1f3fe-200d-2642\":0,\"1f6a3-1f3ff-200d-2642\":0,\"1f6a3-1f3fb\":0,\"1f6a3-1f3fc\":0,\"1f6a3-1f3fd\":0,\"1f6a3-1f3fe\":0,\"1f6a3-1f3ff\":0,\"1f6b4-1f3fb-200d-2640\":0,\"1f6b4-1f3fc-200d-2640\":0,\"1f6b4-1f3fd-200d-2640\":0,\"1f6b4-1f3fe-200d-2640\":0,\"1f6b4-1f3ff-200d-2640\":0,\"1f6b4-1f3fb-200d-2642\":0,\"1f6b4-1f3fc-200d-2642\":0,\"1f6b4-1f3fd-200d-2642\":0,\"1f6b4-1f3fe-200d-2642\":0,\"1f6b4-1f3ff-200d-2642\":0,\"1f6b4-1f3fb\":0,\"1f6b4-1f3fc\":0,\"1f6b4-1f3fd\":0,\"1f6b4-1f3fe\":0,\"1f6b4-1f3ff\":0,\"1f6b5-1f3fb-200d-2640\":0,\"1f6b5-1f3fc-200d-2640\":0,\"1f6b5-1f3fd-200d-2640\":0,\"1f6b5-1f3fe-200d-2640\":0,\"1f6b5-1f3ff-200d-2640\":0,\"1f6b5-1f3fb-200d-2642\":0,\"1f6b5-1f3fc-200d-2642\":0,\"1f6b5-1f3fd-200d-2642\":0,\"1f6b5-1f3fe-200d-2642\":0,\"1f6b5-1f3ff-200d-2642\":0,\"1f6b5-1f3fb\":0,\"1f6b5-1f3fc\":0,\"1f6b5-1f3fd\":0,\"1f6b5-1f3fe\":0,\"1f6b5-1f3ff\":0,\"1f6b6-1f3fb-200d-2640\":0,\"1f6b6-1f3fc-200d-2640\":0,\"1f6b6-1f3fd-200d-2640\":0,\"1f6b6-1f3fe-200d-2640\":0,\"1f6b6-1f3ff-200d-2640\":0,\"1f6b6-1f3fb-200d-2642\":0,\"1f6b6-1f3fc-200d-2642\":0,\"1f6b6-1f3fd-200d-2642\":0,\"1f6b6-1f3fe-200d-2642\":0,\"1f6b6-1f3ff-200d-2642\":0,\"1f6b6-1f3fb\":0,\"1f6b6-1f3fc\":0,\"1f6b6-1f3fd\":0,\"1f6b6-1f3fe\":0,\"1f6b6-1f3ff\":0,\"1f6c0-1f3fb\":0,\"1f6c0-1f3fc\":0,\"1f6c0-1f3fd\":0,\"1f6c0-1f3fe\":0,\"1f6c0-1f3ff\":0,\"1f6cc-1f3fb\":0,\"1f6cc-1f3fc\":0,\"1f6cc-1f3fd\":0,\"1f6cc-1f3fe\":0,\"1f6cc-1f3ff\":0,\"1f90c-1f3fb\":0,\"1f90c-1f3fc\":0,\"1f90c-1f3fd\":0,\"1f90c-1f3fe\":0,\"1f90c-1f3ff\":0,\"1f90f-1f3fb\":0,\"1f90f-1f3fc\":0,\"1f90f-1f3fd\":0,\"1f90f-1f3fe\":0,\"1f90f-1f3ff\":0,\"1f918-1f3fb\":0,\"1f918-1f3fc\":0,\"1f918-1f3fd\":0,\"1f918-1f3fe\":0,\"1f918-1f3ff\":0,\"1f919-1f3fb\":0,\"1f919-1f3fc\":0,\"1f919-1f3fd\":0,\"1f919-1f3fe\":0,\"1f919-1f3ff\":0,\"1f91a-1f3fb\":0,\"1f91a-1f3fc\":0,\"1f91a-1f3fd\":0,\"1f91a-1f3fe\":0,\"1f91a-1f3ff\":0,\"1f91b-1f3fb\":0,\"1f91b-1f3fc\":0,\"1f91b-1f3fd\":0,\"1f91b-1f3fe\":0,\"1f91b-1f3ff\":0,\"1f91c-1f3fb\":0,\"1f91c-1f3fc\":0,\"1f91c-1f3fd\":0,\"1f91c-1f3fe\":0,\"1f91c-1f3ff\":0,\"1f91e-1f3fb\":0,\"1f91e-1f3fc\":0,\"1f91e-1f3fd\":0,\"1f91e-1f3fe\":0,\"1f91e-1f3ff\":0,\"1f91f-1f3fb\":0,\"1f91f-1f3fc\":0,\"1f91f-1f3fd\":0,\"1f91f-1f3fe\":0,\"1f91f-1f3ff\":0,\"1f926-1f3fb-200d-2640\":0,\"1f926-1f3fc-200d-2640\":0,\"1f926-1f3fd-200d-2640\":0,\"1f926-1f3fe-200d-2640\":0,\"1f926-1f3ff-200d-2640\":0,\"1f926-1f3fb-200d-2642\":0,\"1f926-1f3fc-200d-2642\":0,\"1f926-1f3fd-200d-2642\":0,\"1f926-1f3fe-200d-2642\":0,\"1f926-1f3ff-200d-2642\":0,\"1f926-1f3fb\":0,\"1f926-1f3fc\":0,\"1f926-1f3fd\":0,\"1f926-1f3fe\":0,\"1f926-1f3ff\":0,\"1f930-1f3fb\":0,\"1f930-1f3fc\":0,\"1f930-1f3fd\":0,\"1f930-1f3fe\":0,\"1f930-1f3ff\":0,\"1f931-1f3fb\":0,\"1f931-1f3fc\":0,\"1f931-1f3fd\":0,\"1f931-1f3fe\":0,\"1f931-1f3ff\":0,\"1f932-1f3fb\":0,\"1f932-1f3fc\":0,\"1f932-1f3fd\":0,\"1f932-1f3fe\":0,\"1f932-1f3ff\":0,\"1f933-1f3fb\":0,\"1f933-1f3fc\":0,\"1f933-1f3fd\":0,\"1f933-1f3fe\":0,\"1f933-1f3ff\":0,\"1f934-1f3fb\":0,\"1f934-1f3fc\":0,\"1f934-1f3fd\":0,\"1f934-1f3fe\":0,\"1f934-1f3ff\":0,\"1f935-1f3fb-200d-2640\":0,\"1f935-1f3fc-200d-2640\":0,\"1f935-1f3fd-200d-2640\":0,\"1f935-1f3fe-200d-2640\":0,\"1f935-1f3ff-200d-2640\":0,\"1f935-1f3fb-200d-2642\":0,\"1f935-1f3fc-200d-2642\":0,\"1f935-1f3fd-200d-2642\":0,\"1f935-1f3fe-200d-2642\":0,\"1f935-1f3ff-200d-2642\":0,\"1f935-1f3fb\":0,\"1f935-1f3fc\":0,\"1f935-1f3fd\":0,\"1f935-1f3fe\":0,\"1f935-1f3ff\":0,\"1f936-1f3fb\":0,\"1f936-1f3fc\":0,\"1f936-1f3fd\":0,\"1f936-1f3fe\":0,\"1f936-1f3ff\":0,\"1f937-1f3fb-200d-2640\":0,\"1f937-1f3fc-200d-2640\":0,\"1f937-1f3fd-200d-2640\":0,\"1f937-1f3fe-200d-2640\":0,\"1f937-1f3ff-200d-2640\":0,\"1f937-1f3fb-200d-2642\":0,\"1f937-1f3fc-200d-2642\":0,\"1f937-1f3fd-200d-2642\":0,\"1f937-1f3fe-200d-2642\":0,\"1f937-1f3ff-200d-2642\":0,\"1f937-1f3fb\":0,\"1f937-1f3fc\":0,\"1f937-1f3fd\":0,\"1f937-1f3fe\":0,\"1f937-1f3ff\":0,\"1f938-1f3fb-200d-2640\":0,\"1f938-1f3fc-200d-2640\":0,\"1f938-1f3fd-200d-2640\":0,\"1f938-1f3fe-200d-2640\":0,\"1f938-1f3ff-200d-2640\":0,\"1f938-1f3fb-200d-2642\":0,\"1f938-1f3fc-200d-2642\":0,\"1f938-1f3fd-200d-2642\":0,\"1f938-1f3fe-200d-2642\":0,\"1f938-1f3ff-200d-2642\":0,\"1f938-1f3fb\":0,\"1f938-1f3fc\":0,\"1f938-1f3fd\":0,\"1f938-1f3fe\":0,\"1f938-1f3ff\":0,\"1f939-1f3fb-200d-2640\":0,\"1f939-1f3fc-200d-2640\":0,\"1f939-1f3fd-200d-2640\":0,\"1f939-1f3fe-200d-2640\":0,\"1f939-1f3ff-200d-2640\":0,\"1f939-1f3fb-200d-2642\":0,\"1f939-1f3fc-200d-2642\":0,\"1f939-1f3fd-200d-2642\":0,\"1f939-1f3fe-200d-2642\":0,\"1f939-1f3ff-200d-2642\":0,\"1f939-1f3fb\":0,\"1f939-1f3fc\":0,\"1f939-1f3fd\":0,\"1f939-1f3fe\":0,\"1f939-1f3ff\":0,\"1f93d-1f3fb-200d-2640\":0,\"1f93d-1f3fc-200d-2640\":0,\"1f93d-1f3fd-200d-2640\":0,\"1f93d-1f3fe-200d-2640\":0,\"1f93d-1f3ff-200d-2640\":0,\"1f93d-1f3fb-200d-2642\":0,\"1f93d-1f3fc-200d-2642\":0,\"1f93d-1f3fd-200d-2642\":0,\"1f93d-1f3fe-200d-2642\":0,\"1f93d-1f3ff-200d-2642\":0,\"1f93d-1f3fb\":0,\"1f93d-1f3fc\":0,\"1f93d-1f3fd\":0,\"1f93d-1f3fe\":0,\"1f93d-1f3ff\":0,\"1f93e-1f3fb-200d-2640\":0,\"1f93e-1f3fc-200d-2640\":0,\"1f93e-1f3fd-200d-2640\":0,\"1f93e-1f3fe-200d-2640\":0,\"1f93e-1f3ff-200d-2640\":0,\"1f93e-1f3fb-200d-2642\":0,\"1f93e-1f3fc-200d-2642\":0,\"1f93e-1f3fd-200d-2642\":0,\"1f93e-1f3fe-200d-2642\":0,\"1f93e-1f3ff-200d-2642\":0,\"1f93e-1f3fb\":0,\"1f93e-1f3fc\":0,\"1f93e-1f3fd\":0,\"1f93e-1f3fe\":0,\"1f93e-1f3ff\":0,\"1f977-1f3fb\":0,\"1f977-1f3fc\":0,\"1f977-1f3fd\":0,\"1f977-1f3fe\":0,\"1f977-1f3ff\":0,\"1f9b5-1f3fb\":0,\"1f9b5-1f3fc\":0,\"1f9b5-1f3fd\":0,\"1f9b5-1f3fe\":0,\"1f9b5-1f3ff\":0,\"1f9b6-1f3fb\":0,\"1f9b6-1f3fc\":0,\"1f9b6-1f3fd\":0,\"1f9b6-1f3fe\":0,\"1f9b6-1f3ff\":0,\"1f9b8-1f3fb-200d-2640\":0,\"1f9b8-1f3fc-200d-2640\":0,\"1f9b8-1f3fd-200d-2640\":0,\"1f9b8-1f3fe-200d-2640\":0,\"1f9b8-1f3ff-200d-2640\":0,\"1f9b8-1f3fb-200d-2642\":0,\"1f9b8-1f3fc-200d-2642\":0,\"1f9b8-1f3fd-200d-2642\":0,\"1f9b8-1f3fe-200d-2642\":0,\"1f9b8-1f3ff-200d-2642\":0,\"1f9b8-1f3fb\":0,\"1f9b8-1f3fc\":0,\"1f9b8-1f3fd\":0,\"1f9b8-1f3fe\":0,\"1f9b8-1f3ff\":0,\"1f9b9-1f3fb-200d-2640\":0,\"1f9b9-1f3fc-200d-2640\":0,\"1f9b9-1f3fd-200d-2640\":0,\"1f9b9-1f3fe-200d-2640\":0,\"1f9b9-1f3ff-200d-2640\":0,\"1f9b9-1f3fb-200d-2642\":0,\"1f9b9-1f3fc-200d-2642\":0,\"1f9b9-1f3fd-200d-2642\":0,\"1f9b9-1f3fe-200d-2642\":0,\"1f9b9-1f3ff-200d-2642\":0,\"1f9b9-1f3fb\":0,\"1f9b9-1f3fc\":0,\"1f9b9-1f3fd\":0,\"1f9b9-1f3fe\":0,\"1f9b9-1f3ff\":0,\"1f9bb-1f3fb\":0,\"1f9bb-1f3fc\":0,\"1f9bb-1f3fd\":0,\"1f9bb-1f3fe\":0,\"1f9bb-1f3ff\":0,\"1f9cd-1f3fb-200d-2640\":0,\"1f9cd-1f3fc-200d-2640\":0,\"1f9cd-1f3fd-200d-2640\":0,\"1f9cd-1f3fe-200d-2640\":0,\"1f9cd-1f3ff-200d-2640\":0,\"1f9cd-1f3fb-200d-2642\":0,\"1f9cd-1f3fc-200d-2642\":0,\"1f9cd-1f3fd-200d-2642\":0,\"1f9cd-1f3fe-200d-2642\":0,\"1f9cd-1f3ff-200d-2642\":0,\"1f9cd-1f3fb\":0,\"1f9cd-1f3fc\":0,\"1f9cd-1f3fd\":0,\"1f9cd-1f3fe\":0,\"1f9cd-1f3ff\":0,\"1f9ce-1f3fb-200d-2640\":0,\"1f9ce-1f3fc-200d-2640\":0,\"1f9ce-1f3fd-200d-2640\":0,\"1f9ce-1f3fe-200d-2640\":0,\"1f9ce-1f3ff-200d-2640\":0,\"1f9ce-1f3fb-200d-2642\":0,\"1f9ce-1f3fc-200d-2642\":0,\"1f9ce-1f3fd-200d-2642\":0,\"1f9ce-1f3fe-200d-2642\":0,\"1f9ce-1f3ff-200d-2642\":0,\"1f9ce-1f3fb\":0,\"1f9ce-1f3fc\":0,\"1f9ce-1f3fd\":0,\"1f9ce-1f3fe\":0,\"1f9ce-1f3ff\":0,\"1f9cf-1f3fb-200d-2640\":0,\"1f9cf-1f3fc-200d-2640\":0,\"1f9cf-1f3fd-200d-2640\":0,\"1f9cf-1f3fe-200d-2640\":0,\"1f9cf-1f3ff-200d-2640\":0,\"1f9cf-1f3fb-200d-2642\":0,\"1f9cf-1f3fc-200d-2642\":0,\"1f9cf-1f3fd-200d-2642\":0,\"1f9cf-1f3fe-200d-2642\":0,\"1f9cf-1f3ff-200d-2642\":0,\"1f9cf-1f3fb\":0,\"1f9cf-1f3fc\":0,\"1f9cf-1f3fd\":0,\"1f9cf-1f3fe\":0,\"1f9cf-1f3ff\":0,\"1f9d1-1f3fb-200d-1f33e\":0,\"1f9d1-1f3fc-200d-1f33e\":0,\"1f9d1-1f3fd-200d-1f33e\":0,\"1f9d1-1f3fe-200d-1f33e\":0,\"1f9d1-1f3ff-200d-1f33e\":0,\"1f9d1-1f3fb-200d-1f373\":0,\"1f9d1-1f3fc-200d-1f373\":0,\"1f9d1-1f3fd-200d-1f373\":0,\"1f9d1-1f3fe-200d-1f373\":0,\"1f9d1-1f3ff-200d-1f373\":0,\"1f9d1-1f3fb-200d-1f37c\":0,\"1f9d1-1f3fc-200d-1f37c\":0,\"1f9d1-1f3fd-200d-1f37c\":0,\"1f9d1-1f3fe-200d-1f37c\":0,\"1f9d1-1f3ff-200d-1f37c\":0,\"1f9d1-1f3fb-200d-1f384\":0,\"1f9d1-1f3fc-200d-1f384\":0,\"1f9d1-1f3fd-200d-1f384\":0,\"1f9d1-1f3fe-200d-1f384\":0,\"1f9d1-1f3ff-200d-1f384\":0,\"1f9d1-1f3fb-200d-1f393\":0,\"1f9d1-1f3fc-200d-1f393\":0,\"1f9d1-1f3fd-200d-1f393\":0,\"1f9d1-1f3fe-200d-1f393\":0,\"1f9d1-1f3ff-200d-1f393\":0,\"1f9d1-1f3fb-200d-1f3a4\":0,\"1f9d1-1f3fc-200d-1f3a4\":0,\"1f9d1-1f3fd-200d-1f3a4\":0,\"1f9d1-1f3fe-200d-1f3a4\":0,\"1f9d1-1f3ff-200d-1f3a4\":0,\"1f9d1-1f3fb-200d-1f3a8\":0,\"1f9d1-1f3fc-200d-1f3a8\":0,\"1f9d1-1f3fd-200d-1f3a8\":0,\"1f9d1-1f3fe-200d-1f3a8\":0,\"1f9d1-1f3ff-200d-1f3a8\":0,\"1f9d1-1f3fb-200d-1f3eb\":0,\"1f9d1-1f3fc-200d-1f3eb\":0,\"1f9d1-1f3fd-200d-1f3eb\":0,\"1f9d1-1f3fe-200d-1f3eb\":0,\"1f9d1-1f3ff-200d-1f3eb\":0,\"1f9d1-1f3fb-200d-1f3ed\":0,\"1f9d1-1f3fc-200d-1f3ed\":0,\"1f9d1-1f3fd-200d-1f3ed\":0,\"1f9d1-1f3fe-200d-1f3ed\":0,\"1f9d1-1f3ff-200d-1f3ed\":0,\"1f9d1-1f3fb-200d-1f4bb\":0,\"1f9d1-1f3fc-200d-1f4bb\":0,\"1f9d1-1f3fd-200d-1f4bb\":0,\"1f9d1-1f3fe-200d-1f4bb\":0,\"1f9d1-1f3ff-200d-1f4bb\":0,\"1f9d1-1f3fb-200d-1f4bc\":0,\"1f9d1-1f3fc-200d-1f4bc\":0,\"1f9d1-1f3fd-200d-1f4bc\":0,\"1f9d1-1f3fe-200d-1f4bc\":0,\"1f9d1-1f3ff-200d-1f4bc\":0,\"1f9d1-1f3fb-200d-1f527\":0,\"1f9d1-1f3fc-200d-1f527\":0,\"1f9d1-1f3fd-200d-1f527\":0,\"1f9d1-1f3fe-200d-1f527\":0,\"1f9d1-1f3ff-200d-1f527\":0,\"1f9d1-1f3fb-200d-1f52c\":0,\"1f9d1-1f3fc-200d-1f52c\":0,\"1f9d1-1f3fd-200d-1f52c\":0,\"1f9d1-1f3fe-200d-1f52c\":0,\"1f9d1-1f3ff-200d-1f52c\":0,\"1f9d1-1f3fb-200d-1f680\":0,\"1f9d1-1f3fc-200d-1f680\":0,\"1f9d1-1f3fd-200d-1f680\":0,\"1f9d1-1f3fe-200d-1f680\":0,\"1f9d1-1f3ff-200d-1f680\":0,\"1f9d1-1f3fb-200d-1f692\":0,\"1f9d1-1f3fc-200d-1f692\":0,\"1f9d1-1f3fd-200d-1f692\":0,\"1f9d1-1f3fe-200d-1f692\":0,\"1f9d1-1f3ff-200d-1f692\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe\":0,\"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff\":0,\"1f9d1-1f3fb-200d-1f9af\":0,\"1f9d1-1f3fc-200d-1f9af\":0,\"1f9d1-1f3fd-200d-1f9af\":0,\"1f9d1-1f3fe-200d-1f9af\":0,\"1f9d1-1f3ff-200d-1f9af\":0,\"1f9d1-1f3fb-200d-1f9b0\":0,\"1f9d1-1f3fc-200d-1f9b0\":0,\"1f9d1-1f3fd-200d-1f9b0\":0,\"1f9d1-1f3fe-200d-1f9b0\":0,\"1f9d1-1f3ff-200d-1f9b0\":0,\"1f9d1-1f3fb-200d-1f9b1\":0,\"1f9d1-1f3fc-200d-1f9b1\":0,\"1f9d1-1f3fd-200d-1f9b1\":0,\"1f9d1-1f3fe-200d-1f9b1\":0,\"1f9d1-1f3ff-200d-1f9b1\":0,\"1f9d1-1f3fb-200d-1f9b2\":0,\"1f9d1-1f3fc-200d-1f9b2\":0,\"1f9d1-1f3fd-200d-1f9b2\":0,\"1f9d1-1f3fe-200d-1f9b2\":0,\"1f9d1-1f3ff-200d-1f9b2\":0,\"1f9d1-1f3fb-200d-1f9b3\":0,\"1f9d1-1f3fc-200d-1f9b3\":0,\"1f9d1-1f3fd-200d-1f9b3\":0,\"1f9d1-1f3fe-200d-1f9b3\":0,\"1f9d1-1f3ff-200d-1f9b3\":0,\"1f9d1-1f3fb-200d-1f9bc\":0,\"1f9d1-1f3fc-200d-1f9bc\":0,\"1f9d1-1f3fd-200d-1f9bc\":0,\"1f9d1-1f3fe-200d-1f9bc\":0,\"1f9d1-1f3ff-200d-1f9bc\":0,\"1f9d1-1f3fb-200d-1f9bd\":0,\"1f9d1-1f3fc-200d-1f9bd\":0,\"1f9d1-1f3fd-200d-1f9bd\":0,\"1f9d1-1f3fe-200d-1f9bd\":0,\"1f9d1-1f3ff-200d-1f9bd\":0,\"1f9d1-1f3fb-200d-2695\":0,\"1f9d1-1f3fc-200d-2695\":0,\"1f9d1-1f3fd-200d-2695\":0,\"1f9d1-1f3fe-200d-2695\":0,\"1f9d1-1f3ff-200d-2695\":0,\"1f9d1-1f3fb-200d-2696\":0,\"1f9d1-1f3fc-200d-2696\":0,\"1f9d1-1f3fd-200d-2696\":0,\"1f9d1-1f3fe-200d-2696\":0,\"1f9d1-1f3ff-200d-2696\":0,\"1f9d1-1f3fb-200d-2708\":0,\"1f9d1-1f3fc-200d-2708\":0,\"1f9d1-1f3fd-200d-2708\":0,\"1f9d1-1f3fe-200d-2708\":0,\"1f9d1-1f3ff-200d-2708\":0,\"1f9d1-1f3fb\":0,\"1f9d1-1f3fc\":0,\"1f9d1-1f3fd\":0,\"1f9d1-1f3fe\":0,\"1f9d1-1f3ff\":0,\"1f9d2-1f3fb\":0,\"1f9d2-1f3fc\":0,\"1f9d2-1f3fd\":0,\"1f9d2-1f3fe\":0,\"1f9d2-1f3ff\":0,\"1f9d3-1f3fb\":0,\"1f9d3-1f3fc\":0,\"1f9d3-1f3fd\":0,\"1f9d3-1f3fe\":0,\"1f9d3-1f3ff\":0,\"1f9d4-1f3fb\":0,\"1f9d4-1f3fc\":0,\"1f9d4-1f3fd\":0,\"1f9d4-1f3fe\":0,\"1f9d4-1f3ff\":0,\"1f9d5-1f3fb\":0,\"1f9d5-1f3fc\":0,\"1f9d5-1f3fd\":0,\"1f9d5-1f3fe\":0,\"1f9d5-1f3ff\":0,\"1f9d6-1f3fb-200d-2640\":0,\"1f9d6-1f3fc-200d-2640\":0,\"1f9d6-1f3fd-200d-2640\":0,\"1f9d6-1f3fe-200d-2640\":0,\"1f9d6-1f3ff-200d-2640\":0,\"1f9d6-1f3fb-200d-2642\":0,\"1f9d6-1f3fc-200d-2642\":0,\"1f9d6-1f3fd-200d-2642\":0,\"1f9d6-1f3fe-200d-2642\":0,\"1f9d6-1f3ff-200d-2642\":0,\"1f9d6-1f3fb\":0,\"1f9d6-1f3fc\":0,\"1f9d6-1f3fd\":0,\"1f9d6-1f3fe\":0,\"1f9d6-1f3ff\":0,\"1f9d7-1f3fb-200d-2640\":0,\"1f9d7-1f3fc-200d-2640\":0,\"1f9d7-1f3fd-200d-2640\":0,\"1f9d7-1f3fe-200d-2640\":0,\"1f9d7-1f3ff-200d-2640\":0,\"1f9d7-1f3fb-200d-2642\":0,\"1f9d7-1f3fc-200d-2642\":0,\"1f9d7-1f3fd-200d-2642\":0,\"1f9d7-1f3fe-200d-2642\":0,\"1f9d7-1f3ff-200d-2642\":0,\"1f9d7-1f3fb\":0,\"1f9d7-1f3fc\":0,\"1f9d7-1f3fd\":0,\"1f9d7-1f3fe\":0,\"1f9d7-1f3ff\":0,\"1f9d8-1f3fb-200d-2640\":0,\"1f9d8-1f3fc-200d-2640\":0,\"1f9d8-1f3fd-200d-2640\":0,\"1f9d8-1f3fe-200d-2640\":0,\"1f9d8-1f3ff-200d-2640\":0,\"1f9d8-1f3fb-200d-2642\":0,\"1f9d8-1f3fc-200d-2642\":0,\"1f9d8-1f3fd-200d-2642\":0,\"1f9d8-1f3fe-200d-2642\":0,\"1f9d8-1f3ff-200d-2642\":0,\"1f9d8-1f3fb\":0,\"1f9d8-1f3fc\":0,\"1f9d8-1f3fd\":0,\"1f9d8-1f3fe\":0,\"1f9d8-1f3ff\":0,\"1f9d9-1f3fb-200d-2640\":0,\"1f9d9-1f3fc-200d-2640\":0,\"1f9d9-1f3fd-200d-2640\":0,\"1f9d9-1f3fe-200d-2640\":0,\"1f9d9-1f3ff-200d-2640\":0,\"1f9d9-1f3fb-200d-2642\":0,\"1f9d9-1f3fc-200d-2642\":0,\"1f9d9-1f3fd-200d-2642\":0,\"1f9d9-1f3fe-200d-2642\":0,\"1f9d9-1f3ff-200d-2642\":0,\"1f9d9-1f3fb\":0,\"1f9d9-1f3fc\":0,\"1f9d9-1f3fd\":0,\"1f9d9-1f3fe\":0,\"1f9d9-1f3ff\":0,\"1f9da-1f3fb-200d-2640\":0,\"1f9da-1f3fc-200d-2640\":0,\"1f9da-1f3fd-200d-2640\":0,\"1f9da-1f3fe-200d-2640\":0,\"1f9da-1f3ff-200d-2640\":0,\"1f9da-1f3fb-200d-2642\":0,\"1f9da-1f3fc-200d-2642\":0,\"1f9da-1f3fd-200d-2642\":0,\"1f9da-1f3fe-200d-2642\":0,\"1f9da-1f3ff-200d-2642\":0,\"1f9da-1f3fb\":0,\"1f9da-1f3fc\":0,\"1f9da-1f3fd\":0,\"1f9da-1f3fe\":0,\"1f9da-1f3ff\":0,\"1f9db-1f3fb-200d-2640\":0,\"1f9db-1f3fc-200d-2640\":0,\"1f9db-1f3fd-200d-2640\":0,\"1f9db-1f3fe-200d-2640\":0,\"1f9db-1f3ff-200d-2640\":0,\"1f9db-1f3fb-200d-2642\":0,\"1f9db-1f3fc-200d-2642\":0,\"1f9db-1f3fd-200d-2642\":0,\"1f9db-1f3fe-200d-2642\":0,\"1f9db-1f3ff-200d-2642\":0,\"1f9db-1f3fb\":0,\"1f9db-1f3fc\":0,\"1f9db-1f3fd\":0,\"1f9db-1f3fe\":0,\"1f9db-1f3ff\":0,\"1f9dc-1f3fb-200d-2640\":0,\"1f9dc-1f3fc-200d-2640\":0,\"1f9dc-1f3fd-200d-2640\":0,\"1f9dc-1f3fe-200d-2640\":0,\"1f9dc-1f3ff-200d-2640\":0,\"1f9dc-1f3fb-200d-2642\":0,\"1f9dc-1f3fc-200d-2642\":0,\"1f9dc-1f3fd-200d-2642\":0,\"1f9dc-1f3fe-200d-2642\":0,\"1f9dc-1f3ff-200d-2642\":0,\"1f9dc-1f3fb\":0,\"1f9dc-1f3fc\":0,\"1f9dc-1f3fd\":0,\"1f9dc-1f3fe\":0,\"1f9dc-1f3ff\":0,\"1f9dd-1f3fb-200d-2640\":0,\"1f9dd-1f3fc-200d-2640\":0,\"1f9dd-1f3fd-200d-2640\":0,\"1f9dd-1f3fe-200d-2640\":0,\"1f9dd-1f3ff-200d-2640\":0,\"1f9dd-1f3fb-200d-2642\":0,\"1f9dd-1f3fc-200d-2642\":0,\"1f9dd-1f3fd-200d-2642\":0,\"1f9dd-1f3fe-200d-2642\":0,\"1f9dd-1f3ff-200d-2642\":0,\"1f9dd-1f3fb\":0,\"1f9dd-1f3fc\":0,\"1f9dd-1f3fd\":0,\"1f9dd-1f3fe\":0,\"1f9dd-1f3ff\":0,\"261d-1f3fb\":0,\"261d-1f3fc\":0,\"261d-1f3fd\":0,\"261d-1f3fe\":0,\"261d-1f3ff\":0,\"26f9-1f3fb-200d-2640\":0,\"26f9-1f3fc-200d-2640\":0,\"26f9-1f3fd-200d-2640\":0,\"26f9-1f3fe-200d-2640\":0,\"26f9-1f3ff-200d-2640\":0,\"26f9-1f3fb-200d-2642\":0,\"26f9-1f3fc-200d-2642\":0,\"26f9-1f3fd-200d-2642\":0,\"26f9-1f3fe-200d-2642\":0,\"26f9-1f3ff-200d-2642\":0,\"26f9-1f3fb\":0,\"26f9-1f3fc\":0,\"26f9-1f3fd\":0,\"26f9-1f3fe\":0,\"26f9-1f3ff\":0,\"270a-1f3fb\":0,\"270a-1f3fc\":0,\"270a-1f3fd\":0,\"270a-1f3fe\":0,\"270a-1f3ff\":0,\"270b-1f3fb\":0,\"270b-1f3fc\":0,\"270b-1f3fd\":0,\"270b-1f3fe\":0,\"270b-1f3ff\":0,\"270c-1f3fb\":0,\"270c-1f3fc\":0,\"270c-1f3fd\":0,\"270c-1f3fe\":0,\"270c-1f3ff\":0,\"270d-1f3fb\":0,\"270d-1f3fc\":0,\"270d-1f3fd\":0,\"270d-1f3fe\":0,\"270d-1f3ff\":0};\r\n\r\n/* Emoji[\"00a9-fe0f\"] = 6362;\r\nEmoji[\"00ae-fe0f\"] = 6363;\r\nEmoji[\"2122-fe0f\"] = 6364; */\r\n\r\n// From https://github.com/stephenmathieson/node-tlds/blob/master/index.js\r\nexport const TLD = ['abogado', 'ac', 'academy', 'accountants', 'active', 'actor', 'ad', 'adult', 'ae', 'aero', 'af', 'ag', 'agency', 'ai', 'airforce', 'al', 'allfinanz', 'alsace', 'am', 'amsterdam', 'an', 'android', 'ao', 'apartments', 'aq', 'aquarelle', 'ar', 'archi', 'army', 'arpa', 'as', 'asia', 'associates', 'at', 'attorney', 'au', 'auction', 'audio', 'autos', 'aw', 'ax', 'axa', 'az', 'ba', 'band', 'bank', 'bar', 'barclaycard', 'barclays', 'bargains', 'bayern', 'bb', 'bd', 'be', 'beer', 'berlin', 'best', 'bf', 'bg', 'bh', 'bi', 'bid', 'bike', 'bingo', 'bio', 'biz', 'bj', 'black', 'blackfriday', 'bloomberg', 'blue', 'bm', 'bmw', 'bn', 'bnpparibas', 'bo', 'boo', 'boutique', 'br', 'brussels', 'bs', 'bt', 'budapest', 'build', 'builders', 'business', 'buzz', 'bv', 'bw', 'by', 'bz', 'bzh', 'ca', 'cab', 'cal', 'camera', 'camp', 'cancerresearch', 'canon', 'capetown', 'capital', 'caravan', 'cards', 'care', 'career', 'careers', 'cartier', 'casa', 'cash', 'cat', 'catering', 'cc', 'cd', 'center', 'ceo', 'cern', 'cf', 'cg', 'ch', 'channel', 'chat', 'cheap', 'christmas', 'chrome', 'church', 'ci', 'citic', 'city', 'ck', 'cl', 'claims', 'cleaning', 'click', 'clinic', 'clothing', 'club', 'cm', 'cn', 'co', 'coach', 'codes', 'coffee', 'college', 'cologne', 'com', 'community', 'company', 'computer', 'condos', 'construction', 'consulting', 'contractors', 'cooking', 'cool', 'coop', 'country', 'cr', 'credit', 'creditcard', 'cricket', 'crs', 'cruises', 'cu', 'cuisinella', 'cv', 'cw', 'cx', 'cy', 'cymru', 'cz', 'dabur', 'dad', 'dance', 'dating', 'day', 'dclk', 'de', 'deals', 'degree', 'delivery', 'democrat', 'dental', 'dentist', 'desi', 'design', 'dev', 'diamonds', 'diet', 'digital', 'direct', 'directory', 'discount', 'dj', 'dk', 'dm', 'dnp', 'do', 'docs', 'domains', 'doosan', 'durban', 'dvag', 'dz', 'eat', 'ec', 'edu', 'education', 'ee', 'eg', 'email', 'emerck', 'energy', 'engineer', 'engineering', 'enterprises', 'equipment', 'er', 'es', 'esq', 'estate', 'et', 'eu', 'eurovision', 'eus', 'events', 'everbank', 'exchange', 'expert', 'exposed', 'fail', 'farm', 'fashion', 'feedback', 'fi', 'finance', 'financial', 'firmdale', 'fish', 'fishing', 'fit', 'fitness', 'fj', 'fk', 'flights', 'florist', 'flowers', 'flsmidth', 'fly', 'fm', 'fo', 'foo', 'forsale', 'foundation', 'fr', 'frl', 'frogans', 'fund', 'furniture', 'futbol', 'ga', 'gal', 'gallery', 'garden', 'gb', 'gbiz', 'gd', 'ge', 'gent', 'gf', 'gg', 'ggee', 'gh', 'gi', 'gift', 'gifts', 'gives', 'gl', 'glass', 'gle', 'global', 'globo', 'gm', 'gmail', 'gmo', 'gmx', 'gn', 'goog', 'google', 'gop', 'gov', 'gp', 'gq', 'gr', 'graphics', 'gratis', 'green', 'gripe', 'gs', 'gt', 'gu', 'guide', 'guitars', 'guru', 'gw', 'gy', 'hamburg', 'hangout', 'haus', 'healthcare', 'help', 'here', 'hermes', 'hiphop', 'hiv', 'hk', 'hm', 'hn', 'holdings', 'holiday', 'homes', 'horse', 'host', 'hosting', 'house', 'how', 'hr', 'ht', 'hu', 'ibm', 'id', 'ie', 'ifm', 'il', 'im', 'immo', 'immobilien', 'in', 'industries', 'info', 'ing', 'ink', 'institute', 'insure', 'int', 'international', 'investments', 'io', 'iq', 'ir', 'irish', 'is', 'it', 'iwc', 'jcb', 'je', 'jetzt', 'jm', 'jo', 'jobs', 'joburg', 'jp', 'juegos', 'kaufen', 'kddi', 'ke', 'kg', 'kh', 'ki', 'kim', 'kitchen', 'kiwi', 'km', 'kn', 'koeln', 'kp', 'kr', 'krd', 'kred', 'kw', 'ky', 'kyoto', 'kz', 'la', 'lacaixa', 'land', 'lat', 'latrobe', 'lawyer', 'lb', 'lc', 'lds', 'lease', 'legal', 'lgbt', 'li', 'lidl', 'life', 'lighting', 'limited', 'limo', 'link', 'lk', 'loans', 'london', 'lotte', 'lotto', 'lr', 'ls', 'lt', 'ltda', 'lu', 'luxe', 'luxury', 'lv', 'ly', 'ma', 'madrid', 'maison', 'management', 'mango', 'market', 'marketing', 'marriott', 'mc', 'md', 'me', 'media', 'meet', 'melbourne', 'meme', 'memorial', 'menu', 'mg', 'mh', 'miami', 'mil', 'mini', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'moda', 'moe', 'monash', 'money', 'mormon', 'mortgage', 'moscow', 'motorcycles', 'mov', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'museum', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nagoya', 'name', 'navy', 'nc', 'ne', 'net', 'network', 'neustar', 'new', 'nexus', 'nf', 'ng', 'ngo', 'nhk', 'ni', 'nico', 'ninja', 'nl', 'no', 'np', 'nr', 'nra', 'nrw', 'ntt', 'nu', 'nyc', 'nz', 'okinawa', 'om', 'one', 'ong', 'onl', 'ooo', 'org', 'organic', 'osaka', 'otsuka', 'ovh', 'pa', 'paris', 'partners', 'parts', 'party', 'pe', 'pf', 'pg', 'ph', 'pharmacy', 'photo', 'photography', 'photos', 'physio', 'pics', 'pictures', 'pink', 'pizza', 'pk', 'pl', 'place', 'plumbing', 'pm', 'pn', 'pohl', 'poker', 'porn', 'post', 'pr', 'praxi', 'press', 'pro', 'prod', 'productions', 'prof', 'properties', 'property', 'ps', 'pt', 'pub', 'pw', 'py', 'qa', 'qpon', 'quebec', 're', 'realtor', 'recipes', 'red', 'rehab', 'reise', 'reisen', 'reit', 'ren', 'rentals', 'repair', 'report', 'republican', 'rest', 'restaurant', 'reviews', 'rich', 'rio', 'rip', 'ro', 'rocks', 'rodeo', 'rs', 'rsvp', 'ru', 'ruhr', 'rw', 'ryukyu', 'sa', 'saarland', 'sale', 'samsung', 'sarl', 'saxo', 'sb', 'sc', 'sca', 'scb', 'schmidt', 'schule', 'schwarz', 'science', 'scot', 'sd', 'se', 'services', 'sew', 'sexy', 'sg', 'sh', 'shiksha', 'shoes', 'shriram', 'si', 'singles', 'sj', 'sk', 'sky', 'sl', 'sm', 'sn', 'so', 'social', 'software', 'sohu', 'solar', 'solutions', 'soy', 'space', 'spiegel', 'sr', 'st', 'style', 'su', 'supplies', 'supply', 'support', 'surf', 'surgery', 'suzuki', 'sv', 'sx', 'sy', 'sydney', 'systems', 'sz', 'taipei', 'tatar', 'tattoo', 'tax', 'tc', 'td', 'technology', 'tel', 'temasek', 'tennis', 'tf', 'tg', 'th', 'tienda', 'tips', 'tires', 'tirol', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'today', 'tokyo', 'tools', 'top', 'toshiba', 'town', 'toys', 'tp', 'tr', 'trade', 'training', 'travel', 'trust', 'tt', 'tui', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'university', 'uno', 'uol', 'us', 'uy', 'uz', 'va', 'vacations', 'vc', 've', 'vegas', 'ventures', 'versicherung', 'vet', 'vg', 'vi', 'viajes', 'video', 'villas', 'vision', 'vlaanderen', 'vn', 'vodka', 'vote', 'voting', 'voto', 'voyage', 'vu', 'wales', 'wang', 'watch', 'webcam', 'website', 'wed', 'wedding', 'wf', 'whoswho', 'wien', 'wiki', 'williamhill', 'wme', 'work', 'works', 'world', 'ws', 'wtc', 'wtf', '佛山', '集团', '在线', '한국', 'ভারত', '八卦', 'موقع', '公益', '公司', '移动', '我爱你', 'москва', 'қаз', 'онлайн', 'сайт', 'срб', '淡马锡', 'орг', '삼성', 'சிங்கப்பூர்', '商标', '商店', '商城', 'дети', 'мкд', '中文网', '中信', '中国', '中國', '谷歌', 'భారత్', 'ලංකා', 'ભારત', 'भारत', '网店', 'संगठन', '网络', 'укр', '香港', '台湾', '台灣', '手机', 'мон', 'الجزائر', 'عمان', 'ایران', 'امارات', 'بازار', 'الاردن', 'بھارت', 'المغرب', 'السعودية', 'مليسيا', 'شبكة', 'გე', '机构', '组织机构', 'ไทย', 'سورية', 'рус', 'рф', 'تونس', 'みんな', 'グーグル', '世界', 'ਭਾਰਤ', '网址', '游戏', 'vermögensberater', 'vermögensberatung', '企业', 'مصر', 'قطر', '广东', 'இலங்கை', 'இந்தியா', '新加坡', 'فلسطين', '政务', 'xxx', 'xyz', 'yachts', 'yandex', 'ye', 'yoga', 'yokohama', 'youtube', 'yt', 'za', 'zip', 'zm', 'zone', 'zuerich', 'zw'];\r\n\r\n// From https://raw.githubusercontent.com/FGRibreau/latenize/master/latinize_map.js\r\nexport const LatinizeMap: {[k: string]: string} = {'Á': 'A','Ă': 'A','Ắ': 'A','Ặ': 'A','Ằ': 'A','Ẳ': 'A','Ẵ': 'A','Ǎ': 'A','Â': 'A','Ấ': 'A','Ậ': 'A','Ầ': 'A','Ẩ': 'A','Ẫ': 'A','Ä': 'A','Ǟ': 'A','Ȧ': 'A','Ǡ': 'A','Ạ': 'A','Ȁ': 'A','À': 'A','Ả': 'A','Ȃ': 'A','Ā': 'A','Ą': 'A','Å': 'A','Ǻ': 'A','Ḁ': 'A','Ⱥ': 'A','Ã': 'A','Ꜳ': 'AA','Æ': 'AE','Ǽ': 'AE','Ǣ': 'AE','Ꜵ': 'AO','Ꜷ': 'AU','Ꜹ': 'AV','Ꜻ': 'AV','Ꜽ': 'AY','Ḃ': 'B','Ḅ': 'B','Ɓ': 'B','Ḇ': 'B','Ƀ': 'B','Ƃ': 'B','Ć': 'C','Č': 'C','Ç': 'C','Ḉ': 'C','Ĉ': 'C','Ċ': 'C','Ƈ': 'C','Ȼ': 'C','Ď': 'D','Ḑ': 'D','Ḓ': 'D','Ḋ': 'D','Ḍ': 'D','Ɗ': 'D','Ḏ': 'D','Dz': 'D','Dž': 'D','Đ': 'D','Ƌ': 'D','DZ': 'DZ','DŽ': 'DZ','É': 'E','Ĕ': 'E','Ě': 'E','Ȩ': 'E','Ḝ': 'E','Ê': 'E','Ế': 'E','Ệ': 'E','Ề': 'E','Ể': 'E','Ễ': 'E','Ḙ': 'E','Ë': 'E','Ė': 'E','Ẹ': 'E','Ȅ': 'E','È': 'E','Ẻ': 'E','Ȇ': 'E','Ē': 'E','Ḗ': 'E','Ḕ': 'E','Ę': 'E','Ɇ': 'E','Ẽ': 'E','Ḛ': 'E','': 'ET','Ḟ': 'F','Ƒ': 'F','Ǵ': 'G','Ğ': 'G','Ǧ': 'G','Ģ': 'G','Ĝ': 'G','Ġ': 'G','Ɠ': 'G','Ḡ': 'G','Ǥ': 'G','Ḫ': 'H','Ȟ': 'H','Ḩ': 'H','Ĥ': 'H','Ⱨ': 'H','Ḧ': 'H','Ḣ': 'H','Ḥ': 'H','Ħ': 'H','Í': 'I','Ĭ': 'I','Ǐ': 'I','Î': 'I','Ï': 'I','Ḯ': 'I','İ': 'I','Ị': 'I','Ȉ': 'I','Ì': 'I','Ỉ': 'I','Ȋ': 'I','Ī': 'I','Į': 'I','Ɨ': 'I','Ĩ': 'I','Ḭ': 'I','Ꝺ': 'D','Ꝼ': 'F','Ᵹ': 'G','Ꞃ': 'R','Ꞅ': 'S','Ꞇ': 'T','Ꝭ': 'IS','Ĵ': 'J','Ɉ': 'J','Ḱ': 'K','Ǩ': 'K','Ķ': 'K','Ⱪ': 'K','Ꝃ': 'K','Ḳ': 'K','Ƙ': 'K','Ḵ': 'K','Ꝁ': 'K','Ꝅ': 'K','Ĺ': 'L','Ƚ': 'L','Ľ': 'L','Ļ': 'L','Ḽ': 'L','Ḷ': 'L','Ḹ': 'L','Ⱡ': 'L','Ꝉ': 'L','Ḻ': 'L','Ŀ': 'L','Ɫ': 'L','Lj': 'L','Ł': 'L','LJ': 'LJ','Ḿ': 'M','Ṁ': 'M','Ṃ': 'M','Ɱ': 'M','Ń': 'N','Ň': 'N','Ņ': 'N','Ṋ': 'N','Ṅ': 'N','Ṇ': 'N','Ǹ': 'N','Ɲ': 'N','Ṉ': 'N','Ƞ': 'N','Nj': 'N','Ñ': 'N','NJ': 'NJ','Ó': 'O','Ŏ': 'O','Ǒ': 'O','Ô': 'O','Ố': 'O','Ộ': 'O','Ồ': 'O','Ổ': 'O','Ỗ': 'O','Ö': 'O','Ȫ': 'O','Ȯ': 'O','Ȱ': 'O','Ọ': 'O','Ő': 'O','Ȍ': 'O','Ò': 'O','Ỏ': 'O','Ơ': 'O','Ớ': 'O','Ợ': 'O','Ờ': 'O','Ở': 'O','Ỡ': 'O','Ȏ': 'O','Ꝋ': 'O','Ꝍ': 'O','Ō': 'O','Ṓ': 'O','Ṑ': 'O','Ɵ': 'O','Ǫ': 'O','Ǭ': 'O','Ø': 'O','Ǿ': 'O','Õ': 'O','Ṍ': 'O','Ṏ': 'O','Ȭ': 'O','Ƣ': 'OI','Ꝏ': 'OO','Ɛ': 'E','Ɔ': 'O','Ȣ': 'OU','Ṕ': 'P','Ṗ': 'P','Ꝓ': 'P','Ƥ': 'P','Ꝕ': 'P','Ᵽ': 'P','Ꝑ': 'P','Ꝙ': 'Q','Ꝗ': 'Q','Ŕ': 'R','Ř': 'R','Ŗ': 'R','Ṙ': 'R','Ṛ': 'R','Ṝ': 'R','Ȑ': 'R','Ȓ': 'R','Ṟ': 'R','Ɍ': 'R','Ɽ': 'R','Ꜿ': 'C','Ǝ': 'E','Ś': 'S','Ṥ': 'S','Š': 'S','Ṧ': 'S','Ş': 'S','Ŝ': 'S','Ș': 'S','Ṡ': 'S','Ṣ': 'S','Ṩ': 'S','ẞ': 'SS','Ť': 'T','Ţ': 'T','Ṱ': 'T','Ț': 'T','Ⱦ': 'T','Ṫ': 'T','Ṭ': 'T','Ƭ': 'T','Ṯ': 'T','Ʈ': 'T','Ŧ': 'T','Ɐ': 'A','Ꞁ': 'L','Ɯ': 'M','Ʌ': 'V','Ꜩ': 'TZ','Ú': 'U','Ŭ': 'U','Ǔ': 'U','Û': 'U','Ṷ': 'U','Ü': 'U','Ǘ': 'U','Ǚ': 'U','Ǜ': 'U','Ǖ': 'U','Ṳ': 'U','Ụ': 'U','Ű': 'U','Ȕ': 'U','Ù': 'U','Ủ': 'U','Ư': 'U','Ứ': 'U','Ự': 'U','Ừ': 'U','Ử': 'U','Ữ': 'U','Ȗ': 'U','Ū': 'U','Ṻ': 'U','Ų': 'U','Ů': 'U','Ũ': 'U','Ṹ': 'U','Ṵ': 'U','Ꝟ': 'V','Ṿ': 'V','Ʋ': 'V','Ṽ': 'V','Ꝡ': 'VY','Ẃ': 'W','Ŵ': 'W','Ẅ': 'W','Ẇ': 'W','Ẉ': 'W','Ẁ': 'W','Ⱳ': 'W','Ẍ': 'X','Ẋ': 'X','Ý': 'Y','Ŷ': 'Y','Ÿ': 'Y','Ẏ': 'Y','Ỵ': 'Y','Ỳ': 'Y','Ƴ': 'Y','Ỷ': 'Y','Ỿ': 'Y','Ȳ': 'Y','Ɏ': 'Y','Ỹ': 'Y','Ź': 'Z','Ž': 'Z','Ẑ': 'Z','Ⱬ': 'Z','Ż': 'Z','Ẓ': 'Z','Ȥ': 'Z','Ẕ': 'Z','Ƶ': 'Z','IJ': 'IJ','Œ': 'OE','ᴀ': 'A','ᴁ': 'AE','ʙ': 'B','ᴃ': 'B','': 'C','ᴅ': 'D','ᴇ': 'E','ꜰ': 'F','ɢ': 'G','ʛ': 'G','ʜ': 'H','ɪ': 'I','ʁ': 'R','ᴊ': 'J','ᴋ': 'K','ʟ': 'L','ᴌ': 'L','ᴍ': 'M','ɴ': 'N','': 'O','ɶ': 'OE','ᴐ': 'O','ᴕ': 'OU','ᴘ': 'P','ʀ': 'R','ᴎ': 'N','ᴙ': 'R','': 'S','ᴛ': 'T','ⱻ': 'E','ᴚ': 'R','': 'U','': 'V','': 'W','ʏ': 'Y','': 'Z','á': 'a','ă': 'a','ắ': 'a','ặ': 'a','ằ': 'a','ẳ': 'a','ẵ': 'a','ǎ': 'a','â': 'a','ấ': 'a','ậ': 'a','ầ': 'a','ẩ': 'a','ẫ': 'a','ä': 'a','ǟ': 'a','ȧ': 'a','ǡ': 'a','ạ': 'a','ȁ': 'a','à': 'a','ả': 'a','ȃ': 'a','ā': 'a','ą': 'a','ᶏ': 'a','ẚ': 'a','å': 'a','ǻ': 'a','ḁ': 'a','ⱥ': 'a','ã': 'a','ꜳ': 'aa','æ': 'ae','ǽ': 'ae','ǣ': 'ae','ꜵ': 'ao','ꜷ': 'au','ꜹ': 'av','ꜻ': 'av','ꜽ': 'ay','ḃ': 'b','ḅ': 'b','ɓ': 'b','ḇ': 'b','ᵬ': 'b','ᶀ': 'b','ƀ': 'b','ƃ': 'b','ɵ': 'o','ć': 'c','č': 'c','ç': 'c','ḉ': 'c','ĉ': 'c','ɕ': 'c','ċ': 'c','ƈ': 'c','ȼ': 'c','ď': 'd','ḑ': 'd','ḓ': 'd','ȡ': 'd','ḋ': 'd','ḍ': 'd','ɗ': 'd','ᶑ': 'd','ḏ': 'd','ᵭ': 'd','ᶁ': 'd','đ': 'd','ɖ': 'd','ƌ': 'd','ı': 'i','ȷ': 'j','ɟ': 'j','ʄ': 'j','dz': 'dz','dž': 'dz','é': 'e','ĕ': 'e','ě': 'e','ȩ': 'e','ḝ': 'e','ê': 'e','ế': 'e','ệ': 'e','ề': 'e','ể': 'e','ễ': 'e','ḙ': 'e','ë': 'e','ė': 'e','ẹ': 'e','ȅ': 'e','è': 'e','ẻ': 'e','ȇ': 'e','ē': 'e','ḗ': 'e','ḕ': 'e','ⱸ': 'e','ę': 'e','ᶒ': 'e','ɇ': 'e','ẽ': 'e','ḛ': 'e','ꝫ': 'et','ḟ': 'f','ƒ': 'f','ᵮ': 'f','ᶂ': 'f','ǵ': 'g','ğ': 'g','ǧ': 'g','ģ': 'g','ĝ': 'g','ġ': 'g','ɠ': 'g','ḡ': 'g','': 'g','ǥ': 'g','ḫ': 'h','ȟ': 'h','ḩ': 'h','ĥ': 'h','ⱨ': 'h','ḧ': 'h','ḣ': 'h','ḥ': 'h','ɦ': 'h','ẖ': 'h','ħ': 'h','ƕ': 'hv','í': 'i','ĭ': 'i','ǐ': 'i','î': 'i','ï': 'i','ḯ': 'i','ị': 'i','ȉ': 'i','ì': 'i','ỉ': 'i','ȋ': 'i','ī': 'i','į': 'i','ᶖ': 'i','ɨ': 'i','ĩ': 'i','ḭ': 'i','ꝺ': 'd','ꝼ': 'f','ᵹ': 'g','ꞃ': 'r','ꞅ': 's','ꞇ': 't','ꝭ': 'is','ǰ': 'j','ĵ': 'j','ʝ': 'j','ɉ': 'j','ḱ': 'k','ǩ': 'k','ķ': 'k','ⱪ': 'k','ꝃ': 'k','ḳ': 'k','ƙ': 'k','ḵ': 'k','ᶄ': 'k','ꝁ': 'k','ꝅ': 'k','ĺ': 'l','ƚ': 'l','ɬ': 'l','ľ': 'l','ļ': 'l','ḽ': 'l','ȴ': 'l','ḷ': 'l','ḹ': 'l','ⱡ': 'l','ꝉ': 'l','ḻ': 'l','ŀ': 'l','ɫ': 'l','ᶅ': 'l','ɭ': 'l','ł': 'l','lj': 'lj','ſ': 's','ẜ': 's','ẛ': 's','': 's','ḿ': 'm','ṁ': 'm','ṃ': 'm','ɱ': 'm','ᵯ': 'm','ᶆ': 'm','ń': 'n','ň': 'n','ņ': 'n','ṋ': 'n','ȵ': 'n','ṅ': 'n','ṇ': 'n','ǹ': 'n','ɲ': 'n','ṉ': 'n','ƞ': 'n','ᵰ': 'n','ᶇ': 'n','ɳ': 'n','ñ': 'n','nj': 'nj','ó': 'o','ŏ': 'o','ǒ': 'o','ô': 'o','ố': 'o','ộ': 'o','ồ': 'o','ổ': 'o','ỗ': 'o','ö': 'o','ȫ': 'o','ȯ': 'o','ȱ': 'o','ọ': 'o','ő': 'o','ȍ': 'o','ò': 'o','ỏ': 'o','ơ': 'o','ớ': 'o','ợ': 'o','ờ': 'o','ở': 'o','ỡ': 'o','ȏ': 'o','ꝋ': 'o','ꝍ': 'o','ⱺ': 'o','ō': 'o','ṓ': 'o','ṑ': 'o','ǫ': 'o','ǭ': 'o','ø': 'o','ǿ': 'o','õ': 'o','ṍ': 'o','ṏ': 'o','ȭ': 'o','ƣ': 'oi','ꝏ': 'oo','ɛ': 'e','ᶓ': 'e','ɔ': 'o','ᶗ': 'o','ȣ': 'ou','ṕ': 'p','ṗ': 'p','ꝓ': 'p','ƥ': 'p','ᵱ': 'p','ᶈ': 'p','ꝕ': 'p','ᵽ': 'p','ꝑ': 'p','ꝙ': 'q','ʠ': 'q','ɋ': 'q','ꝗ': 'q','ŕ': 'r','ř': 'r','ŗ': 'r','ṙ': 'r','ṛ': 'r','ṝ': 'r','ȑ': 'r','ɾ': 'r','ᵳ': 'r','ȓ': 'r','ṟ': 'r','ɼ': 'r','ᵲ': 'r','ᶉ': 'r','ɍ': 'r','ɽ': 'r','ↄ': 'c','ꜿ': 'c','ɘ': 'e','ɿ': 'r','ś': 's','ṥ': 's','š': 's','ṧ': 's','ş': 's','ŝ': 's','ș': 's','ṡ': 's','ṣ': 's','ṩ': 's','ʂ': 's','ᵴ': 's','ᶊ': 's','ȿ': 's','ɡ': 'g','ß': 'ss','': 'o','ᴓ': 'o','ᴝ': 'u','ť': 't','ţ': 't','ṱ': 't','ț': 't','ȶ': 't','ẗ': 't','ⱦ': 't','ṫ': 't','ṭ': 't','ƭ': 't','ṯ': 't','ᵵ': 't','ƫ': 't','ʈ': 't','ŧ': 't','ᵺ': 'th','ɐ': 'a','ᴂ': 'ae','ǝ': 'e','ᵷ': 'g','ɥ': 'h','ʮ': 'h','ʯ': 'h','ᴉ': 'i','ʞ': 'k','ꞁ': 'l','ɯ': 'm','ɰ': 'm','ᴔ': 'oe','ɹ': 'r','ɻ': 'r','ɺ': 'r','ⱹ': 'r','ʇ': 't','ʌ': 'v','ʍ': 'w','ʎ': 'y','ꜩ': 'tz','ú': 'u','ŭ': 'u','ǔ': 'u','û': 'u','ṷ': 'u','ü': 'u','ǘ': 'u','ǚ': 'u','ǜ': 'u','ǖ': 'u','ṳ': 'u','ụ': 'u','ű': 'u','ȕ': 'u','ù': 'u','ủ': 'u','ư': 'u','ứ': 'u','ự': 'u','ừ': 'u','ử': 'u','ữ': 'u','ȗ': 'u','ū': 'u','ṻ': 'u','ų': 'u','ᶙ': 'u','ů': 'u','ũ': 'u','ṹ': 'u','ṵ': 'u','ᵫ': 'ue','': 'um','ⱴ': 'v','ꝟ': 'v','ṿ': 'v','ʋ': 'v','': 'v','ⱱ': 'v','ṽ': 'v','ꝡ': 'vy','ẃ': 'w','ŵ': 'w','ẅ': 'w','ẇ': 'w','ẉ': 'w','ẁ': 'w','ⱳ': 'w','ẘ': 'w','ẍ': 'x','ẋ': 'x','ᶍ': 'x','ý': 'y','ŷ': 'y','ÿ': 'y','ẏ': 'y','ỵ': 'y','ỳ': 'y','ƴ': 'y','ỷ': 'y','ỿ': 'y','ȳ': 'y','ẙ': 'y','ɏ': 'y','ỹ': 'y','ź': 'z','ž': 'z','ẑ': 'z','ʑ': 'z','ⱬ': 'z','ż': 'z','ẓ': 'z','ȥ': 'z','ẕ': 'z','ᵶ': 'z','ᶎ': 'z','ʐ': 'z','ƶ': 'z','ɀ': 'z','ff': 'ff','ffi': 'ffi','ffl': 'ffl','fi': 'fi','fl': 'fl','ij': 'ij','œ': 'oe','st': 'st','ₐ': 'a','ₑ': 'e','ᵢ': 'i','ⱼ': 'j','ₒ': 'o','ᵣ': 'r','ᵤ': 'u','ᵥ': 'v','ₓ': 'x','Ё': 'YO', 'Й': 'I', 'Ц': 'TS', 'У': 'U', 'К': 'K', 'Е': 'E', 'Н': 'N', 'Г': 'G', 'Ш': 'SH', 'Щ': 'SCH', 'З': 'Z', 'Х': 'H', 'Ъ': '', 'ё': 'yo', 'й': 'i', 'ц': 'ts', 'у': 'u', 'к': 'k', 'е': 'e', 'н': 'n', 'г': 'g', 'ш': 'sh', 'щ': 'sch', 'з': 'z', 'х': 'h', 'ъ': '', 'Ф': 'F', 'Ы': 'I', 'В': 'V', 'А': 'A', 'П': 'P', 'Р': 'R', 'О': 'O', 'Л': 'L', 'Д': 'D', 'Ж': 'ZH', 'Э': 'E', 'ф': 'f', 'ы': 'i', 'в': 'v', 'а': 'a', 'п': 'p', 'р': 'r', 'о': 'o', 'л': 'l', 'д': 'd', 'ж': 'zh', 'э': 'e', 'Я': 'Ya', 'Ч': 'CH', 'С': 'S', 'М': 'M', 'И': 'I', 'Т': 'T', 'Ь': '', 'Б': 'B', 'Ю': 'YU', 'я': 'ya', 'ч': 'ch', 'с': 's', 'м': 'm', 'и': 'i', 'т': 't', 'ь': '', 'б': 'b', 'ю': 'yu'};\r\n\r\nconst Config = {\r\n Emoji,\r\n LatinizeMap,\r\n TLD,\r\n MediaSizes: mediaSizes\r\n};\r\nMOUNT_CLASS_TO.Config = Config;\r\nexport default Config;\r\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport DEBUG, { MOUNT_CLASS_TO } from \"../config/debug\";\nimport type lang from \"../lang\";\nimport type langSign from \"../langSign\";\nimport type { State } from \"./appManagers/appStateManager\";\nimport { HelpCountriesList, HelpCountry, LangPackDifference, LangPackString } from \"../layer\";\nimport apiManager from \"./mtproto/mtprotoworker\";\nimport stateStorage from \"./stateStorage\";\nimport App from \"../config/app\";\nimport rootScope from \"./rootScope\";\nimport RichTextProcessor from \"./richtextprocessor\";\nimport { IS_MOBILE } from \"../environment/userAgent\";\nimport deepEqual from \"../helpers/object/deepEqual\";\nimport safeAssign from \"../helpers/object/safeAssign\";\nimport capitalizeFirstLetter from \"../helpers/string/capitalizeFirstLetter\";\n\nexport const langPack: {[actionType: string]: LangPackKey} = {\n \"messageActionChatCreate\": \"ActionCreateGroup\",\n \"messageActionChatCreateYou\": \"ActionYouCreateGroup\",\n\t\"messageActionChatEditTitle\": \"ActionChangedTitle\",\n\t\"messageActionChatEditPhoto\": \"ActionChangedPhoto\",\n\t\"messageActionChatEditVideo\": \"ActionChangedVideo\",\n\t\"messageActionChatDeletePhoto\": \"ActionRemovedPhoto\",\n\t\"messageActionChatReturn\": \"ActionAddUserSelf\",\n\t\"messageActionChatReturnYou\": \"ActionAddUserSelfYou\",\n\t\"messageActionChatJoined\": \"ActionAddUserSelfMega\",\n\t\"messageActionChatJoinedYou\": \"ChannelMegaJoined\",\n \"messageActionChatAddUser\": \"ActionAddUser\",\n \"messageActionChatAddUsers\": \"ActionAddUser\",\n\t\"messageActionChatLeave\": \"ActionLeftUser\",\n\t\"messageActionChatLeaveYou\": \"YouLeft\",\n\t\"messageActionChatDeleteUser\": \"ActionKickUser\",\n\t\"messageActionChatJoinedByLink\": \"ActionInviteUser\",\n \"messageActionPinMessage\": \"Chat.Service.Group.UpdatedPinnedMessage\",\n \"messageActionContactSignUp\": \"Chat.Service.PeerJoinedTelegram\",\n\t\"messageActionChannelCreate\": \"ActionCreateChannel\",\n\t\"messageActionChannelEditTitle\": \"Chat.Service.Channel.UpdatedTitle\",\n\t\"messageActionChannelEditPhoto\": \"Chat.Service.Channel.UpdatedPhoto\",\n\t\"messageActionChannelEditVideo\": \"Chat.Service.Channel.UpdatedVideo\",\n \"messageActionChannelDeletePhoto\": \"Chat.Service.Channel.RemovedPhoto\",\n \"messageActionHistoryClear\": \"HistoryCleared\",\n\t\"messageActionDiscussionStarted\": \"DiscussionStarted\",\n\n \"messageActionChannelMigrateFrom\": \"ActionMigrateFromGroup\",\n\n \"messageActionPhoneCall.video_in_ok\": \"ChatList.Service.VideoCall.incoming\",\n\t\"messageActionPhoneCall.video_out_ok\": \"ChatList.Service.VideoCall.outgoing\",\n\t\"messageActionPhoneCall.video_missed\": \"ChatList.Service.VideoCall.Missed\",\n\t\"messageActionPhoneCall.video_cancelled\": \"ChatList.Service.VideoCall.Cancelled\",\n \"messageActionPhoneCall.in_ok\": \"ChatList.Service.Call.incoming\",\n\t\"messageActionPhoneCall.out_ok\": \"ChatList.Service.Call.outgoing\",\n\t\"messageActionPhoneCall.missed\": \"ChatList.Service.Call.Missed\",\n\t\"messageActionPhoneCall.cancelled\": \"ChatList.Service.Call.Cancelled\",\n\n\t\"messageActionGroupCall.started\": \"Chat.Service.VoiceChatStarted.Channel\",\n\t\"messageActionGroupCall.started_by\": \"Chat.Service.VoiceChatStarted\",\n\t\"messageActionGroupCall.started_byYou\": \"Chat.Service.VoiceChatStartedYou\",\n\t\"messageActionGroupCall.ended\": \"Chat.Service.VoiceChatFinished.Channel\",\n\t\"messageActionGroupCall.ended_by\": \"Chat.Service.VoiceChatFinished\",\n\t\"messageActionGroupCall.ended_byYou\": \"Chat.Service.VoiceChatFinishedYou\",\n\n\t\"messageActionBotAllowed\": \"Chat.Service.BotPermissionAllowed\"\n};\n\nexport type LangPackKey = /* string | */keyof typeof lang | keyof typeof langSign;\n\nexport type FormatterArgument = string | number | Node | FormatterArgument[];\nexport type FormatterArguments = FormatterArgument[];\n\nexport const UNSUPPORTED_LANG_PACK_KEY: LangPackKey = IS_MOBILE ? 'Message.Unsupported.Mobile' : 'Message.Unsupported.Desktop';\n\nnamespace I18n {\n\texport const strings: Map<LangPackKey, LangPackString> = new Map();\n\texport const countriesList: HelpCountry[] = [];\n\tlet pluralRules: Intl.PluralRules;\n\n\tlet cacheLangPackPromise: Promise<LangPackDifference>;\n\texport let lastRequestedLangCode: string;\n\texport let lastAppliedLangCode: string;\n\texport let requestedServerLanguage = false;\n export let timeFormat: State['settings']['timeFormat'];\n\texport function getCacheLangPack(): Promise<LangPackDifference> {\n\t\tif(cacheLangPackPromise) return cacheLangPackPromise;\n\t\treturn cacheLangPackPromise = Promise.all([\n\t\t\tstateStorage.get('langPack') as Promise<LangPackDifference>,\n\t\t\tpolyfillPromise\n\t\t]).then(([langPack]) => {\n\t\t\tif(!langPack/* || true */) {\n\t\t\t\treturn loadLocalLangPack();\n\t\t\t} else if(DEBUG && false) {\n\t\t\t\treturn getLangPack(langPack.lang_code);\n\t\t\t}/* else if(langPack.appVersion !== App.langPackVersion) {\n\t\t\t\treturn getLangPack(langPack.lang_code);\n\t\t\t} */\n\t\t\t\n\t\t\tif(!lastRequestedLangCode) {\n\t\t\t\tlastRequestedLangCode = langPack.lang_code;\n\t\t\t}\n\t\t\t\n\t\t\tapplyLangPack(langPack);\n\t\t\treturn langPack;\n\t\t}).finally(() => {\n\t\t\tcacheLangPackPromise = undefined;\n\t\t});\n\t}\n\n export function setTimeFormat(format: State['settings']['timeFormat']) {\n const haveToUpdate = !!timeFormat && timeFormat !== format;\n timeFormat = format;\n\n if(haveToUpdate) {\n const elements = Array.from(document.querySelectorAll(`.i18n`)) as HTMLElement[];\n elements.forEach(element => {\n const instance = weakMap.get(element);\n\n if(instance instanceof IntlDateElement) {\n instance.update();\n }\n });\n }\n }\n\n\texport function loadLocalLangPack() {\n\t\tconst defaultCode = App.langPackCode;\n\t\tlastRequestedLangCode = defaultCode;\n\t\treturn Promise.all([\n\t\t\timport('../lang'),\n\t\t\timport('../langSign'),\n\t\t\timport('../countries')\n\t\t]).then(([lang, langSign, countries]) => {\n\t\t\tconst strings: LangPackString[] = [];\n\t\t\tformatLocalStrings(lang.default, strings);\n\t\t\tformatLocalStrings(langSign.default, strings);\n\n\t\t\tconst langPack: LangPackDifference = {\n\t\t\t\t_: 'langPackDifference',\n\t\t\t\tfrom_version: 0,\n\t\t\t\tlang_code: defaultCode,\n\t\t\t\tstrings,\n\t\t\t\tversion: 0,\n\t\t\t\tlocal: true,\n\t\t\t\tcountries: countries.default\n\t\t\t};\n\t\t\treturn saveLangPack(langPack);\n\t\t});\n\t}\n\n\texport function loadLangPack(langCode: string) {\n\t\trequestedServerLanguage = true;\n\t\treturn Promise.all([\n\t\t\tapiManager.invokeApiCacheable('langpack.getLangPack', {\n\t\t\t\tlang_code: langCode,\n\t\t\t\tlang_pack: App.langPack\n\t\t\t}),\n\t\t\tapiManager.invokeApiCacheable('langpack.getLangPack', {\n\t\t\t\tlang_code: langCode,\n\t\t\t\tlang_pack: 'android'\n\t\t\t}),\n\t\t\timport('../lang'),\n\t\t\timport('../langSign'),\n\t\t\tapiManager.invokeApiCacheable('help.getCountriesList', {\n\t\t\t\tlang_code: langCode,\n\t\t\t\thash: 0\n\t\t\t}) as Promise<HelpCountriesList.helpCountriesList>,\n\t\t\tpolyfillPromise,\n\t\t]);\n\t}\n\n\texport function getStrings(langCode: string, strings: string[]) {\n\t\treturn apiManager.invokeApi('langpack.getStrings', {\n\t\t\tlang_pack: App.langPack,\n\t\t\tlang_code: langCode,\n\t\t\tkeys: strings\n\t\t});\n\t}\n\n\texport function formatLocalStrings(strings: any, pushTo: LangPackString[] = []) {\n\t\tfor(const i in strings) {\n\t\t\t// @ts-ignore\n\t\t\tconst v = strings[i];\n\t\t\tif(typeof(v) === 'string') {\n\t\t\t\tpushTo.push({\n\t\t\t\t\t_: 'langPackString',\n\t\t\t\t\tkey: i,\n\t\t\t\t\tvalue: v\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpushTo.push({\n\t\t\t\t\t_: 'langPackStringPluralized',\n\t\t\t\t\tkey: i,\n\t\t\t\t\t...v\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn pushTo;\n\t}\n\n\texport function getLangPack(langCode: string) {\n\t\tlastRequestedLangCode = langCode;\n\t\treturn loadLangPack(langCode).then(([langPack1, langPack2, localLangPack1, localLangPack2, countries, _]) => {\n\t\t\tlet strings: LangPackString[] = [];\n\n\t\t\t[localLangPack1, localLangPack2].forEach(l => {\n\t\t\t\tformatLocalStrings(l.default as any, strings);\n\t\t\t});\n\n\t\t\tstrings = strings.concat(langPack1.strings);\n\n\t\t\tfor(const string of langPack2.strings) {\n\t\t\t\tstrings.push(string);\n\t\t\t}\n\n\t\t\tlangPack1.strings = strings;\n\t\t\tlangPack1.countries = countries;\n\t\t\treturn saveLangPack(langPack1);\n\t\t});\n\t}\n\n\texport function saveLangPack(langPack: LangPackDifference) {\n\t\tlangPack.appVersion = App.langPackVersion;\n\n\t\treturn stateStorage.set({langPack}).then(() => {\n\t\t\tapplyLangPack(langPack);\n\t\t\treturn langPack;\n\t\t});\n\t}\n\n\texport const polyfillPromise = (function checkIfPolyfillNeeded() {\n\t\tif(typeof(Intl) !== 'undefined' && typeof(Intl.PluralRules) !== 'undefined'/* && false */) {\n\t\t\treturn Promise.resolve();\n\t\t} else {\n\t\t\treturn import('./pluralPolyfill').then((_Intl) => {\n\t\t\t\t(window as any).Intl = Object.assign(typeof(Intl) !== 'undefined' ? Intl : {}, _Intl.default);\n\t\t\t});\n\t\t}\n\t})();\n\t\n\texport function applyLangPack(langPack: LangPackDifference) {\n\t\tif(langPack.lang_code !== lastRequestedLangCode) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tpluralRules = new Intl.PluralRules(langPack.lang_code);\n\t\t} catch(err) {\n\t\t\tconsole.error('pluralRules error', err);\n\t\t\tpluralRules = new Intl.PluralRules(langPack.lang_code.split('-', 1)[0]);\n\t\t}\n\n\t\tstrings.clear();\n\n\t\tfor(const string of langPack.strings) {\n\t\t\tstrings.set(string.key as LangPackKey, string);\n\t\t}\n\n\t\tif(langPack.countries) {\n\t\t\tcountriesList.length = 0;\n\t\t\tcountriesList.push(...langPack.countries.countries);\n\n\t\t\tlangPack.countries.countries.forEach(country => {\n\t\t\t\tif(country.name) {\n\t\t\t\t\tconst langPackKey: any = country.default_name;\n\t\t\t\t\tstrings.set(langPackKey, {\n\t\t\t\t\t\t_: 'langPackString',\n\t\t\t\t\t\tkey: langPackKey,\n\t\t\t\t\t\tvalue: country.name\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif(lastAppliedLangCode !== langPack.lang_code) {\n\t\t\trootScope.dispatchEvent('language_change', langPack.lang_code);\n\t\t\tlastAppliedLangCode = langPack.lang_code;\n\t\t}\n\n\t\tconst elements = Array.from(document.querySelectorAll(`.i18n`)) as HTMLElement[];\n\t\telements.forEach(element => {\n\t\t\tconst instance = weakMap.get(element);\n\n\t\t\tif(instance) {\n\t\t\t\tinstance.update();\n\t\t\t}\n\t\t});\n\t}\n\n function pushNextArgument(out: ReturnType<typeof superFormatter>, args: FormatterArguments, indexHolder: {i: number}) {\n const arg = args[indexHolder.i++];\n\t\tif(Array.isArray(arg)) {\n\t\t\tout.push(...arg as any);\n\t\t} else {\n\t\t\tout.push(arg);\n\t\t}\n }\n\n\texport function superFormatter(input: string, args?: FormatterArguments, indexHolder = {i: 0}): Exclude<FormatterArgument, FormatterArgument[]>[] {\n\t\tlet out: ReturnType<typeof superFormatter> = [];\n\t\tconst regExp = /(\\*\\*|__)(.+?)\\1|(\\n)|(\\[.+?\\]\\(.*?\\))|un\\d|%\\d\\$.|%./g;\n\n\t\tlet lastIndex = 0;\n\t\tinput.replace(regExp, (match, p1: any, p2: any, p3: any, p4: string, offset: number, string: string) => {\n\t\t\t//console.table({match, p1, p2, offset, string});\n\n\t\t\tout.push(string.slice(lastIndex, offset));\n\n\t\t\tif(p1) {\n\t\t\t\t//offset += p1.length;\n let element: HTMLElement;\n\t\t\t\tswitch(p1) {\n\t\t\t\t\tcase '**': {\n element = document.createElement('b');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n case '__': {\n element = document.createElement('i');\n break;\n }\n\t\t\t\t}\n\n element.append(...superFormatter(p2, args, indexHolder) as any);\n out.push(element);\n\t\t\t} else if(p3) {\n\t\t\t\tout.push(document.createElement('br'));\n\t\t\t} else if(p4) {\n const idx = p4.lastIndexOf(']');\n\t\t\t\tconst text = p4.slice(1, idx);\n \n\t\t\t\tconst url = p4.slice(idx + 2, p4.length - 1);\n let a: HTMLAnchorElement;\n\t\t\t\tif(url && RichTextProcessor.matchUrlProtocol(url)) {\n a = document.createElement('a');\n const wrappedUrl = RichTextProcessor.wrapUrl(url);\n a.href = wrappedUrl.url;\n if(wrappedUrl.onclick) a.setAttribute('onclick', wrappedUrl.onclick);\n a.target = '_blank';\n\t\t\t\t} else {\n a = args[indexHolder.i++] as HTMLAnchorElement;\n a.textContent = ''; // reset content\n }\n\n a.append(...superFormatter(text, args, indexHolder) as any);\n\n\t\t\t\tout.push(a);\n\t\t\t} else if(args) {\n pushNextArgument(out, args, indexHolder);\n\t\t\t}\n\n\t\t\tlastIndex = offset + match.length;\n\t\t\treturn '';\n\t\t});\n\t\n\t\tif(lastIndex !== input.length) {\n\t\t\tout.push(input.slice(lastIndex));\n\t\t}\n\n\t\treturn out;\n\t}\n\t\n\texport function format(key: LangPackKey, plain: true, args?: FormatterArguments): string;\n\texport function format(key: LangPackKey, plain?: false, args?: FormatterArguments): ReturnType<typeof superFormatter>;\n\texport function format(key: LangPackKey, plain = false, args?: FormatterArguments): ReturnType<typeof superFormatter> | string {\n\t\tconst str = strings.get(key);\n\t\tlet input: string;\n\t\tif(str) {\n\t\t\tif(str._ === 'langPackStringPluralized' && args?.length) {\n\t\t\t\tlet v = args[0] as number | string;\n\t\t\t\tif(typeof(v) === 'string') v = +v.replace(/\\D/g, '');\n\t\t\t\tconst s = pluralRules.select(v);\n\t\t\t\t// @ts-ignore\n\t\t\t\tinput = str[s + '_value'] || str['other_value'];\n\t\t\t} else if(str._ === 'langPackString') {\n\t\t\t\tinput = str.value;\n\t\t\t} else {\n\t\t\t\t//input = '[' + key + ']';\n\t\t\t\tinput = key;\n\t\t\t}\n\t\t} else {\n\t\t\t//input = '[' + key + ']';\n\t\t\tinput = key;\n\t\t}\n\n const result = superFormatter(input, args);\n if(plain) { // * let's try a hack now... (don't want to replace []() entity)\n return result.map(item => item instanceof Node ? item.textContent : item).join('');\n } else {\n return result;\n }\n\t\t\n\t\t/* if(plain) {\n\t\t\tif(args?.length) {\n\t\t\t\tconst regExp = /un\\d|%\\d\\$.|%./g;\n\t\t\t\tlet i = 0;\n\t\t\t\tinput = input.replace(regExp, (match, offset, string) => {\n\t\t\t\t\treturn '' + args[i++];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn input;\n\t\t} else {\n\t\t\treturn superFormatter(input, args);\n\t\t} */\n\t}\n\n\texport const weakMap: WeakMap<HTMLElement, IntlElementBase<IntlElementBaseOptions>> = new WeakMap();\n\n\texport type IntlElementBaseOptions = {\n\t\telement?: HTMLElement,\n\t\tproperty?: /* 'innerText' | */'innerHTML' | 'placeholder',\n\t};\n\n\tabstract class IntlElementBase<Options extends IntlElementBaseOptions> {\n\t\tpublic element: IntlElementBaseOptions['element'];\n\t\tpublic property: IntlElementBaseOptions['property'] = 'innerHTML';\n\t\n\t\tconstructor(options?: Options) {\n\t\t\tthis.element = options?.element || document.createElement('span');\n\t\t\tthis.element.classList.add('i18n');\n\t\t\t\n if(options && ((options as any as IntlElementOptions).key || (options as any as IntlDateElementOptions).date)) {\n this.update(options);\n }\n\n\t\t\tweakMap.set(this.element, this);\n\t\t}\n\n\t\tabstract update(options?: Options): void;\n\t}\n\n\texport type IntlElementOptions = IntlElementBaseOptions & {\n\t\tkey?: LangPackKey,\n\t\targs?: FormatterArguments\n\t};\n\texport class IntlElement extends IntlElementBase<IntlElementOptions> {\n\t\tpublic key: IntlElementOptions['key'];\n\t\tpublic args: IntlElementOptions['args'];\n\n\t\tpublic update(options?: IntlElementOptions) {\n\t\t\tsafeAssign(this, options);\n\t\n\t\t\tif(this.property === 'innerHTML') {\n\t\t\t\tthis.element.textContent = '';\n\t\t\t\tthis.element.append(...format(this.key, false, this.args) as any);\n\t\t\t} else {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconst v = this.element[this.property];\n\t\t\t\tconst formatted = format(this.key, true, this.args);\n\n\t\t\t\t// * hasOwnProperty won't work here\n\t\t\t\tif(v === undefined) this.element.dataset[this.property] = formatted;\n\t\t\t\telse (this.element as HTMLInputElement)[this.property] = formatted;\n\t\t\t}\n\t\t}\n\n public compareAndUpdate(options?: IntlElementOptions) {\n if(this.key === options.key && deepEqual(this.args, options.args)) {\n return;\n }\n\n return this.update(options);\n }\n\t}\n\n\texport type IntlDateElementOptions = IntlElementBaseOptions & {\n\t\tdate?: Date,\n\t\toptions: Intl.DateTimeFormatOptions\n\t};\n\texport class IntlDateElement extends IntlElementBase<IntlDateElementOptions> {\n\t\tpublic date: IntlDateElementOptions['date'];\n\t\tpublic options: IntlDateElementOptions['options'];\n\n\t\tpublic update(options?: IntlDateElementOptions) {\n\t\t\tsafeAssign(this, options);\n\t\n\t\t\t//var options = { month: 'long', day: 'numeric' };\n\t\t\t\n\t\t\t// * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle#adding_an_hour_cycle_via_the_locale_string\n\t\t\tconst dateTimeFormat = new Intl.DateTimeFormat(lastRequestedLangCode + '-u-hc-' + timeFormat, this.options);\n\t\t\t\n\t\t\t(this.element as any)[this.property] = capitalizeFirstLetter(dateTimeFormat.format(this.date));\n\t\t}\n\t}\n\n\texport function i18n(key: LangPackKey, args?: FormatterArguments) {\n\t\treturn new IntlElement({key, args}).element;\n\t}\n\t\n\texport function i18n_(options: IntlElementOptions) {\n\t\treturn new IntlElement(options).element;\n\t}\n\n\texport function _i18n(element: HTMLElement, key: LangPackKey, args?: FormatterArguments, property?: IntlElementOptions['property']) {\n\t\treturn new IntlElement({element, key, args, property}).element;\n\t}\n}\n\nexport {I18n};\nexport default I18n;\n\nconst i18n = I18n.i18n;\nexport {i18n};\n\nconst i18n_ = I18n.i18n_;\nexport {i18n_};\n\nconst _i18n = I18n._i18n;\nexport {_i18n};\n\nexport function joinElementsWith(elements: (Node | string)[], joiner: typeof elements[0] | ((isLast: boolean) => typeof elements[0])) {\n\tconst arr = elements.slice(0, 1);\n for(let i = 1; i < elements.length; ++i) {\n const isLast = (elements.length - 1) === i;\n arr.push(typeof(joiner) === 'function' ? joiner(isLast) : joiner);\n arr.push(elements[i]);\n }\n\n\treturn arr;\n}\n\n\nexport function join(elements: (Node | string)[], useLast: boolean, plain: true): string;\nexport function join(elements: (Node | string)[], useLast?: boolean, plain?: false): (string | Node)[];\nexport function join(elements: (Node | string)[], useLast: boolean, plain: boolean): string | (string | Node)[];\nexport function join(elements: (Node | string)[], useLast = true, plain?: boolean): string | (string | Node)[] {\n\tconst joined = joinElementsWith(elements, (isLast) => {\n const langPackKey: LangPackKey = isLast && useLast ? 'AutoDownloadSettings.LastDelimeter' : 'AutoDownloadSettings.Delimeter';\n return plain ? I18n.format(langPackKey, true) : i18n(langPackKey);\n });\n\n return plain ? joined.join('') : joined;\n}\n\nMOUNT_CLASS_TO.I18n = I18n;\n","export default function capitalizeFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"mtproto.worker.77bc82001791a2fea575.bundle.worker.js\");\n}\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport { logger, LogTypes } from '../../logger';\r\nimport Modes from '../../../config/modes';\r\nimport EventListenerBase from '../../../helpers/eventListenerBase';\r\nimport { MTConnection } from './transport';\r\n\r\n// let closeSocketBefore = Date.now() + 30e3;\r\n// let closeSocketAfter = Date.now() + 10e3;\r\n\r\nexport default class Socket extends EventListenerBase<{\r\n open: () => void,\r\n message: (buffer: ArrayBuffer) => any,\r\n close: () => void,\r\n}> implements MTConnection {\r\n private ws: WebSocket;\r\n private log: ReturnType<typeof logger>;\r\n private debug = Modes.debug && false;\r\n\r\n constructor(protected dcId: number, protected url: string, logSuffix: string) {\r\n super();\r\n\r\n let logTypes = LogTypes.Error | LogTypes.Log;\r\n if(this.debug) logTypes |= LogTypes.Debug;\r\n this.log = logger(`WS-${dcId}` + logSuffix, logTypes);\r\n this.log('constructor');\r\n this.connect();\r\n\r\n return this;\r\n }\r\n\r\n private removeListeners() {\r\n if(!this.ws) {\r\n return;\r\n }\r\n\r\n this.ws.removeEventListener('open', this.handleOpen);\r\n this.ws.removeEventListener('close', this.handleClose);\r\n this.ws.removeEventListener('error', this.handleError);\r\n this.ws.removeEventListener('message', this.handleMessage);\r\n this.ws = undefined;\r\n }\r\n \r\n private connect() {\r\n this.ws = new WebSocket(this.url, 'binary');\r\n this.ws.binaryType = 'arraybuffer';\r\n this.ws.addEventListener('open', this.handleOpen);\r\n this.ws.addEventListener('close', this.handleClose);\r\n this.ws.addEventListener('error', this.handleError);\r\n this.ws.addEventListener('message', this.handleMessage);\r\n\r\n // if(Date.now() < closeSocketBefore) {\r\n // if(Date.now() >= closeSocketAfter) {\r\n // this.ws.close();\r\n // }\r\n }\r\n\r\n public close() {\r\n if(!this.ws) {\r\n return;\r\n }\r\n\r\n this.log('close execution');\r\n\r\n try {\r\n this.ws.close();\r\n } catch(err) {\r\n\r\n }\r\n this.handleClose();\r\n }\r\n \r\n private handleOpen = () => {\r\n this.log('opened');\r\n\r\n this.debug && this.log.debug('sending init packet');\r\n this.dispatchEvent('open');\r\n };\r\n\r\n private handleError = (e: Event) => {\r\n this.log.error('handleError', e);\r\n this.close();\r\n };\r\n\r\n private handleClose = () => {\r\n this.log('closed'/* , event, this.pending, this.ws.bufferedAmount */);\r\n\r\n this.removeListeners();\r\n this.dispatchEvent('close');\r\n };\r\n\r\n private handleMessage = (event: MessageEvent) => {\r\n this.debug && this.log.debug('<-', 'handleMessage', /* event, */event.data.byteLength);\r\n\r\n this.dispatchEvent('message', event.data as ArrayBuffer);\r\n };\r\n\r\n public send = (body: Uint8Array) => {\r\n this.debug && this.log.debug('-> body length to send:', body.length);\r\n\r\n this.ws.send(body);\r\n };\r\n}\r\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport type { LocalStorageProxyTask, LocalStorageProxyTaskResponse } from '../localStorage';\n//import type { LocalStorageProxyDeleteTask, LocalStorageProxySetTask } from '../storage';\nimport type { Awaited, InvokeApiOptions, WorkerTaskVoidTemplate } from '../../types';\nimport type { Config, InputFile, JSONValue, MethodDeclMap, User } from '../../layer';\nimport MTProtoWorker from 'worker-loader!./mtproto.worker';\n//import './mtproto.worker';\nimport CryptoWorkerMethods, { CryptoMethods } from '../crypto/crypto_methods';\nimport { logger } from '../logger';\nimport rootScope from '../rootScope';\nimport webpWorkerController from '../webp/webpWorkerController';\nimport { ApiFileManager, DownloadOptions } from './apiFileManager';\nimport type { RequestFilePartTask, RequestFilePartTaskResponse, ServiceWorkerTask } from '../serviceWorker/index.service';\nimport { UserAuth } from './mtproto_config';\nimport type { MTMessage } from './networker';\nimport DEBUG, { MOUNT_CLASS_TO } from '../../config/debug';\nimport Socket from './transports/websocket';\nimport singleInstance from './singleInstance';\nimport sessionStorage from '../sessionStorage';\nimport webPushApiManager from './webPushApiManager';\nimport AppStorage from '../storage';\nimport appRuntimeManager from '../appManagers/appRuntimeManager';\nimport { SocketProxyTask } from './transports/socketProxied';\nimport telegramMeWebManager from './telegramMeWebManager';\nimport { CacheStorageDbName } from '../cacheStorage';\nimport { pause } from '../../helpers/schedulers/pause';\nimport IS_WEBP_SUPPORTED from '../../environment/webpSupport';\nimport type { ApiError } from './apiManager';\nimport { MTAppConfig } from './appConfig';\nimport { ignoreRestrictionReasons } from '../../helpers/restrictions';\nimport isObject from '../../helpers/object/isObject';\n\ntype Task = {\n taskId: number,\n task: string,\n args: any[]\n};\n\ntype HashResult = {\n hash: number,\n result: any\n};\n\ntype HashOptions = {\n [queryJSON: string]: HashResult\n};\n\nexport interface ToggleStorageTask extends WorkerTaskVoidTemplate {\n type: 'toggleStorage',\n payload: boolean\n};\n\nexport class ApiManagerProxy extends CryptoWorkerMethods {\n public worker: /* Window */Worker;\n private afterMessageIdTemp = 0;\n\n private taskId = 0;\n private awaiting: {\n [id: number]: {\n resolve: any,\n reject: any,\n taskName: string\n }\n } = {} as any;\n private pending: Array<Task> = [];\n\n public updatesProcessor: (obj: any) => void = null;\n\n private log = logger('API-PROXY');\n\n private hashes: {[method: string]: HashOptions} = {};\n\n private apiPromisesSingleProcess: {\n [q: string]: Map<any, Promise<any>>\n } = {};\n private apiPromisesSingle: {\n [q: string]: Promise<any>\n } = {};\n private apiPromisesCacheable: {\n [method: string]: {\n [queryJSON: string]: {\n timestamp: number,\n promise: Promise<any>,\n fulfilled: boolean,\n timeout?: number,\n params: any\n }\n }\n } = {};\n\n private isSWRegistered = true;\n\n private debug = DEBUG /* && false */;\n\n private sockets: Map<number, Socket> = new Map();\n\n private taskListeners: {[taskType: string]: (task: any) => void} = {};\n private taskListenersSW: {[taskType: string]: (task: any) => void} = {};\n\n public onServiceWorkerFail: () => void;\n\n private postMessagesWaiting: any[][] = [];\n\n private getConfigPromise: Promise<Config.config>;\n private getAppConfigPromise: Promise<MTAppConfig>;\n\n constructor() {\n super();\n this.log('constructor');\n\n singleInstance.start();\n\n this.registerServiceWorker();\n\n this.addTaskListener('clear', () => {\n const toClear: CacheStorageDbName[] = ['cachedFiles', 'cachedStreamChunks'];\n Promise.all([\n AppStorage.toggleStorage(false), \n sessionStorage.clear(),\n Promise.race([\n telegramMeWebManager.setAuthorized(false),\n pause(3000)\n ]),\n webPushApiManager.forceUnsubscribe(),\n Promise.all(toClear.map(cacheName => caches.delete(cacheName)))\n ]).finally(() => {\n appRuntimeManager.reload();\n });\n });\n\n this.addTaskListener('connectionStatusChange', (task: any) => {\n rootScope.dispatchEvent('connection_status_change', task.payload);\n });\n\n this.addTaskListener('convertWebp', (task) => {\n webpWorkerController.postMessage(task);\n });\n\n this.addTaskListener('socketProxy', (task: SocketProxyTask) => {\n const socketTask = task.payload;\n const id = socketTask.id;\n //console.log('socketProxy', socketTask, id);\n\n if(socketTask.type === 'send') {\n const socket = this.sockets.get(id);\n socket.send(socketTask.payload);\n } else if(socketTask.type === 'close') { // will remove from map in onClose\n const socket = this.sockets.get(id);\n socket.close();\n } else if(socketTask.type === 'setup') {\n const socket = new Socket(socketTask.payload.dcId, socketTask.payload.url, socketTask.payload.logSuffix);\n \n const onOpen = () => {\n //console.log('socketProxy onOpen');\n this.postMessage({\n type: 'socketProxy', \n payload: {\n type: 'open',\n id\n }\n });\n };\n const onClose = () => {\n this.postMessage({\n type: 'socketProxy', \n payload: {\n type: 'close',\n id\n }\n });\n\n socket.removeEventListener('open', onOpen);\n socket.removeEventListener('close', onClose);\n socket.removeEventListener('message', onMessage);\n this.sockets.delete(id);\n };\n const onMessage = (buffer: ArrayBuffer) => {\n this.postMessage({\n type: 'socketProxy', \n payload: {\n type: 'message',\n id,\n payload: buffer\n }\n });\n };\n\n socket.addEventListener('open', onOpen);\n socket.addEventListener('close', onClose);\n socket.addEventListener('message', onMessage);\n this.sockets.set(id, socket);\n }\n });\n\n this.addTaskListener('localStorageProxy', (task: LocalStorageProxyTask) => {\n const storageTask = task.payload;\n // @ts-ignore\n sessionStorage[storageTask.type](...storageTask.args).then(res => {\n this.postMessage({\n type: 'localStorageProxy',\n id: task.id,\n payload: res\n } as LocalStorageProxyTaskResponse);\n });\n });\n\n rootScope.addEventListener('language_change', (language) => {\n this.performTaskWorkerVoid('setLanguage', language);\n });\n\n window.addEventListener('online', (event) => {\n this.forceReconnectTimeout();\n });\n\n \n this.registerWorker();\n \n\n setTimeout(() => {\n this.getConfig();\n }, 5000);\n }\n\n public isServiceWorkerOnline() {\n return this.isSWRegistered;\n }\n\n private registerServiceWorker() {\n if(!('serviceWorker' in navigator)) return;\n \n const worker = navigator.serviceWorker;\n worker.register('./sw.js', {scope: './'}).then(registration => {\n this.log('SW registered', registration);\n this.isSWRegistered = true;\n\n const sw = registration.installing || registration.waiting || registration.active;\n sw.addEventListener('statechange', (e) => {\n this.log('SW statechange', e);\n });\n\n //this.postSWMessage = worker.controller.postMessage.bind(worker.controller);\n\n \n \n \n \n }, (err) => {\n this.isSWRegistered = false;\n this.log.error('SW registration failed!', err);\n\n if(this.onServiceWorkerFail) {\n this.onServiceWorkerFail();\n }\n });\n\n worker.addEventListener('controllerchange', () => {\n this.log.warn('controllerchange');\n this.releasePending();\n\n worker.controller.addEventListener('error', (e) => {\n this.log.error('controller error:', e);\n });\n });\n\n \n \n \n worker.addEventListener('message', (e) => {\n const task: ServiceWorkerTask = e.data;\n if(!isObject(task)) {\n return;\n }\n\n const callback = this.taskListenersSW[task.type];\n if(callback) {\n callback(task);\n }\n });\n\n this.addServiceWorkerTaskListener('requestFilePart', (task: RequestFilePartTask) => {\n const responseTask: RequestFilePartTaskResponse = {\n type: task.type,\n id: task.id\n };\n \n this.performTaskWorker<Awaited<ReturnType<ApiFileManager['requestFilePart']>>>('requestFilePart', ...task.payload)\n .then((uploadFile) => {\n responseTask.payload = uploadFile;\n this.postSWMessage(responseTask);\n }, (err) => {\n responseTask.originalPayload = task.payload;\n responseTask.error = err;\n this.postSWMessage(responseTask);\n });\n });\n\n \n\n worker.addEventListener('messageerror', (e) => {\n this.log.error('SW messageerror:', e);\n });\n }\n\n public postMessage(...args: any[]) {\n this.postMessagesWaiting.push(args);\n }\n\n public postSWMessage(message: any) {\n if(navigator.serviceWorker.controller) {\n navigator.serviceWorker.controller.postMessage(message);\n }\n }\n\n private onWorkerFirstMessage(worker: any) {\n if(!this.worker) {\n this.worker = worker;\n this.log('set webWorker');\n\n this.postMessage = this.worker.postMessage.bind(this.worker);\n\n this.postMessagesWaiting.forEach(args => this.postMessage(...args));\n this.postMessagesWaiting.length = 0;\n\n const isWebpSupported = IS_WEBP_SUPPORTED;\n this.log('WebP supported:', isWebpSupported);\n this.postMessage({type: 'webpSupport', payload: isWebpSupported});\n this.postMessage({type: 'userAgent', payload: navigator.userAgent});\n\n this.releasePending();\n }\n }\n\n public addTaskListener(name: keyof ApiManagerProxy['taskListeners'], callback: ApiManagerProxy['taskListeners'][typeof name]) {\n this.taskListeners[name] = callback;\n }\n\n public addServiceWorkerTaskListener(name: keyof ApiManagerProxy['taskListenersSW'], callback: ApiManagerProxy['taskListenersSW'][typeof name]) {\n this.taskListenersSW[name] = callback;\n }\n\n private onWorkerMessage = (e: MessageEvent) => {\n //this.log('got message from worker:', e.data);\n\n const task = e.data;\n\n if(!isObject(task)) {\n return;\n }\n\n const callback = this.taskListeners[task.type];\n if(callback) {\n callback(task);\n return;\n }\n\n if(task.update) {\n if(this.updatesProcessor) {\n this.updatesProcessor(task.update);\n }\n } else if(task.progress) {\n rootScope.dispatchEvent('download_progress', task.progress);\n } else if(task.hasOwnProperty('result') || task.hasOwnProperty('error')) {\n this.finalizeTask(task.taskId, task.result, task.error);\n }\n };\n\n \n private registerWorker() {\n // return;\n\n const worker = new MTProtoWorker();\n //const worker = window;\n worker.addEventListener('message', this.onWorkerFirstMessage.bind(this, worker), {once: true});\n worker.addEventListener('message', this.onWorkerMessage);\n\n worker.addEventListener('error', (err) => {\n this.log.error('WORKER ERROR', err);\n });\n }\n \n\n private finalizeTask(taskId: number, result: any, error: any) {\n const deferred = this.awaiting[taskId];\n if(deferred !== undefined) {\n this.debug && this.log.debug('done', deferred.taskName, result, error);\n error ? deferred.reject(error) : deferred.resolve(result);\n delete this.awaiting[taskId];\n }\n }\n\n private createTask(task: string, type: string, args: any[]): any {\n return {\n task,\n taskId: this.taskId++,\n type,\n args,\n };\n }\n\n public performTaskWorkerVoid(taskName: string, ...args: any[]) {\n const task = this.createTask(taskName, undefined, args);\n this.pending.push(task);\n this.releasePending();\n }\n\n public performTaskWorkerNew<T>(taskName: string, type: string, ...args: any[]) {\n this.debug && this.log.debug('start', taskName, args);\n\n return new Promise<T>((resolve, reject) => {\n const task = this.createTask(taskName, type, args);\n this.pending.push(task);\n this.awaiting[task.taskId] = {resolve, reject, taskName: taskName};\n this.releasePending();\n });\n }\n\n public performTaskWorker<T>(task: string, ...args: any[]) {\n return this.performTaskWorkerNew<T>(task, undefined, ...args);\n }\n\n private releasePending() {\n //return;\n\n if(this.postMessage) {\n this.debug && this.log.debug('releasing tasks, length:', this.pending.length);\n this.pending.forEach(pending => {\n this.postMessage(pending);\n });\n \n this.debug && this.log.debug('released tasks');\n this.pending.length = 0;\n }\n }\n\n public setUpdatesProcessor(callback: (obj: any) => void) {\n this.updatesProcessor = callback;\n }\n\n \n public invokeCrypto<Method extends keyof CryptoMethods>(method: Method, ...args: Parameters<CryptoMethods[typeof method]>): Promise<Awaited<ReturnType<CryptoMethods[typeof method]>>> {\n return this.performTaskWorkerNew(method, 'crypto', ...args);\n }\n \n\n public invokeApi<T extends keyof MethodDeclMap>(method: T, params: MethodDeclMap[T]['req'] = {}, options: InvokeApiOptions = {}): Promise<MethodDeclMap[T]['res']> {\n //console.log('will invokeApi:', method, params, options);\n return this.performTaskWorker('invokeApi', method, params, options);\n }\n\n public invokeApiAfter<T extends keyof MethodDeclMap>(method: T, params: MethodDeclMap[T]['req'] = {}, options: InvokeApiOptions = {}): Promise<MethodDeclMap[T]['res']> {\n let o = options;\n o.prepareTempMessageId = '' + ++this.afterMessageIdTemp;\n \n o = {...options};\n (options as MTMessage).messageId = o.prepareTempMessageId;\n\n //console.log('will invokeApi:', method, params, options);\n return this.invokeApi(method, params, o);\n }\n\n public invokeApiHashable<T extends keyof MethodDeclMap, R>(o: {\n method: T, \n processResult?: (response: MethodDeclMap[T]['res']) => R, \n processError?: (error: ApiError) => any,\n params?: Omit<MethodDeclMap[T]['req'], 'hash'>, \n options?: InvokeApiOptions & {cacheKey?: string}\n }): Promise<R> {\n // @ts-ignore\n o.params ??= {};\n o.options ??= {};\n //console.log('will invokeApi:', method, params, options);\n\n const {params, options, method} = o;\n\n const queryJSON = JSON.stringify(params);\n let cached: HashResult;\n if(this.hashes[method]) {\n cached = this.hashes[method][queryJSON];\n if(cached) {\n (params as any).hash = cached.hash;\n }\n }\n\n return this.invokeApiSingleProcess({\n method,\n processResult: (result) => {\n if(result._.includes('NotModified')) {\n this.debug && this.log.warn('NotModified saved!', method, queryJSON);\n return cached.result;\n }\n \n if(result.hash/* || result.messages */) {\n const hash = result.hash/* || this.computeHash(result.messages) */;\n \n if(!this.hashes[method]) this.hashes[method] = {};\n this.hashes[method][queryJSON] = {\n hash,\n result\n };\n }\n\n if(o.processResult) {\n return o.processResult(result);\n }\n \n return result;\n },\n params,\n options\n });\n }\n\n public invokeApiSingle<T extends keyof MethodDeclMap>(method: T, params: MethodDeclMap[T]['req'] = {} as any, options: InvokeApiOptions = {}): Promise<MethodDeclMap[T]['res']> {\n const q = method + '-' + JSON.stringify(params);\n const cache = this.apiPromisesSingle;\n if(cache[q]) {\n return cache[q];\n }\n\n return cache[q] = this.invokeApi(method, params, options).finally(() => {\n delete cache[q];\n });\n }\n\n public invokeApiSingleProcess<T extends keyof MethodDeclMap, R>(o: {\n method: T, \n processResult: (response: MethodDeclMap[T]['res']) => R, \n processError?: (error: ApiError) => any,\n params?: MethodDeclMap[T]['req'], \n options?: InvokeApiOptions & {cacheKey?: string}\n }): Promise<R> {\n o.params ??= {};\n o.options ??= {};\n\n const {method, processResult, processError, params, options} = o;\n const cache = this.apiPromisesSingleProcess;\n const cacheKey = options.cacheKey || JSON.stringify(params);\n const map = cache[method] ?? (cache[method] = new Map());\n const oldPromise = map.get(cacheKey);\n if(oldPromise) {\n return oldPromise;\n }\n \n const originalPromise = this.invokeApi(method, params, options);\n const newPromise: Promise<R> = originalPromise.then(processResult, processError);\n\n const p = newPromise.finally(() => {\n map.delete(cacheKey);\n if(!map.size) {\n delete cache[method];\n }\n });\n\n map.set(cacheKey, p);\n return p;\n }\n\n public invokeApiCacheable<T extends keyof MethodDeclMap>(method: T, params: MethodDeclMap[T]['req'] = {} as any, options: InvokeApiOptions & Partial<{cacheSeconds: number, override: boolean}> = {}): Promise<MethodDeclMap[T]['res']> {\n const cache = this.apiPromisesCacheable[method] ?? (this.apiPromisesCacheable[method] = {});\n const queryJSON = JSON.stringify(params);\n const item = cache[queryJSON];\n if(item && (!options.override || !item.fulfilled)) {\n return item.promise;\n }\n\n if(options.override) {\n if(item && item.timeout) {\n clearTimeout(item.timeout);\n delete item.timeout;\n }\n\n delete options.override;\n }\n\n let timeout: number;\n if(options.cacheSeconds) {\n timeout = window.setTimeout(() => {\n delete cache[queryJSON];\n }, options.cacheSeconds * 1000);\n delete options.cacheSeconds;\n }\n\n const promise = this.invokeApi(method, params, options);\n\n cache[queryJSON] = {\n timestamp: Date.now(),\n fulfilled: false,\n timeout,\n promise,\n params\n };\n\n return promise;\n }\n\n public clearCache<T extends keyof MethodDeclMap>(method: T, verify: (params: MethodDeclMap[T]['req']) => boolean) {\n const cache = this.apiPromisesCacheable[method];\n if(cache) {\n for(const queryJSON in cache) {\n const item = cache[queryJSON];\n try {\n if(verify(item.params)) {\n if(item.timeout) {\n clearTimeout(item.timeout);\n }\n \n delete cache[queryJSON];\n }\n } catch(err) {\n this.log.error('clearCache error:', err, queryJSON, item);\n }\n }\n }\n }\n\n /* private computeHash(smth: any[]) {\n smth = smth.slice().sort((a, b) => a.id - b.id);\n //return smth.reduce((hash, v) => (((hash * 0x4F25) & 0x7FFFFFFF) + v.id) & 0x7FFFFFFF, 0);\n return smth.reduce((hash, v) => ((hash * 20261) + 0x80000000 + v.id) % 0x80000000, 0);\n } */\n\n public setBaseDcId(dcId: number) {\n return this.performTaskWorker('setBaseDcId', dcId);\n }\n\n public setQueueId(queueId: number) {\n return this.performTaskWorker('setQueueId', queueId);\n }\n\n public setUserAuth(userAuth: UserAuth | UserId) {\n if(typeof(userAuth) === 'string' || typeof(userAuth) === 'number') {\n userAuth = {dcID: 0, date: Date.now() / 1000 | 0, id: userAuth.toPeerId(false)};\n }\n \n rootScope.dispatchEvent('user_auth', userAuth);\n return this.performTaskWorker('setUserAuth', userAuth);\n }\n\n public setUser(user: User) {\n // appUsersManager.saveApiUser(user);\n return this.setUserAuth(user.id);\n }\n\n public getNetworker(dc_id: number, options?: InvokeApiOptions) {\n return this.performTaskWorker('getNetworker', dc_id, options);\n }\n\n public logOut(): Promise<void> {\n // AppStorage.toggleStorage(false);\n return this.performTaskWorker('logOut');\n }\n\n public cancelDownload(fileName: string) {\n return this.performTaskWorker('cancelDownload', fileName);\n }\n\n public downloadFile(options: DownloadOptions) {\n return this.performTaskWorker<Blob>('downloadFile', options);\n }\n\n public uploadFile(options: {file: Blob | File, fileName: string}) {\n return this.performTaskWorker<InputFile>('uploadFile', options);\n }\n\n public toggleStorage(enabled: boolean) {\n const task: ToggleStorageTask = {type: 'toggleStorage', payload: enabled};\n this.postMessage(task);\n this.postSWMessage(task);\n }\n\n public stopAll() {\n return this.performTaskWorkerVoid('stopAll');\n }\n\n public startAll() {\n return this.performTaskWorkerVoid('startAll');\n }\n\n public forceReconnectTimeout() {\n this.postMessage({type: 'online'});\n }\n\n public forceReconnect() {\n this.postMessage({type: 'forceReconnect'});\n }\n\n public getConfig() {\n if(this.getConfigPromise) return this.getConfigPromise;\n return this.getConfigPromise = this.invokeApi('help.getConfig').then(config => {\n rootScope.config = config;\n return config;\n });\n }\n\n public getAppConfig(overwrite?: boolean) {\n if(rootScope.appConfig && !overwrite) return rootScope.appConfig;\n if(this.getAppConfigPromise && !overwrite) return this.getAppConfigPromise;\n const promise: Promise<MTAppConfig> = this.getAppConfigPromise = this.invokeApi('help.getAppConfig').then((config: MTAppConfig) => {\n if(this.getAppConfigPromise !== promise) {\n return this.getAppConfigPromise;\n }\n \n rootScope.appConfig = config;\n ignoreRestrictionReasons(config.ignore_restriction_reasons ?? []);\n return config;\n });\n\n return promise;\n }\n}\n\nconst apiManagerProxy = new ApiManagerProxy();\nMOUNT_CLASS_TO.apiManagerProxy = apiManagerProxy;\nexport default apiManagerProxy;\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport type bytesModPow from \"../../helpers/bytes/bytesModPow\";\r\nimport type gzipUncompress from \"../../helpers/gzipUncompress\";\r\nimport type { Awaited } from \"../../types\";\r\nimport type getEmojisFingerprint from \"../calls/helpers/getEmojisFingerprint\";\r\nimport type computeDhKey from \"./computeDhKey\";\r\nimport type generateDh from \"./generateDh\";\r\nimport type computeSRP from \"./srp\";\r\nimport type { aesEncryptSync, aesDecryptSync } from \"./utils/aesIGE\";\r\nimport type factorizeBrentPollardPQ from \"./utils/factorize/BrentPollard\";\r\n// import type factorizeTdlibPQ from \"./utils/factorize/tdlib\";\r\nimport type pbkdf2 from \"./utils/pbkdf2\";\r\nimport type rsaEncrypt from \"./utils/rsa\";\r\nimport type sha1 from \"./utils/sha1\";\r\nimport type sha256 from \"./utils/sha256\";\r\n\r\nexport type CryptoMethods = {\r\n 'sha1': typeof sha1,\r\n 'sha256': typeof sha256,\r\n 'pbkdf2': typeof pbkdf2,\r\n 'aes-encrypt': typeof aesEncryptSync,\r\n 'aes-decrypt': typeof aesDecryptSync,\r\n 'rsa-encrypt': typeof rsaEncrypt,\r\n 'factorize': typeof factorizeBrentPollardPQ,\r\n // 'factorize-tdlib': typeof factorizeTdlibPQ,\r\n 'mod-pow': typeof bytesModPow,\r\n 'gzipUncompress': typeof gzipUncompress,\r\n 'computeSRP': typeof computeSRP,\r\n 'generate-dh': typeof generateDh,\r\n 'compute-dh-key': typeof computeDhKey,\r\n 'get-emojis-fingerprint': typeof getEmojisFingerprint\r\n};\r\n\r\nexport default abstract class CryptoWorkerMethods {\r\n abstract performTaskWorker<T>(task: string, ...args: any[]): Promise<T>;\r\n\r\n public invokeCrypto<Method extends keyof CryptoMethods>(\r\n method: Method, \r\n ...args: Parameters<CryptoMethods[typeof method]>\r\n ): Promise<Awaited<ReturnType<CryptoMethods[typeof method]>>> {\r\n return this.performTaskWorker<Awaited<ReturnType<CryptoMethods[typeof method]>>>(method, ...args as any[]);\r\n }\r\n}\r\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport { MOUNT_CLASS_TO } from \"../../config/debug\";\nimport { nextRandomUint } from \"../../helpers/random\";\nimport { logger } from \"../logger\";\nimport rootScope from \"../rootScope\";\nimport sessionStorage from \"../sessionStorage\";\nimport apiManager from \"./mtprotoworker\";\n\nexport type AppInstance = {\n id: number,\n idle: boolean,\n time: number\n};\n\nconst CHECK_INSTANCE_INTERVAL = 5000; \nconst DEACTIVATE_TIMEOUT = 30000;\nconst MULTIPLE_TABS_THRESHOLD = 20000;\n\nexport class SingleInstance {\n private instanceID: number;\n private started: boolean;\n private masterInstance: boolean;\n private deactivateTimeout: number;\n private deactivated: boolean;\n private initial: boolean;\n private log = logger('INSTANCE');\n\n public start() {\n if(!this.started/* && !Config.Navigator.mobile && !Config.Modes.packed */) {\n this.started = true;\n\n this.reset();\n //IdleManager.start();\n\n rootScope.addEventListener('idle', this.checkInstance);\n setInterval(this.checkInstance, CHECK_INSTANCE_INTERVAL);\n this.checkInstance();\n\n try {\n document.documentElement.addEventListener('beforeunload', this.clearInstance);\n } catch(e) {}\n }\n }\n\n public reset() {\n this.instanceID = nextRandomUint(32);\n this.masterInstance = false;\n if(this.deactivateTimeout) clearTimeout(this.deactivateTimeout);\n this.deactivateTimeout = 0;\n this.deactivated = false;\n this.initial = false;\n }\n\n public clearInstance = () => {\n if(this.masterInstance && !this.deactivated) {\n this.log.warn('clear master instance');\n sessionStorage.delete('xt_instance');\n }\n };\n\n public activateInstance() {\n if(this.deactivated) {\n this.reset();\n this.checkInstance(false);\n rootScope.dispatchEvent('instance_activated');\n }\n }\n\n public deactivateInstance = () => {\n if(this.masterInstance || this.deactivated) {\n return false;\n }\n\n this.log('deactivate');\n this.deactivateTimeout = 0;\n this.deactivated = true;\n this.clearInstance();\n //$modalStack.dismissAll();\n\n //document.title = _('inactive_tab_title_raw')\n\n rootScope.idle.deactivated = true;\n rootScope.dispatchEvent('instance_deactivated');\n };\n\n public checkInstance = (idle = rootScope.idle && rootScope.idle.isIDLE) => {\n if(this.deactivated) {\n return false;\n }\n \n const time = Date.now();\n const newInstance: AppInstance = {\n id: this.instanceID, \n idle, \n time\n };\n\n sessionStorage.get('xt_instance', false).then((curInstance: AppInstance) => {\n // this.log('check instance', newInstance, curInstance)\n if(!idle ||\n !curInstance ||\n curInstance.id === this.instanceID ||\n curInstance.time < (time - MULTIPLE_TABS_THRESHOLD)) {\n sessionStorage.set({xt_instance: newInstance});\n\n if(!this.masterInstance) {\n apiManager.startAll();\n if(!this.initial) {\n this.initial = true;\n } else {\n this.log.warn('now master instance', newInstance);\n }\n\n this.masterInstance = true;\n }\n\n if(this.deactivateTimeout) {\n clearTimeout(this.deactivateTimeout);\n this.deactivateTimeout = 0;\n }\n } else {\n if(this.masterInstance) {\n apiManager.stopAll();\n this.log.warn('now idle instance', newInstance);\n if(!this.deactivateTimeout) {\n this.deactivateTimeout = window.setTimeout(this.deactivateInstance, DEACTIVATE_TIMEOUT);\n }\n\n this.masterInstance = false;\n }\n }\n });\n };\n}\n\nconst singleInstance = new SingleInstance();\nMOUNT_CLASS_TO && (MOUNT_CLASS_TO.singleInstance = singleInstance);\nexport default singleInstance;\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nimport App from \"../../config/app\";\r\nimport { MOUNT_CLASS_TO } from \"../../config/debug\";\r\nimport Modes from \"../../config/modes\";\r\nimport { tsNow } from \"../../helpers/date\";\r\nimport sessionStorage from '../sessionStorage';\r\n\r\nexport class TelegramMeWebManager {\r\n private disabled = /* false && */(Modes.test || App.domains.indexOf(location.hostname) === -1);\r\n\r\n public setAuthorized(canRedirect: boolean) {\r\n if(this.disabled) {\r\n return;\r\n }\r\n\r\n return sessionStorage.get('tgme_sync').then((curValue) => {\r\n const ts = tsNow(true);\r\n if(canRedirect &&\r\n curValue &&\r\n curValue.canRedirect === canRedirect &&\r\n (curValue.ts + 86400) > ts) {\r\n return;\r\n }\r\n\r\n sessionStorage.set({\r\n tgme_sync: {\r\n canRedirect, \r\n ts\r\n }\r\n });\r\n\r\n const path = `_websync_?authed=${canRedirect ? '1' : '0'}&version=${encodeURIComponent(App.version + ' ' + App.suffix)}`;\r\n const urls = [\r\n '//telegram.me/' + path,\r\n '//t.me/' + path\r\n ];\r\n\r\n const promises = urls.map(url => {\r\n const script = document.createElement('script');\r\n const promise = new Promise<void>((resolve) => {\r\n script.onload = script.onerror = () => {\r\n script.remove();\r\n resolve();\r\n };\r\n });\r\n script.src = url;\r\n document.body.appendChild(script);\r\n return promise;\r\n });\r\n\r\n return Promise.all(promises);\r\n });\r\n }\r\n}\r\n\r\nconst telegramMeWebManager = new TelegramMeWebManager();\r\nMOUNT_CLASS_TO && (MOUNT_CLASS_TO.telegramMeWebManager = telegramMeWebManager);\r\nexport default telegramMeWebManager;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nimport type { NotificationSettings } from \"../appManagers/appNotificationsManager\";\r\nimport { MOUNT_CLASS_TO } from \"../../config/debug\";\r\nimport { logger } from \"../logger\";\r\nimport rootScope from \"../rootScope\";\r\nimport { ServiceWorkerNotificationsClearTask, ServiceWorkerPingTask, ServiceWorkerPushClickTask } from \"../serviceWorker/index.service\";\r\nimport apiManager from \"./mtprotoworker\";\r\nimport I18n, { LangPackKey } from \"../langPack\";\r\nimport { IS_MOBILE } from \"../../environment/userAgent\";\r\nimport appRuntimeManager from \"../appManagers/appRuntimeManager\";\r\nimport copy from \"../../helpers/object/copy\";\r\n\r\nexport type PushSubscriptionNotifyType = 'init' | 'subscribe' | 'unsubscribe';\r\nexport type PushSubscriptionNotifyEvent = `push_${PushSubscriptionNotifyType}`;\r\n\r\nexport type PushSubscriptionNotify = {\r\n tokenType: number,\r\n tokenValue: string\r\n};\r\n\r\nexport class WebPushApiManager {\r\n public isAvailable = true;\r\n private isPushEnabled = false;\r\n private localNotificationsAvailable = true;\r\n private started = false;\r\n private settings: NotificationSettings & {baseUrl?: string} = {} as any;\r\n private isAliveTO: any;\r\n private isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n private userVisibleOnly = this.isFirefox ? false : true;\r\n private log = logger('PM');\r\n\r\n constructor() {\r\n if(!('PushManager' in window) ||\r\n !('Notification' in window) ||\r\n !('serviceWorker' in navigator)) {\r\n this.log.warn('Push messaging is not supported.');\r\n this.isAvailable = false;\r\n this.localNotificationsAvailable = false;\r\n }\r\n\r\n if(this.isAvailable && Notification.permission === 'denied') {\r\n this.log.warn('The user has blocked notifications.');\r\n }\r\n }\r\n\r\n public start() {\r\n if(!this.started) {\r\n this.started = true;\r\n this.getSubscription();\r\n this.setUpServiceWorkerChannel();\r\n }\r\n }\r\n\r\n public setLocalNotificationsDisabled() {\r\n this.localNotificationsAvailable = false;\r\n }\r\n\r\n public getSubscription() {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n\r\n navigator.serviceWorker.ready.then((reg) => {\r\n reg.pushManager.getSubscription().then((subscription) => {\r\n this.isPushEnabled = !!subscription;\r\n this.pushSubscriptionNotify('init', subscription);\r\n }).catch((err) => {\r\n this.log.error('Error during getSubscription()', err);\r\n });\r\n });\r\n }\r\n\r\n public subscribe = () => {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n\r\n navigator.serviceWorker.ready.then((reg) => {\r\n reg.pushManager.subscribe({userVisibleOnly: this.userVisibleOnly}).then((subscription) => {\r\n // The subscription was successful\r\n this.isPushEnabled = true;\r\n this.pushSubscriptionNotify('subscribe', subscription);\r\n }).catch((e) => {\r\n if(Notification.permission === 'denied') {\r\n this.log('Permission for Notifications was denied');\r\n } else {\r\n this.log('Unable to subscribe to push.', e);\r\n if(!this.userVisibleOnly) {\r\n this.userVisibleOnly = true;\r\n setTimeout(this.subscribe, 0);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n public unsubscribe() {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n \r\n navigator.serviceWorker.ready.then((reg) => {\r\n reg.pushManager.getSubscription().then((subscription) => {\r\n this.isPushEnabled = false;\r\n\r\n if(subscription) {\r\n this.pushSubscriptionNotify('unsubscribe', subscription);\r\n\r\n setTimeout(() => {\r\n subscription.unsubscribe().then((successful) => {\r\n this.isPushEnabled = false;\r\n }).catch((e) => {\r\n this.log.error('Unsubscription error: ', e);\r\n });\r\n }, 3000);\r\n }\r\n }).catch((e) => {\r\n this.log.error('Error thrown while unsubscribing from ' +\r\n 'push messaging.', e);\r\n });\r\n });\r\n }\r\n\r\n public forceUnsubscribe() {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n\r\n navigator.serviceWorker.ready.then((reg) => {\r\n reg.pushManager.getSubscription().then((subscription) => {\r\n this.log.warn('force unsubscribe', subscription);\r\n if(subscription) {\r\n subscription.unsubscribe().then((successful) => {\r\n this.log.warn('force unsubscribe successful', successful);\r\n this.isPushEnabled = false;\r\n }).catch((e) => {\r\n this.log.error('Unsubscription error: ', e);\r\n });\r\n }\r\n }).catch((e) => {\r\n this.log.error('Error thrown while unsubscribing from ' +\r\n 'push messaging.', e);\r\n });\r\n });\r\n }\r\n\r\n public isAliveNotify = () => {\r\n if(!this.isAvailable || rootScope.idle && rootScope.idle.deactivated) {\r\n return;\r\n }\r\n\r\n this.settings.baseUrl = (location.href || '').replace(/#.*$/, '') + '#/im';\r\n\r\n const lang: ServiceWorkerPingTask['payload']['lang'] = {} as any;\r\n const ACTIONS_LANG_MAP: Record<keyof ServiceWorkerPingTask['payload']['lang'], LangPackKey> = {\r\n push_action_mute1d: IS_MOBILE ? 'PushNotification.Action.Mute1d.Mobile' : 'PushNotification.Action.Mute1d',\r\n push_action_settings: IS_MOBILE ? 'PushNotification.Action.Settings.Mobile' : 'PushNotification.Action.Settings',\r\n push_message_nopreview: 'PushNotification.Message.NoPreview'\r\n };\r\n\r\n for(const action in ACTIONS_LANG_MAP) {\r\n lang[action as keyof typeof ACTIONS_LANG_MAP] = I18n.format(ACTIONS_LANG_MAP[action as keyof typeof ACTIONS_LANG_MAP], true);\r\n }\r\n\r\n const task: ServiceWorkerPingTask = {\r\n type: 'ping',\r\n payload: {\r\n localNotifications: this.localNotificationsAvailable,\r\n lang: lang,\r\n settings: this.settings\r\n }\r\n };\r\n\r\n apiManager.postSWMessage(task);\r\n\r\n this.isAliveTO = setTimeout(this.isAliveNotify, 10000);\r\n }\r\n\r\n public setSettings(newSettings: WebPushApiManager['settings']) {\r\n this.settings = copy(newSettings);\r\n clearTimeout(this.isAliveTO);\r\n this.isAliveNotify();\r\n }\r\n\r\n public hidePushNotifications() {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n\r\n const task: ServiceWorkerNotificationsClearTask = {type: 'notifications_clear'};\r\n apiManager.postSWMessage(task);\r\n }\r\n\r\n public setUpServiceWorkerChannel() {\r\n if(!this.isAvailable) {\r\n return;\r\n }\r\n\r\n apiManager.addServiceWorkerTaskListener('push_click', (task: ServiceWorkerPushClickTask) => {\r\n if(rootScope.idle && rootScope.idle.deactivated) {\r\n appRuntimeManager.reload();\r\n return;\r\n }\r\n\r\n rootScope.dispatchEvent('push_notification_click', task.payload);\r\n });\r\n\r\n navigator.serviceWorker.ready.then(this.isAliveNotify);\r\n }\r\n\r\n public pushSubscriptionNotify(event: PushSubscriptionNotifyType, subscription?: PushSubscription) {\r\n if(subscription) {\r\n const subscriptionObj: PushSubscriptionJSON = subscription.toJSON();\r\n if(!subscriptionObj ||\r\n !subscriptionObj.endpoint ||\r\n !subscriptionObj.keys ||\r\n !subscriptionObj.keys.p256dh ||\r\n !subscriptionObj.keys.auth) {\r\n this.log.warn('Invalid push subscription', subscriptionObj);\r\n this.unsubscribe();\r\n this.isAvailable = false;\r\n this.pushSubscriptionNotify(event);\r\n return;\r\n }\r\n \r\n this.log.warn('Push', event, subscriptionObj);\r\n rootScope.dispatchEvent(('push_' + event) as PushSubscriptionNotifyEvent, {\r\n tokenType: 10,\r\n tokenValue: JSON.stringify(subscriptionObj)\r\n });\r\n } else {\r\n this.log.warn('Push', event, false);\r\n rootScope.dispatchEvent(('push_' + event) as PushSubscriptionNotifyEvent, false as any);\r\n }\r\n }\r\n}\r\n\r\nconst webPushApiManager = new WebPushApiManager();\r\nMOUNT_CLASS_TO && (MOUNT_CLASS_TO.webPushApiManager = webPushApiManager);\r\nexport default webPushApiManager;\r\n","export default function encodeEntities(value: string) {\n return value.replace(/&/g, '&amp;').replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, (value) => {\n const hi = value.charCodeAt(0);\n const low = value.charCodeAt(1);\n return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';\n }).replace(/([^\\#-~| |!])/g, (value) => { // non-alphanumeric\n return '&#' + value.charCodeAt(0) + ';';\n }).replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport Config from './config';\n\nimport emojiRegExp from '../vendor/emoji/regex';\nimport { encodeEmoji, toCodePoints } from '../vendor/emoji';\nimport { MessageEntity } from '../layer';\nimport { IS_SAFARI } from '../environment/userAgent';\nimport { MOUNT_CLASS_TO } from '../config/debug';\nimport IS_EMOJI_SUPPORTED from '../environment/emojiSupport';\nimport copy from '../helpers/object/copy';\nimport encodeEntities from '../helpers/string/encodeEntities';\n\nconst EmojiHelper = {\n emojiMap: (code: string) => { return code; },\n shortcuts: [] as any,\n emojis: [] as any\n};\n\nconst emojiData = Config.Emoji;\n\nconst alphaCharsRegExp = 'a-z' +\n '\\\\u00c0-\\\\u00d6\\\\u00d8-\\\\u00f6\\\\u00f8-\\\\u00ff' + // Latin-1\n '\\\\u0100-\\\\u024f' + // Latin Extended A and B\n '\\\\u0253\\\\u0254\\\\u0256\\\\u0257\\\\u0259\\\\u025b\\\\u0263\\\\u0268\\\\u026f\\\\u0272\\\\u0289\\\\u028b' + // IPA Extensions\n '\\\\u02bb' + // Hawaiian\n '\\\\u0300-\\\\u036f' + // Combining diacritics\n '\\\\u1e00-\\\\u1eff' + // Latin Extended Additional (mostly for Vietnamese)\n '\\\\u0400-\\\\u04ff\\\\u0500-\\\\u0527' + // Cyrillic\n '\\\\u2de0-\\\\u2dff\\\\ua640-\\\\ua69f' + // Cyrillic Extended A/B\n '\\\\u0591-\\\\u05bf\\\\u05c1-\\\\u05c2\\\\u05c4-\\\\u05c5\\\\u05c7' +\n '\\\\u05d0-\\\\u05ea\\\\u05f0-\\\\u05f4' + // Hebrew\n '\\\\ufb1d-\\\\ufb28\\\\ufb2a-\\\\ufb36\\\\ufb38-\\\\ufb3c\\\\ufb3e\\\\ufb40-\\\\ufb41' +\n '\\\\ufb43-\\\\ufb44\\\\ufb46-\\\\ufb4f' + // Hebrew Pres. Forms\n '\\\\u0610-\\\\u061a\\\\u0620-\\\\u065f\\\\u066e-\\\\u06d3\\\\u06d5-\\\\u06dc' +\n '\\\\u06de-\\\\u06e8\\\\u06ea-\\\\u06ef\\\\u06fa-\\\\u06fc\\\\u06ff' + // Arabic\n '\\\\u0750-\\\\u077f\\\\u08a0\\\\u08a2-\\\\u08ac\\\\u08e4-\\\\u08fe' + // Arabic Supplement and Extended A\n '\\\\ufb50-\\\\ufbb1\\\\ufbd3-\\\\ufd3d\\\\ufd50-\\\\ufd8f\\\\ufd92-\\\\ufdc7\\\\ufdf0-\\\\ufdfb' + // Pres. Forms A\n '\\\\ufe70-\\\\ufe74\\\\ufe76-\\\\ufefc' + // Pres. Forms B\n '\\\\u200c' + // Zero-Width Non-Joiner\n '\\\\u0e01-\\\\u0e3a\\\\u0e40-\\\\u0e4e' + // Thai\n '\\\\u1100-\\\\u11ff\\\\u3130-\\\\u3185\\\\uA960-\\\\uA97F\\\\uAC00-\\\\uD7AF\\\\uD7B0-\\\\uD7FF' + // Hangul (Korean)\n '\\\\u3003\\\\u3005\\\\u303b' + // Kanji/Han iteration marks\n '\\\\uff21-\\\\uff3a\\\\uff41-\\\\uff5a' + // full width Alphabet\n '\\\\uff66-\\\\uff9f' + // half width Katakana\n '\\\\uffa1-\\\\uffdc'; // half width Hangul (Korean)\nconst alphaNumericRegExp = '0-9\\_' + alphaCharsRegExp;\nconst domainAddChars = '\\u00b7';\n// Based on Regular Expression for URL validation by Diego Perini\nconst urlAlphanumericRegExpPart = '[' + alphaCharsRegExp + '0-9]';\nconst urlProtocolRegExpPart = '((?:https?|ftp)://|mailto:)?';\nconst urlRegExp = urlProtocolRegExpPart +\n // user:pass authentication\n '(?:' + urlAlphanumericRegExpPart + '{1,64}(?::' + urlAlphanumericRegExpPart + '{0,64})?@)?' +\n '(?:' +\n // sindresorhus/ip-regexp\n '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}' +\n '|' +\n // host name\n urlAlphanumericRegExpPart + '[' + alphaCharsRegExp + domainAddChars + '0-9\\-]{0,64}' +\n // domain name\n '(?:\\\\.' + urlAlphanumericRegExpPart + '[' + alphaCharsRegExp + domainAddChars + '0-9\\-]{0,64}){0,10}' +\n // TLD identifier\n '(?:\\\\.(xn--[0-9a-z]{2,16}|[' + alphaCharsRegExp + ']{2,24}))' +\n ')' +\n // port number\n '(?::\\\\d{2,5})?' +\n // resource path\n '(?:/(?:\\\\S{0,255}[^\\\\s.;,(\\\\[\\\\]{}<>\"\\'])?)?';\nconst urlProtocolRegExp = new RegExp('^' + urlProtocolRegExpPart.slice(0, -1), 'i');\nconst urlAnyProtocolRegExp = /^((?:[^\\/]+?):\\/\\/|mailto:)/;\nconst usernameRegExp = '[a-zA-Z\\\\d_]{5,32}';\nconst botCommandRegExp = '\\\\/([a-zA-Z\\\\d_]{1,32})(?:@(' + usernameRegExp + '))?(\\\\b|$)';\nconst fullRegExp = new RegExp('(^| )(@)(' + usernameRegExp + ')|(' + urlRegExp + ')|(\\\\n)|(' + emojiRegExp + ')|(^|[\\\\s\\\\(\\\\]])(#[' + alphaNumericRegExp + ']{2,64})|(^|\\\\s)' + botCommandRegExp, 'i');\nconst emailRegExp = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n//const markdownTestRegExp = /[`_*@~]/;\nconst markdownRegExp = /(^|\\s|\\n)(````?)([\\s\\S]+?)(````?)([\\s\\n\\.,:?!;]|$)|(^|\\s|\\x01)(`|~~|\\*\\*|__|_-_|\\|\\|)([^\\n]+?)\\7([\\x01\\s\\.,:?!;]|$)|@(\\d+)\\s*\\((.+?)\\)|(\\[(.+?)\\]\\((.+?)\\))/m;\nconst siteHashtags: {[siteName: string]: string} = {\n Telegram: 'tg://search_hashtag?hashtag={1}',\n Twitter: 'https://twitter.com/hashtag/{1}',\n Instagram: 'https://instagram.com/explore/tags/{1}/',\n 'Google Plus': 'https://plus.google.com/explore/{1}'\n};\n\nconst siteMentions: {[siteName: string]: string} = {\n Telegram: '#/im?p=%40{1}',\n Twitter: 'https://twitter.com/{1}',\n Instagram: 'https://instagram.com/{1}/',\n GitHub: 'https://github.com/{1}'\n};\nconst markdownEntities: {[markdown: string]: MessageEntity['_']} = {\n '`': 'messageEntityCode',\n '``': 'messageEntityPre',\n '**': 'messageEntityBold',\n '__': 'messageEntityItalic',\n '~~': 'messageEntityStrike',\n '_-_': 'messageEntityUnderline',\n '||': 'messageEntitySpoiler'\n};\n\nconst passConflictingEntities: Set<MessageEntity['_']> = new Set([\n 'messageEntityEmoji',\n 'messageEntityLinebreak',\n 'messageEntityCaret'\n]);\nfor(let i in markdownEntities) {\n passConflictingEntities.add(markdownEntities[i]);\n}\n\nnamespace RichTextProcessor {\n export function getEmojiSpritesheetCoords(emojiCode: string) {\n let unified = encodeEmoji(emojiCode).replace(/-?fe0f/g, '');\n \n /* if(unified === '1f441-200d-1f5e8') {\n //unified = '1f441-fe0f-200d-1f5e8-fe0f';\n unified = '1f441-fe0f-200d-1f5e8';\n } */\n \n if(!emojiData.hasOwnProperty(unified) \n // && !emojiData.hasOwnProperty(unified.replace(/-?fe0f$/, ''))\n ) {\n //console.error('lol', unified);\n return null;\n }\n \n return unified;\n }\n\n export function parseEntities(text: string) {\n let match: any;\n let raw = text;\n const entities: MessageEntity[] = [];\n let matchIndex;\n let rawOffset = 0;\n // var start = tsNow()\n fullRegExp.lastIndex = 0;\n while((match = raw.match(fullRegExp))) {\n matchIndex = rawOffset + match.index;\n \n //console.log('parseEntities match:', match);\n \n if(match[3]) { // mentions\n entities.push({\n _: 'messageEntityMention',\n offset: matchIndex + match[1].length,\n length: match[2].length + match[3].length\n });\n } else if(match[4]) {\n if(emailRegExp.test(match[4])) { // email\n entities.push({\n _: 'messageEntityEmail',\n offset: matchIndex,\n length: match[4].length\n });\n } else {\n let url: string;\n let protocol = match[5];\n const tld = match[6];\n // let excluded = '';\n if(tld) { // URL\n if(!protocol && (tld.substr(0, 4) === 'xn--' || Config.TLD.indexOf(tld.toLowerCase()) !== -1)) {\n protocol = 'http://';\n }\n \n if(protocol) {\n const balanced = checkBrackets(match[4]);\n if(balanced.length !== match[4].length) {\n // excluded = match[4].substring(balanced.length);\n match[4] = balanced;\n }\n \n url = (match[5] ? '' : protocol) + match[4];\n }\n } else { // IP address\n url = (match[5] ? '' : 'http://') + match[4];\n }\n \n if(url) {\n entities.push({\n _: 'messageEntityUrl',\n offset: matchIndex,\n length: match[4].length\n });\n }\n }\n } else if(match[7]) { // New line\n entities.push({\n _: 'messageEntityLinebreak',\n offset: matchIndex,\n length: 1\n });\n } else if(match[8]) { // Emoji\n //console.log('hit', match[8]);\n const emojiCoords = getEmojiSpritesheetCoords(match[8]);\n if(emojiCoords) {\n entities.push({\n _: 'messageEntityEmoji',\n offset: matchIndex,\n length: match[8].length,\n unicode: emojiCoords\n });\n }\n } else if(match[11]) { // Hashtag\n entities.push({\n _: 'messageEntityHashtag',\n offset: matchIndex + (match[10] ? match[10].length : 0),\n length: match[11].length\n });\n } else if(match[13]) { // Bot command\n entities.push({\n _: 'messageEntityBotCommand',\n offset: matchIndex + (match[11] ? match[11].length : 0) + (match[12] ? match[12].length : 0),\n length: 1 + match[13].length + (match[14] ? 1 + match[14].length : 0),\n unsafe: true\n });\n }\n \n raw = raw.substr(match.index + match[0].length);\n rawOffset += match.index + match[0].length;\n }\n \n // if (entities.length) {\n // console.log('parse entities', text, entities.slice())\n // }\n return entities;\n }\n\n /* export function parseEmojis(text: string) {\n return text.replace(/:([a-z0-9\\-\\+\\*_]+?):/gi, function (all, shortcut) {\n var emojiCode = EmojiHelper.shortcuts[shortcut]\n if (emojiCode !== undefined) {\n return EmojiHelper.emojis[emojiCode][0]\n }\n return all\n })\n } */\n\n export function parseMarkdown(raw: string, currentEntities: MessageEntity[], noTrim?: boolean): string {\n   /* if(!markdownTestRegExp.test(text)) {\n return noTrim ? text : text.trim();\n } */\n\n const entities: MessageEntity[] = [];\n let pushedEntity = false;\n const pushEntity = (entity: MessageEntity) => !findConflictingEntity(currentEntities, entity) ? (entities.push(entity), pushedEntity = true) : pushedEntity = false;\n\n const newTextParts: string[] = [];\n let rawOffset = 0, match;\n while(match = raw.match(markdownRegExp)) {\n const matchIndex = rawOffset + match.index;\n newTextParts.push(raw.substr(0, match.index));\n const text = (match[3] || match[8] || match[11] || match[13]);\n rawOffset -= text.length;\n //text = text.replace(/^\\s+|\\s+$/g, '');\n rawOffset += text.length;\n\n let entity: MessageEntity;\n pushedEntity = false;\n if(text.match(/^`*$/)) {\n newTextParts.push(match[0]);\n } else if(match[3]) { // pre\n entity = {\n _: 'messageEntityPre',\n language: '',\n offset: matchIndex + match[1].length,\n length: text.length\n };\n\n if(pushEntity(entity)) {\n if(match[5] === '\\n') {\n match[5] = '';\n rawOffset -= 1;\n }\n \n newTextParts.push(match[1] + text + match[5]);\n \n rawOffset -= match[2].length + match[4].length;\n }\n } else if(match[7]) { // code|italic|bold\n const isSOH = match[6] === '\\x01';\n\n entity = {\n _: markdownEntities[match[7]] as (MessageEntity.messageEntityBold | MessageEntity.messageEntityCode | MessageEntity.messageEntityItalic | MessageEntity.messageEntitySpoiler)['_'],\n //offset: matchIndex + match[6].length,\n offset: matchIndex + (isSOH ? 0 : match[6].length),\n length: text.length\n };\n\n if(pushEntity(entity)) {\n if(!isSOH) {\n newTextParts.push(match[6] + text + match[9]);\n } else {\n newTextParts.push(text);\n }\n \n rawOffset -= match[7].length * 2 + (isSOH ? 2 : 0);\n }\n } else if(match[11]) { // custom mention\n entity = {\n _: 'messageEntityMentionName',\n user_id: match[10].toUserId(),\n offset: matchIndex,\n length: text.length\n };\n \n if(pushEntity(entity)) {\n newTextParts.push(text);\n \n rawOffset -= match[0].length - text.length;\n }\n } else if(match[12]) { // text url\n entity = {\n _: 'messageEntityTextUrl',\n url: match[14],\n offset: matchIndex,\n length: text.length\n };\n \n if(pushEntity(entity)) {\n newTextParts.push(text);\n\n rawOffset -= match[12].length - text.length;\n }\n }\n\n if(!pushedEntity) {\n newTextParts.push(match[0]);\n }\n\n raw = raw.substr(match.index + match[0].length);\n rawOffset += match.index + match[0].length;\n }\n\n newTextParts.push(raw);\n let newText = newTextParts.join('');\n if(!newText.replace(/\\s+/g, '').length) {\n newText = raw;\n entities.splice(0, entities.length);\n }\n\n // ! idk what it was here for\n // if(!entities.length && !noTrim) {\n // newText = newText.trim();\n // }\n\n mergeEntities(currentEntities, entities);\n combineSameEntities(currentEntities);\n\n let length = newText.length;\n if(!noTrim) {\n // trim left\n newText = newText.replace(/^\\s*/, '');\n\n let diff = length - newText.length;\n if(diff) {\n currentEntities.forEach(entity => {\n entity.offset = Math.max(0, entity.offset - diff);\n });\n }\n\n // trim right\n newText = newText.replace(/\\s*$/, '');\n diff = length - newText.length;\n length = newText.length;\n if(diff) {\n currentEntities.forEach(entity => {\n if((entity.offset + entity.length) > length) {\n entity.length = length - entity.offset;\n }\n });\n }\n }\n\n return newText;\n }\n\n export function findConflictingEntity(currentEntities: MessageEntity[], newEntity: MessageEntity) {\n return currentEntities.find(currentEntity => {\n const isConflictingTypes = newEntity._ === currentEntity._ || \n (!passConflictingEntities.has(newEntity._) && !passConflictingEntities.has(currentEntity._));\n\n if(!isConflictingTypes) {\n return false;\n }\n\n const isConflictingOffset = newEntity.offset >= currentEntity.offset && \n (newEntity.length + newEntity.offset) <= (currentEntity.length + currentEntity.offset);\n\n return isConflictingOffset;\n });\n }\n\n export function mergeEntities(currentEntities: MessageEntity[], newEntities: MessageEntity[]) {\n const filtered = newEntities.filter(e => {\n return !findConflictingEntity(currentEntities, e);\n });\n\n currentEntities.push(...filtered);\n sortEntities(currentEntities);\n // currentEntities.sort((a, b) => a.offset - b.offset);\n // currentEntities.sort((a, b) => (a.offset - b.offset) || (a._ === 'messageEntityCaret' && -1));\n\n // * fix splitted emoji. messageEntityTextUrl can split the emoji if starts before its end (e.g. on fe0f)\n // * have to fix even if emoji supported since it's being wrapped in span\n // if(!IS_EMOJI_SUPPORTED) {\n for(let i = 0; i < currentEntities.length; ++i) {\n const entity = currentEntities[i];\n if(entity._ === 'messageEntityEmoji') {\n const nextEntity = currentEntities[i + 1];\n if(nextEntity /* && nextEntity._ !== 'messageEntityCaret' */ && nextEntity.offset < (entity.offset + entity.length)) {\n entity.length = nextEntity.offset - entity.offset;\n }\n }\n }\n // }\n\n return currentEntities;\n }\n\n const CAN_COMBINE_ENTITIES: Set<MessageEntity['_']> = new Set([\n 'messageEntityBold',\n 'messageEntityItalic',\n 'messageEntityCode',\n 'messageEntityPre',\n 'messageEntityUnderline',\n 'messageEntityStrike',\n 'messageEntityBlockquote',\n 'messageEntitySpoiler'\n ]);\n export function combineSameEntities(entities: MessageEntity[]) {\n //entities = entities.slice();\n for(let i = 0; i < entities.length; ++i) {\n const entity = entities[i];\n\n let nextEntityIdx = -1;\n do {\n nextEntityIdx = entities.findIndex((e, _i) => {\n return CAN_COMBINE_ENTITIES.has(e._) && _i !== i && e._ === entity._ && (e.offset - entity.length) === entity.offset;\n });\n\n if(nextEntityIdx !== -1) {\n const nextEntity = entities[nextEntityIdx];\n entity.length += nextEntity.length;\n entities.splice(nextEntityIdx, 1);\n }\n } while(nextEntityIdx !== -1);\n }\n //return entities;\n }\n\n export function sortEntities(entities: MessageEntity[]) {\n entities.sort((a, b) => {\n return (a.offset - b.offset) || (b.length - a.length);\n });\n }\n\n /**\n * * Expecting correctly sorted nested entities (RichTextProcessor.sortEntities)\n */\n export function wrapRichText(text: string, options: Partial<{\n entities: MessageEntity[],\n contextSite: string,\n highlightUsername: string,\n noLinks: boolean,\n noLinebreaks: boolean,\n noCommands: boolean,\n wrappingDraft: boolean,\n //mustWrapEmoji: boolean,\n fromBot: boolean,\n noTextFormat: boolean,\n passEntities: Partial<{\n [_ in MessageEntity['_']]: boolean\n }>,\n noEncoding: boolean,\n\n contextHashtag?: string,\n }> = {}) {\n if(!text) {\n return '';\n }\n\n const lol: {\n part: string,\n offset: number,\n // priority: number\n }[] = [];\n const entities = options.entities || parseEntities(text);\n\n const passEntities: typeof options.passEntities = options.passEntities || {};\n const contextSite = options.contextSite || 'Telegram';\n const contextExternal = contextSite !== 'Telegram';\n\n const insertPart = (entity: MessageEntity, startPart: string, endPart?: string/* , priority = 0 */) => {\n const startOffset = entity.offset, endOffset = endPart ? entity.offset + entity.length : undefined;\n let startIndex: number, endIndex: number, length = lol.length;\n for(let i = length - 1; i >= 0; --i) {\n const offset = lol[i].offset;\n\n if(startIndex === undefined && startOffset >= offset) {\n startIndex = i + 1;\n }\n\n if(endOffset !== undefined) {\n if(endOffset <= offset) {\n endIndex = i;\n }\n }\n\n if(startOffset > offset && (endOffset === undefined || endOffset < offset)) {\n break;\n }\n }\n\n startIndex ??= 0;\n lol.splice(startIndex, 0, {part: startPart, offset: entity.offset/* , priority */});\n\n if(endOffset !== undefined) {\n endIndex ??= startIndex;\n ++endIndex;\n lol.splice(endIndex, 0, {part: endPart, offset: entity.offset + entity.length/* , priority */});\n }\n };\n\n const pushPartsAfterSort: typeof lol = [];\n const textLength = text.length;\n for(let i = 0, length = entities.length; i < length; ++i) {\n let entity = entities[i];\n\n // * check whether text was sliced\n // TODO: consider about moving it to other function\n if(entity.offset >= textLength) {\n if(entity._ !== 'messageEntityCaret') { // * can set caret to the end\n continue;\n }\n } else if((entity.offset + entity.length) > textLength) {\n entity = copy(entity);\n entity.length = entity.offset + entity.length - textLength;\n }\n\n switch(entity._) {\n case 'messageEntityBold': {\n if(!options.noTextFormat) {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-weight: bold;\">', '</span>');\n } else {\n insertPart(entity, '<strong>', '</strong>');\n }\n }\n\n break;\n }\n\n case 'messageEntityItalic': {\n if(!options.noTextFormat) {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-style: italic;\">', '</span>');\n } else {\n insertPart(entity, '<em>', '</em>');\n }\n }\n\n break;\n }\n\n case 'messageEntityStrike': {\n if(options.wrappingDraft) {\n const styleName = IS_SAFARI ? 'text-decoration' : 'text-decoration-line';\n insertPart(entity, `<span style=\"${styleName}: line-through;\">`, '</span>');\n } else if(!options.noTextFormat) {\n insertPart(entity, '<del>', '</del>');\n }\n\n break;\n }\n\n case 'messageEntityUnderline': {\n if(options.wrappingDraft) {\n const styleName = IS_SAFARI ? 'text-decoration' : 'text-decoration-line';\n insertPart(entity, `<span style=\"${styleName}: underline;\">`, '</span>');\n } else if(!options.noTextFormat) {\n insertPart(entity, '<u>', '</u>');\n }\n\n break;\n }\n \n case 'messageEntityCode': {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-family: monospace;\">', '</span>');\n } else if(!options.noTextFormat) {\n insertPart(entity, '<code>', '</code>');\n }\n \n break;\n }\n \n case 'messageEntityPre': {\n if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-family: monospace;\">', '</span>');\n } else if(!options.noTextFormat) {\n insertPart(entity, `<pre><code${entity.language ? ' class=\"language-' + encodeEntities(entity.language) + '\"' : ''}>`, '</code></pre>');\n }\n \n break;\n }\n\n case 'messageEntityHighlight': {\n insertPart(entity, '<i class=\"text-highlight\">', '</i>');\n break;\n }\n\n case 'messageEntityBotCommand': {\n // if(!(options.noLinks || options.noCommands || contextExternal)/* && !entity.unsafe */) {\n if(!options.noLinks && passEntities[entity._]) {\n const entityText = text.substr(entity.offset, entity.length);\n let command = entityText.substr(1);\n let bot: string | boolean;\n let atPos: number;\n if((atPos = command.indexOf('@')) !== -1) {\n bot = command.substr(atPos + 1);\n command = command.substr(0, atPos);\n } else {\n bot = options.fromBot;\n }\n\n insertPart(entity, `<a href=\"${encodeEntities('tg://bot_command?command=' + encodeURIComponent(command) + (bot ? '&bot=' + encodeURIComponent(bot) : ''))}\" ${contextExternal ? '' : 'onclick=\"execBotCommand(this)\"'}>`, `</a>`);\n }\n\n break;\n }\n\n case 'messageEntityEmoji': {\n //if(!(options.wrappingDraft && IS_EMOJI_SUPPORTED)) { // * fix safari emoji\n if(!IS_EMOJI_SUPPORTED) { // no wrapping needed\n // if(IS_EMOJI_SUPPORTED) { // ! contenteditable=\"false\" нужен для поля ввода, иначе там будет меняться шрифт в Safari, или же рендерить смайлик напрямую, без контейнера\n // insertPart(entity, '<span class=\"emoji\">', '</span>');\n // } else {\n insertPart(entity, `<img src=\"assets/img/emoji/${entity.unicode}.png\" alt=\"`, `\" class=\"emoji\">`);\n // }\n //} else if(options.mustWrapEmoji) {\n } else if(!options.wrappingDraft) {\n insertPart(entity, '<span class=\"emoji\">', '</span>');\n }/* else if(!IS_SAFARI) {\n insertPart(entity, '<span class=\"emoji\" contenteditable=\"false\">', '</span>');\n } */\n /* if(!IS_EMOJI_SUPPORTED) {\n insertPart(entity, `<img src=\"assets/img/emoji/${entity.unicode}.png\" alt=\"`, `\" class=\"emoji\">`);\n } */\n\n break;\n }\n \n case 'messageEntityCaret': {\n const html = '<span class=\"composer-sel\"></span>';\n // const html = '<span class=\"composer-sel\" contenteditable=\"false\"></span>';\n // insertPart(entity, '<span class=\"composer-sel\" contenteditable=\"true\"></span>');\n // insertPart(entity, '<span class=\"composer-sel\"></span>');\n pushPartsAfterSort.push({part: html, offset: entity.offset});\n // insertPart(entity, html/* , undefined, 1 */);\n break;\n }\n\n /* case 'messageEntityLinebreak': {\n if(options.noLinebreaks) {\n insertPart(entity, ' ');\n } else {\n insertPart(entity, '<br/>');\n }\n \n break;\n } */\n\n case 'messageEntityUrl':\n case 'messageEntityTextUrl': {\n if(!(options.noLinks && !passEntities[entity._])) {\n const entityText = text.substr(entity.offset, entity.length);\n\n // let inner: string;\n let url: string = (entity as MessageEntity.messageEntityTextUrl).url || entityText;\n let masked = false;\n let onclick: string;\n\n const wrapped = wrapUrl(url, true);\n url = wrapped.url;\n onclick = wrapped.onclick;\n\n if(entity._ === 'messageEntityTextUrl') {\n const nextEntity = entities[i + 1];\n if(nextEntity?._ === 'messageEntityUrl' && \n nextEntity.length === entity.length && \n nextEntity.offset === entity.offset) {\n i++;\n }\n\n if(url !== entityText) {\n masked = true;\n }\n } else {\n //inner = encodeEntities(replaceUrlEncodings(entityText));\n }\n\n const currentContext = !!onclick;\n if(!onclick && masked && !currentContext) {\n onclick = 'showMaskedAlert';\n }\n\n if(options.wrappingDraft) {\n onclick = undefined;\n }\n\n const href = (currentContext || typeof electronHelpers === 'undefined') \n ? encodeEntities(url)\n : `javascript:electronHelpers.openExternal('${encodeEntities(url)}');`;\n\n const target = (currentContext || typeof electronHelpers !== 'undefined')\n ? '' : ' target=\"_blank\" rel=\"noopener noreferrer\"';\n\n insertPart(entity, `<a class=\"anchor-url\" href=\"${href}\"${target}${onclick ? `onclick=\"${onclick}(this)\"` : ''}>`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityEmail': {\n if(!options.noLinks) {\n const entityText = text.substr(entity.offset, entity.length);\n insertPart(entity, `<a href=\"${encodeEntities('mailto:' + entityText)}\" target=\"_blank\" rel=\"noopener noreferrer\">`, '</a>');\n }\n\n break;\n }\n \n case 'messageEntityHashtag': {\n const contextUrl = !options.noLinks && siteHashtags[contextSite];\n if(contextUrl) {\n const entityText = text.substr(entity.offset, entity.length);\n const hashtag = entityText.substr(1);\n insertPart(entity, `<a class=\"anchor-hashtag\" href=\"${contextUrl.replace('{1}', encodeURIComponent(hashtag))}\"${contextExternal ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : ' onclick=\"searchByHashtag(this)\"'}>`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityMentionName': {\n if(!(options.noLinks && !passEntities[entity._])) {\n insertPart(entity, `<a href=\"#/im?p=${encodeURIComponent(entity.user_id)}\" class=\"follow\" data-follow=\"${entity.user_id}\">`, '</a>');\n }\n\n break;\n }\n\n case 'messageEntityMention': {\n // const contextUrl = !options.noLinks && siteMentions[contextSite];\n if(!options.noLinks) {\n const entityText = text.substr(entity.offset, entity.length);\n const username = entityText.substr(1);\n\n const {url, onclick} = wrapUrl('t.me/' + username);\n\n // insertPart(entity, `<a class=\"mention\" href=\"${contextUrl.replace('{1}', encodeURIComponent(username))}\"${contextExternal ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : ''}>`, '</a>');\n insertPart(entity, `<a class=\"mention\" href=\"${url}\" ${onclick ? `onclick=${onclick}(this)` : ''}>`, '</a>');\n }\n \n break;\n }\n\n case 'messageEntitySpoiler': {\n if(options.noTextFormat) {\n const before = text.slice(0, entity.offset);\n const spoilerBefore = text.slice(entity.offset, entity.offset + entity.length);\n const after = text.slice(entity.offset + entity.length);\n text = before + spoiler(spoilerBefore)/* '▚'.repeat(entity.length) */ + after;\n } else if(options.wrappingDraft) {\n insertPart(entity, '<span style=\"font-family: spoiler;\">', '</span>');\n } else {\n insertPart(entity, '<span class=\"spoiler\"><span class=\"spoiler-text\">', '</span></span>');\n }\n \n break;\n }\n }\n }\n\n // lol.sort((a, b) => (a.offset - b.offset) || (a.priority - b.priority));\n // lol.sort((a, b) => a.offset - b.offset); // have to sort because of nested entities\n\n let partsLength = lol.length, pushPartsAfterSortLength = pushPartsAfterSort.length;\n for(let i = 0; i < pushPartsAfterSortLength; ++i) {\n const part = pushPartsAfterSort[i];\n let insertAt = 0;\n while(insertAt < partsLength) {\n if(lol[insertAt++].offset >= part.offset) {\n break;\n }\n }\n\n lol.splice(insertAt, 0, part);\n }\n\n partsLength += pushPartsAfterSortLength;\n\n const arr: string[] = [];\n let usedLength = 0;\n for(let i = 0; i < partsLength; ++i) {\n const {part, offset} = lol[i];\n if(offset > usedLength) {\n const sliced = text.slice(usedLength, offset);\n arr.push(options.noEncoding ? sliced : encodeEntities(sliced));\n usedLength = offset;\n }\n\n arr.push(part);\n }\n\n if(usedLength < text.length) {\n const sliced = text.slice(usedLength);\n arr.push(options.noEncoding ? sliced : encodeEntities(sliced));\n }\n\n return arr.join('');\n }\n\n export function fixEmoji(text: string, entities?: MessageEntity[]) {\n /* if(!IS_EMOJI_SUPPORTED) {\n return text;\n } */\n // '$`\\ufe0f'\n\n text = text.replace(/[\\u2640\\u2642\\u2764](?!\\ufe0f)/g, (match, offset, string) => {\n if(entities) {\n const length = match.length;\n\n offset += length;\n entities.forEach(entity => {\n const end = entity.offset + entity.length;\n if(end === offset) { // current entity\n entity.length += length;\n } else if(end > offset) {\n entity.offset += length;\n }\n });\n }\n \n // console.log([match, offset, string]);\n return match + '\\ufe0f';\n });\n\n return text;\n }\n\n export function wrapDraftText(text: string, options: Partial<{\n entities: MessageEntity[]\n }> = {}) {\n if(!text) {\n return '';\n }\n\n return wrapRichText(text, {\n entities: options.entities, \n noLinks: true,\n wrappingDraft: true,\n passEntities: {\n messageEntityTextUrl: true,\n messageEntityMentionName: true\n }\n });\n }\n\n export function checkBrackets(url: string) {\n var urlLength = url.length;\n var urlOpenBrackets = url.split('(').length - 1;\n var urlCloseBrackets = url.split(')').length - 1;\n while(urlCloseBrackets > urlOpenBrackets &&\n url.charAt(urlLength - 1) === ')') {\n url = url.substr(0, urlLength - 1)\n urlCloseBrackets--;\n urlLength--;\n }\n if(urlOpenBrackets > urlCloseBrackets) {\n url = url.replace(/\\)+$/, '');\n }\n return url;\n }\n\n export function spoiler(text: string): string {\n const chars = '⠁⠂⠄⠈⠐⠠⡀⢀⠃⠅⠆⠉⠊⠌⠑⠒⠔⠘⠡⠢⠤⠨⠰⡁⡂⡄⡈⡐⡠⢁⢂⢄⢈⢐⢠⣀⠇⠋⠍⠎⠓⠕⠖⠙⠚⠜⠣⠥⠦⠩⠪⠬⠱⠲⠴⠸⡃⡅⡆⡉⡊⡌⡑⡒⡔⡘⡡⡢⡤⡨⡰⢃⢅⢆⢉⢊⢌⢑⢒⢔⢘⢡⢢⢤⢨⢰⣁⣂⣄⣈⣐⣠⠏⠗⠛⠝⠞⠧⠫⠭⠮⠳⠵⠶⠹⠺⠼⡇⡋⡍⡎⡓⡕⡖⡙⡚⡜⡣⡥⡦⡩⡪⡬⡱⡲⡴⡸⢇⢋⢍⢎⢓⢕⢖⢙⢚⢜⢣⢥⢦⢩⢪⢬⢱⢲⢴⢸⣃⣅⣆⣉⣊⣌⣑⣒⣔⣘⣡⣢⣤⣨⣰⠟⠯⠷⠻⠽⠾⡏⡗⡛⡝⡞⡧⡫⡭⡮⡳⡵⡶⡹⡺⡼⢏⢗⢛⢝⢞⢧⢫⢭⢮⢳⢵⢶⢹⢺⢼⣇⣋⣍⣎⣓⣕⣖⣙⣚⣜⣣⣥⣦⣩⣪⣬⣱⣲⣴⣸⠿⡟⡯⡷⡻⡽⡾⢟⢯⢷⢻⢽⢾⣏⣗⣛⣝⣞⣧⣫⣭⣮⣳⣵⣶⣹⣺⣼⡿⢿⣟⣯⣷⣻⣽⣾⣿';\n const charsLength = chars.length;\n \n const out: string[] = [];\n for(let i = 0; i < text.length; ++i) {\n let char = text.charCodeAt(i);\n out.push(chars[char % charsLength]);\n }\n\n return out.join('');\n }\n \n /* export function replaceUrlEncodings(urlWithEncoded: string) {\n return urlWithEncoded.replace(/(%[A-Z\\d]{2})+/g, (str) => {\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n });\n } */\n \n /**\n * ! This function is still unsafe to use with .innerHTML\n */\n export function wrapPlainText(text: string, entities: MessageEntity[] = []) {\n if(entities?.length) {\n entities = entities.filter(entity => entity._ === 'messageEntitySpoiler');\n }\n \n return wrapRichText(text, {\n entities, \n noEncoding: true,\n noTextFormat: true,\n noLinebreaks: true,\n noLinks: true\n });\n }\n\n export function wrapEmojiText(text: string, isDraft = false) {\n if(!text) return '';\n \n let entities = parseEntities(text).filter(e => e._ === 'messageEntityEmoji');\n return wrapRichText(text, {entities, wrappingDraft: isDraft});\n }\n\n export function wrapUrl(url: string, unsafe?: number | boolean): {url: string, onclick: string} {\n if(!matchUrlProtocol(url)) {\n url = 'https://' + url;\n }\n \n let tgMeMatch, telescoPeMatch, tgMatch;\n let onclick: string;\n /* if(unsafe === 2) {\n url = 'tg://unsafe_url?url=' + encodeURIComponent(url);\n } else */if((tgMeMatch = url.match(/^(?:https?:\\/\\/)?t(?:elegram)?\\.me\\/(.+)/))) {\n const fullPath = tgMeMatch[1];\n\n if(/^\\W/.test(fullPath)) {\n onclick = 'joinchat';\n return {url, onclick};\n }\n\n const path = fullPath.split('/');\n switch(path[0]) {\n case 'joinchat':\n case 'addstickers':\n case 'voicechat':\n onclick = path[0];\n break;\n\n default:\n if((path[1] && path[1].match(/^\\d+(?:\\?(?:comment|thread)=\\d+)?$/)) || path.length === 1) {\n onclick = 'im';\n break;\n }\n\n break;\n }\n } else if((telescoPeMatch = url.match(/^(?:https?:\\/\\/)?telesco\\.pe\\/([^/?]+)\\/(\\d+)/))) {\n onclick = 'im';\n } else if((tgMatch = url.match(/tg:(?:\\/\\/)?(.+?)(?:\\?|$)/))) {\n onclick = 'tg_' + tgMatch[1];\n }/* else if(unsafe) {\n url = 'tg://unsafe_url?url=' + encodeURIComponent(url);\n } */\n\n if(!(window as any)[onclick]) {\n onclick = undefined;\n }\n \n return {url, onclick};\n }\n\n export function matchUrlProtocol(text: string) {\n return !text ? null : text.match(urlAnyProtocolRegExp);\n }\n \n export function matchUrl(text: string) {\n return !text ? null : text.match(urlRegExp);\n }\n\n export function matchEmail(text: string) {\n return !text ? null : text.match(emailRegExp);\n }\n\n export function getAbbreviation(str: string, onlyFirst = false) {\n if(!str) return '';\n const splitted = str.trim().split(' ');\n if(!splitted[0]) return '';\n\n const first = [...splitted[0]][0];\n\n if(onlyFirst || splitted.length === 1) return wrapEmojiText(first);\n\n const last = [...splitted[splitted.length - 1]][0];\n\n return wrapEmojiText(first + last);\n }\n\n export function isUsernameValid(username: string) {\n return ((username.length >= 5 && username.length <= 32) || !username.length) && /^[a-zA-Z0-9_]*$/.test(username);\n }\n\n export function getEmojiEntityFromEmoji(emoji: string): MessageEntity.messageEntityEmoji {\n return {\n _: 'messageEntityEmoji',\n offset: 0,\n length: emoji.length,\n unicode: toCodePoints(emoji).join('-').replace(/-?fe0f/g, '')\n };\n }\n\n export function wrapSingleEmoji(emoji: string) {\n return wrapRichText(emoji, {\n entities: [getEmojiEntityFromEmoji(emoji)]\n });\n }\n}\n\nMOUNT_CLASS_TO.RichTextProcessor = RichTextProcessor;\n\nexport {RichTextProcessor};\nexport default RichTextProcessor;\n\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"webp.worker.5a8def2abfbbd7c60c2b.bundle.worker.js\");\n}\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport WebpWorker from 'worker-loader!./webp.worker';\r\nimport { MOUNT_CLASS_TO } from '../../config/debug';\r\nimport { CancellablePromise, deferredPromise } from '../../helpers/cancellablePromise';\r\nimport apiManagerProxy from '../mtproto/mtprotoworker';\r\n\r\nexport type WebpConvertTask = {\r\n type: 'convertWebp', \r\n payload: {\r\n fileName: string, \r\n bytes: Uint8Array\r\n }\r\n};\r\n\r\nexport class WebpWorkerController {\r\n private worker: Worker;\r\n private convertPromises: {[fileName: string]: CancellablePromise<Uint8Array>} = {};\r\n \r\n private init() {\r\n this.worker = new WebpWorker();\r\n this.worker.addEventListener('message', (e) => {\r\n const payload = (e.data as WebpConvertTask).payload;\r\n\r\n if(payload.fileName.indexOf('main-') === 0) {\r\n const promise = this.convertPromises[payload.fileName];\r\n if(promise) {\r\n payload.bytes ? promise.resolve(payload.bytes) : promise.reject();\r\n delete this.convertPromises[payload.fileName];\r\n }\r\n } else {\r\n apiManagerProxy.postMessage(e.data);\r\n }\r\n });\r\n }\r\n\r\n public postMessage(data: WebpConvertTask) {\r\n if(this.init) {\r\n this.init();\r\n this.init = null;\r\n }\r\n\r\n this.worker.postMessage(data);\r\n }\r\n\r\n public convert(fileName: string, bytes: Uint8Array) {\r\n fileName = 'main-' + fileName;\r\n\r\n if(this.convertPromises.hasOwnProperty(fileName)) {\r\n return this.convertPromises[fileName];\r\n }\r\n \r\n const convertPromise = deferredPromise<Uint8Array>();\r\n\r\n this.postMessage({type: 'convertWebp', payload: {fileName, bytes}});\r\n\r\n return this.convertPromises[fileName] = convertPromise;\r\n }\r\n}\r\n\r\nconst webpWorkerController = new WebpWorkerController();\r\nMOUNT_CLASS_TO.webpWorkerController = webpWorkerController;\r\nexport default webpWorkerController;","// https://github.com/twitter/twemoji-parser/blob/master/src/lib/regex.js\r\n\r\nexport function encodeEmoji(emojiText: string) {\r\n const codepoints = toCodePoints(removeVS16s(emojiText)).join('-');\r\n return codepoints;\r\n}\r\n\r\nconst vs16RegExp = /\\uFE0F/g;\r\n// avoid using a string literal like '\\u200D' here because minifiers expand it inline\r\nconst zeroWidthJoiner = String.fromCharCode(0x200d);\r\n\r\nconst removeVS16s = (rawEmoji: string) => (rawEmoji.indexOf(zeroWidthJoiner) < 0 ? rawEmoji.replace(vs16RegExp, '') : rawEmoji);\r\n\r\nexport function toCodePoints(unicodeSurrogates: string): Array<string> {\r\n const points = [];\r\n let char = 0;\r\n let previous = 0;\r\n let i = 0;\r\n while(i < unicodeSurrogates.length) {\r\n char = unicodeSurrogates.charCodeAt(i++);\r\n if(previous) {\r\n points.push((0x10000 + ((previous - 0xd800) << 10) + (char - 0xdc00)).toString(16));\r\n previous = 0;\r\n } else if (char > 0xd800 && char <= 0xdbff) {\r\n previous = char;\r\n } else {\r\n points.push(char.toString(16));\r\n }\r\n }\r\n\r\n if(points.length && points[0].length === 2) {\r\n points[0] = '00' + points[0];\r\n }\r\n\r\n return points;\r\n}\r\n\r\nexport function getEmojiToneIndex(input: string) {\r\n let match = input.match(/[\\uDFFB-\\uDFFF]/);\r\n return match ? 5 - (57343 - match[0].charCodeAt(0)) : 0;\r\n}\r\n\r\nexport function getCountryEmoji(iso2: string) {\r\n return String.fromCharCode(55356, 56741 + iso2.charCodeAt(0), 55356, 56741 + iso2.charCodeAt(1));\r\n}\r\n\r\nexport function emojiFromCodePoints(codePoints: string) {\r\n return codePoints.split('-').reduce((prev, curr) => prev + String.fromCodePoint(parseInt(curr, 16)), '');\r\n}"],"names":["document","createElement","toDataURL","startsWith","calcImageInBox","imageW","imageH","boxW","boxH","noZoom","boxedImageW","boxedImageH","months","days","ONE_DAY","getWeekNumber","date","d","Date","UTC","getFullYear","getMonth","getDate","dayNum","getUTCDay","setUTCDate","getUTCDate","yearStart","getUTCFullYear","Math","ceil","getTime","formatDateAccordingToTodayNew","time","today","now","timestamp","options","hour","minute","year","day","month","weekday","element","formatFullSentTimeRaw","timeEl","formatTime","dateEl","i18n","capitalize","style","textTransform","formatFullSentTime","fragment","createDocumentFragment","append","getFullDate","joiner","monthAsNumber","getHours","slice","getMinutes","noSeconds","getSeconds","leadingZero","noTime","minYear","yearPattern","RegExp","monthYearOrDayPattern","yearOrDayAndMonthPattern","shortDate","longDate","numberOfDaysEachMonth","fillTipDates","query","dates","q","trim","toLowerCase","length","indexOf","setFullYear","setHours","minDate","maxDate","push","title","dayOfWeek","c","i","setDate","formatWeekLong","getDay","getDayOfWeek","distance","setTime","matches","exec","g1","g2","k","createForDayMonth","createForMonthYear","selectedYear","currentYear","g3","parseInt","validDateForMonth","formatterYearMax","k1","setMonth","formatterMonthYear","formatterDayMonth","ScreenSize","MediaSize","constructor","width","height","aspect","boxSize","fitted","this","aspectFitted","aspectCovered","makeMediaSize","MediaSizes","super","screenSizes","key","mobile","value","medium","large","sizes","handhelds","regular","webpage","album","esgSticker","animatedSticker","staticSticker","emojiSticker","poll","round","desktop","isMobile","handleResize","innerWidth","window","activeScreen","wasScreen","active","undefined","dispatchEvent","addEventListener","rAF","cancelAnimationFrame","requestAnimationFrame","mediaSizes","deepEqual","x","y","ok","Object","keys","tx","every","platforms","Set","ignore","getRestrictionReason","reasons","find","reason","has","platform","isRestricted","ignoreRestrictionReasons","clear","forEach","add","pause","ms","Promise","resolve","setTimeout","tsNow","seconds","t","reload","location","e","close","focus","Config","Emoji","LatinizeMap","TLD","langPack","UNSUPPORTED_LANG_PACK_KEY","IS_MOBILE","I18n","pluralRules","cacheLangPackPromise","loadLocalLangPack","defaultCode","lastRequestedLangCode","all","then","lang","langSign","countries","strings","formatLocalStrings","default","saveLangPack","_","from_version","lang_code","version","local","loadLangPack","langCode","requestedServerLanguage","lang_pack","hash","polyfillPromise","pushTo","v","appVersion","stateStorage","applyLangPack","Intl","PluralRules","err","console","error","split","string","set","countriesList","country","name","langPackKey","default_name","lastAppliedLangCode","rootScope","Array","from","querySelectorAll","instance","weakMap","get","update","superFormatter","input","args","indexHolder","out","lastIndex","replace","match","p1","p2","p3","p4","offset","idx","lastIndexOf","text","url","a","wrappedUrl","href","onclick","setAttribute","target","textContent","arg","isArray","pushNextArgument","format","plain","str","select","result","map","item","Node","join","Map","getCacheLangPack","finally","setTimeFormat","haveToUpdate","timeFormat","IntlDateElement","getStrings","getLangPack","langPack1","langPack2","localLangPack1","localLangPack2","l","concat","_Intl","assign","WeakMap","IntlElementBase","property","classList","IntlElement","safeAssign","formatted","dataset","compareAndUpdate","dateTimeFormat","DateTimeFormat","charAt","toUpperCase","i18n_","_i18n","joinElementsWith","elements","arr","isLast","useLast","joined","Worker_fn","Worker","Socket","dcId","logSuffix","debug","handleOpen","log","handleError","handleClose","removeListeners","handleMessage","event","data","byteLength","send","body","ws","logTypes","Log","logger","connect","removeEventListener","WebSocket","binaryType","apiManagerProxy","invokeCrypto","method","performTaskWorker","afterMessageIdTemp","taskId","awaiting","pending","updatesProcessor","hashes","apiPromisesSingleProcess","apiPromisesSingle","apiPromisesCacheable","isSWRegistered","sockets","taskListeners","taskListenersSW","postMessagesWaiting","onWorkerMessage","task","isObject","callback","type","progress","hasOwnProperty","finalizeTask","singleInstance","registerServiceWorker","addTaskListener","sessionStorage","race","telegramMeWebManager","webPushApiManager","cacheName","caches","delete","appRuntimeManager","payload","webpWorkerController","socketTask","id","socket","onOpen","postMessage","onClose","onMessage","buffer","storageTask","res","language","performTaskWorkerVoid","forceReconnectTimeout","registerWorker","getConfig","isServiceWorkerOnline","navigator","worker","serviceWorker","register","scope","registration","installing","waiting","onServiceWorkerFail","warn","releasePending","controller","addServiceWorkerTaskListener","responseTask","uploadFile","postSWMessage","originalPayload","message","onWorkerFirstMessage","bind","isWebpSupported","userAgent","once","deferred","taskName","reject","createTask","performTaskWorkerNew","setUpdatesProcessor","invokeApi","params","invokeApiAfter","o","prepareTempMessageId","messageId","invokeApiHashable","queryJSON","JSON","stringify","cached","invokeApiSingleProcess","processResult","includes","invokeApiSingle","cache","processError","cacheKey","oldPromise","p","size","invokeApiCacheable","override","fulfilled","promise","timeout","clearTimeout","cacheSeconds","clearCache","verify","setBaseDcId","setQueueId","queueId","setUserAuth","userAuth","dcID","toPeerId","setUser","user","getNetworker","dc_id","logOut","cancelDownload","fileName","downloadFile","toggleStorage","enabled","stopAll","startAll","forceReconnect","getConfigPromise","config","getAppConfig","overwrite","getAppConfigPromise","ignore_restriction_reasons","clearInstance","masterInstance","deactivated","deactivateInstance","deactivateTimeout","checkInstance","idle","newInstance","instanceID","curInstance","xt_instance","initial","start","started","reset","setInterval","documentElement","activateInstance","TelegramMeWebManager","disabled","hostname","setAuthorized","canRedirect","curValue","ts","tgme_sync","path","encodeURIComponent","promises","script","onload","onerror","remove","src","appendChild","WebPushApiManager","isAvailable","isPushEnabled","localNotificationsAvailable","settings","isFirefox","userVisibleOnly","subscribe","ready","reg","pushManager","subscription","pushSubscriptionNotify","catch","Notification","permission","isAliveNotify","baseUrl","ACTIONS_LANG_MAP","push_action_mute1d","push_action_settings","push_message_nopreview","action","localNotifications","isAliveTO","getSubscription","setUpServiceWorkerChannel","setLocalNotificationsDisabled","unsubscribe","successful","forceUnsubscribe","setSettings","newSettings","hidePushNotifications","subscriptionObj","toJSON","endpoint","p256dh","auth","tokenType","tokenValue","encodeEntities","charCodeAt","emojiData","alphaCharsRegExp","urlAlphanumericRegExpPart","urlProtocolRegExpPart","urlRegExp","urlAnyProtocolRegExp","fullRegExp","emailRegExp","markdownRegExp","siteHashtags","Telegram","Twitter","Instagram","markdownEntities","passConflictingEntities","RichTextProcessor","getEmojiSpritesheetCoords","emojiCode","unified","parseEntities","raw","entities","matchIndex","rawOffset","index","test","protocol","tld","substr","balanced","checkBrackets","emojiCoords","unicode","unsafe","findConflictingEntity","currentEntities","newEntity","currentEntity","mergeEntities","newEntities","filtered","filter","sortEntities","entity","nextEntity","parseMarkdown","noTrim","pushedEntity","pushEntity","newTextParts","isSOH","user_id","toUserId","newText","splice","combineSameEntities","diff","max","CAN_COMBINE_ENTITIES","nextEntityIdx","findIndex","_i","sort","b","wrapRichText","lol","passEntities","contextSite","contextExternal","insertPart","startPart","endPart","startOffset","endOffset","startIndex","endIndex","part","pushPartsAfterSort","textLength","copy","noTextFormat","wrappingDraft","IS_SAFARI","noLinks","bot","atPos","command","fromBot","html","entityText","masked","wrapped","wrapUrl","currentContext","electronHelpers","contextUrl","hashtag","username","before","spoilerBefore","after","spoiler","partsLength","pushPartsAfterSortLength","insertAt","usedLength","sliced","noEncoding","urlLength","urlOpenBrackets","urlCloseBrackets","chars","charsLength","char","wrapEmojiText","isDraft","tgMeMatch","telescoPeMatch","tgMatch","matchUrlProtocol","fullPath","getEmojiEntityFromEmoji","emoji","fixEmoji","end","wrapDraftText","messageEntityTextUrl","messageEntityMentionName","wrapPlainText","noLinebreaks","matchUrl","matchEmail","getAbbreviation","onlyFirst","splitted","first","isUsernameValid","wrapSingleEmoji","convertPromises","init","bytes","convert","convertPromise","encodeEmoji","emojiText","toCodePoints","removeVS16s","vs16RegExp","zeroWidthJoiner","String","fromCharCode","rawEmoji","unicodeSurrogates","points","previous","toString","getEmojiToneIndex","getCountryEmoji","iso2","emojiFromCodePoints","codePoints","reduce","prev","curr","fromCodePoint"],"sourceRoot":""}