{"version":3,"file":"componentsbundle.js","mappings":"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I,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,MAAO,CAAExoD,KAAM,2BAA6BpU,EAAI6kE,IAAII,gBAAgBplE,GAAIgB,EAAI,IAAIihH,OAAO9hH,GAC3i8b,OAAO6kE,IAAIC,gBAAgB9kE,GAAIa,CACjC,GAyBF,SAASipO,GAAG9nO,GACV,GAAIA,aAAao3I,gBACf,MAAO,CAAE92I,MAAON,EAAEM,MAAOC,OAAQP,EAAEO,QACrC,IAAMA,OAAQ1C,EAAGyC,MAAOtC,GAAMgC,EAAE6F,wBAChC,MAAO,CAAEvF,MAAOtC,EAAIgB,OAAOO,iBAAkBgB,OAAQ1C,EAAImB,OAAOO,iBAClE,CACA,SAASwoO,KACP,OAAOrsN,KAAKulB,MAAMh0B,SAAS,IAAMzN,KAAK6yD,SAASplD,SAAS,IAAIu8D,OAAO,EAAG,EACxE,CACA,IAAIx1D,GAAI,MAAMg0N,EACZ,WAAA76N,CAAYtP,GACVmE,GAAE3E,KAAM,gBAAiB,IAAI4nI,IAC7BjjI,GAAE3E,KAAM,OACR2E,GAAE3E,KAAM,WACR2E,GAAE3E,KAAM,WACR2E,GAAE3E,KAAM,0BAA2B,CAAEqpH,QAAS,GAAIn/G,UAAU,EAAO6zC,gBAAiB,GAAIksE,aAAc,EAAGR,SAAU,EAAGh5G,MAAM,EAAOyD,KAAM,UAAW84G,QAAS,CAAC,EAAG,GAAI07G,gBAAiB,EAAG11N,MAAO,EAAGitG,YAAa,EAAGwK,UAAU,EAAOrhH,WAAW,EAAOI,UAAU,EAAOstF,WAAW,EAAMyxI,UAAU,EAAO1B,uBAAuB,EAAOhpF,aAAc,CAAE37I,iBAAkBglI,MAAQkiD,kBAAmB,GAAIi/C,cAAe,GAAI9gO,YAAQ,EAAQgnH,YAAQ,EAAQk6G,SAAS,EAAOv/C,SAAU,OACrdvkL,GAAE3E,KAAM,YAAY,GACpB2E,GAAE3E,KAAM,oBACR2E,GAAE3E,KAAM,sBACR2E,GAAE3E,KAAM,sBACR2E,GAAE3E,KAAM,uBACR2E,GAAE3E,KAAM,sBACR2E,GAAE3E,KAAM,qBACRA,KAAKmmO,QAAU3lO,EAAE2H,OAAQnI,KAAK4qO,IAAM,aAAaF,OACjD,IAAI/pO,EAAIH,EAAEqqO,UAAY,gBACtB7qO,KAAK+wL,QAAU45C,EAAGG,eAAeC,UAAUpqO,GAAIgqO,EAAGG,eAAeE,wBAAwBhrO,KAAK4qO,IAAKjqO,GAAIgqO,EAAGM,UAAYjrO,KAAKkrO,aAAa,aAAc,CAAEvqL,IAAKgqL,EAAGM,WAAajrO,KAAKuzH,QAAQ,IAAK/yH,EAAGq9I,aAAc,IAAKr9I,EAAEq9I,aAAc37I,iBAAkB1B,EAAEq9I,cAAc37I,kBAAoBglI,KAAMs/F,kBAAmBhmO,EAAEq9I,cAAc2oF,oBAAqB,KAAWxmO,KAAK+wL,QAAQjvL,iBAAiB,UAAW9B,KAAKmrO,mBAAmBzuN,KAAK1c,OAAQA,KAAKknO,iBAAmBlnO,KAAKmnO,aAAazqN,KAAK1c,MAAOA,KAAKonO,mBAAqBpnO,KAAKqnO,eAAe3qN,KAAK1c,MAAOA,KAAKsnO,mBAAqBtnO,KAAKunO,eAAe7qN,KAAK1c,MAAOA,KAAKwnO,oBAAsBxnO,KAAKynO,gBAAgB/qN,KAAK1c,MAAOA,KAAK0nO,mBAAqB1nO,KAAK2nO,gBAAgBjrN,KAAK1c,MAAOA,KAAK4nO,kBAAoB5nO,KAAK6nO,YAAYnrN,KAAK1c,KACpwB,CACA,wBAAMmrO,CAAmB3qO,GACvB,IAAIG,EAAIH,EAAE6sC,KACV1sC,EAAE29B,KAAoB,WAAb39B,EAAEy/C,QAAuBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,OAAQr8B,IAAK5F,KAAKmmO,mBAAmBhzI,oBAAsBnzF,KAAKsrO,wBAAwBztF,aAAa2oF,mBAAqB1vN,GAAEtU,QAAQxC,KAAKmmO,QAASnmO,MAAOA,KAAKsrO,wBAAwBztF,aAAauqF,YAAc/iO,GAAE7C,QAAQxC,KAAKmmO,QAASnmO,QAAsB,eAAbW,EAAEy/C,QAA2Bz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,cAAbthC,EAAEy/C,QAA0Bz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,KAAO5qO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,OAAqB,eAAbthC,EAAEy/C,QAA2Bz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKsrO,wBAAwB/C,UAAW,EAAOvoO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,YAAbthC,EAAEy/C,QAAwBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,MAAQ5qO,KAAKsrO,wBAAwBrhH,aAAetpH,EAAEuqC,OAAOjJ,MAAMgoF,aAAcjqH,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,aAAbthC,EAAEy/C,QAAyBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,KAAO5qO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,OAAqB,aAAbthC,EAAEy/C,QAAyBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,YAAbthC,EAAEy/C,QAAwBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,WAAbthC,EAAEy/C,QAAuBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,WAAbthC,EAAEy/C,QAAuBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,gBAAbthC,EAAEy/C,QAA4Bz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAAsB,YAAbthC,EAAEy/C,QAAwBz/C,EAAEuqC,OAAOkgM,aAAeprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCrrO,KAAKqmO,cAAcpB,SAAStkO,EAAEuqC,OAAOjJ,QAClhE,CACA,aAAMsxF,CAAQ/yH,GACZ,IAAIG,EACwCA,EAA5CX,KAAKmmO,mBAAmBhzI,kBAAwBnzF,KAAKmmO,QAAQoF,6BAAmCvrO,KAAKmmO,QACrG,IAAMiF,WAAY5pO,SAAYxB,KAAKkrO,aAAa,SAAU,CAAEE,WAAYprO,KAAK4qO,IAAKz4N,OAAQ,IAAK3R,EAAG2H,OAAQxH,MAAQ8pO,GAAGzqO,KAAKmmO,UAAY,CAACxlO,IACvI,GAAIa,IAAMxB,KAAK4qO,IACb,MAAM,IAAI9oN,MAAM,wBAClB9hB,KAAKwrO,UAAW,QAAYxrO,KAAKqrO,+BACnC,CACA,YAAI5gH,GACF,OAAOzqH,KAAKsrO,wBAAwB7gH,QACtC,CACA,aAAIrhH,GACF,OAAOpJ,KAAKsrO,wBAAwBliO,SACtC,CACA,YAAII,GACF,OAAOxJ,KAAKsrO,wBAAwB9hO,QACtC,CACA,aAAIstF,GACF,OAAO92F,KAAKsrO,wBAAwBx0I,SACtC,CACA,gBAAImzB,GACF,OAAOjqH,KAAKsrO,wBAAwBrhH,YACtC,CACA,YAAIs+G,GACF,OAAOvoO,KAAKsrO,wBAAwB/C,QACtC,CACA,mBAAIG,GACF,OAAO1oO,KAAKsrO,wBAAwB5C,eACtC,CACA,eAAIzoH,GACF,OAAOjgH,KAAKsrO,wBAAwBrrH,WACtC,CACA,WAAI+M,GACF,OAAOhtH,KAAKsrO,wBAAwBt+G,OACtC,CACA,SAAIh6G,GACF,OAAOhT,KAAKsrO,wBAAwBt4N,KACtC,CACA,YAAIy2G,GACF,OAAOzpH,KAAKsrO,wBAAwB7hH,QACtC,CACA,WAAIg/G,GACF,OAAOzoO,KAAKsrO,wBAAwB7C,OACtC,CACA,QAAIv0N,GACF,OAAOlU,KAAKsrO,wBAAwBp3N,IACtC,CACA,UAAI/L,GACF,OAAOnI,KAAKmmO,OACd,CACA,YAAIj8N,GACF,OAAOlK,KAAKsrO,wBAAwBphO,QACtC,CACA,mBAAI6zC,GACF,OAAO/9C,KAAKsrO,wBAAwBvtL,eACtC,CACA,QAAIttC,GACF,OAAOzQ,KAAKsrO,wBAAwB76N,IACtC,CACA,yBAAIo2N,GACF,OAAO7mO,KAAKsrO,wBAAwBzE,qBACtC,CACA,gBAAIhpF,GACF,OAAO79I,KAAKsrO,wBAAwBztF,YACtC,CACA,YAAIqrC,GACF,OAAOlpL,KAAKsrO,wBAAwBpiD,QACtC,CACA,qBAAIE,GACF,OAAOppL,KAAKsrO,wBAAwBliD,iBACtC,CACA,UAAI76D,GACF,OAAOvuH,KAAKsrO,wBAAwB/8G,MACtC,CACA,iBAAI85G,GACF,OAAOroO,KAAKsrO,wBAAwBjD,aACtC,CACA,UAAI9gO,GACF,OAAOvH,KAAKsrO,wBAAwB/jO,MACtC,CACA,UAAMgC,GACJvJ,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,OAAQ,CAAEE,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAAiCzlO,IAAK5F,KAAKmmO,mBAAmBhzI,mBAAqBnzF,KAAKsrO,wBAAwBztF,aAAa2oF,oBAAsBf,GAAGzlO,KAAKmmO,gBAAkBnmO,KAAK2wH,SAC5Q,CACA,WAAMlnH,GACJzJ,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,QAAS,CAAEE,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAC3F,CACA,UAAMhiO,GACJrJ,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,OAAQ,CAAEE,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAC1F,CACA,cAAMt4N,CAASvS,GACbR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,WAAY,CAAEE,WAAYprO,KAAK4qO,IAAK53N,MAAOxS,UAAYR,KAAKqrO,gCACxG,CACA,aAAMt4C,CAAQvyL,GACZR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,UAAW,CAAEE,WAAYprO,KAAK4qO,IAAK12N,KAAM1T,UAAYR,KAAKqrO,gCACtG,CACA,cAAMtC,CAASvoO,GACbR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,WAAY,CAAE77C,MAAO7uL,EAAG4qO,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCACxG,CACA,gBAAM/4N,CAAW9R,EAAGG,GAClBX,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,aAAc,CAAEE,WAAYprO,KAAK4qO,IAAK59G,QAAS,CAACxsH,EAAGG,WAAaX,KAAKqrO,gCACjH,CACA,qBAAMlC,CAAgB3oO,GACpB,IAAKR,KAAKwrO,SACR,OACF,IAAMtpO,iBAAkBvB,EAAG6lO,kBAAmBhlO,KAAMiD,GAAMjE,QACpDR,KAAKkrO,aAAa,kBAAmB,CAAEE,WAAYprO,KAAK4qO,IAAK/sF,aAAc,IAAK79I,KAAKsrO,wBAAwBztF,gBAAiBp5I,EAAGvC,iBAAkBvB,GAAKumI,KAAMs/F,kBAAmBhlO,IAAK,WAAiBxB,KAAKqrO,gCAAiCzlO,IAAK5F,KAAKmmO,mBAAmBhzI,oBAAsBnzF,KAAKsrO,wBAAwBztF,aAAauqF,WAAa/iO,GAAE7C,QAAQxC,KAAKmmO,QAASnmO,MAAQqF,GAAE5C,UAAUzC,KAAKmmO,SAAUnmO,KAAKsrO,wBAAwBztF,aAAa2oF,kBAAoB1vN,GAAEtU,QAAQxC,KAAKmmO,QAASnmO,OAAS8W,GAAErU,UAAUzC,KAAKmmO,SAAUnmO,KAAKsrO,wBAAwB/C,gBAAkBvoO,KAAK4wH,YACxkB,CACA,8BAAMq4G,CAAyBzoO,GAC7BR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,2BAA4B,CAAEE,WAAYprO,KAAK4qO,IAAK/D,sBAAuBrmO,UAAYR,KAAKqrO,gCACxI,CACA,eAAMhC,CAAU7oO,GACd,IAAKR,KAAKwrO,SACR,OAAO,EACT,IAAI7qO,EAAIX,KAAKkrO,aAAa,YAAa,CAAEE,WAAYprO,KAAK4qO,IAAKa,QAASjrO,IACxE,aAAaR,KAAKqrO,gCAAiC1qO,CACrD,CACA,UAAM4qE,CAAK/qE,GACTR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,OAAQ,CAAE/4N,OAAQ3R,EAAG4qO,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCACrG,CACA,aAAMr8G,CAAQxuH,GACZR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,UAAW,CAAEE,WAAYprO,KAAK4qO,IAAKn6N,KAAMjQ,UAAYR,KAAKqrO,gCACtG,CACA,YAAMt3L,GACJ,IAAK/zC,KAAKwrO,SACR,OACF,IAAMtoO,OAAQ1C,EAAGyC,MAAOtC,GAAM8pO,GAAGzqO,KAAKmmO,eAChCnmO,KAAKkrO,aAAa,SAAU,CAAEhoO,OAAQ1C,EAAG4qO,WAAYprO,KAAK4qO,IAAK3nO,MAAOtC,UAAYX,KAAKqrO,+BAC/F,CACA,aAAMn5N,GACJlS,KAAKwrO,WAAaxrO,KAAKwrO,UAAW,QAAaxrO,KAAKkrO,aAAa,UAAW,CAAEE,WAAYprO,KAAK4qO,MAAQ5qO,KAAKkpO,gCAAiCyB,EAAGG,eAAeY,4BAA4B1rO,KAAK4qO,KAAM5qO,KAAKqmO,cAAcnB,0BAA2Bt/N,IAAK5F,KAAKmmO,mBAAmBhzI,oBAAsBr8E,GAAErU,UAAUzC,KAAKmmO,SAAU9gO,GAAE5C,UAAUzC,KAAKmmO,UACrV,CACA,YAAMx1G,GACJ3wH,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,SAAU,CAAEE,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAC5F,CACA,cAAMz6G,GACJ5wH,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,WAAY,CAAEE,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCAC9F,CACA,wBAAMpE,CAAmBzmO,GACvBR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,qBAAsB,CAAEE,WAAYprO,KAAK4qO,IAAK7sL,gBAAiBv9C,UAAYR,KAAKqrO,gCAC5H,CACA,mBAAMj5N,CAAc5R,GAClBR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,gBAAiB,CAAEt+C,YAAapsL,EAAG4qO,WAAYprO,KAAK4qO,YAAc5qO,KAAKqrO,gCACnH,CACA,eAAM9B,CAAU/oO,GACdR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,YAAa,CAAEE,WAAYprO,KAAK4qO,IAAKrjO,OAAQ/G,UAAYR,KAAKqrO,gCAC1G,CACA,mCAAMA,GACJ,IAAKrrO,KAAKwrO,SACR,OACF,IAAIhrO,QAAUR,KAAKkrO,aAAa,4BAA6B,CAAEE,WAAYprO,KAAK4qO,MAChF5qO,KAAKsrO,wBAA0B9qO,EAAE8iB,KACnC,CACA,OAAA+lG,GACE,OAAOrpH,KAAKsrO,wBAAwBjiH,OACtC,CACA,eAAM+/G,CAAU5oO,GACdR,KAAKwrO,iBAAmBxrO,KAAKkrO,aAAa,YAAa,CAAEE,WAAYprO,KAAK4qO,IAAKr8G,OAAQ/tH,UAAYR,KAAKqrO,gCAC1G,CACA,mBAAM/B,CAAc9oO,GAClB,IAAKR,KAAKwrO,SACR,OAAO,EACT,IAAI7qO,QAAUX,KAAKkrO,aAAa,gBAAiB,CAAEE,WAAYprO,KAAK4qO,IAAKe,UAAWnrO,IACpF,aAAaR,KAAKqrO,gCAAiC1qO,CACrD,CACA,iBAAM6oO,CAAYhpO,EAAGG,EAAGa,EAAGiD,GACzB,QAAOzE,KAAKwrO,UAAWxrO,KAAKkrO,aAAa,cAAe,CAAElmO,EAAGxE,EAAGiE,EAAG9D,EAAGsC,MAAOzB,EAAG0B,OAAQuB,EAAG2mO,WAAYprO,KAAK4qO,KAC9G,CACA,kBAAMM,CAAa1qO,EAAGG,EAAGa,GACvB,IAAIiD,EAAI,CAAE65B,GAAI,qBAAqBosM,OAAQtqL,OAAQ5/C,EAAGonF,OAAQjnF,GAC9D,OAAOX,KAAK+wL,QAAQzuE,YAAY79G,EAAGjD,GAAK,IAAK,IAAI8I,SAAQ,CAAC1F,EAAGc,KAC3D,IAAI4R,EAAK7R,IACP,IAAIyxH,EAAKzxH,EAAE4nC,KACX6pF,EAAG54F,KAAO75B,EAAE65B,KAAOt+B,KAAK+wL,QAAQ/uL,oBAAoB,UAAWsV,GAAI4/G,EAAGtrH,MAAQlG,EAAE,IAAIoc,MAAM,4BAA4BthB,MAAM02H,EAAGtrH,UAAYhH,EAAEsyH,EAAGhsF,QAAQ,EAE1JlrC,KAAK+wL,QAAQjvL,iBAAiB,UAAWwV,EAAE,GAE/C,CACA,gBAAAxV,CAAiBtB,EAAGG,GAClBX,KAAKqmO,cAAcvkO,iBAAiBtB,EAAGG,EACzC,CACA,mBAAAqB,CAAoBxB,EAAGG,GACrBX,KAAKqmO,cAAcrkO,oBAAoBxB,EAAGG,EAC5C,CACA,iBAAO+pF,CAAWlqF,GAChBmqO,EAAGM,SAAWzqO,CAChB,CACA,sBAAMipO,CAAiBjpO,GACrB,IAAKR,KAAKwrO,SACR,OAAO,EACT,IAAI7qO,QAAUX,KAAKkrO,aAAa,mBAAoB,CAAEE,WAAYprO,KAAK4qO,IAAKgB,eAAgBprO,IAC5F,aAAaR,KAAKqrO,gCAAiC1qO,CACrD,CACA,0BAAMupO,CAAqB1pO,GACzB,IAAKR,KAAKwrO,SACR,OAAO,EACT,IAAI7qO,QAAUX,KAAKkrO,aAAa,uBAAwB,CAAEE,WAAYprO,KAAK4qO,IAAKiB,iBAAkBrrO,IAClG,aAAaR,KAAKqrO,gCAAiC1qO,CACrD,CACA,uBAAM+oO,GACJ,IAAK1pO,KAAKwrO,SACR,OAAO,EACTxrO,KAAK2pO,8BACL,IAAInpO,QAAUR,KAAKkrO,aAAa,oBAAqB,CAAEE,WAAYprO,KAAK4qO,MACxE,aAAa5qO,KAAKqrO,gCAAiC7qO,CACrD,CACA,sBAAMopO,GACJ,QAAO5pO,KAAKwrO,WAAYxrO,KAAKkpO,gCAAiClpO,KAAKkrO,aAAa,mBAAoB,CAAEE,WAAYprO,KAAK4qO,MACzH,CACA,2BAAMd,CAAsBtpO,GAC1B,OAAOR,KAAKwrO,SAAWxrO,KAAKkrO,aAAa,wBAAyB,CAAEjpM,MAAOzhC,EAAG4qO,WAAYprO,KAAK4qO,MAAS,CAC1G,CACA,8BAAMZ,GACJ,OAAOhqO,KAAKwrO,SAAWxrO,KAAKkrO,aAAa,2BAA4B,CAAEE,WAAYprO,KAAK4qO,MAAS,EACnG,CACA,mBAAAf,CAAoBrpO,GAClB,IAAIG,EAAIX,KAAKmmO,QAAQ39N,wBAAyBhH,EAAIxB,KAAKmmO,QAAQljO,MAAQtC,EAAEsC,MAAOwB,EAAIzE,KAAKmmO,QAAQjjO,OAASvC,EAAEuC,OAAQ0B,EAAI5E,KAAKsrO,wBAAwBztF,aAAa37I,kBAAoBP,OAAOO,kBAAoB,EACjN,MAAO,CAAE8C,GADgNxE,EAAEuV,QAAUpV,EAAEkI,MAAQrH,EAAIoD,EACpOH,GAD4OjE,EAAEwV,QAAUrV,EAAE8H,KAAOhE,EAAIG,EAEtR,CACA,YAAAuiO,CAAa3mO,GACX,IAAMwE,EAAGrE,EAAG8D,EAAGjD,GAAMxB,KAAK6pO,oBAAoBrpO,GAC9CR,KAAK8pO,sBAAsB,gBAAgBnpO,KAAKa,IAClD,CACA,cAAA6lO,CAAe7mO,GACb,IAAMwE,EAAGrE,EAAG8D,EAAGjD,GAAMxB,KAAK6pO,oBAAoBrpO,GAC9CR,KAAK8pO,sBAAsB,kBAAkBnpO,KAAKa,IACpD,CACA,cAAA+lO,CAAe/mO,GACb,IAAMwE,EAAGrE,EAAG8D,EAAGjD,GAAMxB,KAAK6pO,oBAAoBrpO,GAC9CR,KAAK8pO,sBAAsB,kBAAkBnpO,KAAKa,IACpD,CACA,eAAAimO,CAAgBjnO,GACd,IAAMwE,EAAGrE,EAAG8D,EAAGjD,GAAMxB,KAAK6pO,oBAAoBrpO,GAC9CR,KAAK8pO,sBAAsB,mBAAmBnpO,KAAKa,IACrD,CACA,eAAAmmO,CAAgBnnO,GACd,IAAMwE,EAAGrE,EAAG8D,EAAGjD,GAAMxB,KAAK6pO,oBAAoBrpO,GAC9CR,KAAK8pO,sBAAsB,kBAAkBnpO,KAAKa,IACpD,CACA,WAAAqmO,GACE7nO,KAAK8pO,sBAAsB,aAC7B,CACA,iCAAMH,GACJ,GAAI/jO,IAAK5F,KAAKmmO,mBAAmBhzI,mBAAqBnzF,KAAKyqH,SAAU,CACnE,IAAIjqH,QAAUR,KAAKkrO,aAAa,2BAA4B,CAAEE,WAAYprO,KAAK4qO,MAC/EpqO,EAAE+hB,SAAS,cAAgBviB,KAAKmmO,QAAQrkO,iBAAiB,YAAa9B,KAAKknO,kBAAmB1mO,EAAE+hB,SAAS,gBAAkBviB,KAAKmmO,QAAQrkO,iBAAiB,cAAe9B,KAAKonO,oBAAqB5mO,EAAE+hB,SAAS,gBAAkBviB,KAAKmmO,QAAQrkO,iBAAiB,cAAe9B,KAAKsnO,oBAAqB9mO,EAAE+hB,SAAS,iBAAmBviB,KAAKmmO,QAAQrkO,iBAAiB,eAAgB9B,KAAKwnO,qBAAsBhnO,EAAE+hB,SAAS,gBAAkBviB,KAAKmmO,QAAQrkO,iBAAiB,eAAgB9B,KAAK0nO,oBAAqBlnO,EAAE+hB,SAAS,aAAeviB,KAAK8B,iBAAiB,WAAY9B,KAAK4nO,kBACrjB,CACF,CACA,6BAAAsB,GACEtjO,IAAK5F,KAAKmmO,mBAAmBhzI,oBAAsBnzF,KAAKmmO,QAAQnkO,oBAAoB,YAAahC,KAAKknO,kBAAmBlnO,KAAKmmO,QAAQnkO,oBAAoB,cAAehC,KAAKonO,oBAAqBpnO,KAAKmmO,QAAQnkO,oBAAoB,cAAehC,KAAKsnO,oBAAqBtnO,KAAKmmO,QAAQnkO,oBAAoB,eAAgBhC,KAAKwnO,qBAAsBxnO,KAAKmmO,QAAQnkO,oBAAoB,eAAgBhC,KAAK0nO,oBAAqB1nO,KAAKgC,oBAAoB,WAAYhC,KAAK4nO,mBAChd,GAIF,SAASkE,IAAmB,SAC1B5kO,EAAQ,UACRD,EAAY,GAAE,aACdD,EAAY,gBACZD,EAAe,MACfb,KACGuL,IAEH,MAAMg2J,EAAiB,CACrBxkK,MAAO,OACPC,OAAQ,OACR2nK,WAAY,KACT3kK,GAEL,OAAuB,gBAAoB,MAAO,CAAEkB,IAAKL,EAAiBE,gBAAeA,GAAa,CAAEf,MAAOuhK,IAAoC,gBACjJ,SACA,CACErgK,IAAKJ,EACLd,MAAO,CACLjD,MAAO,OACPC,OAAQ,WAEPuO,GAELvK,GAEJ,CA5BAvC,GAAEgS,GAAG,iBAAkB,IAhTd,MACP,WAAA7G,GACEnL,GAAE3E,KAAM,WAA4B,IAAIqG,KACxC1B,GAAE3E,KAAM,sBAAuC,IAAIqG,IACrD,CACA,SAAA0kO,CAAUvqO,GACR,OAAOR,KAAK+rO,SAASzkN,IAAI9mB,IAAMR,KAAK+rO,SAASnlO,IAAIpG,EAAG,IAAIgqO,IAAOxqO,KAAK+rO,SAASvlO,IAAIhG,EACnF,CACA,uBAAAwqO,CAAwBxqO,EAAGG,GACzBX,KAAKgsO,oBAAoBplO,IAAIpG,EAAGG,EAClC,CACA,2BAAA+qO,CAA4BlrO,GAC1BR,KAAKgsO,oBAAoBllO,OAAOtG,EAClC,CACA,WAAAyrO,CAAYzrO,EAAGG,EAAGa,GAChBxB,KAAK+qO,UAAUvqO,GAAG8hH,YAAY3hH,EAAGa,GAAK,GACxC,CACA,eAAA0qO,CAAgB1rO,GACd,IAAIG,EAAIX,KAAK+rO,SAASvlO,IAAIhG,GAC1BG,IAAMA,EAAE0pL,YAAarqL,KAAK+rO,SAASjlO,OAAOtG,GAC5C,IA4RgCmE,GAAEgS,GAAG,WAAY,IA6BnD,IA4JI,GAA8C,oBAAXhV,OAAyB,EAAA+kN,gBAAkB,EAAAhlN,UAUlF,IAAIyqO,GAAiB,EACnBv/C,cACA1iL,WACA6zC,kBACA1Q,OACA++L,uBACA37N,OACA89G,SACAr6G,OACAm4N,cACAxuF,eACA7wB,UACAh6G,QACAnJ,MACA8hO,YACAF,UACA5E,2BACGt2N,MAEH,MAAQu7N,mBAAoBQ,EAAmB,UAAExjD,GAzLhC,CAAC32K,IAClB,MAAO22K,EAAWyjD,IAAgB,IAAA9qO,UAAS,MACrC+qO,GAAe,IAAAlpO,QAAO,MACtBmpO,GAAY,IAAAnpO,QAAO6O,GACnBu6N,GAAY,IAAAppO,QAAO,MACnBc,GAAe,IAAAd,QAAO,MAC5BkpO,EAAa9oO,QAAUolL,EACvB2jD,EAAU/oO,QAAUyO,EACpB,MAAMw6N,GAAe,IAAA5mO,cAAak8B,IAC3BwqM,EAAU/oO,SAAS2oO,aAAgBG,EAAa9oO,SAAS+mH,WAE3C,eAAfxoF,EAAMltB,KACRy3N,EAAa9oO,QAAQ6F,OACG,eAAf04B,EAAMltB,MACfy3N,EAAa9oO,QAAQ+F,QACvB,GACC,IACGzC,GAAe,IAAAjB,cAAaoC,IAChCukO,EAAUhpO,QAAUyE,CAAM,GACzB,IACGpB,GAAkB,IAAAhB,cAAa2D,IACnCtF,EAAaV,QAAUgG,CAAS,GAC/B,IACG+a,GAAY,IAAA1e,cACfwK,GACwB,gBAAoBu7N,GAAoB,CAAE/kO,kBAAiBC,kBAAiBuJ,KAErG,CAACvJ,EAAcD,IAwHjB,OAtHA,IAAArF,YAAU,KACR,MAAMyG,EAASukO,EAAUhpO,QACzB,IAAIkpO,EAAoB,KAUxB,OATIzkO,IACFykO,EAAoB,IAAIrC,GAAG,IACtBkC,EAAU/oO,QACbyE,WAEFA,EAAOrG,iBAAiB,aAAc6qO,GACtCxkO,EAAOrG,iBAAiB,aAAc6qO,GACtCJ,EAAaK,IAER,KACLA,GAAmB16N,UACnBq6N,EAAa,MACbpkO,GAAQnG,oBAAoB,aAAc2qO,GAC1CxkO,GAAQnG,oBAAoB,aAAc2qO,EAAa,CACxD,GACA,CAACA,KACJ,IAAAjrO,YAAU,KACH8qO,EAAa9oO,SAEW,iBAAlByO,GAAQa,OAAsBb,EAAOa,QAAUw5N,EAAa9oO,QAAQsP,OAC7Ew5N,EAAa9oO,QAAQqP,SAASZ,EAAOa,MACvC,GACC,CAACb,GAAQa,SACZ,IAAAtR,YAAU,KACH8qO,EAAa9oO,SAEU,iBAAjByO,GAAQ+B,MAAqB/B,EAAO+B,OAASs4N,EAAa9oO,QAAQwQ,MAC3Es4N,EAAa9oO,QAAQqvL,QAAQ5gL,EAAO+B,KACtC,GACC,CAAC/B,GAAQ+B,QACZ,IAAAxS,YAAU,KACH8qO,EAAa9oO,SAEU,kBAAjByO,GAAQ1B,MAAsB0B,EAAO1B,OAAS+7N,EAAa9oO,QAAQ+M,MAC5E+7N,EAAa9oO,QAAQsrH,QAAQ78G,EAAO1B,KACtC,GACC,CAAC0B,GAAQ1B,QACZ,IAAA/O,YAAU,KACH8qO,EAAa9oO,SAE2B,kBAAlCyO,GAAQ00N,uBAAuC10N,EAAO00N,wBAA0B2F,EAAa9oO,QAAQmjO,uBAC9G2F,EAAa9oO,QAAQulO,yBAAyB92N,EAAO00N,sBACvD,GACC,CAAC10N,GAAQ00N,yBACZ,IAAAnlO,YAAU,KACR,IAAK8qO,EAAa9oO,QAChB,OACF,MAAMmpO,EAAa16N,GAAQ66G,UAAU,GAC/B8/G,EAAW36N,GAAQ66G,UAAU,GACT,iBAAf6/G,GAA+C,iBAAbC,GAC3CN,EAAa9oO,QAAQ4O,WAAWu6N,EAAYC,EAC9C,GACC,CAAC36N,GAAQ66G,WACZ,IAAAtrH,YAAU,KACH8qO,EAAa9oO,SAEqB,iBAA5ByO,GAAQ4rC,iBAAgC5rC,EAAO4rC,kBAAoByuL,EAAa9oO,QAAQq6C,iBACjGyuL,EAAa9oO,QAAQujO,mBAAmB90N,EAAO4rC,gBACjD,GACC,CAAC5rC,GAAQ4rC,mBACZ,IAAAr8C,YAAU,KACH8qO,EAAa9oO,SAEkB,iBAAzByO,GAAQ0rI,cACjB2uF,EAAa9oO,QAAQylO,gBAAgBh3N,EAAO0rI,aAC9C,GACC,CAAC77D,KAAK8hC,UAAU3xG,GAAQ0rI,iBAC3B,IAAAn8I,YAAU,KACH8qO,EAAa9oO,UAEU,iBAAjByO,GAAQk7B,MAAqBl7B,GAAQk7B,gBAAgBmvC,cAC9DgwJ,EAAa9oO,QAAQ6nE,KAAK,CACxBl+B,KAAMl7B,EAAOk7B,QACVo/L,EAAU/oO,SAAW,CAAC,GAE7B,GACC,CAACyO,GAAQk7B,QACZ,IAAA3rC,YAAU,KACH8qO,EAAa9oO,SAES,iBAAhByO,GAAQtI,KACjB2iO,EAAa9oO,QAAQ6nE,KAAK,CACxB1hE,IAAKsI,EAAOtI,OACT4iO,EAAU/oO,SAAW,CAAC,GAE7B,GACC,CAACyO,GAAQtI,OACZ,IAAAnI,YAAU,KACH8qO,EAAa9oO,SAEY,iBAAnByO,GAAQo8G,QACjBi+G,EAAa9oO,QAAQ0lO,UAAUj3N,EAAOo8G,OACxC,GACC,CAACp8G,GAAQo8G,UACZ,IAAA7sH,YAAU,KACH8qO,EAAa9oO,SAEd8oO,EAAa9oO,QAAQ+mH,UAAYt4G,GAAQy6K,aAAe4/C,EAAa9oO,QAAQ0lL,oBAAsBj3K,EAAOy6K,aAC5G4/C,EAAa9oO,QAAQ0O,cAAcD,EAAOy6K,YAC5C,GACC,CAACz6K,GAAQy6K,eACZ,IAAAlrL,YAAU,KACH8qO,EAAa9oO,SAEd8oO,EAAa9oO,QAAQ+mH,UAAY+hH,EAAa9oO,QAAQ2kO,gBAAkBl2N,GAAQs5N,SAClFe,EAAa9oO,QAAQ2lO,UAAUl3N,GAAQs5N,SAAW,GACpD,GACC,CAACt5N,GAAQs5N,WACZ,IAAA/pO,YAAU,KACH8qO,EAAa9oO,SAEd8oO,EAAa9oO,QAAQ+mH,UACvB+hH,EAAa9oO,QAAQ4lO,cAAcn3N,GAAQw5N,WAAa,GAC1D,GACC,CAACx5N,GAAQw5N,YACL,CACL7iD,YACA9hL,eACAD,kBACAoB,OAAQukO,EAAUhpO,QAClBgG,UAAWtF,EAAaV,QACxBooO,mBAAoBrnN,EACrB,EA+B8DsoN,CAAa,CAC1E1/L,OACAn5B,OACAlB,QACAnJ,MACAK,WACAuG,OACAu8G,UACA6wB,eACA9/F,kBACA8oL,wBACAwF,cACA99G,SACAk9G,UACA7+C,cACA++C,cAEIqB,EAA6D,mBAAzBZ,EA7C5C,SAA2Bl0K,GACzB,MAAM+0K,GAAoB,IAAA3pO,QAAO40D,GAIjC,OAHA,IAA0B,KACxB+0K,EAAkBvpO,QAAUw0D,CAAQ,KAE/B,IAAAnyD,cAAY,IAAIo/B,IAAS8nM,EAAkBvpO,WAAWyhC,IAAO,CAAC8nM,GACvE,CAuCkFC,CAAkBd,QAAwB,EAM1H,OALA,aAAgB,KAC4B,mBAA/BY,GACTA,EAA2BlkD,EAC7B,GACC,CAACkkD,EAA4BlkD,IACT,gBAAoBwjD,EAAqB,IAAK/7N,GAAQ,EClqExE,MAAM48N,GAAqB,EAAG3iN,QAAO2gC,cAAaiiL,mBAAkBC,kBAAiB5nL,cAAau1I,YAAWw1B,qBAAoBlE,WAAUgE,YAAWgd,eAAe,OACxK,MAAM,QAAE5/K,EAAO,SAAEE,IAAa,YACvB2/K,EAAeC,IAAoB,IAAA/rO,UAASisD,EAAU0/K,EAAmBC,IACzEI,EAAgBC,IAAqB,IAAAjsO,UAASisD,EAAU,KAAO,MAC/DigL,EAAiBC,IAAsB,IAAAnsO,UAASisD,EAAU,IAAM,KAoBvE,OAlBA,IAAAhsD,YAAU,KACFgsD,GACA8/K,EAAiBJ,GACjBM,EAAkB,MAClBE,EAAmB,OAGnBJ,EAAiBH,GACbz/K,GACA8/K,EAAkB,KAClBE,EAAmB,OAGnBF,EAAkB,KAClBE,EAAmB,MAE3B,GACD,CAACL,EAAe7/K,EAASE,EAAUw/K,EAAkBC,IAChD,kBAAoB,MAAO,CAAEpmO,UAAW,oCAC5C,kBAAoB,MAAO,CAAEA,UAAW,yBACpC,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAAEC,OAAQ76B,KAC/D,kBAAoB,IAAK,KAAM2gC,GAC/B6vI,GAAa,kBAAoBk1B,GAAc,CAAEvlN,MAAO86C,EAAavI,KAAM89I,EAAWixB,aAAcuE,EAAmB5gN,aAzB5G08M,GAAYgE,GA0BL,kBAAoB,IAAK,CAAEpzK,KAAMovK,EAAUrlN,UAAW,oCAAsCqpN,GAC9G,kBAAoB,MAAO,CAAElrK,wBAAyB,CAAEC,OAAQioL,GAAgBrmO,UAAW,4CACnG,kBAAoBklO,GAAgB,CAAEtiO,IAAK0jO,EAAe98N,MAAM,EAAMvG,UAAU,EAAMjH,MAAOwqO,EAAgBvqO,OAAQyqO,KAAqB,ECjCzIE,GAAgB,EAAGrjN,QAAOk6B,WAAUopL,iBAAgB9yC,YAAWv1I,cAAa1H,sBACrF,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,kBACpC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,KAAM,CAAE46B,wBAAyB,CAAEC,OAAQX,MACnE,kBAAoB,MAAO,CAAEz9C,UAAW,kCACpC,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBvB,KAAM89I,GAAav1I,IAChF,kBAAoB,MAAO,CAAEx+C,UAAW,iCACpC,kBAAoB,QAAS,CAAEhE,MAAO,OAAQwN,MAAM,EAAMquN,UAAU,EAAMC,OAAO,EAAMC,aAAa,GAChG,kBAAoB,SAAU,CAAEn1N,IAAKikO,EAAgB/4N,KAAM,kBAAoB,ECd1Fg5N,GAAS,EAAG5hO,OAAMuJ,WAAU8sD,WAAa,kBAAoB,MAAO,CAAEv7D,UAAW,eAC1F,kBAAoB0nN,GAAO,CAAE9kN,IAAK24D,IAClC,kBAAoB,IAAK,CAAEv7D,UAAW,qBAAuBkF,GAC7D,kBAAoB,IAAK,CAAElF,UAAW,yBAA2ByO,ICAxDs4N,GAAgB,EAAGxjN,QAAOk6B,WAAUe,cAAau1I,YAAWizC,iBAAgBC,gBAAeC,UAASvvL,kBAAoB,kBAAoB,KAAa,CAAEb,gBAAiB,QACrL,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,yBAA0Bf,MAAO,CAAE,gCAAiC,OAAOgoO,KAAkB,iCAAkC,OAAOD,OAC1K,kBAAoB,MAAO,CAAEhnO,UAAW,wCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,IAAK,CAAEvjB,UAAW,oCAAsCy9C,GAC5E,kBAAoB,KAAU,CAAEjG,OAAQ,2BAA4BG,cAAc,EAAM1B,KAAM89I,GAAav1I,IAC/G,kBAAoB,MAAO,CAAEx+C,UAAW,yCAA2CknO,EAAQrtO,OAAS,GAAKqtO,EAAQv7N,KAAKvP,GAAO,kBAAoB0qO,GAAQ,CAAE3gO,IAAK,SAAS/J,EAAE8I,UAAW9I,UCVrL+qO,GAA2B,EAAG1R,aAAYzhC,aAAYr8I,eAAcyvL,kBAAiBC,oBAC9F,MAAMC,EAAcF,GAAmBC,EACvC,OAAO,kBAAoB,MAAO,CAAErnO,UAAW,8CAC3Cy1N,GAAc,kBAAoBl+K,GAAA,EAAU,CAAEC,OAAQ,+BAAgCvB,KAAMw/K,EAAY99K,aAAcA,EAAcE,gBAAgB,GAAQm8I,GAC5JszC,GAAe,kBAAoB,IAAK,CAAEtnO,UAAW,cAAei1I,IAAK,aAAcz1I,OAAQ,SAAUy2C,KAAMoxL,GAAiBD,GAAiB,ECA5IG,GAA2B,EAAGhkN,QAAO2gC,cAAaD,WAAUwtI,WAAUrpK,OAAMqtM,aAAYzhC,aAAYr8I,eAAcb,kBAAiBswL,kBAAiBC,oBAC7J,MAAM,QAAEpnL,IAAY,EAAAmS,GAAA,GAAUtb,GACxB0wL,EAAiB,eAAmBpuO,GAClCA,EAAMkiB,SAAS,UACRliB,EAAM6d,QAAQ,SAAU,6CAE5B7d,GACR,IACGquO,EAAoBhS,GAAe2R,GAAmBC,EAC5D,OAAQ,gBAAoB,KAAa,CAAEvwL,gBAAiBmJ,GACxD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEjgD,UAAW,8BACpC,gBAAoB,MAAO,CAAEA,UAAW,4CACpC,gBAAoB,MAAO,CAAEA,UAAW,6CACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,gBAAoB,KAAM,CAAEvjB,UAAW,eAAgBm+C,wBAAyB,CACxEC,OAAQ8F,MAEpB97B,GAAQA,EAAKvuB,OAAS,GAAK,gBAAoB,MAAO,CAAEmG,UAAW,+CAAiDooB,EAAKzc,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,sCACvL,gBAAoB,IAAK,CAAEA,UAAW,+CAAiDu/B,EAAKmoM,WAC5F,gBAAoB,MAAO,CAAE1nO,UAAW,iDAAkDm+C,wBAAyB,CAC3GC,OAAQopL,EAAejoM,EAAKooM,eAAiB,UAEzDF,GAAqB,gBAAoBN,GAA0B,CAAE1R,WAAYA,EAAYzhC,WAAYA,EAAYqzC,cAAeA,EAAeD,gBAAiBA,EAAiBzvL,aAAcA,KACvM,gBAAoB,MAAO,CAAE33C,UAAW,6CACpC,gBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAK2tI,EAAU3oI,QAAS,aAAe,EC9B1F8+K,GAAQ,IAAO,kBAAoB,MAAO,CAAE12M,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,QACjJ,kBAAoB,IAAK,CAAEyX,SAAU,2BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,8GAA+Gm7C,KAAM,YACtJ,kBAAoB,OAAQ,CAAEn7C,EAAG,8VAA+Vm7C,KAAM,aAC1Y,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,qBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,aCA9D6wL,GAAuB,EAAGC,WAAUC,mBAAkBlkL,UAASmkL,gBAAeC,gBAAeC,gBAAejkL,WAAUwtI,WAAU36I,kBAAiBqxL,oBAC1J,MAAM,QAAEloL,IAAY,SAAUnJ,GAC9B,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,gBAAoB,MAAO,CAAEA,UAAW,0BACpC,gBAAoB,MAAO,CAAEA,UAAW,iCACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ2wL,GAAiBL,IAC5D,gBAAoB5Z,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D,gBAAoB,MAAO,CAAEruN,UAAW,uDACpC,gBAAoB,IAAK,CAAEi2C,KAAM4N,EAASrkD,OAAQ,SAAUy1I,IAAK,uBAC7D,gBAAoB,MAAO,CAAEj1I,UAAW,sBACpC,gBAAoB0nN,GAAO,CAAE1nN,UAAW,2CAA4C4C,IAAKqhD,EAAUH,IAAK2tI,MAChH,gBAAoB,MAAO,KACvBs2C,GAAoB,gBAAoB,OAAQ,CAAE/nO,UAAW,iBACzD4nO,KACA,IACAG,GACJ,gBAAoB7Z,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D2Z,GAAiB,gBAAoB,MAAO,CAAE7pL,wBAAyB,CAC/DC,OAAQ4pL,KAEhB,gBAAoB9Z,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D4Z,GAAiB,gBAAoB,MAAO,CAAE9pL,wBAAyB,CAC/DC,OAAQ6pL,KAEhB,gBAAoB/Z,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D6Z,GAAiB,gBAAoB,MAAO,CAAE/pL,wBAAyB,CAC/DC,OAAQ8pL,SACF,EC/BzBE,GAA+B,EAAG3qL,WAAUl6B,QAAOuzB,sBAC5D,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,gBAAkBy9C,KAAa,ECRxE4qL,GAAY,EAAGC,QAAOpkL,iBAAmB,kBAAoB,MAAO,CAAElkD,UAAW,mBAC1F,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAa8wL,GACpD,kBAAoB,IAAK,CAAEtoO,UAAW,WAAakkD,ICE1CqkL,GAA8B,EAAGtkL,WAAU1gC,QAAOu2B,WAAUsvK,QAAOtyK,sBAC5E,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,qCACpC,kBAAoB,MAAO,CAAEA,UAAW,oDACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,KACtC,kBAAoB,MAAO,CAAEjkD,UAAW,oDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBsC,GACzD,kBAAoB,MAAO,CAAE95C,UAAW,iBAAmBopN,EAAMvvN,OAAS,GAAKuvN,EAAMz9M,KAAK68N,GAAU,kBAAoBH,GAAW,CAAEliO,IAAK,SAASqiO,EAAKtkL,iBAAkBskL,UAAe,mCCdtM,MAAMC,GAAe,EAAGC,eAAczkL,cAAgB,kBAAoB,MAAO,CAAEjkD,UAAW,uBACjG,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAKG,IACjD,kBAAoB,IAAK,CAAEjkD,UAAW,iBAAmB0oO,ICHhDC,GAAuB,EAAGhxN,SAAS,KAAMixN,QAAQ,YAC1D,MAAMzrO,GAAe,IAAAd,QAAO,OAC5B,IAAA5B,YAAU,KACN,MAAMq1L,EAASruL,SAASvB,cAAc,UACtC4vL,EAAOltL,IAAM,wEACbktL,EAAOxvI,OAAQ,EACfwvI,EAAOhiL,KAAO,kBACV3Q,EAAaV,SACbU,EAAaV,QAAQk1B,YAAYm+J,EACrC,GACD,IACH,MAAM+4C,GAAiB,IAAAvzL,UAAQ,IAAM,6CAA8CszL,4CAAgDjxN,0RAErH,CAACA,EAAQixN,IACvB,OAAQ,kBAAoB,MAAO,CAAEzoO,IAAKhD,EAAcghD,wBAAyB,CACzEC,OAAQyqL,IACP,ECfAC,GAAiB,EAAGvlN,QAAO+tK,UAASztI,aAAe,kBAAoB,IAAK,CAAE5N,KAAM4N,EAAS7jD,UAAW,6BACjH,kBAAoB,IAAK,CAAEA,UAAW,gBAAkBujB,GACxD,kBAAoBmkM,GAAO,CAAE9kN,IAAK0uL,EAASxtI,IAAKwtI,KCEvCy3C,GAAwB,EAAGC,WAAUlyL,kBAAiBmyL,mBAAkBC,uBAAsBC,kBAAkB,YACzH,MAAM,QAAElpL,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,GAAAgO,YAAa,CAAEhO,gBAAiBmJ,EAASjgD,UAAW,oBAC5E,kBAAoB,GAAA+kD,UAAW,CAAE/kD,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB,MAAO,CAAEA,UAAW,4CAA8CgpO,EAASnvO,OAAS,GAAKmvO,EAASr9N,KAAKvP,GAAO,kBAAoBqsO,GAAc,CAAEtiO,IAAK,SAAS/J,EAAEssO,kBAAmBtsO,OACzM,kBAAoBusO,GAAsB,CAAEC,MAAOO,EAAiBxxN,OAAQsxN,IAC5E,kBAAoBH,GAAgB,IAAKI,MAA2B,ECZvEE,GAAoB,EAAG3rL,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,2BAC/F,kBAAoB,IAAK,CAAEA,UAAW,oCAAsCujB,GAC5E,kBAAoB,MAAO,CAAEvjB,UAAW,sCAAuCm+C,wBAAyB,CAChGC,OAAQX,GAAY,OCFnB4rL,GAAgB,EAAG7qL,cAAa+qK,qBAAoB9qK,aAAY4qK,YAAWhE,WAAUxtK,oBAAsB,kBAAoB,aAAgB,KACxJ2G,GAAeC,GAAe,kBAAoB,KAAU,CAAEhH,QAAS,+BAAgCxB,KAAMwI,EAAY9G,aAAc4xK,EAAoB1xK,eAAgBA,GAAkB2G,GAC7L6qK,GAAahE,GAAa,kBAAoB,KAAU,CAAE7tK,OAAQ,kBAAmBC,QAAS,eAAgBxB,KAAMovK,EAAU1tK,aAAc4xK,GAAsBF,qCCF/J,MAAMigB,GAAuB,KAAMhgO,MACtC,MAAM,cAAE3G,IAAkB,KAAAQ,SAAQ,CAC9BF,UAAU,KACPqG,IAEP,OAAQ,kBAAoB3G,EAAe,KAAM,ECLxC4mO,GAAmB,EAAGC,eAAcC,yBAAwBt+B,aAAe,kBAAoB,aAAgB,KAAOq+B,GAAgBC,EAC7I,kBAAoB,MAAO,CAAEzpO,UAAW,0DACtC,kBAAoBspO,GAAsB,CAAE1mO,IAAK4mO,EAAc1mO,cAAe2mO,KAChF,kBAAoB,MAAO,CAAEzpO,UAAW,mCAAqCmrM,ICJtEu+B,GAAmB,EAAG7zL,aAAe,kBAAoB,IAAK,CAAE71C,UAAW,qBAAuB61C,GCQlG8zL,GAAiC,EAAGpmN,QAAOu2B,WAAU67K,eAAcC,cAAap3K,cAAaC,aAAYo3K,mBAAkBtM,qBAAoBlE,WAAUgE,YAAWvyK,kBAAiB8yL,oBAAmBC,qBAAoBC,oBAAmBC,4BAA2BP,eAAcC,yBAAwBO,aAAYC,uBAAsBC,uBAAsBC,wBAAuBC,0BAAyBC,0BAAyBC,2BAA0BzyL,iBAAgB0yL,8BACpe,MAAOx2C,EAAW+hC,IAAgB,IAAAt7N,UAASikD,IACrC,QAAEgI,IAAY,YACb0kJ,EAASq/B,IAAc,IAAAhwO,UAAS,kBAAoB,aAAgB,QAC3E,IAAAC,YAAU,KACN+vO,EAAW/jL,EAAU,kBAAoB,KAAK,CAAE7jD,IAAK+yN,EAAc7xK,IAAKvgC,EAAOulC,QAAS,UAAa,kBAAoB,KAAK,CAAElmD,IAAKgzN,EAAa9xK,IAAKvgC,EAAOulC,QAAS,UAAW,GACnL,CAACrC,EAASkvK,EAAcC,EAAaryM,KACxC,IAAA9oB,YAAU,KACNq7N,GAAervK,GAAWovK,EAAoBA,EAAmBp3K,EAAW,GAC7E,CAACgI,EAASovK,EAAkBp3K,IAC/B,MAAM03K,EAAuC,UAApBr/K,EAA8B,4CAA8C,2BAM/F2zL,GAA0B,IAAAn1L,UAAQ,IAChCkJ,GAAeC,EACP,kBAAoB,MAAO,CAAEz+C,UAAW,kBAC5C,kBAAoBqpO,GAAe,CAAExxL,eAAgBA,EAAgB2G,YAAaA,EAAaC,WAAYs1I,EAAWsxB,SAAUA,EAAUgE,UAAWA,EAAWE,mBAAoBA,KAEpL3hN,MAAMC,QAAQmiO,IAClB,kBAAoB,MAAO,CAAEhqO,UAAW,mBAAqBgqO,EAAWr+N,KAAKvP,GAAO,kBAAoBgtO,GAAmB,CAAEjjO,IAAK,SAAS/J,EAAEmnB,WAAYnnB,QAC9J,CAACqiD,EAAYD,EAAa+qK,EAAoBx1B,EAAWsxB,EAAUgE,EAAWxxK,EAAgBmyL,IACjG,OAAQ,kBAAoB,MAAO,CAAEhqO,UAAWm2N,GAC5C,kBAAoB,KAAa,CAAEn2N,UAAW,oBAC1C,kBAAoB,MAAO,CAAEA,UAAW,qBACpC,kBAAoB,MAAO,CAAEA,UAAW,WACpC,kBAAoB,MAAO,CAAEA,UAAW,YACxC,kBAAoB,MAAO,CAAEA,UAAW,YACxC,kBAAoB,MAAO,CAAEA,UAAW,cAChD,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB,KAAW,CAAEA,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,qCAtBvB8pO,GAAqBF,GAClD,kBAAoB,IAAK,CAAE3zL,KAAM2zL,EAAmBpqO,OAAQuqO,EAA4B,UAAY,SAAU/pO,UAAW,4CACrH6pO,GAAsB,kBAAoB,OAAQ,CAAE7pO,UAAW,SAAW6pO,GAC1EC,EACA71C,GAoBY,kBAAoB,KAAM,CAAEj0L,UAAW,gCAAiCm+C,wBAAyB,CACzFC,OAAQ76B,GACTtkB,MAAO,CACN,2BAA4BgrO,EAC5B,2BAA4BC,EAC5B,4BAA6BC,KAErC,kBAAoB,MAAO,CAAEnqO,UAAW,yBAA0Bm+C,wBAAyB,CACnFC,OAAQtE,GACT76C,MAAO,CACN,8BAA+BmrO,EAC/B,8BAA+BC,EAC/B,+BAAgCC,KAExCG,EACAF,GAA2B,kBAAoBb,GAAkB,CAAE7zL,QAAS00L,KAChF,kBAAoBhB,GAAkB,CAAEp+B,QAASA,EAASq+B,aAAcA,EAAcC,uBAAwBA,OAA8B,ECtDnJiB,GAAmC,EAAGnnN,QAAOk6B,WAAUe,cAAau1I,YAAW42C,UAAS7zL,kBAAiByyK,sBAAqB,EAAOqhB,uBAAsBC,yBAAwB,MAC5L,MAAM,QAAE5qL,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,MAAO,CAAE92C,UAAW,0BAAyB6qO,EAAwB,2CAA6C,KAC1I,kBAAoB,GAAA/lL,YAAa,CAAE9kD,UAAW,mBAAoB82C,gBAAiBmJ,GAC/E,kBAAoB/B,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,eAAgBx3C,UAAW,mCAAqCy9C,GACvG,kBAAoB,KAAU,CAAE5F,gBAAgB,EAAML,OAAQ,iBAAkBvB,KAAM89I,EAAWp8I,aAAc4xK,GAAsB/qK,GACrI,kBAAoB,MAAO,CAAEx+C,UAAW,kCAAmCf,MAAO,CAAE,yBAA0B2rO,IAC1G,kBAAoBljB,GAAO,CAAE9kN,IAAK+nO,MAAc,ECTnDG,GAAiBxhO,IAC1B,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBACpC,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,MAAO,CAAEjgD,UAAW,iBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,wBAAgD,SAAxBsJ,EAAM8hN,cAA2B,oBAAsB,eAAsC,WAAvB9hN,EAAMyhO,aAA4B,uBAAyB,MAC7L,gBAAoB,MAAO,CAAE/qO,UAAW,wBAA+C,SAAxBsJ,EAAM8hN,cAA2B,iBAAmB,oBAC/G9hN,EAAMia,OAAS,gBAAoB,KAAM,KAAMja,EAAMia,OACrD,gBAAoB,KAAK,CAAEvjB,UAAW,sBAAuB4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,WAC7F,gBAAoB,MAAO,CAAEzxL,UAAW,yBAA0Bm+C,wBAAyB,CAAEC,OAAQ90C,EAAMitC,QAC3GjtC,EAAM6pL,UAAa,gBAAoB,IAAK,CAAEnzL,UAAW,qBAAsBi2C,KAAM3sC,EAAMu6C,SAAWv6C,EAAM6pL,WAChH,gBAAoB,KAAK,CAAEnzL,UAAW,sBAAuB4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,cAAgB,ECXpHu5C,GAAc1hO,IACvB,MAAM,QAAEm9C,EAAO,SAAEE,IAAa,YACvBskL,EAAeC,IAAoB,IAAA1wO,WAAS,IAC5C2wO,EAAcC,IAAmB,IAAA5wO,WAAS,GAKjD,OAJA,IAAAC,YAAU,KACNywO,EAAiBvkL,GACjBykL,EAAgB3kL,EAAQ,GACzB,CAACE,EAAUF,IACN,kBAAoB,aAAgB,MAAO0kL,GAAgBF,IAAkB,kBAAoB,KAAa,KAClH,kBAAoB,MAAO,CAAEjrO,UAAW,cACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,uBACpC,kBAAoB,KAAK,CAAEA,UAAW,mBAAoB4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,WAC1F,kBAAoB,MAAO,CAAEzxL,UAAW,oBACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQ90C,EAAMia,SAEtB,kBAAoB,IAAK,CAAEvjB,UAAW,sBAAuBm+C,wBAAyB,CAAEC,OAAQ90C,EAAMitC,QACtG,kBAAoB,KAAM,KAAMjtC,EAAMpE,MACtC,kBAAoB,IAAK,CAAElF,UAAW,wBAA0BsJ,EAAMmF,eAAgB,6FCvB9G,MCOA,GAPkB,EAAGxS,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEk1B,MAAO,6BAA8Bl1B,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAM,QAChL,kBAAoB,IAAK,CAAEyX,SAAU,0BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,gIAAiIm7C,KAAM,YACxK,kBAAoB,OAAQ,CAAEn7C,EAAG,+VAAgWm7C,KAAM,aAC3Y,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,oBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,wBCElFkoM,GAAY/hO,IACrB,MAAOgiO,EAAMC,IAAW,IAAA/wO,UAAS,KAC1B2/C,EAAaoQ,IAAkB,IAAA/vD,UAAS,GACzCgxO,EAAc5jO,MAAMkB,KAAK,IAAIk7B,IAAI,CAAC,SAAUsnM,EAAK3/N,KAAI8/N,GAAOA,EAAID,YAAY,GAAGtmO,UAC/EwmO,EAAU9jO,MAAMkB,KAAK,IAAIk7B,IAAI,CAAC,SAAUsnM,EAAK3/N,KAAI8/N,GAAOA,EAAIC,QAAQ,GAAGxmO,WACtE82C,EAAQ2vL,IAAa,IAAAnxO,UAAS,KAC9BoxO,EAAoBC,IAAyB,IAAArxO,UAAS,QACtDsxO,EAAgBC,IAAqB,IAAAvxO,UAAS,QAC9CwkD,EAAcgtL,IAAmB,IAAAxxO,UAAS,KAC1CigD,EAAMC,IAAW,IAAAlgD,UAAS,gBAC3BogD,EAAgBH,IAClBC,EAAQD,EAAK,EAEXwxL,GAAc,IAAA32L,UAAQ,IAAgB,UAATmF,EAAmB,EAAI,IAAK,CAACA,KAChE,IAAAhgD,YAAU,KACN,eAAwBmgD,GACjB,KACH,iBAA0BA,EAAa,IAE5C,KACH,IAAAngD,YAAU,KC7BW6lD,OAAO5G,EAAKwyL,EAAOX,EAASS,KAAoBnrL,MAAM,sFD8BqB,KC9BIl4C,cACnGlF,MAAKm9C,GACFA,EAASE,GACFF,EAASK,OAGT59C,QAAQ48E,WAGlBx8E,MAAM2iC,IACPmlM,EAAQnlM,EAAKklM,KAAK,IAEjB5pL,OAAM,KACPsqL,EAAgB,0CAA0C,GAC5D,EDgBW57K,CAAU,EAA6E,EAAKm7K,EAASS,EAAgB,GAC3H,IACH,MAAMG,EAAeb,EAAKxlO,QAAQ2lO,GAAQA,EAAIloN,MAAM6oN,oBAAoB9wN,SAAS0gC,EAAOowL,uBAChE,QAAnBN,GAEKL,EAAIC,QAAQ,GAAGxmO,OAAS4mO,KACN,QAAvBF,GAEKH,EAAID,YAAY,GAAGtmO,OAAS0mO,KAChCS,EAAeF,EAAavjO,MAAMuxC,EAAc8xL,GAAc9xL,EAAc,GAAK8xL,GACjF3wL,EAAapgD,KAAK+S,KAAKk+N,EAAatyO,OAASoyO,GAC7CK,GAAqB,EAAAzqL,GAAAA,UAAS8pL,EAAW,IACzCY,GAAa,IAAAztO,cAAY,SAAUk8B,GAErC,OADAuvB,EAAe,GACR+hL,EAAmBtxM,EAAM0xB,cAActzD,MAClD,GAAG,IACGozO,GAAmB,IAAA1tO,cAAY,SAAUk8B,GAE3C,OADAuvB,EAAe,GACRshL,EAAsB7wM,EAAM0xB,cAActzD,MACrD,GAAG,IACGqzO,GAAa,IAAA3tO,cAAY,SAAUk8B,GAErC,OADAuvB,EAAe,GACRwhL,EAAkB/wM,EAAM0xB,cAActzD,MACjD,GAAG,IACGszO,GAAmB,IAAArwO,QAAO,MAC1BswO,GAA2B,IAAA7tO,cAAY,KACzC4tO,EAAiBjwO,SAASmwO,eAAe,CAAElqL,SAAU,SACjDgqL,EAAiBjwO,SACjB/B,OAAOmyO,SAAS,GAAI,IACxB,GACD,IACGv5B,EAAU,YAAa,GAU7B,OATA,eAAgB,KACRA,EAAQ72M,QACRkwO,IAGAr5B,EAAQ72M,SAAU,CACtB,GACD,CAAC09C,IAEI,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEh6C,IAAKusO,EAAkB1sO,UAAW,WAAYq3B,GAAI,YAC3E,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEr3B,UAAW,qBACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,MAAO,CAAEvjB,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,uBACpC,kBAAoB,QAAS,CAAE8N,KAAM,SAAUyd,YAAa,kBAAmBnyB,MAAO4iD,EAAQx/B,SAAU+vN,EAAYvsO,UAAW,iCACnI,kBAAoB,MAAO,CAAEA,UAAW,uBACpC,kBAAoB,QAAS,CAAE8sO,QAAS,YAAc,YACtD,kBAAoB,SAAU,CAAE1zO,MAAO0yO,EAAgBvgN,YAAa,gBAAiB/O,SAAUiwN,EAAYzsO,UAAW,kCAAmCq3B,GAAI,YAAcq0M,EAAQ//N,KAAKohO,GAAY,kBAAoB,SAAU,CAAE3zO,MAAO2zO,EAAQ5mO,IAAK4mO,GAAUA,OACtQ,kBAAoB,MAAO,CAAE/sO,UAAW,uBACpC,kBAAoB,QAAS,CAAE8sO,QAAS,cAAgB,cACxD,kBAAoB,SAAU,CAAE1zO,MAAOwyO,EAAoBrgN,YAAa,oBAAqB/O,SAAUgwN,EAAkBn1M,GAAI,cAAgBm0M,EAAY7/N,KAAKqhO,GAAgB,kBAAoB,SAAU,CAAE5zO,MAAO4zO,EAAY7mO,IAAK6mO,GAAcA,QAC5P,kBAAoB,MAAO,CAAEhtO,UAAW,kBACpCg/C,EAAgB,kBAAoB,KAAM,CAAEh/C,UAAW,mBAAqBg/C,GAAkB,kBAAoB,WAAW,KAAMqtL,EAAa1gO,KAAK8/N,IAAQ,OAAC,kBAAoB,KAAK,CAAEtlO,IAAKslO,EAAIp0M,IAC9L,kBAAoB,MAAO,CAAEr3B,UAAW,iBAAkBuc,SAjBzDm9B,EAiBkF+xL,EAAIwB,aAjB9E,IAAOvyO,OAAOi5B,KAAK+lB,EAAK,YAkB7B,kBAAoB,IAAK,KAAM+xL,EAAID,YAAY,GAAGtmO,MAClD,kBAAoB,KAAM,KAAMumO,EAAIloN,OACpC,kBAAoB,MAAO,CAAEvjB,UAAW,kBACpC,kBAAoB,MAAO,CAAEA,UAAW,oBF1FvD,GAAG/D,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEk1B,MAAO,6BAA8Bl1B,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAM,QACnL,kBAAoB,IAAK,CAAEyX,SAAU,0BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,iwBAAkwBm7C,KAAM,YACzyB,kBAAoB,OAAQ,CAAEn7C,EAAG,iNAAkNm7C,KAAM,aAC7P,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,oBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,wBEqFvD,CAAa,CAAC,GACd,kBAAoB,IAAK,KAAMsoM,EAAIC,QAAQ,GAAGxmO,OAClD,kBAAoB,MAAO,CAAElF,UAAW,oBACpC,GAAU,CAAC,GACX,kBAAoB,IAAK,KAAMyrO,EAAIyB,SAAS,GAAG9zO,QACnD,kBAAoB,MAAO,CAAE4G,UAAW,oBEhGpD,GAAG/D,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEk1B,MAAO,6BAA8Bl1B,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAM,QACtL,kBAAoB,IAAK,CAAEyX,SAAU,0BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,wMAAyMm7C,KAAM,YAChP,kBAAoB,OAAQ,CAAEn7C,EAAG,yPAA0Pm7C,KAAM,aACrS,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,oBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,wBF2FvD,CAAgB,CAAC,GACjB,kBAAoB,IAAK,KAAMsoM,EAAIyB,SAAS,GAAG9zO,WA7B3D,IAACsgD,CA6BqE,KACjD,IAAxB2yL,EAAaxyO,SAAiBmlD,GAAiB,kBAAoB,KAAM,CAAEh/C,UAAW,qBAAuB,qCAClH,kBAAoB,MAAO,CAAEA,UAAW,wBAA0BqsO,EAAaxyO,OAAS,GAAK,kBAAoBwhD,GAAA,EAAoB,CAAElB,YAAaA,EAAamB,WAAYA,EAAYiP,eAAgBA,EAAgBhP,cAAwB,UAATd,QAAyB,EGhGxQ0yL,GAAU7jO,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,YACtE,gBAAoBgxL,EAAgB,CAAEC,aAAc3nL,EAAM8jO,0BAA2Bl8C,aAAc5nL,EAAM+jO,0BAA2Bl8C,aAAc7nL,EAAMgkO,0BAA2Bl8C,MAAO9nL,EAAMikO,mBAAoBhmL,SAAUj+C,EAAMi+C,WACpO,gBAAoBgrI,EAAY,CAAE9uI,SAAU,CACpC,CAAElgC,MAAO,gBAAiBivK,MAAO,CAAC,CAAE9uL,MAAO,aAAcg2C,IAAK,KAAO,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAAO,CAAEh2C,MAAO,gBAAiBg2C,IAAK,KAAO,CAAEh2C,MAAO,UAAWg2C,IAAK,OAC3K,CAAEn2B,MAAO,sBAAuBivK,MAAO,CAAC,CAAE9uL,MAAO,qBAAsBg2C,IAAK,KAAO,CAAEh2C,MAAO,eAAgBg2C,IAAK,KAAO,CAAEh2C,MAAO,oBAAqBg2C,IAAK,KAAO,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAAO,CAAEh2C,MAAO,qBAAsBg2C,IAAK,OAC7O,CAAEn2B,MAAO,sBAAuBivK,MAAO,CAAC,CAAE9uL,MAAO,wBAAyBg2C,IAAK,KAAO,CAAEh2C,MAAO,sBAAuBg2C,IAAK,KAAO,CAAEh2C,MAAO,sBAAuBg2C,IAAK,KAAO,CAAEh2C,MAAO,gCAAiCg2C,IAAK,OAC7N,CAAEn2B,MAAO,UAAWivK,MAAO,CAAC,CAAE9uL,MAAO,qBAAsBg2C,IAAK,KAAO,CAAEh2C,MAAO,wBAAyBg2C,IAAK,KAAO,CAAEh2C,MAAO,UAAWg2C,IAAK,OAC9I,CAAEn2B,MAAO,UAAWivK,MAAO,CAAC,CAAE9uL,MAAO,wBAAyBg2C,IAAK,KAAO,CAAEh2C,MAAO,4BAA6Bg2C,IAAK,KAAO,CAAEh2C,MAAO,kBAAmBg2C,IAAK,KAAO,CAAEh2C,MAAO,8CAA+Cg2C,IAAK,KAAO,CAAEh2C,MAAO,uCAAwCg2C,IAAK,OAC9R,CAAEn2B,MAAO,QAASivK,MAAO,CAAC,CAAE9uL,MAAO,qBAAsBg2C,IAAK,KAAO,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAAO,CAAEh2C,MAAO,kBAAmBg2C,IAAK,KAAO,CAAEh2C,MAAO,cAAeg2C,IAAK,UAEzL,gBAAoB+4I,EAAa,CAAEl8I,KAAMjtC,EAAMkkO,kBAC/C,gBAAoBn6C,EAAmB,OChB9Bo6C,GAAa,CACtB1mL,SAAU,CACNxjC,MAAO,+BACPzV,KAAM,SACN21C,SAAU,CACN,CACIlgC,MAAO,gBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,UACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,SAIrB,CACItgC,MAAO,QACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,SACPyN,KAAM,iCACNiF,KAAM,MACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,gBACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,yCAIrB,CACItgC,MAAO,eACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,QACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,QACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,UACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,SACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,YACPyN,KAAM,iCACNiF,KAAM,OACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,WACPyN,KAAM,iCACNiF,KAAM,UACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,YACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,YACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,sCAIrB,CACItgC,MAAO,sBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,MACPyN,KAAM,iCACNiF,KAAM,MACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,cACPyN,KAAM,iCACNiF,KAAM,MACNnW,UAAU,EACV+jC,QAAS,OAEb,CACItgC,MAAO,eACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,sCAIrB,CACItgC,MAAO,SACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,iBACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,SACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,QACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,iBACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,UACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,SACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,QACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,oCAEb,CACItgC,MAAO,SACPyN,KAAM,iCACNiF,KAAM,KACNnW,UAAU,EACV+jC,QAAS,uCAKzBpE,eAAgB,KAChB4H,YAAa,+CC9LRqmL,GAAiB,CAC1BxoL,gBAAiB,CACb,CACI3hC,MAAO,UACPzV,KAAM,OACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,UACPzV,KAAM,OACN62C,aAAc,CACV,CACIphC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,kDACbD,SAAU,2CAEd,CACI1gC,MAAO,QACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,2CAEd,CACI1gC,MAAO,UACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,iDACbD,SAAU,2CAEd,CACI1gC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,8CACbD,SAAU,2CAEd,CACI1gC,MAAO,mBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,2DACbD,SAAU,2CAEd,CACI1gC,MAAO,SACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,gDACbD,SAAU,2CAEd,CACI1gC,MAAO,OACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,2CACbD,SAAU,2CAEd,CACI1gC,MAAO,UACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,wDACbD,SAAU,2CAEd,CACI1gC,MAAO,0BACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,+CAM9B,CACI1gC,MAAO,YACPzV,KAAM,OACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,UACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,oBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,6CACbD,SAAU,2CAEd,CACI1gC,MAAO,sBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,kDACbD,SAAU,2CAEd,CACI1gC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,2CACX,CACC1gC,MAAO,mBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,yCACbD,SAAU,2CAEd,CACI1gC,MAAO,mBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,+CACbD,SAAU,2CACX,CACC1gC,MAAO,YACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,0DACbD,SAAU,6CAItB,CACI1gC,MAAO,sBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,gBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,2CAEd,CACI1gC,MAAO,qBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,sDACbD,SAAU,2CAEd,CACI1gC,MAAO,qBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,uDACbD,SAAU,6CAItB,CACI1gC,MAAO,QACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,gBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,2CAEd,CACI1gC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,sDACbD,SAAU,2CAEd,CACI1gC,MAAO,eACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,uDACbD,SAAU,+CAM9B,CACI1gC,MAAO,WACPzV,KAAM,OACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,iBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,UACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,gDACbD,SAAU,2CAEd,CACI1gC,MAAO,WACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,wDACbD,SAAU,2CAEd,CACI1gC,MAAO,SACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,2CACbD,SAAU,6CAItB,CACI1gC,MAAO,kBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,2DACbD,SAAU,2CAEd,CACI1gC,MAAO,oBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,qDACbD,SAAU,+CAM9B,CACI1gC,MAAO,UACPzV,KAAM,OACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,eACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,aACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,iDACbD,SAAU,2CAEd,CACI1gC,MAAO,UACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,0DACbD,SAAU,2CAEd,CACI1gC,MAAO,gBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,yDACbD,SAAU,2CAEd,CACI1gC,MAAO,kBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,uEACbD,SAAU,2CAEd,CACI1gC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,4DACbD,SAAU,2CAEd,CACI1gC,MAAO,WACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,oDACbD,SAAU,6CAItB,CACI1gC,MAAO,UACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,aACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,iDACbD,SAAU,2CAEd,CACI1gC,MAAO,cACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,sDACbD,SAAU,2CAEd,CACI1gC,MAAO,gBACPsgC,QAAS,IACT+pL,aAAc,GACdxpL,YAAa,GACbF,YAAa,4DACbD,SAAU,+CAM9B,CACI1gC,MAAO,SACPzV,KAAM,eACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,oBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,kBACPsgC,QAAS,GACT+pL,aAAc,QACdxpL,YAAa,IACbF,YAAa,yDACbp2C,KAAM,QACNm2C,SAAU,iDAEd,CACI1gC,MAAO,mBACPsgC,QAAS,GACT+pL,aAAc,QACdxpL,YAAa,IACbF,YAAa,mEACbp2C,KAAM,QACNm2C,SAAU,iDAEd,CACI1gC,MAAO,mBACPsgC,QAAS,GACT+pL,aAAc,QACdxpL,YAAa,IACbF,YAAa,gEACbp2C,KAAM,QACNm2C,SAAU,mDAItB,CACI1gC,MAAO,qBACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,cACPsgC,QAAS,GACT+pL,aAAc,QACdxpL,YAAa,IACbF,YAAa,oDACbp2C,KAAM,QACNm2C,SAAU,2DAM9B,CACI1gC,MAAO,UACPzV,KAAM,kBACN6/N,eAAe,EACflqL,SAAU,CACN,CACIlgC,MAAO,GACPzV,KAAM,UACN62C,aAAc,CACV,CACIphC,MAAO,eACPsgC,QAAS,GACT+pL,aAAc,UACdxpL,YAAa,IACbF,YAAa,qGACbD,SAAU,mDACVn2C,KAAM,YAEV,CACIyV,MAAO,eACPsgC,QAAS,GACT+pL,aAAc,iBACdxpL,YAAa,IACbF,YAAa,kGACbD,SAAU,mDACVn2C,KAAM,iBAO9B0qC,kBAAmB,gBACnBpS,KAAM,CACF,CACI7iB,MAAO,UAAW0yB,KAAM,IACxBwN,SAAU,CACN,CACIlgC,MAAO,aACPzV,KAAM,OACN62C,aAAc,CACV,CACIphC,MAAO,GACPsgC,QAAS,GACT+pL,aAAc,qBACdxpL,YAAa,IACbF,YAAa,2EAIzB,CACI3gC,MAAO,sBACPzV,KAAM,OACN62C,aAAc,CACV,CACIphC,MAAO,GACPsgC,QAAS,GACT+pL,aAAc,8BACdxpL,YAAa,IACbF,YAAa,gFAIzB,CACI3gC,MAAO,iBACPzV,KAAM,OACN62C,aAAc,CACV,CACIphC,MAAO,GACPsgC,QAAS,GACT+pL,aAAc,yBACdxpL,YAAa,IACbF,YAAa,kFAMjC,CAAE3gC,MAAO,UAAW0yB,KAAM,IAAKwN,SAAU,KAE7CqD,QAAS2mL,GACThmL,UAAW,OACXL,kBAAmB,CAAE9B,YAAa,CAAE/hC,MAAO,cAAekgC,SAAU,GAAI31C,KAAM,SAAU2xC,eAAgB,KAAM4H,YAAa,sBAC3HE,SAAU,QC9eDsmL,GAA0B,CACnCznM,KAAM,CACF,CAAE7iB,MAAO,UAAW0yB,KAAM,IAAKwN,SAAU,IACzC,CAAElgC,MAAO,UAAW0yB,KAAM,IAAKwN,SAAU,KAE7CqD,QAAS2mL,ICNAK,GAAa,CACtBV,0BAA2B,iCAC3BC,0BAA2B,gBAC3BC,0BAA2B,uEAC3BC,mBAAoB,CAChB,CAAEj8C,QAAS,oCAAqCC,QAAS,GAAIF,SAAU,IACvE,CAAEC,QAAS,mCAAoCC,QAAS,GAAIF,SAAU,IACtE,CAAEC,QAAS,mCAAoCC,QAAS,GAAIF,SAAU,IACtE,CAAEC,QAAS,oCAAqCC,QAAS,GAAIF,SAAU,IACvE,CAAEC,QAAS,qCAAsCC,QAAS,GAAIF,SAAU,KAE5E08C,qBAAsB,oCACtBC,qBAAsB,gBACtBR,gBAAiB,gvEAejBjmL,SAAU,OACV9D,SAAU,CACN,CAAElgC,MAAO,gBACLmhC,QAAS,CACL,CAAEhhD,MAAO,aAAcg2C,IAAK,KAC5B,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAChC,CAAEh2C,MAAO,gBAAiBg2C,IAAK,KAC/B,CAAEh2C,MAAO,UAAWg2C,IAAK,OAGjC,CAAEn2B,MAAO,sBACLmhC,QAAS,CACL,CAAEhhD,MAAO,qBAAsBg2C,IAAK,KACpC,CAAEh2C,MAAO,eAAgBg2C,IAAK,KAC9B,CAAEh2C,MAAO,oBAAqBg2C,IAAK,KACnC,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAChC,CAAEh2C,MAAO,qBAAsBg2C,IAAK,OAG5C,CAAEn2B,MAAO,sBACLmhC,QAAS,CACL,CAAEhhD,MAAO,wBAAyBg2C,IAAK,KACvC,CAAEh2C,MAAO,sBAAuBg2C,IAAK,KACrC,CAAEh2C,MAAO,sBAAuBg2C,IAAK,KACrC,CAAEh2C,MAAO,gCAAiCg2C,IAAK,OAGvD,CAAEn2B,MAAO,UACLmhC,QAAS,CACL,CAAEhhD,MAAO,qBAAsBg2C,IAAK,KACpC,CAAEh2C,MAAO,wBAAyBg2C,IAAK,KACvC,CAAEh2C,MAAO,UAAWg2C,IAAK,OAGjC,CAAEn2B,MAAO,UACLmhC,QAAS,CACL,CAAEhhD,MAAO,wBAAyBg2C,IAAK,KACvC,CAAEh2C,MAAO,4BAA6Bg2C,IAAK,KAC3C,CAAEh2C,MAAO,kBAAmBg2C,IAAK,KACjC,CAAEh2C,MAAO,8CAA+Cg2C,IAAK,KAC7D,CAAEh2C,MAAO,uCAAwCg2C,IAAK,OAG9D,CAAEn2B,MAAO,QACLmhC,QAAS,CACL,CAAEhhD,MAAO,qBAAsBg2C,IAAK,KACpC,CAAEh2C,MAAO,iBAAkBg2C,IAAK,KAChC,CAAEh2C,MAAO,kBAAmBg2C,IAAK,KACjC,CAAEh2C,MAAO,cAAeg2C,IAAK,SCrEhCj5C,GAAU6I,GAAW,kBAAoB,aAAgB,KAClE,kBAAoB,KAAkB,CAAE47C,gBAAiBwoL,GAAexoL,gBAAiBkD,oBAAqBylL,GAAyB/mL,QAAS2mL,GAAYhmL,UAAWimL,GAAejmL,UAAWL,kBAAmBsmL,GAAetmL,kBAAmBG,SAAUmmL,GAAenmL,SAAU/O,kBAAmBk1L,GAAel1L,oBAC3TlvC,EAAMrJ,SACN,kBAAoBktO,GAAQ,CAAEC,0BAA2BU,GAAWV,0BAA2BC,0BAA2BS,GAAWT,0BAA2BC,0BAA2BQ,GAAWR,0BAA2BC,mBAAoBO,GAAWP,mBAAoB9pL,SAAUqqL,GAAWrqL,SAAUsqL,qBAAsBD,GAAWC,qBAAsBC,qBAAsBF,GAAWE,qBAAsBR,gBAAiBM,GAAWN,gBAAiBjmL,SAAUumL,GAAWvmL,YCL1d0mL,GAAgC3kO,IACzC,MAAM,QAAE22C,EAAO,UAAEoS,IAAc,SAAU/oD,EAAM4iN,cAAcp1K,kBACtDo3L,EAAiBC,IAAsB,IAAA3zO,UAAS,GACjD4zO,GAA6B,IAAAtvO,cAAazF,IAC5C,MAAMg1O,EAAeh1O,EAAEqzD,cAAcsjI,aAAa,cAC5ClpJ,EAAQznB,SAASgvN,EAAc,IAChC3/N,MAAMo4B,IACPqnM,EAAmBrnM,EACvB,GACD,IACH,OAAQ,kBAAoB,KAAa,CAAEgQ,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,qCACpC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,sDACjE,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQluC,EAAM4iN,cAAcC,aAAe7iN,EAAMia,OAChF,kBAAoB,IAAK,CAAEvjB,UAAW,UAAWm+C,wBAAyB,CAClEC,OAAQ90C,EAAM46C,gBAE1B,kBAAoB,MAAO,CAAElkD,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,MAAO,CAAEA,UAAW,oDAAsDsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,MAAO,CAAE0M,IAAK,cAAc1M,IAAK,aAAcA,EAAGuG,UAAW,eAAckuO,IAAoBz0O,EAAI,UAAY,IAAM+lB,aAAc4uN,GAC9Q,kBAAoB,IAAK,KACrB,kBAAoB,MAAO,CAAEpuO,UAAW,uBAAwBmG,IAAK,kBAAkB1M,KACnF,kBAAoB,MAAO,CAAEuG,UAAW,QACpCuuO,EAAKj9C,SAAW,kBAAoBo2B,GAAO,CAAEG,SAAU0mB,EAAKj9C,QAASw2B,cAAc,EAAM9nN,UAAW,2DACpG,kBAAoB,MAAO,CAAEA,UAAW,wDAA0DuuO,EAAKhrN,QAC3G,kBAAoB,MAAO,CAAEvjB,UAAW,sFAAwFuuO,EAAKh4L,YACjJ,kBAAoB,MAAO,CAAEv2C,UAAW,8BACpC,kBAAoB0nN,GAAO,CAAEG,SAAUv+M,EAAMglO,MAAMJ,GAAmB5kO,EAAMglO,MAAMJ,GAAiBM,gBAAkB,GAAI1qL,IAAKx6C,EAAMglO,MAAMJ,GAAmB5kO,EAAMglO,MAAMJ,GAAiBpqL,IAAM,GAAIgkK,cAAc,EAAM9nN,UAAW,uBAC3O,kBAAoB,MAAO,CAAEA,UAAW,sBAAwBsJ,EAAMmlO,aAC1E,kBAAoB,MAAO,CAAEzuO,UAAW,cACpC,kBAAoB,MAAO,CAAEA,UAAW,iDAAmDsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,GACvJ,kBAAoB,MAAO,CAAEuG,UAAW,kDACpC,kBAAoB,MAAO,MAC3B,kBAAoB,MAAO,CAAEA,UAAW,kEACpC,kBAAoB0nN,GAAO,CAAEI,cAAc,EAAMH,SAAU4mB,EAAKG,eAAgB9mB,UAAW2mB,EAAKG,eAAgB5qL,IAAKyqL,EAAKzqL,IAAK9jD,UAAW,0DAC9I,kBAAoB,MAAO,CAAE4C,IAAK2rO,EAAKj9C,QAASxtI,IAAKyqL,EAAKh9C,QAASvxL,UAAW,8DAC9E,kBAAoB,KAAM,CAAEA,UAAW,wDAA0DuuO,EAAKhrN,OACtG,kBAAoB,IAAK,CAAEvjB,UAAW,8DAAgEuuO,EAAKh4L,cAAe,EC1CzIo4L,GAAkB,kBAAoB,MAAO,CAAE3yO,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC9H,kBAAoB,OAAQ,CAAEr1B,EAAG,sOAAuOm7C,KAAM,UCKlR,OAAe,CAACgP,GAAY+1J,GAAU/C,KAC/B,MAAM41B,GAAkC,EAAGrrN,QAAOsrN,mBAAkB/gB,gBAAewgB,YACtF,MAAM,QAAE5nL,EAAO,QAAED,EAAO,SAAEE,IAAa,YAChCunL,EAAiBC,IAAsB,IAAA3zO,UAAS,GACjD4zO,GAA6B,IAAAtvO,cAAazF,IAC5C,MAAMytC,EAAQztC,EAAEqzD,cAAcoiL,QAAQhoM,MACtCqnM,EAAmB9uN,SAASynB,EAAO,IAAI,GACxC,KACIioM,EAAYC,IAAiB,IAAAx0O,UAAS,KACtCy0O,EAAgBC,IAAqB,IAAA10O,UAAS,KAC9C20O,EAAcC,IAAmB,IAAA50O,WAAS,IAC1CywO,EAAeC,IAAoB,IAAA1wO,WAAS,IAC5C2wO,EAAcC,IAAmB,IAAA5wO,WAAS,GAcjD,OAbA,IAAAC,YAAU,KACNu0O,EAAczrN,GACd2rN,EAAkBL,GAClBO,EAAgB1oL,GAChBwkL,EAAiBvkL,GACjBykL,EAAgB3kL,EAAQ,GACzB,CAACljC,EAAOsrN,EAAkBnoL,EAASC,EAAUF,IAOxC,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEzmD,UAAW,yBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,uDACpCmvO,GAAgB,kBAAoB,MAAO,KAV/B,CAACrhB,GAAmB,kBAAoB,MAAO,CAAE9tN,UAAW,uDAAwDf,MAAO,CAAE8uN,UAAWD,IAChK,kBAAoB,KAAM,CAAE9tN,UAAW,oBAAsB+uO,GAC7D,kBAAoB,KAAM,CAAE/uO,UAAW,8BAAgCivO,IASvDI,MAAsCxoO,IAAlBinN,EAA8B,SAAWA,EAAchtL,eAC3E,kBAAoB,GAAQ,CAAEy5J,aAAc,GAAIe,cAAe,EAAGud,WAAY,CAAEC,WAAW,IAAUw1B,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,0BAA0B1M,KAC1L,kBAAoB,IAAK,CAAEw8C,KAAMs4L,EAAK1qL,QAAS5kD,MAAO,CAAEqwO,eAAgB,OAAQhhL,MAAO,YACnF,kBAAoB,MAAO,CAAEnoD,IAAK1M,GAC9B,kBAAoB,MAAO,KACvB,kBAAoB,KAAK,CAAEmJ,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAK98C,SAAUxyL,MAAO,CAAEjD,MAAO,OAAQC,OAAQ,WACvG,kBAAoB,MAAO,CAAE+D,UAAW,0DACpC,kBAAoB,MAAO,CAAEA,UAAW,sCAAuCmG,IAAK,kBAAkB1M,KAClG,kBAAoB,KAAK,CAAEmJ,IAAK2rO,EAAKgB,aAAczrL,IAAKyqL,EAAKh9C,UAC7D,kBAAoB,KAAM,CAAEvxL,UAAW,oBAAsBuuO,EAAKhrN,OAClE,kBAAoB,OAAQ,CAAEvjB,UAAW,wDAA0D2uO,KACvG,kBAAoB,IAAK,CAAE3uO,UAAW,iBAAmBuuO,EAAKh4L,eACjF40L,GAAgBF,IAAkB,kBAAoB,MAAO,KAC1D,kBAAoB,MAAO,CAAEjrO,UAAW,yDACpC,kBAAoB,MAAO,KACvB,kBAAoB,MAAO,CAAEA,UAAW,0DAvB1C,CAAC8tN,GAAmB,kBAAoB,MAAO,CAAE7uN,MAAO,CAAE8uN,UAAWD,IAC3F,kBAAoB,KAAM,CAAE9tN,UAAW,oBAAsB+uO,GAC7D,kBAAoB,KAAM,CAAE/uO,UAAW,uFAAyFivO,IAqBJO,MAAoC3oO,IAAlBinN,EAA8B,SAAWA,EAAchtL,gBAC7K,kBAAoB,MAAO,CAAE9gC,UAAW,wEACpC,kBAAoB,KAAK,CAAE4C,IAAK0rO,EAAM,GAAGrqL,SAAUH,IAAKwqL,EAAM,GAAG78C,YACrE,kBAAoB,MAAO,CAAEzxL,UAAW,6CAA+CsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,MAAO,CAAE0M,IAAK,cAAc1M,IAAK,aAAcA,EAAGuG,UAAW,8CAA6CkuO,IAAoBz0O,EAAI,UAAY,IAAM+lB,aAAc4uN,GAChS,kBAAoB,IAAK,CAAEn4L,KAAMs4L,EAAK1qL,QAAS5kD,MAAO,CAAEqwO,eAAgB,OAAQhhL,MAAO,YACnF,kBAAoB,MAAO,CAAEtuD,UAAW,sDAAuDmG,IAAK,kBAAkB1M,KAClH,kBAAoB,MAAO,CAAEuG,UAAW,uCACpC,kBAAoB,KAAK,CAAE4C,IAAK2rO,EAAKgB,aAAczrL,IAAKyqL,EAAKh9C,UAC7D,kBAAoB,KAAM,CAAEvxL,UAAW,kCAAoCuuO,EAAKhrN,OAChF,kBAAoB,MAAO,CAAEvjB,UAAW,wDACpC,kBAAoB,MAAO,CAAEhE,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC/F,kBAAoB,OAAQ,CAAEr1B,EAAG,sOAAuOm7C,KAAM,YAC1R,kBAAoB,IAAK,CAAEh3C,UAAW,iBAAmBuuO,EAAKh4L,aAC9E,kBAAoB,MAAO,CAAEv2C,UAAW,yEACpC,kBAAoB,KAAK,CAAE4C,IAAK0rO,EAAMJ,GAAiBjqL,SAAUH,IAAKwqL,EAAMJ,GAAiBz8C,SAAUzxL,UAAW,2BAA6B,ECjElKyvO,GAAgBnmO,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,kBAC5E,gBAAoB,MAAO,CAAEA,UAAW,iCACpC,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,YAC/D,gBAAoB,MAAO,CAAEzxL,UAAW,kCACpC,gBAAoB,KAAM,CAAEA,UAAW,yBAA2BsJ,EAAMia,OACxE,gBAAoB,IAAK,KAAMja,EAAMitC,QCJhCm5L,GAAoBpmO,GAAW,kBAAoB,KAAa,KACzE,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEtJ,UAAW,wBAAuBsJ,EAAMyrL,gBAAkB,WAAa,gBAChGzrL,EAAMia,OAAU,kBAAoB,MAAO,CAAEvjB,UAAW,mCACpD,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SACrEja,EAAMitC,MAAQ,kBAAoB,IAAK,KAAMjtC,EAAMitC,OACvD,kBAAoB,MAAO,CAAEv2C,UAAW,uCACpC,kBAAoB,WAAW,KAAMsJ,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GACjG,kBAAoBg2O,GAAc,CAAElsN,MAAOgc,EAAKhc,MAAOgzB,KAAMhX,EAAKgX,KAAMk7I,SAAUlyJ,EAAKkyJ,SAAUxtI,SAAU1kB,EAAK0kB,kBAChI,kBAAoB,KAAW,KAAM36C,EAAMyrL,iBAAoB,kBAAoB,MAAO,CAAE/0L,UAAW,8BACnG,kBAAoB,IAAK,CAAEA,UAAW,6DAA8Di2C,KAAM3sC,EAAM4rL,gBAAkB5rL,EAAMyrL,iBACxI,kBAAoB,IAAK,CAAE/0L,UAAW,+DAAgEi2C,KAAM3sC,EAAM6rL,kBAAoB7rL,EAAM0rL,sBCbvI26C,GAAmB,EAAG7oM,QAAOvjB,QAAOsyB,aAAe,kBAAoB,MAAO,CAAE71C,UAAW,sBACpG,kBAAoB,KAAM,CAAEA,UAAW,6BACnC,kBAAoB,OAAQ,CAAEA,UAAW,6BAA+B8mC,GACxEvjB,GACJ,kBAAoB,IAAK,CAAEvjB,UAAW,+BAAiC61C,ICF9D+5L,GAAuB,EAAGrsN,QAAOk6B,WAAUoyL,wBAAuBvB,QAAOv5C,kBAAiBG,iBAAgBF,oBAAmBG,sBAAwB,kBAAoB,KAAa,KAC/L,kBAAoB,MAAO,CAAEn1L,UAAW,0CAA0C6vO,KAC9E,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAE7vO,UAAW,iCAAkCf,MAAO,CAAE8uN,UAAW8hB,IAA2BtsN,GACxHk6B,GAAY,kBAAoB,IAAK,CAAEz9C,UAAW,oCAAqCf,MAAO,CAAE8uN,UAAW8hB,IAA2BpyL,IAC1I,kBAAoB,MAAO,CAAEz9C,UAAW,kCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,WAAW,KAAMsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,KAAK,CAAE0M,IAAK,wBAAwB1M,KAChH,kBAAoBk2O,GAAkB,CAAE7oM,MAAO,IAAIrtC,EAAI,IAAK8pB,MAAOgrN,EAAKhrN,MAAOsyB,QAAS04L,EAAK14L,gBACzG,kBAAoB,KAAW,KAAMk/I,GAAmB,kBAAoB,MAAO,CAAE/0L,UAAW,kCAC5F,kBAAoB,IAAK,CAAEA,UAAW,qEAAsEi2C,KAAMi/I,GAAkBH,GACpIC,GAAqB,kBAAoB,IAAK,CAAEh1L,UAAW,uEAAwEi2C,KAAMk/I,GAAoBH,OCZ5J86C,GAAuBxmO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,uBACnF,kBAAoB,KAAK,CAAEA,UAAW,2BAA4B4C,IAAK0G,EAAMymO,iBAAkBjsL,IAAKx6C,EAAMw6C,MAC1G,kBAAoB,MAAO,CAAE9jD,UAAW,6BACpC,kBAAoB,KAAM,CAAEA,UAAW,8BAAgCsJ,EAAMia,OAC7E,kBAAoB,MAAO,CAAEvjB,UAAW,oCAAsCsJ,EAAM46C,cACxF,kBAAoB,MAAO,CAAElkD,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,mCACpC,kBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAMu6C,SAAWv6C,EAAM6pL,UACxD,kBAAoB,MAAO,CAAEnzL,UAAW,mCAAqC,SAC5E,GAAY,IAAO,kBAAoB,MAAO,CAAEhE,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC/H,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,qBCT9Cm0O,GAA2B1mO,IACpC,MAAOmxC,EAAMC,GAAW,aAAeC,EAAc,cAAd,YAChCg8I,EAAQs5C,GAAa,gBACrBC,EAAYC,GAAiB,cAAe,GAC7CC,EAAoB,iBAAmB91O,GAAM21O,EAAU31O,IAAI,KAC3D,QAAE2lD,IAAY,SAAU32C,EAAMwtC,iBAAmB,2BACjD8D,EAAgBH,IAClBC,EAAQD,EAAK,EAcjB,OAZA,eAAgB,KACRk8I,GAAUrtL,EAAMusC,QAAQh8C,OAAS,GAAc,UAAT4gD,IACtC01L,GAAc,GACdx5C,EAAO1rL,UACX,GACD,CAAC0rL,EAAQl8I,IACZ,eAAgB,KACZE,EAAc,cAAd,UAAwBC,GACjB,KACHD,EAAc,cAAd,YAA0BC,EAAa,IAE5C,CAACH,IACI,kBAAoB,MAAO,CAAEz6C,UAAW,+BAA8BkwO,EAAa,GAAK,eAC5F,kBAAoB,KAAa,CAAEp5L,gBAAiBmJ,GAChD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,+CACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,kBAAoB,MAAO,CAAEvjB,UAAW,qDACpC,kBAAoB,IAAK,KAAMsJ,EAAM46C,cACzC,kBAAoB,GAAQ,CAAEi8J,SAAUiwB,EAAmBp+B,QAAS,CAAChsJ,GAAYgzJ,IAAaze,aAAc,GAAIe,cAAe,OAAQiP,WAAY,CAC3IC,OAAQ,sBACRC,OAAQ,uBACToO,WAAY,CACXxnL,GAAI,0CACJynL,WAAW,EACXM,aAAc,IAAM,sFACnB9vM,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,oCAAoC1M,KAChH,kBAAoBq2O,GAAqB,CAAEvsN,MAAOgc,EAAKhc,MAAO2gC,YAAa3kB,EAAK2kB,YAAaL,QAAStkB,EAAKskB,QAASsvI,SAAU5zJ,EAAK4zJ,SAAU48C,iBAAkBxwM,EAAKwwM,iBAAkBjsL,IAAKvkB,EAAKukB,UACpM,kBAAoB,MAAO,CAAE9jD,UAAW,6CAA+C,EC3C1FqwO,GAA2B/mO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,+CACvF,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,KAAM,CAAEA,UAAW,2BAA6BsJ,EAAMia,OAC1E,kBAAoB,IAAK,CAAEvjB,UAAW,0BAA4BsJ,EAAMitC,OAC5E,kBAAoB,IAAK,CAAEN,KAAM3sC,EAAMu6C,QAASrkD,OAAQ8J,EAAM06C,cAAgB,SAAW,QAASixF,IAAK,aAAcj1I,UAAW,0BAC5HsJ,EAAM6pL,SACN,IACA,OACF,GAAY,IAAO,kBAAoB,MAAO,CAAEn3L,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,qBCX9Cy0O,GAA+BhnO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,2DAC3F,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEA,UAAW,+BAAgCm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,OAAStkB,MAAO,CAAE8uN,UAAWzkN,EAAMwkN,iBAC7H,MAArBxkN,EAAMinO,YAAuB,kBAAoB,WAAW,KAAMjnO,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,KAAK,CAAE0M,IAAK,oBAAoB1M,KAChJ,kBAAoB42O,GAAyB,IAAK9B,EAAMgC,WAAYjnO,EAAMinO,iBACzD,MAArBjnO,EAAMinO,YAAsB,kBAAoB,WAAW,KAAMjnO,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,KAAK,CAAE0M,IAAK,oBAAoB1M,KAC9I,kBAAoB42O,GAAyB,IAAK9B,EAAMgC,WAAYjnO,EAAMinO,iBAC9EjnO,EAAMknO,cAAgB,kBAAoB,IAAK,CAAExwO,UAAW,sCAAuCm+C,wBAAyB,CAAEC,OAAQ90C,EAAMknO,mBCR3IC,GAAennO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,gBAC3E,kBAAoB,KAAM,CAAEA,UAAW,uBAAyBsJ,EAAMia,OACtEja,EAAMm6C,SAAS93C,KAAI,CAAC+4C,EAASjrD,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,yBAAyB1M,IAAKuG,UAAW,yBAC3G,kBAAoB,IAAK,CAAEA,UAAW,+BAAiC0kD,EAAQnhC,OAC/EmhC,EAAQC,aAAah5C,KAAI,CAAC4zB,EAAMlI,IAAQ,kBAAoB,MAAO,CAAElxB,IAAK,8BAA8BkxB,IAAMr3B,UAAW,8BACrH,kBAAoB,IAAK,CAAEA,UAAW,oCAAsCu/B,EAAKhc,OACjFgc,EAAKgX,MAAS,kBAAoB,IAAK,CAAEv2C,UAAW,mCAAqCu/B,EAAKgX,MAC9FhX,EAAKvO,MAAS,kBAAoB,KAAK,CAAEpuB,IAAK28B,EAAKvO,KAAMhxB,UAAW,oCACpEu/B,EAAK4zJ,UAAa,kBAAoB,IAAK,CAAEl9I,KAAM1W,EAAKskB,QAAS7jD,UAAW,0DACxEu/B,EAAK4zJ,SACL,IACA,MACJ5zJ,EAAKqhF,QAAW,kBAAoB,MAAO,CAAE5gH,UAAW,qCAAuCu/B,EAAKqhF,OAAOj1G,KAAI,CAACw0G,EAAKr5E,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK,oCAAoC2gC,IAAS9mC,UAAW,8CACtN,kBAAoB,IAAK,CAAEA,UAAW,+CAAiDmgH,EAAI58F,OAC3F,kBAAoB,KAAK,CAAE3gB,IAAKu9G,EAAIl8D,SAAUjkD,UAAW,+CACrEsJ,EAAM0qL,YAAe,kBAAoB4wB,GAAQ,CAAElhN,MAAO4F,EAAM0qL,WAAY/9I,KAAM3sC,EAAMyqL,UAAW90L,MAAO,CAAEquC,OAAQ,QAAUu3K,SAAS,KACrI,GAAY,IAAO,kBAAoB,MAAO,CAAE7oN,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,qBCrB9C60O,GAAmBpnO,KAC5B,IAAA7O,YAAU,KACN,MAAMk2O,EAAYlvO,SAASywB,iBAAiB,iBAAiB,GAAGA,iBAAiB,+BAC3E0+M,EAAYnvO,SAASywB,iBAAiB,iBAAiB,GAAGA,iBAAiB,+BACjF,IAAK,IAAIz4B,EAAI,EAAGA,EAAIk3O,EAAU92O,OAAQJ,IAAK,CACvC,MAAMo3O,EAAaF,EAAUl3O,GAAG0mC,aAC1B2wM,EAAaF,EAAUn3O,GAAG0mC,aAC1BmuL,EAAYpzN,KAAKE,IAAIy1O,EAAYC,GACnCD,EAAaviB,IACbqiB,EAAUl3O,GAAGwF,MAAMhD,OAAS,GAAGqyN,OAE/BwiB,EAAaxiB,IACbsiB,EAAUn3O,GAAGwF,MAAMhD,OAAS,GAAGqyN,MAEvC,IACD,IACK,kBAAoB,MAAO,CAAEtuN,UAAW,6CAC5C,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEA,UAAW,+BAAgCm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SAChH,kBAAoB,MAAO,CAAEvjB,UAAW,gCAAkCsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBg3O,GAAa,CAAEtqO,IAAK,oBAAoB1M,OAAQ80O,OAC3KjlO,EAAMynO,QAAU,kBAAoB,IAAK,CAAE/wO,UAAW,2BAA4Bm+C,wBAAyB,CAAEC,OAAQ90C,EAAMynO,cCrB9HC,GAAkB,EAAGC,UAASC,UAASC,cAAaC,iBAAgBj+C,WAAUtvI,UAASwtL,UAAS15L,kBAAoB,kBAAoB,MAAO,CAAE33C,UAAW,qBACrK,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,2BACpC,kBAAoB,KAAK,CAAE4C,IAAKquO,EAASntL,IAAKotL,KAClDC,GAAe,kBAAoB,MAAO,CAAEnxO,UAAW,mCAAqCmxO,EAAYxlO,KAAI,EAAG2lO,cAAaC,gBAAgBzqM,IAAW,kBAAoB,EAAA+P,SAAU,CAAE1wC,IAAK2gC,GACxL,kBAAoB,MAAO,CAAE9mC,UAAW,wCAA0CsxO,GAClF,kBAAoB,MAAO,CAAEtxO,UAAW,wCAAyCm+C,wBAAyB,CAAEC,OAAQmzL,UAC5HH,GAAkBA,EAAev3O,OAAS,GAAK,kBAAoB,MAAO,CAAEmG,UAAW,qCACnF,kBAAoB,KAAM,KAAMoxO,EAAezlO,KAAI,CAAC4zB,EAAMuH,IAAW,kBAAoB,KAAM,CAAE3gC,IAAK2gC,GAASvH,OACnH,kBAAoB,MAAO,CAAEv/B,UAAW,6BACpCmzL,GAAa,kBAAoB,KAAU,CAAE37I,OAAQ,mBAAoBvB,KAAM4N,EAASlM,aAAcA,GAAgBw7I,GACtH,kBAAoB,MAAO,CAAEnzL,UAAW,6BAA8Bm+C,wBAAyB,CAAEC,OAAQizL,OCVpGG,GAAsB,EAAGjuN,QAAOkuN,cAAgBR,UAASC,UAASC,cAAaC,iBAAgBj+C,WAAUtvI,UAASwtL,UAAS15L,mBAAuB,kBAAoB,KAAa,KAC5L,kBAAoB,MAAO,CAAE33C,UAAW,0BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,iCACpC,kBAAoBgxO,GAAiB,CAAEC,QAASA,EAASC,QAASA,EAASC,YAAaA,EAAaC,eAAgBA,EAAgBj+C,SAAUA,EAAUtvI,QAASA,EAASwtL,QAASA,EAAS15L,aAAcA,OCP1M+5L,GAAmB,EAAG5qM,QAAOvjB,QAAOsyB,aAAe,kBAAoB,MAAO,CAAE71C,UAAW,+CACpG,kBAAoB,KAAM,CAAEA,UAAW,6BACnCujB,EACA,kBAAoB,OAAQ,CAAEvjB,UAAW,6BAA+B8mC,IAC5E,kBAAoB,IAAK,CAAE9mC,UAAW,+BAAiC61C,ICF9D87L,GAAuB,EAAGpuN,QAAO+qN,QAAOv5C,kBAAiBG,oBAAuB,kBAAoB,KAAa,KAC1H,kBAAoB,MAAO,CAAEl1L,UAAW,yDACpC,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEA,UAAW,kCAAoCujB,IAC/E,kBAAoB,MAAO,CAAEvjB,UAAW,kCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,WAAW,KAAMsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK,wBAAwB1M,KACjH,kBAAoBi4O,GAAkB,CAAE5qM,MAAO,IAAIrtC,EAAI,IAAK8pB,MAAOgrN,EAAKhrN,MAAOsyB,QAAS04L,EAAK14L,gBACzGk/I,GAAoB,kBAAoB,MAAO,CAAE/0L,UAAW,gCACxD,kBAAoB,IAAK,CAAEi2C,KAAMi/I,GAAkBH,MCVlD68C,GAAetoO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,eAC3E,kBAAoB,MAAO,CAAEA,UAAW,2BACpC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,YAC/D,kBAAoB,MAAO,CAAEzxL,UAAW,2BACpC,kBAAoB,IAAK,KAAMsJ,EAAMia,SAC7C,kBAAoB,MAAO,CAAEvjB,UAAW,2BAA6BsJ,EAAMkpL,MAAM7mL,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,0BACvJ,kBAAoB,IAAK,CAAEi2C,KAAMs4L,EAAKjjB,QAAS9rN,OAAQ,SAAUy1I,IAAK,uBAAyBs5F,EAAKp7C,eCN/F0+C,GAAmBvoO,GAAW,gBAAoB,KAAa,KACxE,gBAAoB,MAAO,CAAEtJ,UAAW,mBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,8BACpC,gBAAoB,MAAO,CAAEA,UAAW,0BACpC,gBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,gBAAoB,MAAO,CAAEvjB,UAAW,oCACpC,gBAAoB,WAAW,KAAMsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAU,gBAAoB,KAAK,CAAE3gC,IAAK2gC,GAClG,gBAAoB8qM,GAAa,IAAKrD,aCKjDuD,GAAgBxoO,IACzB,MAAQ+tB,GAAI06M,EAAM,SAAEC,GAAa1oO,GAC1B2oO,EAAaC,IAAkB,IAAA13O,WAAS,GAEzC23O,EAlBgB,EAACC,EAAgBC,EAAgBJ,IACnDG,GAAkBH,EACXI,EACD,8BACA,+BAEH,GAYgBC,CAVD,CAACC,IACvB,MAAMC,GAAW,IAAAn2O,aAAOwK,GAClBurO,OAAsCvrO,IAArB2rO,EAAS/1O,SAAyB+1O,EAAS/1O,UAAY81O,EAE9E,OADAC,EAAS/1O,UAAY81O,EACdH,CAAc,EAKEK,CAAkBnpO,EAAMypL,QACUzpL,EAAMypL,OAAQk/C,GACjES,GAAoB,IAAA5zO,cAAY,KAClCozO,GAAe,EAAK,GACrB,IACGS,GAAkB,IAAA7zO,cAAY,IAAMozO,GAAe,IAAQ,IAC3DU,GAAe,IAAA9zO,cAAY,IAAMkzO,IAAWD,IAAS,CAACA,EAAQC,IACpE,OAAQ,kBAAoB,MAAO,CAAEhyO,UAAW,kBAAkBsJ,EAAMypL,OAAS,yBAA2B,MAAMo/C,KAC9G,kBAAoB,KAAM,CAAEnyO,UAAW,wBAAyBujB,MAAOja,EAAMia,OACzE,kBAAoB,OAAQ,CAAEvjB,UAAW,SAAWsJ,EAAMia,OAC1D,IACA,kBAAoB,MAAO,CAAEvjB,UAAW,0BAA2Buc,QAASq2N,GAAgB,OAChG,kBAAoB,MAAO,CAAE5yO,UAAW,yBACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAK,GAAIgF,QAAS,UACtE,kBAAoB,MAAO,CAAE9oD,UAAW,gCACpCsJ,EAAMupO,YACN,IACAvpO,EAAMwpO,qBACAxpO,EAAMwpO,qBACN,YACV,kBAAoB,MAAO,CAAE9yO,UAAW,uBAAwB+yO,iBAAkBL,EAAmBM,eAAgBL,GAAmBrpO,EAAMitC,MAC9I,kBAAoB,MAAO,CAAEv2C,UAAW,gCACpC,kBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAMu6C,QAASrkD,OAAQ8J,EAAM06C,cAAgB,SAAW,QAASixF,IAAK,aAAcj1I,UAAW,wBAC5HsJ,EAAM6pL,SACN,IACA,OAAe,EAElB,GAAY,IAAO,kBAAoB,MAAO,CAAEn3L,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,UAAW9lB,MAAO,8BAClI,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,qBAC9C,GAAY,IAAO,kBAAoB,MAAO,CAAEG,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC/H,kBAAoB,OAAQ,CAAEr1B,EAAG,sJAAuJm7C,KAAM,aClDrLi8L,GAAoB3pO,IAC7B,MAAO4pO,EAAgBC,IAAqB,IAAA34O,WAAU,GAChD44O,GAAgB,IAAA/2O,SAAO,GACvBu2O,GAAe,IAAA9zO,cAAau4B,IAC9B87M,GAAmBE,GAAYA,IAAWh8M,GAAM,EAAIA,GAAI,GACzD,IAOGi3M,EANiBhlO,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,KAC1C,MAAM65O,EAAqBF,EAAc32O,QACnC8xO,EAAKx7C,OACLt5L,IAAMy5O,EACZ,MAAO,IAAK3E,EAAMl3M,GAAI59B,EAAGs5L,OAAQugD,EAAoB,IAMzD,OAHA,IAAA74O,YAAU,KACN24O,EAAc32O,SAAU,CAAK,GAC9B,IACK,kBAAoB,MAAO,CAAEuD,UAAW,wBAA0BsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,EAAAo9C,SAAU,CAAE1wC,IAAK,kBAAkB1M,KACrJ,kBAAoBq4O,GAAc,CAAEz6M,GAAI59B,EAAG8pB,MAAOgrN,EAAKhrN,MAAO0gC,SAAUsqL,EAAKtqL,SAAU4uL,YAAatE,EAAKsE,YAAat8L,KAAMg4L,EAAKh4L,KAAM48I,SAAUo7C,EAAKp7C,SAAUtvI,QAAS0qL,EAAK1qL,QAASG,cAAeuqL,EAAKvqL,cAAe+uI,OAAQw7C,EAAKx7C,OAAQ+/C,qBAAsBvE,EAAKuE,qBAAsBd,SAAUY,IAC1Sn5O,IAAM60O,EAAMz0O,OAAS,GAAM,kBAAoBq0N,GAAK,CAAEG,UAAW,OAAQG,WAAY,YAAe,ECpB/F+kB,GAAuB,EAAGhwN,QAAOgzB,UAAY,kBAAoB,MAAO,CAAEv2C,UAAW,0BAC9F,kBAAoB,KAAM,CAAEA,UAAW,gCAAiCm+C,wBAAyB,CAAEC,OAAQ76B,KAC3G,kBAAoB,IAAK,CAAEvjB,UAAW,+BAAgCm+C,wBAAyB,CAAEC,OAAQ7H,MCEhGi9L,GAA2B,EAAGjwN,QAAOsyB,aAAe,kBAAoB,MAAO,CAAE71C,UAAW,+BACrG,kBAAoB,KAAa,KAC7B,kBAAoB,KAAM,CAAEA,UAAW,qCAAsCm+C,wBAAyB,CAAEC,OAAQ76B,KAChH,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEvjB,UAAW,2CAA6C61C,EAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB85O,GAAsB,CAAEptO,IAAK1M,EAAG8pB,MAAOgc,EAAKhc,MAAOgzB,KAAMhX,EAAKgX,WACrM,kBAAoB,MAAO,CAAEv2C,UAAW,4CACpC,kBAAoB,GAAQ,CAAEgyM,QAAS,CAAChsJ,GAAYgzJ,IAAaze,aAAc,GAAIe,cAAe,OAAQiP,WAAY,CAC9GC,OAAQ,sBACRC,OAAQ,uBACToO,WAAY,CACXxnL,GAAI,2CACJynL,WAAW,EACXM,aAAc,IAAM,uFACnBvjK,EAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,qCAAqC1M,KAC3G,kBAAoB85O,GAAsB,CAAEhwN,MAAOgc,EAAKhc,MAAOgzB,KAAMhX,EAAKgX,WAC9E,kBAAoB,MAAO,CAAEv2C,UAAW,gFCjB7C,MAAMyzO,GAAW,EAAG1iD,WAAU2iD,cAAaC,eAAcC,iBAAgBC,gBAAeC,kBAAiBC,4BAA2BC,aAAYC,oBAAmBC,cAAa,EAAOC,sBAC1L,MAAMC,EAAc,IAAIh9N,KAAKs8N,GAA4B,IAAIW,mBAAmB,QAAS,CACrF10N,IAAK,UACLlB,MAAO,QACPrC,KAAM,YAGV,MADoB,KAApB+3N,IAAyBA,EAAkBR,GACnC,kBAAoB,MAAO,CAAE3zO,UAAW,aAAYk0O,EAAa,iBAAmB,KACxF,kBAAoB,KAAK,CAAEl0O,UAAW,gBAAiB4C,IAAKmuL,EAAUjtI,IAAKqwL,IAC3E,kBAAoB,MAAO,CAAEn0O,UAAW,qBACpC,kBAAoB,MAAO,CAAEA,UAAW,2BACpC,kBAAoB,MAAO,CAAEA,UAAW,uBACpCi0O,GAAqB,kBAAoB,OAAQ,CAAEj0O,UAAW,yBAA2Bi0O,GACzF,kBAAoB,OAAQ,CAAEj0O,UAAW,sBAAwB8zO,GACjE,kBAAoB,OAAQ,CAAE9zO,UAAW,kBAAoBo0O,IACjE,kBAAoBl2L,GAAA,EAAS,CAAE1G,OAAQ,iBACnC,kBAAoB,IAAK,CAAEvB,KAAM+9L,GAAcL,KACvD,kBAAoB,IAAK,CAAE3zO,UAAW,kBAAoB4zO,GAC1D,kBAAoB,MAAO,CAAE5zO,UAAW,oBAAsB6zO,IAAiB,ECS9ES,IDPY,kBAAoB,MAAO,CAAEt4O,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,OAAQ,CAAEr1B,EAAG,iPAAkPm7C,KAAM,YACzR,kBAAoB,OAAQ,CAAEn7C,EAAG,mNAAoNm7C,KAAM,aACtO,kBAAoB,MAAO,CAAEh7C,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,OAAQ,CAAEr1B,EAAG,0aAA2am7C,KAAM,YACld,kBAAoB,OAAQ,CAAEn7C,EAAG,ibAAkbm7C,KAAM,cCErb,IAAAu9L,OA7Bf,KACrB,MAAM9xO,GAAY,IAAApG,QAAO,MAqBzB,OApBA,IAAA5B,YAAU,KACN,MAAMq1L,EAASruL,SAASvB,cAAc,UACtC4vL,EAAOltL,IACH,uEACJktL,EAAOhiL,KAAO,kBACdgiL,EAAOxvI,OAAQ,EACfwvI,EAAO/2I,UAAY,uSAUft2C,EAAUhG,SACVgG,EAAUhG,QAAQk1B,YAAYm+J,EAClC,GACD,IACK,kBAAoB,MAAO,CAAE9vL,UAAW,+BAC5C,kBAAoB,MAAO,CAAEA,UAAW,+BAAgCG,IAAKsC,GACzE,kBAAoB,MAAO,CAAEzC,UAAW,yCACxC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoB,IAAK,CAAEi2C,KAAM,+BAAgCg/F,IAAK,+BAAgCz1I,OAAQ,UAC1G,kBAAoB,OAAQ,CAAEQ,UAAW,aAAe,uCAAwC,KC3BvGw0O,GAAmB,EAAGC,iBAAgBC,iCAC/C,eAAgB,KACZ,MAAM5kD,EAASruL,SAASvB,cAAc,UAItC,OAHA4vL,EAAOltL,IAAM,0CACbktL,EAAOxvI,OAAQ,EACf7+C,SAAS4gB,KAAKsP,YAAYm+J,GACnB,KACHruL,SAAS4gB,KAAKuP,YAAYk+J,EAAO,CACpC,GACF,IACI,kBAAoB,MAAO,CAAE9vL,UAAW,oBAC3C,kBAAoB,IAAK,CAAEA,UAAW,mBAAoB,mBAAoB,IAAK,cAAe,iCAAkC,kBAAmB,UAAWi2C,KAAMw+L,EAAgBj1O,OAAQ,SAAUy1I,IAAK,cAAgBy/F,KCH1NC,GAAe,EAAG10O,WAAUsjB,QAAO42B,cAAaoW,mBAAkBjV,aAAYiP,iBAAgBqqL,uBAAsBC,iBAAgBC,YAAWC,kBACxJ,MAAQrkL,UAAWjW,IAAS,EAAA+V,GAAA,KACtBwkL,EAAmBzkL,EAAiB12D,OAAS,EAC7Co7O,GAAmBH,GAAaC,GAAar7L,IACnD,OAAQ,kBAAoB,KAAa,KACrC,kBAAoB,UAAW,CAAE15C,UAAW,gBACxC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,+BACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,iBAAmBj0B,GACnE,kBAAoB,MAAO,CAAEvjB,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC40O,EACAC,GACJ50O,EACA,kBAAoBiuN,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5EumB,GACK,kBAAoB,aAAgB,KACjC,kBAAoB,MAAO,CAAEh1O,UAAW,sBACpCuwD,EAAiB5kD,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoBg6O,GAAU,CAAEttO,IAAK1M,KAAM80O,MAC9E,KACJ,kBAAoB,MAAO,CAAEvuO,UAAW,wBACpC,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAaA,EAAamB,WAAYA,EAAYiP,eAAgBA,EAAgBhP,cAAwB,UAATd,OAC3J,kBAAoB,MAAO,CAAEz6C,UAAW,6BAA+Bi1O,EAAkB,kBAAoBT,GAAkB,CAAEC,eAAgBM,EAAYr7L,IAAKg7L,2BAA4BK,EAAYv9M,kBACpM,kBAAoB88M,GAA0B,UAAW,EC7BtEY,GAAiB,CAACC,EAAMC,IA8E5BD,EA7EgB,CACjBvhE,GAAI,CACAyhE,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBC,GAAI,CACAH,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBE,GAAI,CACAJ,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBlyK,GAAI,CACAgyK,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBG,GAAI,CACAL,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBx8F,GAAI,CACAs8F,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBI,GAAI,CACAN,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjB1kO,GAAI,CACAwkO,IAAK,MACLC,UAAW,YACXC,YAAa,eAEjBhhO,GAAI,CACA8gO,IAAK,QACLC,UAAW,aACXC,YAAa,YAEjBK,MAAO,CACHP,IAAK,QACLC,UAAW,gBACXC,YAAa,YAEjBM,GAAI,CACAR,IAAK,KACLC,UAAW,MACXC,YAAa,MAEjBO,GAAI,CACAT,IAAK,UACLC,UAAW,cACXC,YAAa,WAEjBp8N,GAAI,CACAk8N,IAAK,OACLC,UAAW,UACXC,YAAa,SAEjBQ,GAAI,CACAV,IAAK,QACLC,UAAW,gBACXC,YAAa,YAEjBlkO,GAAI,CACAgkO,IAAK,OACLC,UAAW,WACXC,YAAa,oBAMDH,GAAe,QAAQD,IAASA,EAFzC,GAIFa,GAAsB1sO,IAC/B,MAAM2sO,GAAgB,IAAAn3O,cAAY,IAAM,kBAAoB,MAAO,CAAEkB,UAAW,8DAC5EsJ,EAAM4sO,oBAAsB,kBAAoB,OAAQ,CAAEl2O,UAAW,sBACjE4nO,KACA,IACA,kBAAoB,OAAQ,CAAE3oO,MAAO,CAAE67L,UAAW,OAAS96L,UAAW,IAClEsJ,EAAM4sO,mBACN,IACA5sO,EAAM6sO,6BACd,kBAAoB,OAAQ,CAAEn2O,UAAW,yDAA+E,cAAvBsJ,EAAM8sO,aAA+B,6CAA+C,+CACjL,kBAAoB,OAAQ,KAAMlB,GAAe5rO,EAAM8sO,aAAc9sO,EAAM8rO,iBAAiB,CAAC9rO,EAAM8sO,aAAc9sO,EAAM4sO,mBAAoB5sO,EAAM6sO,6BACzJ,OAAQ,kBAAoB,MAAO,CAAEn2O,UAAW,yDAAyDsJ,EAAM4qO,WAAa,2BAA6B,MAAM5qO,EAAM+sO,aAAe/sO,EAAM+sO,YAAYx8O,OAAS,EACrM,uCACA,MACN,kBAAoB,IAAK,CAAEo8C,KAAM3sC,EAAM0qO,WAAYh0O,UAAW,4BAC1D,kBAAoB,KAAK,CAAEA,UAAW,0BAA2B4C,IAAK0G,EAAMynL,SAAUjtI,IAAKx6C,EAAM6qO,wBAC3EttO,IAA1ByC,EAAMwqO,iBAAiC,kBAAoB,MAAO,CAAE9zO,UAAW,iCAAmCsJ,EAAMwqO,iBAAiB5oN,MAAM,KAAKvf,KAAI,CAACq6M,EAAUvsN,IAAM,kBAAoB,IAAK,CAAEuG,UAAW,wEAAyEmG,IAAK,2BAA2B1M,IAAKw8C,KAAM,IAAI3sC,EAAM28M,UAAU38M,EAAM48M,eAAejhN,MAAKosB,GAAMA,EAAG9N,MAAMud,cAAcxlB,SAAS0qM,EAASllL,kBAAiBqlL,aAAe78M,EAAMyqO,2BAA2B7oN,MAAM,KAAKzxB,OAC5e,kBAAoB,IAAK,CAAEw8C,KAAM3sC,EAAM0qO,WAAYh0O,UAAW,iCAC1D,kBAAoB,KAAM,KAAMsJ,EAAMqqO,eAC1C,kBAAoB,IAAK,KAAMrqO,EAAMsqO,gBACrCqC,IAAiB,ECnGZK,GAA6B,EAAGpC,aAAY5F,QAAOpoB,gBAAe0uB,uBAAsBC,iBAAgB5uB,UAASkwB,6BAA4BI,iBAAgBlgM,gBAAeS,kBAAiB0/L,gBAAer8L,cAAas8L,WAAUC,qBAAoBC,cAChQ,MAAQjmL,UAAWjW,IAAS,YACrB4B,EAAgBu6L,IAAqB,IAAAp8O,UAAS2/C,IAC/C,QAAE8F,EAAO,UAAEoS,IAAc,SAAUvb,IAClC+/L,EAAsBC,IAA2B,IAAAt8O,UAASg8O,IAAgB,IAC3EO,EAAkBN,EAClBO,GAAqB,IAAAl4O,cAAarF,IACpCk9O,EAAQl9O,EAAI,GACZm9O,EAAkBn9O,EAAI,EAAE,GACzB,CAACk9O,IACEr7L,EAAapgD,KAAK+S,KAAKyoO,EAAqBK,GAC5CrK,EAAmB,WAAa,MAChCuK,GAAkC,IAAAn4O,cAAak8B,IACjD87M,EAAwB97M,EAAM0xB,cAAcoiL,QAAQoI,QACpDN,EAAkB,EAAE,GACrB,IACGO,GAAoB,IAAAr4O,cAAY,IAAO,kBAAoB,aAAgB,KAAM03O,GAAiB,kBAAoB,MAAO,CAAEx2O,UAAW,iCAAmCw2O,GAAe7qO,KAAI,CAACurO,EAAQz9O,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,sEAAqE62O,IAAyBK,EAAS,+BAAiC,IAAM36N,QAAS06N,EAAiC,cAAeC,GAAUA,QAAc,CAACV,EAAeK,EAAsBI,IACrgBp+B,GAAa,IAAA/5M,cAAY,IAAMw8C,EAAa,GAAK,kBAAoB,MAAO,CAAEt7C,UAAW,wBAC3F,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAakC,EAAiB,EAAGf,WAAYA,EAAYiP,eAAgBysL,EAAoBz7L,cAAwB,UAATd,EAAkB+P,gBAAgB,MAAU,CAAClP,EAAYe,EAAgB26L,EAAoBv8L,IACvP,OAAQ,kBAAoB,KAAa,CAAE3D,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,0BACpC40O,EACAC,EACA,kBAAoB,MAAO,CAAE10O,IAAKusO,EAAkBztO,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,0BACxF,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,2CACpC,kBAAoB,KAAM,CAAEA,UAAW,+CACnCu2O,EACA,KACAG,EACA,KACJS,KACJ7I,EAAMz0O,OACF,kBAAoB,aAAgB,MAC/Bq6O,GAAc,kBAAoB,OAAQ,CAAEl0O,UAAW,sCAAwCsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GACpJ,kBAAoBu8O,GAAoB,CAAEG,2BAA4BA,EAA4BjwB,cAAeA,EAAeD,QAASA,KAAYsoB,EAAM2F,WAAYA,QAC3KA,GAAc,kBAAoB,MAAO,CAAEl0O,UAAW,+BAClDsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoBu8O,GAAoB,CAAEG,2BAA4BA,EAA4BjwB,cAAeA,EAAeD,QAASA,EAAS9/M,IAAK1M,KAAM80O,EAAM2F,WAAYA,MACvM,KACJr7B,KACF,kBAAoB,MAAO,CAAE74M,UAAW,4BACtC,KACAq2C,MAAmB,ECjDlC+gM,GAAe,CAACjxO,EAAK/M,SAChByN,IAAVzN,QAAwC,IAAVA,EACvB,KAEU,iBAAVA,GAAuBi+O,SAASj+O,GAGpCA,EAFI,KAIFk+O,GAAiB,CAACC,EAAaC,KACxC,MAAMC,EAAoB,IAAKF,GAI/B,OAHI3vO,MAAMC,QAAQ2vO,IACdA,EAAal4O,SAAQ6G,UAAcsxO,EAAkBtxO,KAElD40E,KAAK8hC,UAAU46H,EAAmBL,GAAa,ECd7CM,GAAwB,KACjC,MAAMC,EAAmB,IAAIz7L,gBAAgBlG,SAASgG,QAAQz8C,IAAI,QAClE,GAAyB,OAArBo4O,EAA2B,CAC3B,MAAMC,EAAkB5wO,OAAO2wO,GAC/B,GAAIjpO,MAAMkpO,GACN,OAEJ,GAAIA,GAAmB,EACnB,OAEJ,OAAOA,CACX,CACgB,EAEPC,GAAyB19L,IAClC,IAAKA,EACD,OAEJ,MAAM29L,EAAe,IAAI57L,gBAAgBlG,SAASgG,QAClD87L,EAAan4O,IAAI,OAAQw6C,EAAYxxC,YACrC,MAAMovO,EAAqBD,EAAanvO,WACxCjO,OAAO0iD,QAAQC,aAAa,OAAQ,OAAQ,IAAI06L,IAAqB,EAE5DC,GAA8B,KACvC,MAAMC,EAAkB,IAAI/7L,gBAAgBlG,SAASgG,QAAQz8C,IAAI,cACjE,GAAwB,OAApB04O,EACA,OAAOA,CAEK,EC1BPC,GAA8B,CAAC/9L,EAAag+L,EAAoBC,GAAsB,KAC/F,MAAMhF,GAAgB,IAAA/2O,SAAO,IAC7B,IAAA5B,YAAU,KACN,GAAI29O,GACIJ,KACA,OAGR,IAAK5E,EAAc32O,QAEf,YADAo7O,GAAsB19L,GAG1B,MAAMk+L,EAAYX,KACdW,EACIA,IAAcl+L,GACdg+L,EAAmBE,GAIvBR,GAAsB19L,EAC1B,GACD,CAACA,EAAag+L,EAAoBC,KACrC,IAAA39O,YAAU,KACN24O,EAAc32O,SAAU,CAAK,GAC9B,GAAG,EClBG67O,GAA0BhvO,IACnC,MAAQonD,UAAWjW,IAAS,YACrBN,EAAaoQ,IAAkB,IAAA/vD,UAAS8O,EAAM6wC,aAAe,IAC9D,QAAE8F,EAAO,UAAEoS,IAAc,SAAU/oD,EAAMwtC,kBACxC+/L,EAAsBC,IAA2B,IAAAt8O,UAAS8O,GAAOktO,gBAAgB,IAExF0B,GAA4B/9L,EAAaoQ,GACzC,MAMMguL,EALEjvO,GAAOktO,gBAAgB,IAAMK,IAAyBvtO,GAAOktO,gBAAgB,GACtEltO,EAAMglO,MAAMxoO,QAAOzM,GAAKA,EAAE+8O,eAAiBS,IAE/CvtO,EAAMglO,MAGXkK,EAAmBD,EAAc3vO,MATf,IASsBuxC,EAAc,GATpC,GAS0D,GAC5EmB,EAAapgD,KAAK+S,KAAKsqO,EAAc1+O,OAVnB,IAWlB6yO,EAAmB,WAAa,MAChCuK,GAAkC,IAAAn4O,cAAak8B,IACjD87M,EAAwB97M,EAAM0xB,cAAcoiL,QAAQoI,QACpD3sL,EAAe,EAAE,GAClB,IACGkuL,EAAyB,iBAAmBh/O,IAC9C8wD,EAAe9wD,EAAI,EAAE,GACtB,IACG09O,GAAoB,IAAAr4O,cAAY,IAAO,kBAAoB,aAAgB,KAAMwK,EAAMktO,eAAiB,kBAAoB,MAAO,CAAEx2O,UAAW,iCAAmCsJ,GAAOktO,eAAe7qO,KAAI,CAACurO,EAAQz9O,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,sEAAqE62O,IAAyBK,EAAS,+BAAiC,IAAM36N,QAAS06N,EAAiC,cAAeC,GAAUhC,GAAegC,EAAQ5tO,EAAM8rO,mBAAoB,CAAC9rO,EAAM8rO,YAAa9rO,EAAMktO,cAAeK,EAAsBI,IAC9kBp+B,GAAa,IAAA/5M,cAAY,IAAMw8C,EAAa,GAAK,kBAAoB,MAAO,CAAEt7C,UAAW,wBAC3F,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAaA,EAAc,EAAGmB,WAAYA,EAAYiP,eAAgBkuL,EAAwBl9L,cAAwB,UAATd,EAAkB+P,gBAAgB,MAAU,CAAClP,EAAYnB,EAAas+L,EAAwBh+L,IACzP,OAAQ,kBAAoB,KAAa,CAAE3D,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,0BACpCsJ,EAAMsrO,qBACNtrO,EAAMurO,eACN,kBAAoB,MAAO,CAAE10O,IAAKusO,EAAkBztO,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,0BACxF,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,2CACpC,kBAAoB,KAAM,CAAEA,UAAW,+CACnCsJ,EAAMitO,eACN,KACAgC,EAAc1+O,OACd,KACJs9O,KACJqB,EAAiB3+O,OACb,kBAAoB,aAAgB,MAC/ByP,EAAM4qO,YAAc,kBAAoB,OAAQ,CAAEl0O,UAAW,sCAAwCw4O,EAAiB7sO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GACrK,kBAAoBu8O,GAAoB,CAAEG,2BAA4B7sO,EAAM6sO,2BAA4BjwB,cAAe58M,EAAM48M,cAAeD,QAAS38M,EAAM28M,WAAYsoB,EAAM2F,WAAY5qO,EAAM4qO,WAAYkB,YAAa9rO,EAAM8rO,kBAClO9rO,EAAM4qO,YAAc,kBAAoB,MAAO,CAAEl0O,UAAW,+BACxDw4O,EAAiB7sO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoBu8O,GAAoB,CAAEG,2BAA4B7sO,EAAM6sO,2BAA4BjwB,cAAe58M,EAAM48M,cAAeD,QAAS38M,EAAM28M,QAAS9/M,IAAK1M,KAAM80O,EAAM2F,WAAY5qO,EAAM4qO,WAAYkB,YAAa9rO,EAAM8rO,gBACzQ,KACJv8B,KACF,kBAAoB,MAAO,CAAE74M,UAAW,4BACtC,KACAsJ,EAAM+sC,kBAAmB,ECvDxCqiM,GAAqBpvO,IAC9B,MAAOglO,EAAOqK,IAAY,IAAAn+O,UAAS,KACnC,IAAAC,YAAU,KACN,MAAMm+O,EAAW,GACjBtvO,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAMm/O,EAASv0O,KAAK,IAAKkqO,EAAMl3M,GAAI,GAAG59B,IAAKs5L,QAAQ,MAC1E4lD,EAASC,EAAS,GACnB,IACH,MAAM9lD,GAAe,IAAAh0L,cAAau4B,IAC9BshN,EAASrK,EAAM3iO,KAAI4iO,GAAQA,EAAKl3M,KAAOA,EAAK,IAAKk3M,EAAMx7C,QAASw7C,EAAKx7C,QAAW,IAAKw7C,EAAMx7C,QAAQ,KAAS,GAC7G,CAACu7C,IACJ,OAAQ,kBAAoB,MAAO,CAAEtuO,UAAW,8CAC5C,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEA,UAAW,6BAA8Bm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SAC9G,kBAAoB,WAAW,KAAM+qN,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,KAAK,CAAE0M,IAAK,kBAAkB1M,KAC1G,kBAAoBm5L,EAAe,CAAErvK,MAAOgrN,EAAKhrN,MAAOgzB,KAAMg4L,EAAKh4L,KAAMvlB,KAAMu9M,EAAKv9M,KAAMmiK,SAAUo7C,EAAKp7C,SAAUtvI,QAAS0qL,EAAK1qL,QAASG,cAAeuqL,EAAKvqL,cAAe+uI,OAAQw7C,EAAKx7C,OAAQG,YAAaq7C,EAAKr7C,YAAaD,gBAAiBs7C,EAAKt7C,gBAAiB57J,GAAI,GAAG59B,IAAKq5L,aAAcA,UAAsB,ECjB/T+lD,GAA2B,uBAC3BC,GAAqBxvO,IAC9B,MAAM1G,EAAM,GAAG0G,EAAMyvO,WAAWzvO,EAAM0vO,eAAiB,yBAAyB1vO,EAAM0vO,iBAAmB,KAEnGC,EADgB3vO,EAAMyvO,SAAS7tN,MAAM,KACb9mB,MACxB80O,EAAW,GAAGL,MAA4BI,IAChD,OAAQ,kBAAoB,SAAU,CAAE5hN,GAAI6hN,EAAUl5O,UAAW64O,GAA0B78O,MAAO,OAAQC,OAAQ,OAAQ2G,IAAKA,EAAK2gB,MAAO,uBAAwB41N,MAAO,sGAAuGC,iBAAiB,GAAQ,ECPxSC,GAAW,CACb/2O,KAAM,mDACNF,KAAM,mDACNI,MAAO,qFCDJ,MAAM82O,GAAoB,EAAGr5O,WAAUs5O,oBAAsB,kBAAoB,aAAgB,KAAMA,GAAiB,KAAA1nN,cAAa5xB,EAAUwB,SAAS4gB,MAAQpiB,GCC1Ju5O,GAAkBlwO,IAC3B,MAAOmwO,EAAcC,IAAmB,IAAAl/O,WAAS,GAC3Cm/O,GAA8B,IAAAt9O,SAAO,GACrCu9O,GAAc,IAAAv9O,QAAO,MACrBw9O,GAAe,IAAA/6O,cAAY,KAC7B46O,GAAgB,EAAK,GACtB,IACGI,GAAe,IAAAh7O,cAAY,KAC7B66O,EAA4Bl9O,SAAU,EACtCi9O,GAAgB,EAAM,GACvB,IA4BH,OA3BA,IAAAj/O,YAAU,KACN,GAAIm/O,EAAYn9O,UACPg9O,GAAgBE,EAA4Bl9O,QAAS,CACtD,MAAMs9O,EAAgBH,EAAYn9O,QAAQo5B,cAAc,IAAIgjN,MACxDkB,GFbe,EAACC,EAAaC,KAC7C,IAAKD,IAAgB9gP,OAAOiM,KAAKk0O,IAAU/9N,SAAS2+N,GAChD,OAEJ,MAAMC,EAAiBb,GAASY,GAChC,IACID,GAAaG,eAAe9+H,YAAY6+H,EAAgB,IAC5D,CACA,MAAO7gP,GACHqL,QAAQ6+E,MAAM,2DAA4DlqF,EAC9E,GEIgB+gP,CAAoBL,EAAe,OAE3C,CACJ,GACD,CAACN,KACJ,IAAAh/O,YAAU,KACNgH,SAAS4gB,KAAKpjB,MAAMmiC,SAAWq4M,EAAe,SAAW,QAAQ,GAClE,CAACA,KACJ,IAAAh/O,YAAU,KACN,IAAKg/O,EACD,OAEJ,MAAMY,EAAoBr/M,IACJ,WAAdA,EAAM70B,KAAoBszO,GAC1BK,GACJ,EAGJ,OADAr4O,SAAS5G,iBAAiB,UAAWw/O,GAC9B,KACH54O,SAAS1G,oBAAoB,UAAWs/O,EAAiB,CAC5D,GACF,CAACZ,IACI,kBAAoBH,GAAmB,CAAEC,eAAgBE,GAC7D,kBAAoB,MAAO,CAAEt5O,IAAKy5O,EAAa55O,UAAW,mBAAkBy5O,EAAe,qBAAuB,IAAMn2N,KAAMm2N,EAAe,SAAW,eAAgB,kBAAmB,iBACvL,kBAAoB,MAAO,CAAEz5O,UAAW,gFACpCy5O,EAAgB,kBAAoB,MAAO,CAAEz5O,UAAW,sCACpD,kBAAoB,MAAO,CAAEA,UAAW,6BAA8Buc,QAASu9N,EAAcx2N,KAAM,SAAU,aAAc,SAAWg3N,KAAe,kBAAoB,MAAO,CAAEt6O,UAAWsJ,EAAMtJ,UAAWuc,QAASs9N,EAAcv2N,KAAM,SAAU,aAAc,SACvQha,EAAMrJ,WAAY,EAE5Bq6O,GAAY,kBAAoB,MAAO,CAAEt+O,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACjH,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,0IAA2Im7C,KAAM,UACtL,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,cAClC,kBAAoB,OAAQ,CAAE2f,KAAM,OAAQn7C,EAAG,qBClD9C0+O,GAAajxO,IACtB,MAAMkxO,OAA4C,IAAtBlxO,EAAMmxO,cAAqD,IAAtBnxO,EAAMmxO,YACvE,OAAKnxO,EAAMyvO,SAGH,kBAAoB,MAAO,CAAE/4O,UAAW,aAC5C,kBAAoB,MAAO,CAAEA,UAAW,uBACpC,kBAAoB06O,GAAkB,CAAE3B,SAAUzvO,EAAMyvO,SAAU0B,YAAaD,EAAcxB,eAAgB1vO,EAAM0vO,kBACvH,kBAAoB,IAAK,KAAM1vO,EAAMia,OACpCja,EAAM07K,QAAU17K,EAAMqxO,SAAY,kBAAoB,KAAM,CAAE36O,UAAW,4BACtEsJ,EAAM07K,OACN,MACA17K,EAAMqxO,SACVrxO,EAAM08M,UAAY,kBAAoB,KAAM,CAAEhmN,UAAW,uBACrD,KACAsJ,EAAM08M,WAZH,IAYc,EAEhB00B,GAAoBpxO,GAAUA,EAAMmxO,YAAc,kBAAoBjB,GAAgB,CAAEx5O,UAAW,+BAC5G,kBAAoB84O,GAAmB,CAAEC,SAAUzvO,EAAMyvO,SAAUC,eAAgB1vO,EAAM0vO,kBAAqB,kBAAoBF,GAAmB,CAAEC,SAAUzvO,EAAMyvO,SAAUC,eAAgB1vO,EAAM0vO,iBACrM,GAAW,IAAO,kBAAoB,MAAO,CAAEh9O,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACvH,kBAAoB,OAAQ,CAAEr1B,EAAG,0aAA2am7C,KAAM,YACld,kBAAoB,OAAQ,CAAEn7C,EAAG,ibAAkbm7C,KAAM,aCnBhd4jM,GAAiBtxO,GAAW,kBAAoB,KAAa,KACtE,kBAAoB,MAAO,CAAEtJ,UAAW,kBAAiBsJ,EAAMuxO,iBAAmB,wBAA0B,KACxG,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE76O,UAAW,+BACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtCja,EAAM6pL,UAAY,kBAAoB,IAAK,CAAEl9I,KAAM3sC,EAAMu6C,SACrDv6C,EAAM6pL,SACN,IACAhmJ,OACR7jC,EAAMuxO,kBACF,kBAAoB,aAAgB,KAChC,kBAAoB,GAAQ,CAAE7oC,QAAS,CAAChsJ,IAAas1I,cAAe,OAAQiP,WAAY,CAChFC,OAAQ,sBACRC,OAAQ,wBACPnhM,EAAMglO,MAAM3iO,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoBwqN,GAAa,CAAE99M,IAAK1M,GAC3E,kBAAoB8gP,GAAW,CAAEvB,eAAgB1vO,EAAM0vO,eAAgByB,aAAa,KAAUl7M,QAClG,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEv/B,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,qBAAsBhE,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAaD,MAAO,8BAClH,kBAAoB,OAAQ,CAAEr1B,EAAG,8PAA+Pm7C,KAAM,kBAC1S,kBAAoB,MAAO,CAAEh3C,UAAW,qBAAsBhE,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAaD,MAAO,8BAClH,kBAAoB,OAAQ,CAAEr1B,EAAG,+PAAgQm7C,KAAM,qBAC3T1tC,EAAMuxO,kBAAoB,kBAAoB,WAAW,KAAMvxO,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GACzH,kBAAoB8gP,GAAW,CAAEvB,eAAgB1vO,EAAM0vO,kBAAmBzK,WACpFphM,GAAQ,IAAO,kBAAoB,MAAO,CAAEnxC,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,UAAW9lB,MAAO,8BACvH,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,qBC7B9Ci/O,GAA+BxxO,IACxC,MAAOmxC,EAAMC,IAAW,IAAAlgD,UAASmgD,EAAc,cAAd,YAC1BR,EAAaoQ,IAAkB,IAAA/vD,UAAS,GAEzCogD,EAAgBH,IAClBC,EAAQD,EAAK,GAEjB,IAAAhgD,YAAU,KACNkgD,EAAc,cAAd,UAAwBC,GACjB,KACHD,EAAc,cAAd,YAA0BC,EAAa,IAE5C,CAACH,IACJ,MAAMsgM,EAAgBzxO,EAAMglO,MAAM1lO,MAVb,EAUmBuxC,EAVnB,GAUgDA,EAAc,IAC7E6gM,EAAc1xO,EAAMglO,MAAMz0O,OAC1ByhD,EAAapgD,KAAK+S,KAAK+sO,EAZR,GAsBftO,EAAmB,WAAa,MAChCC,EAA2B,iBAAkB,KAC/CD,EAAiBjwO,SAASmwO,eAAe,CAAElqL,SAAU,SACjDgqL,EAAiBjwO,SACjB/B,OAAOmyO,SAAS,GAAI,IACxB,GACD,IACGv5B,EAAU,YAAa,GAS7B,OARA,eAAgB,KACRA,EAAQ72M,QACRkwO,IAGAr5B,EAAQ72M,SAAU,CACtB,GACD,CAAC09C,IACI,kBAAoB,KAAa,KACrC7wC,EAAMsrO,qBACNtrO,EAAMurO,eACN,kBAAoB,MAAO,CAAE10O,IAAKusO,EAAkB1sO,UAAW,+BAC3D,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtCja,EAAMrJ,SACN,kBAAoB,WAAW,KAAM86O,EAAcpvO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GACjG,kBAAoB8gP,GAAW,CAAEvB,eAAgB1vO,EAAM0vO,kBAAmBzK,QAC9E,kBAAoB,MAAO,CAAEvuO,UAAW,wBACpC,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAaA,EAAamB,WAAYA,EAAYiP,eAAgBA,EAAgBhP,cAAwB,UAATd,KAC/I,kBAAoB,IAAK,CAAEz6C,UAAW,wCAA0C,cApCzE,MACf,IAAIi7O,EAAc,GAMlB,OAJIA,EADY,IAAhB9gM,EACkB,GAAG6gM,EAhBJ,IAgBgDA,IAC1D7gM,EAAc,IAAOmB,EACN,GAlBL,GAkBSA,EAAa,GAAoB,KAAK0/L,IACxC,GAnBP,EAmBU,EAA+B,KAnBzC,GAmB+C7gM,EAAc,KACvE8gM,CAAW,EA6BoFC,SAAmB5xO,EAAMglO,MAAMz0O,mBAAoB,EClD3JshP,GAAY7xO,IACd,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBAAmB,4BAChD6/I,EAAQs5C,GAAa,eACtBG,EAAoB,iBAAmB91O,GAAM21O,EAAU31O,IAAI,IAMjE,OALA,eAAgB,KACRq8L,GAAUrtL,EAAM8xO,WAChBzkD,EAAO1rL,SACX,GACD,CAAC0rL,EAAQrtL,EAAM8xO,YACV,kBAAoB,MAAO,CAAEp7O,UAAW,8BAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,GAChD,kBAAoB,MAAO,CAAEjgD,UAAW,sBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,kEACpC,kBAAoB,MAAO,CAAEA,UAAW,+DACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,KAAM,CAAEvjB,UAAW,8BAAgCsJ,EAAM46C,eACrF,kBAAoB,GAAQ,CAAEi8J,SAAUiwB,EAAmBp+B,QAAS,CAAChsJ,GAAYgzJ,IAAaze,aAAc,GAAIS,SAAS,EAAMM,cAAe,OAAQiP,WAAY,CAC1JC,OAAQ,sBACRC,OAAQ,wBACPnhM,EAAMusC,QAAQlqC,KAAK4zB,GAAS,kBAAoB0kL,GAAa,CAAE99M,IAAK,oCAAoCo5B,EAAKo0M,gBAClH,kBAAoBqC,GAAoB,IAAKz2M,QACjDj2B,EAAM0qL,YAAc,kBAAoB,MAAO,CAAEh0L,UAAW,mEACxD,kBAAoB,KAAU,CAAEw3C,OAAQluC,EAAM8iN,cAAgB,mBAAoBn2K,KAAM3sC,EAAMyqL,WAAazqL,EAAM0qL,iBAAkB,EAElJqnD,GAAkC/xO,GAAW,kBAAoB,aAAgB,KAC1F,kBAAoB,MAAO,CAAEtJ,UAAW,qCACpC,kBAAoBm7O,GAAU,IAAK7xO,EAAO8xO,WAAW,KACzD,kBAAoB,MAAO,CAAEp7O,UAAW,cACpC,kBAAoBm7O,GAAU,IAAK7xO,EAAO8xO,WAAW,MClCvDE,GAAmBC,GAAY,mCAAkCA,EAAU,WAAa,cACxFC,GAAoB,CAACD,EAASE,EAAYlN,IAAU,kBAAoB,MAAO,CAAEvuO,UAAW,uFAAwFu7O,GAAWE,EAAc,cAAgB,MAAMF,EAAU,GAAK,qEACpP,kBAAoB,MAAO,CAAEv7O,UAAW,wGAAwGu7O,GAAWE,EAAc,cAAgB,KACrL,kBAAoB,KAAM,KACtB,IACAlN,EAAKhrN,OACT,kBAAoB,IAAK,KAAMgrN,EAAKrqL,eACtCw3L,GAAa,EAAGnN,OAAMgN,UAASE,gBAAkB,kBAAoB,aAAgB,KACvF,kBAAoB,MAAO,CAAEz7O,UAAW,sEAAsEs7O,GAAgBC,KAAYt8O,MAAO,CACzI4pN,gBAAiB,QAAQ0lB,EAAKoN,aAAa1kO,QAAQ,IAAK,IACxDyxM,eAAgB,UAChBE,mBAAoB,SACpBD,iBAAkB,cACjB6yB,GAAkBD,EAASE,EAAYlN,IAChD,kBAAoB,MAAO,CAAEvuO,UAAW,qEAAqEs7O,GAAgBC,KAAYt8O,MAAO,CACxI4pN,gBAAiB,QAAQ0lB,EAAKqN,cAAc3kO,QAAQ,IAAK,IACzDyxM,eAAgB,QAChBE,mBAAoB,SACpBD,iBAAkB,cACjB6yB,GAAkBD,EAASE,EAAYlN,IAChD,kBAAoB,MAAO,CAAEvuO,UAAW,uEAAuEs7O,GAAgBC,KAAYt8O,MAAO,CAC1I4pN,gBAAiB,QAAQ0lB,EAAKsN,aAAa5kO,QAAQ,IAAK,IACxDyxM,eAAgB,QAChBE,mBAAoB,SACpBD,iBAAkB,cACjB6yB,GAAkBD,EAASE,EAAYlN,KACvCuN,GAA4B,EAAGv4N,QAAO+qN,QAAOx3L,sBACtD,MAAM,QAAEmJ,EAAO,UAAEoS,IAAc,SAAUvb,GACzC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEhhD,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,iCACjE,kBAAoB,MAAO,CAAEA,UAAW,qEACpC,kBAAoB,KAAM,KAAMujB,IACpC,kBAAoB,MAAO,CAAEvjB,UAAW,yFACpCsuO,EAAM,IAAM,kBAAoB,MAAO,CAAEtuO,UAAW,8DAChD,kBAAoB07O,GAAY,CAAEnN,KAAMD,EAAM,GAAIiN,SAAS,EAAME,YAAY,KACjFnN,EAAM,IAAM,kBAAoB,MAAO,CAAEtuO,UAAW,kGAChD,kBAAoB07O,GAAY,CAAEnN,KAAMD,EAAM,GAAIiN,SAAS,EAAOE,YAAY,IAC9E,kBAAoBC,GAAY,CAAEnN,KAAMD,EAAM,GAAIiN,SAAS,EAAOE,YAAY,KAClFnN,EAAM,IAAM,kBAAoB,MAAO,CAAEtuO,UAAW,8DAChD,kBAAoB07O,GAAY,CAAEnN,KAAMD,EAAM,GAAIiN,SAAS,EAAME,YAAY,QAAa,ECvCrGM,GAAyB,EAAGzN,QAAO/qN,QAAOy4N,YAAWv+L,WAAUc,cAAaC,cAAai3K,aAAYwmB,aAAYC,kBAAiB7zB,uBAC3I,MAAMC,GAAiB,SAAiBD,GAaxC,OAAQ,kBAAoB,MAAO,CAAEroN,UAAW,mEAC5C,kBAAoB,KAAa,CAAE82C,gBAAiB,QAChD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,4CACtB,OAAdg8O,GAAsB,kBAAoB,KAAM,CAAEh8O,UAAW,gDAAkDujB,GACjG,OAAdy4N,GAAsB,kBAAoB,KAAM,CAAEh8O,UAAW,mCAAqCujB,GAClGk6B,GAAY,kBAAoB,KAAM,KAAMA,IAChD,kBAAoB,MAAO,CAAEz9C,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,uCAAyCsuO,EAAM3iO,KAAI,CAACpR,EAAG4L,IApB5F,EAACooO,EAAMpoO,IAAS,kBAAoB,IAAK,CAAE8vC,KAAMs4L,EAAKnpL,KAAMj/C,IAAKA,EAAKnG,UAAW,uCAChG,kBAAoB,MAAO,CAAEA,UAAW,oDAAqDf,MAAO,CAC5F,uCAAwC,OAAOsvO,EAAK4N,YACpD,6CAA8C,OAAO5N,EAAK6N,mBAE9D,kBAAoB,MAAO,CAAEp8O,UAAW,qDACpC,kBAAoB,MAAO,CAAEA,UAAW,mEACpC,kBAAoB,KAAK,CAAE4C,IAAK2rO,EAAKpuH,IAAKr8D,IAAKyqL,EAAKzqL,QAC5D,kBAAoB,MAAO,CAAE9jD,UAAW,qEACpC,kBAAoB,KAAM,KACtB,IACAuuO,EAAKhrN,UASkG84N,CAAW9hP,EAAG4L,OACzHo4C,GAAe,kBAAoB,MAAO,CAAEv+C,UAAW,wDACnD,kBAAoB,MAAO,CAAEA,UAAW,oDACpC,kBAAoB,KAAM,KAAMu+C,IACpC,kBAAoB,MAAO,CAAEv+C,UAAW,qDACpC,kBAAoB,IAAK,CAAEi2C,KAAMw/K,EAAYj2N,OAAQ8oN,GACjD,kBAAoB,OAAQ,KACxB,kBAAoB,KAAK,CAAE1lN,IAAKq5O,EAAYn4L,IAAK,UACrDtF,OAAkB,EC/BvC,IAAI89L,IACX,SAAWA,GACPA,EAAuC,aAAI,cAC9C,CAFD,CAEGA,KAA6BA,GAA2B,CAAC,IAC5D,MAAMC,GAAwB,CAC1B,CAACD,GAAyBE,cCPgBlzO,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,qCAC7F,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoB,IAAK,KAAMsJ,EAAMmzO,aACrC,kBAAoB,MAAO,CAAE75O,IAAK0G,EAAMitN,gBAAiBzyK,IAAKx6C,EAAMozO,mBACxE,kBAAoB,MAAO,CAAE18O,UAAW,6CACpC,kBAAoB,IAAK,KAAMsJ,EAAMqzO,YACrCrzO,EAAMszO,oBAAoBjxO,KAAI,EAAGs4C,WAAUJ,UAAS4tI,YAAY3qJ,IAAW,kBAAoB,IAAK,CAAE3gC,IAAK2gC,EAAOmP,KAAM4N,EAASoxF,IAAK,YAClI,kBAAoB,MAAO,CAAEryI,IAAKqhD,EAAUH,IAAK2tI,UDEhDorD,GAAqBvzO,IAC9B,MAAMwzO,EAAuBxzO,EAAMyzO,YAAcR,GAAsB,qBAAkB11O,EACzF,OAAQ,kBAAoB,UAAW,CAAE7G,UAAW,uBAChD,kBAAoB,OAAQ,CAAEA,UAAW,+BAAiCsJ,EAAMy7E,QAChF,kBAAoB,KAAM,KAAMz7E,EAAMia,OACtC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ90C,EAAMitC,QACpE,kBAAoB,KAAK,CAAEv2C,UAAW,6BAA8B4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,WACpGqrD,GAAwBxzO,EAAM0zO,mBAAmB,IAAM,kBAAoBF,EAAsB,IAAKxzO,EAAM0zO,iBAAiB,KAAO,EEZtI,GAAmBjyB,GAA8B,YAAfA,EAA2B,iBAAmB,mBACzEkyB,GAAwB,EAAG15N,QAAO+qN,QAAOx3L,kBAAiBquK,cAAasQ,aAAY1K,aAAa,UAAWQ,wBAA0B,kBAAoB,KAAa,CAAEz0K,gBAAiBA,GAClM,kBAAoB,MAAO,CAAE92C,UAAW,4BACpC,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,KAAM,KAAMujB,IACpC,kBAAoB,GAAQ,CAAEvjB,UAAW,cAAes7L,cAAe,QAAUgzC,EAAM3iO,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoBwqN,GAAa,CAAE99M,IAAK,cAAc1M,KAC3J,kBAAoBojP,GAAmB,CAAE93J,OAAQxlD,EAAKwlD,OAAQxhE,MAAOgc,EAAKhc,MAAOgzB,KAAMhX,EAAKgX,KAAM0N,SAAU1kB,EAAK0kB,SAAUwtI,SAAUlyJ,EAAKkyJ,SAAUsrD,YAAax9M,EAAKw9M,YAAaC,iBAAkBz9M,EAAKy9M,uBAC9M73B,GAAe,kBAAoB,MAAO,CAAEnlN,UAAW,8CACnD,kBAAoBu3C,GAAA,EAAU,CAAEE,QAAS,mCAAoCD,OAAQ,GAAgBuzK,GAAa90K,KAAMw/K,EAAY99K,aAAc4zK,GAAsBpG,MCRvK+3B,GAA0B,EAAGC,WAAUC,aAAYC,kBAAiBh2B,cAC7E,MAAM,QAAE3gK,EAAO,SAAEC,EAAQ,QAAEF,IAAY,YAChC62L,EAAgBC,IAAqB,IAAA/iP,UAAS,GAIrD,OAHA,IAAAC,YAAU,KACI8iP,EAAV92L,EAA4B,GAAOE,EAA6B,GAAOD,EAA4B,GAAwB,GAAK,GACjI,CAACD,EAASE,EAAUD,IACf,kBAAoB,MAAO,CAAE1mD,UAAW,+BAC5C,kBAAoBw5O,GAAgB,CAAEx5O,UAAW,iDAC7C,kBAAoB84O,GAAmB,CAAEC,SAAUoE,EAAUnE,eAAgBmE,IAC7E,kBAAoB,MAAO,CAAEn9O,UAAW,+CACpC,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoB,KAAK,CAAE4C,IAAKykN,EAASvjK,IAAK,eAC9C,kBAAoB,IAAK,KAAMu5L,IACnC,kBAAoB,MAAO,CAAEr9O,UAAW,4CACpC,kBAAoB,KAAM,KAAMo9O,EAAWvjP,OAASyjP,EAAiB,GAAIF,EAAWl4K,OAAO,EAAGo4K,QAAwBF,MAAgB,ECZ7II,GAAsB,EAAGlP,QAAOx3L,kBAAiB0G,YAAWigM,cAAaC,eAAcnyB,yBAChG,MAAM,QAAEtrK,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,MAAO,CAAE73C,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAW,iEACjF,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,EAASjgD,UAAW,gDACpE,kBAAoB,MAAO,CAAEA,UAAW,wEACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,qCACpCw9C,GAAa,kBAAoB,MAAO,CAAEx9C,UAAW,qCACjD,kBAAoB,KAAM,KAAMw9C,IACpC,kBAAoB,MAAO,CAAEx9C,UAAW,yCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,GAAQ,CAAEuqM,WAAY,CAClCC,OAAQ,uBACRC,OAAQ,wBACTuH,QAAS,CAACkD,IAAa1rM,MAAM,EAAO2rM,YAAY,EAAM5Z,YAAa,CAClE,IAAO,CACHD,cAAe,IACff,aAAc,IAElB,IAAO,CACHe,cAAe,EACff,aAAc,IAElB,KAAQ,CACJe,cAAe,IACff,aAAc,MAEjB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoBwqN,GAAa,CAAE99M,IAAK,SAAS1M,KAAO,kBAAoByjP,GAAyB,IAAK3O,YAC3JkP,GAAe,kBAAoB,KAAU,CAAExnM,KAAMwnM,EAAajmM,OAAQ,mBAAoBG,aAAc4zK,GAAsBmyB,GAAgB,eAAgB,ECjCrKC,GAAoBr0O,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,uBAChF,kBAAoB,KAAK,CAAEA,UAAW,2BAA4B4C,IAAK0G,EAAM0nB,KAAM8yB,IAAKx6C,EAAMw6C,MAC9F,kBAAoB,KAAM,KAAMx6C,EAAMia,OACtC,kBAAoB,MAAO,CAAEvjB,UAAW,+BACpC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,IAAK,CAAEA,UAAW,oCAAsCsJ,EAAMs0O,UAClF,kBAAoB,IAAK,CAAE59O,UAAqC,yBAAvBsJ,EAAMu0O,aAA0C,2CAA6C,4CAA+C5nM,KAAM3sC,EAAMw0O,cAAet+O,OAAQ,SAAUy1I,IAAK,uBACnO,kBAAoB,IAAK,CAAEj1I,UAAW,kCAAoCsJ,EAAMy0O,UACxF,kBAAoB,MAAO,CAAE/9O,UAAW,2CACpC,kBAAoB,IAAK,CAAEA,UAAW,oCAAsCsJ,EAAM00O,WAClF,kBAAoB,IAAK,CAAEh+O,UAAqC,yBAAvBsJ,EAAM20O,aAA0C,2CAA6C,4CAA+ChoM,KAAM3sC,EAAMw0O,cAAet+O,OAAQ,SAAUy1I,IAAK,uBACnO,kBAAoB,IAAK,CAAEj1I,UAAW,mCAAqCsJ,EAAM40O,YC6BjG,SAASC,GAAO5qJ,GAAO,IAAIrqF,EAAMqqF,EAAI15F,OAAQ,OAASqP,GAAO,GAAKqqF,EAAIrqF,GAAO,CAAK,CAIlF,MA2DMk1O,GACJ,IAAI9nL,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEpE+nL,GACJ,IAAI/nL,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAE7EgoL,GACJ,IAAIhoL,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhDioL,GACJ,IAAIjoL,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxDkoL,GAAgB,IAAI52O,MAAM,KAChCu2O,GAAOK,IAOP,MAAMC,GAAgB,IAAI72O,MAAM82O,IAChCP,GAAOM,IAKP,MAAME,GAAgB,IAAI/2O,MAjBJ,KAkBtBu2O,GAAOQ,IAMP,MAAMC,GAAgB,IAAIh3O,MAAMi3O,KAChCV,GAAOS,IAGP,MAAME,GAAgB,IAAIl3O,MAhGF,IAiGxBu2O,GAAOW,IAGP,MAAMC,GAAgB,IAAIn3O,MA3FF,IAgGxB,SAASo3O,GAAeC,EAAaC,EAAYC,EAAY5vG,EAAO6vG,GAElErmP,KAAKkmP,YAAeA,EACpBlmP,KAAKmmP,WAAeA,EACpBnmP,KAAKomP,WAAeA,EACpBpmP,KAAKw2I,MAAeA,EACpBx2I,KAAKqmP,WAAeA,EAGpBrmP,KAAKsmP,UAAeJ,GAAeA,EAAYplP,MACjD,CAGA,IAAIylP,GACAC,GACAC,GAGJ,SAASC,GAASC,EAAUC,GAC1B5mP,KAAK2mP,SAAWA,EAChB3mP,KAAK6mP,SAAW,EAChB7mP,KAAK4mP,UAAYA,CACnB,CA1BAxB,GAAOY,IA8BP,MAAMc,GAAUj0G,GAEPA,EAAO,IAAM+yG,GAAW/yG,GAAQ+yG,GAAW,KAAO/yG,IAAS,IAQ9Dk0G,GAAY,CAACxlP,EAAG0C,KAGpB1C,EAAEylP,YAAYzlP,EAAE6qC,WAAmB,IAAN,EAC7B7qC,EAAEylP,YAAYzlP,EAAE6qC,WAAcnoC,IAAM,EAAK,GAAI,EAQzCgjP,GAAY,CAAC1lP,EAAGlB,EAAOS,KAEvBS,EAAE2lP,SAtIc,GAsISpmP,GAC3BS,EAAE4lP,QAAW9mP,GAASkB,EAAE2lP,SAAY,MACpCH,GAAUxlP,EAAGA,EAAE4lP,QACf5lP,EAAE4lP,OAAS9mP,GAzIO,GAyIckB,EAAE2lP,SAClC3lP,EAAE2lP,UAAYpmP,EA1II,KA4IlBS,EAAE4lP,QAAW9mP,GAASkB,EAAE2lP,SAAY,MACpC3lP,EAAE2lP,UAAYpmP,EAChB,EAIIsmP,GAAY,CAAC7lP,EAAGC,EAAG6lP,KAEvBJ,GAAU1lP,EAAG8lP,EAAS,EAAJ7lP,GAAiB6lP,EAAS,EAAJ7lP,EAAQ,GAAW,EASvD8lP,GAAa,CAACpqN,EAAM/sB,KAExB,IAAIpC,EAAM,EACV,GACEA,GAAc,EAAPmvB,EACPA,KAAU,EACVnvB,IAAQ,UACCoC,EAAM,GACjB,OAAOpC,IAAQ,CAAC,EAiIZw5O,GAAY,CAACF,EAAMR,EAAUW,KAKjC,MAAMC,EAAY,IAAI54O,MAAM64O,IAC5B,IACIC,EACAnnP,EAFA08B,EAAO,EAOX,IAAKyqN,EAAO,EAAGA,GAtTO,GAsTaA,IACjCzqN,EAAQA,EAAOsqN,EAASG,EAAO,IAAO,EACtCF,EAAUE,GAAQzqN,EASpB,IAAK18B,EAAI,EAAIA,GAAKqmP,EAAUrmP,IAAK,CAC/B,IAAI2P,EAAMk3O,EAAS,EAAJ7mP,EAAQ,GACX,IAAR2P,IAEJk3O,EAAS,EAAJ7mP,GAAkB8mP,GAAWG,EAAUt3O,KAAQA,GAItD,GAgHIy3O,GAAcrmP,IAElB,IAAIf,EAGJ,IAAKA,EAAI,EAAGA,EA1cUqnP,IA0cMrnP,IAAOe,EAAEumP,UAAc,EAAJtnP,GAAkB,EACjE,IAAKA,EAAI,EAAGA,EAxcU,GAwcMA,IAAOe,EAAEwmP,UAAc,EAAJvnP,GAAkB,EACjE,IAAKA,EAAI,EAAGA,EAtcU,GAscMA,IAAOe,EAAEymP,QAAY,EAAJxnP,GAAkB,EAE/De,EAAEumP,UAAUG,KAA0B,EACtC1mP,EAAE2mP,QAAU3mP,EAAE4mP,WAAa,EAC3B5mP,EAAE6mP,SAAW7mP,EAAEm9L,QAAU,CAAC,EAOtB2pD,GAAa9mP,IAEbA,EAAE2lP,SAAW,EACfH,GAAUxlP,EAAGA,EAAE4lP,QACN5lP,EAAE2lP,SAAW,IAEtB3lP,EAAEylP,YAAYzlP,EAAE6qC,WAAa7qC,EAAE4lP,QAEjC5lP,EAAE4lP,OAAS,EACX5lP,EAAE2lP,SAAW,CAAC,EAOVoB,GAAU,CAACjB,EAAM7mP,EAAGmE,EAAGq5D,KAE3B,MAAMuqL,EAAU,EAAJ/nP,EACNgoP,EAAU,EAAJ7jP,EACZ,OAAQ0iP,EAAKkB,GAAgBlB,EAAKmB,IAC1BnB,EAAKkB,KAAkBlB,EAAKmB,IAAiBxqL,EAAMx9D,IAAMw9D,EAAMr5D,EAAI,EASvE8jP,GAAa,CAAClnP,EAAG8lP,EAAMhiP,KAK3B,MAAMtC,EAAIxB,EAAEmnP,KAAKrjP,GACjB,IAAIG,EAAIH,GAAK,EACb,KAAOG,GAAKjE,EAAEonP,WAERnjP,EAAIjE,EAAEonP,UACRL,GAAQjB,EAAM9lP,EAAEmnP,KAAKljP,EAAI,GAAIjE,EAAEmnP,KAAKljP,GAAIjE,EAAEy8D,QAC1Cx4D,KAGE8iP,GAAQjB,EAAMtkP,EAAGxB,EAAEmnP,KAAKljP,GAAIjE,EAAEy8D,SAGlCz8D,EAAEmnP,KAAKrjP,GAAK9D,EAAEmnP,KAAKljP,GACnBH,EAAIG,EAGJA,IAAM,EAERjE,EAAEmnP,KAAKrjP,GAAKtC,CAAC,EAUT6lP,GAAiB,CAACrnP,EAAGsnP,EAAOC,KAKhC,IAAIj2G,EACA3+D,EAEAh3C,EACA83H,EAFAzvB,EAAK,EAIT,GAAmB,IAAfhkI,EAAE6mP,SACJ,GACEv1G,EAAyC,IAAlCtxI,EAAEylP,YAAYzlP,EAAEwnP,QAAUxjH,KACjCsN,IAA2C,IAAlCtxI,EAAEylP,YAAYzlP,EAAEwnP,QAAUxjH,OAAiB,EACpDrxD,EAAK3yE,EAAEylP,YAAYzlP,EAAEwnP,QAAUxjH,KAClB,IAATsN,EACFu0G,GAAU7lP,EAAG2yE,EAAI20K,IAIjB3rN,EAAO2oN,GAAa3xK,GACpBkzK,GAAU7lP,EAAG27B,EA/iBG,IA+iBiB,EAAG2rN,GACpC7zF,EAAQqwF,GAAYnoN,GACN,IAAV83H,IACF9gF,GAAM6xK,GAAY7oN,GAClB+pN,GAAU1lP,EAAG2yE,EAAI8gF,IAEnBniB,IACA31G,EAAO4pN,GAAOj0G,GAGdu0G,GAAU7lP,EAAG27B,EAAM4rN,GACnB9zF,EAAQswF,GAAYpoN,GACN,IAAV83H,IACFniB,GAAQmzG,GAAU9oN,GAClB+pN,GAAU1lP,EAAGsxI,EAAMmiB,WAOhBzvB,EAAKhkI,EAAE6mP,UAGlBhB,GAAU7lP,EA1iBQ,IA0iBMsnP,EAAM,EAY1BG,GAAa,CAACznP,EAAG+7L,KAIrB,MAAM+pD,EAAW/pD,EAAKqpD,SAChBsC,EAAW3rD,EAAKspD,UAAUV,YAC1BI,EAAYhpD,EAAKspD,UAAUN,UAC3B9vG,EAAW8mD,EAAKspD,UAAUpwG,MAChC,IAAIh2I,EAAGmE,EAEHmgC,EADA+hN,GAAY,EAUhB,IAHAtlP,EAAEonP,SAAW,EACbpnP,EAAE2nP,SAxlBoB,IA0lBjB1oP,EAAI,EAAGA,EAAIg2I,EAAOh2I,IACQ,IAAzB6mP,EAAS,EAAJ7mP,IACPe,EAAEmnP,OAAOnnP,EAAEonP,UAAY9B,EAAWrmP,EAClCe,EAAEy8D,MAAMx9D,GAAK,GAGb6mP,EAAS,EAAJ7mP,EAAQ,GAAa,EAS9B,KAAOe,EAAEonP,SAAW,GAClB7jN,EAAOvjC,EAAEmnP,OAAOnnP,EAAEonP,UAAa9B,EAAW,IAAMA,EAAW,EAC3DQ,EAAY,EAAPviN,GAAqB,EAC1BvjC,EAAEy8D,MAAMl5B,GAAQ,EAChBvjC,EAAE2mP,UAEE5B,IACF/kP,EAAE4mP,YAAcc,EAAa,EAAPnkN,EAAW,IASrC,IALAw4J,EAAKupD,SAAWA,EAKXrmP,EAAKe,EAAEonP,UAAY,EAAcnoP,GAAK,EAAGA,IAAOioP,GAAWlnP,EAAG8lP,EAAM7mP,GAKzEskC,EAAO0xG,EACP,GAGEh2I,EAAIe,EAAEmnP,KAAK,GACXnnP,EAAEmnP,KAAK,GAAiBnnP,EAAEmnP,KAAKnnP,EAAEonP,YACjCF,GAAWlnP,EAAG8lP,EAAM,GAGpB1iP,EAAIpD,EAAEmnP,KAAK,GAEXnnP,EAAEmnP,OAAOnnP,EAAE2nP,UAAY1oP,EACvBe,EAAEmnP,OAAOnnP,EAAE2nP,UAAYvkP,EAGvB0iP,EAAY,EAAPviN,GAAqBuiN,EAAS,EAAJ7mP,GAAkB6mP,EAAS,EAAJ1iP,GACtDpD,EAAEy8D,MAAMl5B,IAASvjC,EAAEy8D,MAAMx9D,IAAMe,EAAEy8D,MAAMr5D,GAAKpD,EAAEy8D,MAAMx9D,GAAKe,EAAEy8D,MAAMr5D,IAAM,EACvE0iP,EAAS,EAAJ7mP,EAAQ,GAAa6mP,EAAS,EAAJ1iP,EAAQ,GAAamgC,EAGpDvjC,EAAEmnP,KAAK,GAAiB5jN,IACxB2jN,GAAWlnP,EAAG8lP,EAAM,SAEb9lP,EAAEonP,UAAY,GAEvBpnP,EAAEmnP,OAAOnnP,EAAE2nP,UAAY3nP,EAAEmnP,KAAK,GA5cb,EAACnnP,EAAG+7L,KAIrB,MAAM+pD,EAAkB/pD,EAAKqpD,SACvBE,EAAkBvpD,EAAKupD,SACvBoC,EAAkB3rD,EAAKspD,UAAUV,YACjCI,EAAkBhpD,EAAKspD,UAAUN,UACjCtxF,EAAkBsoC,EAAKspD,UAAUT,WACjCt5C,EAAkBvP,EAAKspD,UAAUR,WACjCC,EAAkB/oD,EAAKspD,UAAUP,WACvC,IAAIrjP,EACAxC,EAAGmE,EACHgjP,EACAwB,EACAxmP,EACA0lC,EAAW,EAEf,IAAKs/M,EAAO,EAAGA,GA1NO,GA0NaA,IACjCpmP,EAAEimP,SAASG,GAAQ,EAQrB,IAFAN,EAA0B,EAArB9lP,EAAEmnP,KAAKnnP,EAAE2nP,UAAgB,GAAa,EAEtClmP,EAAIzB,EAAE2nP,SAAW,EAAGlmP,EAtOH,IAsOoBA,IACxCxC,EAAIe,EAAEmnP,KAAK1lP,GACX2kP,EAAON,EAA+B,EAA1BA,EAAS,EAAJ7mP,EAAQ,GAAiB,GAAa,EACnDmnP,EAAOtB,IACTsB,EAAOtB,EACPh+M,KAEFg/M,EAAS,EAAJ7mP,EAAQ,GAAamnP,EAGtBnnP,EAAIqmP,IAERtlP,EAAEimP,SAASG,KACXwB,EAAQ,EACJ3oP,GAAKqsM,IACPs8C,EAAQn0F,EAAMx0J,EAAIqsM,IAEpBlqM,EAAI0kP,EAAS,EAAJ7mP,GACTe,EAAE2mP,SAAWvlP,GAAKglP,EAAOwB,GACrB7C,IACF/kP,EAAE4mP,YAAcxlP,GAAKsmP,EAAU,EAAJzoP,EAAQ,GAAa2oP,KAGpD,GAAiB,IAAb9gN,EAAJ,CAMA,EAAG,CAED,IADAs/M,EAAOtB,EAAa,EACQ,IAArB9kP,EAAEimP,SAASG,IAAeA,IACjCpmP,EAAEimP,SAASG,KACXpmP,EAAEimP,SAASG,EAAO,IAAM,EACxBpmP,EAAEimP,SAASnB,KAIXh+M,GAAY,CACd,OAASA,EAAW,GAOpB,IAAKs/M,EAAOtB,EAAqB,IAATsB,EAAYA,IAElC,IADAnnP,EAAIe,EAAEimP,SAASG,GACF,IAANnnP,GACLmE,EAAIpD,EAAEmnP,OAAO1lP,GACT2B,EAAIkiP,IACJQ,EAAS,EAAJ1iP,EAAQ,KAAegjP,IAE9BpmP,EAAE2mP,UAAYP,EAAON,EAAS,EAAJ1iP,EAAQ,IAAc0iP,EAAS,EAAJ1iP,GACrD0iP,EAAS,EAAJ1iP,EAAQ,GAAagjP,GAE5BnnP,IAjC0B,CAmC9B,EA4XA4oP,CAAW7nP,EAAG+7L,GAGdiqD,GAAUF,EAAMR,EAAUtlP,EAAEimP,SAAS,EAQjC6B,GAAY,CAAC9nP,EAAG8lP,EAAMR,KAK1B,IAAIrmP,EAEA8oP,EADAC,GAAW,EAGXC,EAAUnC,EAAK,GAEf1xK,EAAQ,EACR8zK,EAAY,EACZC,EAAY,EAQhB,IANgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAEdrC,EAAsB,GAAhBR,EAAW,GAAS,GAAa,MAElCrmP,EAAI,EAAGA,GAAKqmP,EAAUrmP,IACzB8oP,EAASE,EACTA,EAAUnC,EAAe,GAAT7mP,EAAI,GAAS,KAEvBm1E,EAAQ8zK,GAAaH,IAAWE,IAG3B7zK,EAAQ+zK,EACjBnoP,EAAEymP,QAAiB,EAATsB,IAAwB3zK,EAEd,IAAX2zK,GAELA,IAAWC,GAAWhoP,EAAEymP,QAAiB,EAATsB,KACpC/nP,EAAEymP,QAAQ2B,OAEDh0K,GAAS,GAClBp0E,EAAEymP,QAAQ4B,MAGVroP,EAAEymP,QAAQ6B,MAGZl0K,EAAQ,EACR4zK,EAAUD,EAEM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,GAEhB,EAQII,GAAY,CAACvoP,EAAG8lP,EAAMR,KAK1B,IAAIrmP,EAEA8oP,EADAC,GAAW,EAGXC,EAAUnC,EAAK,GAEf1xK,EAAQ,EACR8zK,EAAY,EACZC,EAAY,EAQhB,IALgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAGTlpP,EAAI,EAAGA,GAAKqmP,EAAUrmP,IAIzB,GAHA8oP,EAASE,EACTA,EAAUnC,EAAe,GAAT7mP,EAAI,GAAS,OAEvBm1E,EAAQ8zK,GAAaH,IAAWE,GAAtC,CAGO,GAAI7zK,EAAQ+zK,EACjB,GAAKtC,GAAU7lP,EAAG+nP,EAAQ/nP,EAAEymP,eAA+B,KAAVryK,QAE7B,IAAX2zK,GACLA,IAAWC,IACbnC,GAAU7lP,EAAG+nP,EAAQ/nP,EAAEymP,SACvBryK,KAGFyxK,GAAU7lP,EA1vBI,GA0vBQA,EAAEymP,SACxBf,GAAU1lP,EAAGo0E,EAAQ,EAAG,IAEfA,GAAS,IAClByxK,GAAU7lP,EA3vBI,GA2vBUA,EAAEymP,SAC1Bf,GAAU1lP,EAAGo0E,EAAQ,EAAG,KAGxByxK,GAAU7lP,EA5vBI,GA4vBYA,EAAEymP,SAC5Bf,GAAU1lP,EAAGo0E,EAAQ,GAAI,IAG3BA,EAAQ,EACR4zK,EAAUD,EACM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,EAdd,CAgBF,EAsHF,IAAIK,IAAmB,EAKvB,MAuBMC,GAAqB,CAACzoP,EAAGi5F,EAAKyvJ,EAAYpxI,KAM9CouI,GAAU1lP,EAAG,GAAuBs3G,EAAO,EAAI,GAAI,GACnDwvI,GAAU9mP,GACVwlP,GAAUxlP,EAAG0oP,GACblD,GAAUxlP,GAAI0oP,GACVA,GACF1oP,EAAEylP,YAAYpgP,IAAIrF,EAAEI,OAAO6vE,SAASgpB,EAAKA,EAAMyvJ,GAAa1oP,EAAE6qC,SAEhE7qC,EAAE6qC,SAAW69M,CAAU,EAoIzB,IAMIC,GAAQ,CACXC,SA/KmB5oP,IAGbwoP,KAnlBgB,MAErB,IAAIvpP,EACAmnP,EACA7mP,EACAo8B,EACA21G,EACJ,MAAM20G,EAAW,IAAI34O,MAAM64O,IAiB3B,IADA5mP,EAAS,EACJo8B,EAAO,EAAGA,EAAOktN,GAAoBltN,IAExC,IADA6oN,GAAY7oN,GAAQp8B,EACfN,EAAI,EAAGA,EAAK,GAAK6kP,GAAYnoN,GAAQ18B,IACxCqlP,GAAa/kP,KAAYo8B,EAY7B,IAJA2oN,GAAa/kP,EAAS,GAAKo8B,EAG3B21G,EAAO,EACF31G,EAAO,EAAGA,EAAO,GAAIA,IAExB,IADA8oN,GAAU9oN,GAAQ21G,EACbryI,EAAI,EAAGA,EAAK,GAAK8kP,GAAYpoN,GAAQ18B,IACxColP,GAAW/yG,KAAU31G,EAKzB,IADA21G,IAAS,EACF31G,EAxYe,GAwYGA,IAEvB,IADA8oN,GAAU9oN,GAAQ21G,GAAQ,EACrBryI,EAAI,EAAGA,EAAK,GAAM8kP,GAAYpoN,GAAQ,EAAK18B,IAC9ColP,GAAW,IAAM/yG,KAAU31G,EAM/B,IAAKyqN,EAAO,EAAGA,GAxYO,GAwYaA,IACjCH,EAASG,GAAQ,EAInB,IADAnnP,EAAI,EACGA,GAAK,KACVilP,GAAiB,EAAJjlP,EAAQ,GAAa,EAClCA,IACAgnP,EAAS,KAEX,KAAOhnP,GAAK,KACVilP,GAAiB,EAAJjlP,EAAQ,GAAa,EAClCA,IACAgnP,EAAS,KAEX,KAAOhnP,GAAK,KACVilP,GAAiB,EAAJjlP,EAAQ,GAAa,EAClCA,IACAgnP,EAAS,KAEX,KAAOhnP,GAAK,KACVilP,GAAiB,EAAJjlP,EAAQ,GAAa,EAClCA,IACAgnP,EAAS,KASX,IAHAD,GAAU9B,GAAc4E,IAAe7C,GAGlChnP,EAAI,EAAGA,EAjbU,GAibKA,IACzBklP,GAAiB,EAAJllP,EAAQ,GAAa,EAClCklP,GAAiB,EAAJllP,GAAkB8mP,GAAW9mP,EAAG,GAI/C+lP,GAAgB,IAAIN,GAAeR,GAAcJ,GAAawC,IA1bxCA,IAYA,IA+atBrB,GAAgB,IAAIP,GAAeP,GAAcJ,GAAa,EAxbxC,GASA,IAgbtBmB,GAAiB,IAAIR,GAAe,IAAIp3O,MAAM,GAAI02O,GAAc,EAtb1C,GAiBJ,EAqaiF,EAofjG+E,GACAP,IAAmB,GAGrBxoP,EAAEgpP,OAAU,IAAI7D,GAASnlP,EAAEumP,UAAWvB,IACtChlP,EAAEipP,OAAU,IAAI9D,GAASnlP,EAAEwmP,UAAWvB,IACtCjlP,EAAEkpP,QAAU,IAAI/D,GAASnlP,EAAEymP,QAASvB,IAEpCllP,EAAE4lP,OAAS,EACX5lP,EAAE2lP,SAAW,EAGbU,GAAWrmP,EAAE,EAgKdmpP,iBAPwBV,GAQxBW,gBA1HyB,CAACppP,EAAGi5F,EAAKyvJ,EAAYpxI,KAM7C,IAAI+xI,EAAUC,EACVC,EAAc,EAGdvpP,EAAEkqJ,MAAQ,GA1gCgB,IA6gCxBlqJ,EAAEwpP,KAAKC,YACTzpP,EAAEwpP,KAAKC,UA3GY,CAACzpP,IAKxB,IACIf,EADAyqP,EAAa,WAIjB,IAAKzqP,EAAI,EAAGA,GAAK,GAAIA,IAAKyqP,KAAgB,EACxC,GAAkB,EAAbA,GAAoD,IAAhC1pP,EAAEumP,UAAc,EAAJtnP,GACnC,OAj7BwB,EAs7B5B,GAAoC,IAAhCe,EAAEumP,UAAU,KAA0D,IAAjCvmP,EAAEumP,UAAU,KAChB,IAAjCvmP,EAAEumP,UAAU,IACd,OAv7B0B,EAy7B5B,IAAKtnP,EAAI,GAAIA,EA75BS,IA65BOA,IAC3B,GAAoC,IAAhCe,EAAEumP,UAAc,EAAJtnP,GACd,OA37BwB,EAk8B5B,OAn8B4B,CAm8Bb,EA8EQ0qP,CAAiB3pP,IAItCynP,GAAWznP,EAAGA,EAAEgpP,QAIhBvB,GAAWznP,EAAGA,EAAEipP,QAUhBM,EA1MkB,CAACvpP,IAErB,IAAIupP,EAgBJ,IAbAzB,GAAU9nP,EAAGA,EAAEumP,UAAWvmP,EAAEgpP,OAAO1D,UACnCwC,GAAU9nP,EAAGA,EAAEwmP,UAAWxmP,EAAEipP,OAAO3D,UAGnCmC,GAAWznP,EAAGA,EAAEkpP,SASXK,EAAcK,GAAgBL,GAAe,GACS,IAArDvpP,EAAEymP,QAAgC,EAAxBxC,GAASsF,GAAmB,GADSA,KAUrD,OAJAvpP,EAAE2mP,SAAW,GAAK4C,EAAc,GAAK,EAAI,EAAI,EAItCA,CAAW,EA8KFM,CAAc7pP,GAG5BqpP,EAAYrpP,EAAE2mP,QAAU,EAAI,IAAO,EACnC2C,EAAetpP,EAAE4mP,WAAa,EAAI,IAAO,EAMrC0C,GAAeD,IAAYA,EAAWC,IAI1CD,EAAWC,EAAcZ,EAAa,EAGnCA,EAAa,GAAKW,IAAuB,IAATpwJ,EASnCwvJ,GAAmBzoP,EAAGi5F,EAAKyvJ,EAAYpxI,GAjkCX,IAmkCnBt3G,EAAEmqC,UAA0Bm/M,IAAgBD,GAErD3D,GAAU1lP,EAAG,GAAuBs3G,EAAO,EAAI,GAAI,GACnD+vI,GAAernP,EAAGkkP,GAAcC,MAGhCuB,GAAU1lP,EAAG,GAAoBs3G,EAAO,EAAI,GAAI,GAvM7B,EAACt3G,EAAG8pP,EAAQC,EAAQC,KAIzC,IAAIC,EASJ,IAHAvE,GAAU1lP,EAAG8pP,EAAS,IAAK,GAC3BpE,GAAU1lP,EAAG+pP,EAAS,EAAK,GAC3BrE,GAAU1lP,EAAGgqP,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,IAE7BvE,GAAU1lP,EAAGA,EAAEymP,QAAyB,EAAjBxC,GAASgG,GAAY,GAAY,GAI1D1B,GAAUvoP,EAAGA,EAAEumP,UAAWuD,EAAS,GAGnCvB,GAAUvoP,EAAGA,EAAEwmP,UAAWuD,EAAS,EAAE,EAkLnCG,CAAelqP,EAAGA,EAAEgpP,OAAO1D,SAAW,EAAGtlP,EAAEipP,OAAO3D,SAAW,EAAGiE,EAAc,GAC9ElC,GAAernP,EAAGA,EAAEumP,UAAWvmP,EAAEwmP,YAMnCH,GAAWrmP,GAEPs3G,GACFwvI,GAAU9mP,EACZ,EA6CDmqP,UApCmB,CAACnqP,EAAGsxI,EAAM3+D,KAK5B3yE,EAAEylP,YAAYzlP,EAAEwnP,QAAUxnP,EAAE6mP,YAAcv1G,EAC1CtxI,EAAEylP,YAAYzlP,EAAEwnP,QAAUxnP,EAAE6mP,YAAcv1G,GAAQ,EAClDtxI,EAAEylP,YAAYzlP,EAAEwnP,QAAUxnP,EAAE6mP,YAAcl0K,EAC7B,IAAT2+D,EAEFtxI,EAAEumP,UAAe,EAAL5zK,MAEZ3yE,EAAEm9L,UAEF7rD,IAKAtxI,EAAEumP,UAAgD,GAArCjC,GAAa3xK,GAhlCN,IAglCyB,MAC7C3yE,EAAEwmP,UAAyB,EAAfjB,GAAOj0G,OAGbtxI,EAAE6mP,WAAa7mP,EAAEoqP,SAc1BC,UAvIoBrqP,IACnB0lP,GAAU1lP,EAAGsqP,EAAmB,GAChCzE,GAAU7lP,EAh8BQ,IAg8BMkkP,IA/xBT,CAAClkP,IAEG,KAAfA,EAAE2lP,UACJH,GAAUxlP,EAAGA,EAAE4lP,QACf5lP,EAAE4lP,OAAS,EACX5lP,EAAE2lP,SAAW,GAEJ3lP,EAAE2lP,UAAY,IACvB3lP,EAAEylP,YAAYzlP,EAAE6qC,WAAwB,IAAX7qC,EAAE4lP,OAC/B5lP,EAAE4lP,SAAW,EACb5lP,EAAE2lP,UAAY,EAChB,EAqxBA4E,CAASvqP,EAAE,GAuLTwqP,GAzBY,CAACC,EAAOxxJ,EAAKrqF,EAAKqF,KAChC,IAAI4nH,EAAc,MAAR4uH,EACN3uH,EAAO2uH,IAAU,GAAM,MACvBxrP,EAAI,EAER,KAAe,IAAR2P,GAAW,CAIhB3P,EAAI2P,EAAM,IAAO,IAAOA,EACxBA,GAAO3P,EAEP,GACE48H,EAAMA,EAAK5iC,EAAIhlF,KAAS,EACxB6nH,EAAMA,EAAKD,EAAK,UACP58H,GAEX48H,GAAM,MACNC,GAAM,KACR,CAEA,OAAQD,EAAMC,GAAM,EAAO,EA8B7B,MAeM4uH,GAAW,IAAIt+K,YAfH,MAChB,IAAInsE,EAAGqjL,EAAQ,GAEf,IAAK,IAAIrkL,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5BgB,EAAIhB,EACJ,IAAK,IAAI6E,EAAI,EAAGA,EAAI,EAAGA,IACrB7D,EAAU,EAAJA,EAAU,WAAcA,IAAM,EAAOA,IAAM,EAEnDqjL,EAAMrkL,GAAKgB,CACb,CAEA,OAAOqjL,CAAK,EAImBqnE,IAiBjC,IAAIC,GAdU,CAACC,EAAK5xJ,EAAKrqF,EAAKqF,KAC5B,MAAMjV,EAAI0rP,GACJjsO,EAAMxK,EAAMrF,EAElBi8O,IAAQ,EAER,IAAK,IAAI1rP,EAAI8U,EAAK9U,EAAIsf,EAAKtf,IACzB0rP,EAAOA,IAAQ,EAAK7rP,EAAmB,KAAhB6rP,EAAM5xJ,EAAI95F,KAGnC,OAAQ0rP,CAAW,EAyBjBC,GAAW,CACb,EAAQ,kBACR,EAAQ,aACR,EAAQ,GACR,KAAQ,aACR,KAAQ,eACR,KAAQ,aACR,KAAQ,sBACR,KAAQ,eACR,KAAQ,wBAsBNC,GAAc,CAGhBC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,SAAoB,EACpBC,gBAAoB,EACpBC,cAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EAIpBC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,uBAA0B,EAG1BC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GAuB5B,MAAM,SAAE/D,GAAQ,iBAAEO,GAAgB,gBAAEC,GAAe,UAAEe,GAAS,UAAEE,IAAc1B,IAS5EqC,WAAY4B,GAAY,gBAAE3B,GAAiBE,aAAc0B,GAAgBzB,SAAU0B,GAAYzB,QAAS0B,GACxGxB,KAAMyB,GAAQxB,aAAcyB,GAAgBtB,eAAgBuB,GAAkBtB,aAAcuB,GAAgBrB,YAAasB,GACzHlB,sBAAuBmB,GAAuB,WAC9ClB,GAAU,eAAEC,GAAc,MAAEC,GAAK,QAAEC,GAASC,mBAAoBe,GAAoB,UACpFZ,GACAC,WAAYY,IACVxC,GA4BEyC,GAAY,IACZC,GAAgB,IAIhBC,GAAiB,GAQjBC,GAAgB,IAChBC,GAAgB,IAShB3/O,GAAM,CAACu7O,EAAMqE,KACjBrE,EAAK5tN,IAAMkvN,GAAS+C,GACbA,GAGH5D,GAAQ7oP,GACE,EAAN,GAAY,EAAM,EAAI,EAAI,GAG9B0sP,GAAQ70J,IACZ,IAAIrqF,EAAMqqF,EAAI15F,OAAQ,OAASqP,GAAO,GAAKqqF,EAAIrqF,GAAO,CAAG,EAQrDm/O,GAAc/tP,IAClB,IAAIf,EAAGmE,EACHhB,EACA4rP,EAAQhuP,EAAEiuP,OAEdhvP,EAAIe,EAAEkuP,UACN9rP,EAAInD,EACJ,GACEmE,EAAIpD,EAAE81L,OAAO1zL,GACbpC,EAAE81L,KAAK1zL,GAAMgB,GAAK4qP,EAAQ5qP,EAAI4qP,EAAQ,UAC7B/uP,GACXA,EAAI+uP,EAEJ5rP,EAAInD,EACJ,GACEmE,EAAIpD,EAAEqmD,OAAOjkD,GACbpC,EAAEqmD,KAAKjkD,GAAMgB,GAAK4qP,EAAQ5qP,EAAI4qP,EAAQ,UAI7B/uP,EAAE,EAKf,IAIIkvP,GAJY,CAACnuP,EAAGqmD,EAAMva,KAAWua,GAAQrmD,EAAEouP,WAActiN,GAAQ9rC,EAAEquP,UAavE,MAAMC,GAAiB9E,IACrB,MAAMxpP,EAAIwpP,EAAKznO,MAGf,IAAInT,EAAM5O,EAAE6qC,QACRj8B,EAAM46O,EAAK+E,YACb3/O,EAAM46O,EAAK+E,WAED,IAAR3/O,IAEJ46O,EAAKnjJ,OAAOhhG,IAAIrF,EAAEylP,YAAYx1K,SAASjwE,EAAEwuP,YAAaxuP,EAAEwuP,YAAc5/O,GAAM46O,EAAKiF,UACjFjF,EAAKiF,UAAa7/O,EAClB5O,EAAEwuP,aAAgB5/O,EAClB46O,EAAKkF,WAAa9/O,EAClB46O,EAAK+E,WAAa3/O,EAClB5O,EAAE6qC,SAAgBj8B,EACA,IAAd5O,EAAE6qC,UACJ7qC,EAAEwuP,YAAc,GAClB,EAIIG,GAAmB,CAAC3uP,EAAGs3G,KAC3B8xI,GAAgBppP,EAAIA,EAAE4uP,aAAe,EAAI5uP,EAAE4uP,aAAe,EAAI5uP,EAAE6uP,SAAW7uP,EAAE4uP,YAAat3I,GAC1Ft3G,EAAE4uP,YAAc5uP,EAAE6uP,SAClBP,GAActuP,EAAEwpP,KAAK,EAIjBsF,GAAW,CAAC9uP,EAAGyC,KACnBzC,EAAEylP,YAAYzlP,EAAE6qC,WAAapoC,CAAC,EAS1BssP,GAAc,CAAC/uP,EAAGyC,KAItBzC,EAAEylP,YAAYzlP,EAAE6qC,WAAcpoC,IAAM,EAAK,IACzCzC,EAAEylP,YAAYzlP,EAAE6qC,WAAiB,IAAJpoC,CAAQ,EAWjCusP,GAAW,CAACxF,EAAMvwJ,EAAKz6E,EAAOu7C,KAElC,IAAInrD,EAAM46O,EAAKyF,SAGf,OADIrgP,EAAMmrD,IAAQnrD,EAAMmrD,GACZ,IAARnrD,EAAoB,GAExB46O,EAAKyF,UAAYrgP,EAGjBqqF,EAAI5zF,IAAImkP,EAAKr9O,MAAM8jE,SAASu5K,EAAK0F,QAAS1F,EAAK0F,QAAUtgP,GAAM4P,GACvC,IAApBgrO,EAAKznO,MAAMotO,KACb3F,EAAKiB,MAAQD,GAAUhB,EAAKiB,MAAOxxJ,EAAKrqF,EAAK4P,GAGlB,IAApBgrO,EAAKznO,MAAMotO,OAClB3F,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOxxJ,EAAKrqF,EAAK4P,IAG7CgrO,EAAK0F,SAAWtgP,EAChB46O,EAAK4F,UAAYxgP,EAEVA,EAAG,EAaNygP,GAAgB,CAACrvP,EAAGsvP,KAExB,IAEI7yO,EACA7N,EAHA2gP,EAAevvP,EAAEwvP,iBACjBC,EAAOzvP,EAAE6uP,SAGTa,EAAW1vP,EAAE2vP,YACbC,EAAa5vP,EAAE4vP,WACnB,MAAMhe,EAAS5xO,EAAE6uP,SAAY7uP,EAAEiuP,OAASR,GACpCztP,EAAE6uP,UAAY7uP,EAAEiuP,OAASR,IAAiB,EAExCoC,EAAO7vP,EAAEI,OAET0vP,EAAQ9vP,EAAE+vP,OACV1pM,EAAQrmD,EAAEqmD,KAMV2pM,EAAShwP,EAAE6uP,SAAWrB,GAC5B,IAAIyC,EAAaJ,EAAKJ,EAAOC,EAAW,GACpCQ,EAAaL,EAAKJ,EAAOC,GAQzB1vP,EAAE2vP,aAAe3vP,EAAEmwP,aACrBZ,IAAiB,GAKfK,EAAa5vP,EAAEowP,YAAaR,EAAa5vP,EAAEowP,WAI/C,GAaE,GAXA3zO,EAAQ6yO,EAWJO,EAAKpzO,EAAQizO,KAAkBQ,GAC/BL,EAAKpzO,EAAQizO,EAAW,KAAOO,GAC/BJ,EAAKpzO,KAA0BozO,EAAKJ,IACpCI,IAAOpzO,KAAwBozO,EAAKJ,EAAO,GAH/C,CAaAA,GAAQ,EACRhzO,IAMA,UAESozO,IAAOJ,KAAUI,IAAOpzO,IAAUozO,IAAOJ,KAAUI,IAAOpzO,IAC1DozO,IAAOJ,KAAUI,IAAOpzO,IAAUozO,IAAOJ,KAAUI,IAAOpzO,IAC1DozO,IAAOJ,KAAUI,IAAOpzO,IAAUozO,IAAOJ,KAAUI,IAAOpzO,IAC1DozO,IAAOJ,KAAUI,IAAOpzO,IAAUozO,IAAOJ,KAAUI,IAAOpzO,IAC1DgzO,EAAOO,GAOhB,GAHAphP,EAAM4+O,IAAawC,EAASP,GAC5BA,EAAOO,EAASxC,GAEZ5+O,EAAM8gP,EAAU,CAGlB,GAFA1vP,EAAEqwP,YAAcf,EAChBI,EAAW9gP,EACPA,GAAOghP,EACT,MAEFK,EAAaJ,EAAKJ,EAAOC,EAAW,GACpCQ,EAAaL,EAAKJ,EAAOC,EAC3B,CApCA,SAqCQJ,EAAYjpM,EAAKipM,EAAYQ,IAAUle,GAA4B,KAAjB2d,GAE5D,OAAIG,GAAY1vP,EAAEowP,UACTV,EAEF1vP,EAAEowP,SAAS,EAcdE,GAAetwP,IAEnB,MAAMuwP,EAAUvwP,EAAEiuP,OAClB,IAAIhvP,EAAGuxP,EAAM1sK,EAIb,EAAG,CAkCD,GAjCA0sK,EAAOxwP,EAAEywP,YAAczwP,EAAEowP,UAAYpwP,EAAE6uP,SAoBnC7uP,EAAE6uP,UAAY0B,GAAWA,EAAU9C,MAErCztP,EAAEI,OAAOiF,IAAIrF,EAAEI,OAAO6vE,SAASsgL,EAASA,EAAUA,EAAUC,GAAO,GACnExwP,EAAEqwP,aAAeE,EACjBvwP,EAAE6uP,UAAY0B,EAEdvwP,EAAE4uP,aAAe2B,EACbvwP,EAAE0wP,OAAS1wP,EAAE6uP,WACf7uP,EAAE0wP,OAAS1wP,EAAE6uP,UAEfd,GAAW/tP,GACXwwP,GAAQD,GAEc,IAApBvwP,EAAEwpP,KAAKyF,SACT,MAmBF,GAJAhwP,EAAI+vP,GAAShvP,EAAEwpP,KAAMxpP,EAAEI,OAAQJ,EAAE6uP,SAAW7uP,EAAEowP,UAAWI,GACzDxwP,EAAEowP,WAAanxP,EAGXe,EAAEowP,UAAYpwP,EAAE0wP,QAzVN,EAkWZ,IARA5sK,EAAM9jF,EAAE6uP,SAAW7uP,EAAE0wP,OACrB1wP,EAAE2wP,MAAQ3wP,EAAEI,OAAO0jF,GAGnB9jF,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAO0jF,EAAM,IAInC9jF,EAAE0wP,SAEP1wP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAO0jF,EApW1B,EAoW4C,IAEtD9jF,EAAEqmD,KAAKy9B,EAAM9jF,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OAClC3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS7sK,EAClBA,IACA9jF,EAAE0wP,WACE1wP,EAAEowP,UAAYpwP,EAAE0wP,OA1WV,MAmXhB,OAAS1wP,EAAEowP,UAAY3C,IAAqC,IAApBztP,EAAEwpP,KAAKyF,SAAe,EAuD1D2B,GAAiB,CAAC5wP,EAAGspE,KAMzB,IAMI16D,EAAKtH,EAAMupP,EANXC,EAAY9wP,EAAE+wP,iBAAmB,EAAI/wP,EAAEiuP,OAASjuP,EAAEiuP,OAASjuP,EAAE+wP,iBAAmB,EAM/Dz5I,EAAO,EACxB05I,EAAOhxP,EAAEwpP,KAAKyF,SAClB,EAAG,CAOD,GAFArgP,EAAM,MACNiiP,EAAQ7wP,EAAE2lP,SAAW,IAAO,EACxB3lP,EAAEwpP,KAAK+E,UAAYsC,EACrB,MAiBF,GAdAA,EAAO7wP,EAAEwpP,KAAK+E,UAAYsC,EAC1BvpP,EAAOtH,EAAE6uP,SAAW7uP,EAAE4uP,YAClBhgP,EAAMtH,EAAOtH,EAAEwpP,KAAKyF,WACtBrgP,EAAMtH,EAAOtH,EAAEwpP,KAAKyF,UAElBrgP,EAAMiiP,IACRjiP,EAAMiiP,GAQJjiP,EAAMkiP,IAAuB,IAARliP,GAAa06D,IAAUwjL,IAC5BxjL,IAAUsjL,IACVh+O,IAAQtH,EAAOtH,EAAEwpP,KAAKyF,UACxC,MAMF33I,EAAOhuC,IAAUwjL,IAAcl+O,IAAQtH,EAAOtH,EAAEwpP,KAAKyF,SAAW,EAAI,EACpE9F,GAAiBnpP,EAAG,EAAG,EAAGs3G,GAG1Bt3G,EAAEylP,YAAYzlP,EAAE6qC,QAAU,GAAKj8B,EAC/B5O,EAAEylP,YAAYzlP,EAAE6qC,QAAU,GAAKj8B,GAAO,EACtC5O,EAAEylP,YAAYzlP,EAAE6qC,QAAU,IAAMj8B,EAChC5O,EAAEylP,YAAYzlP,EAAE6qC,QAAU,IAAMj8B,GAAO,EAGvC0/O,GAActuP,EAAEwpP,MASZliP,IACEA,EAAOsH,IACTtH,EAAOsH,GAGT5O,EAAEwpP,KAAKnjJ,OAAOhhG,IAAIrF,EAAEI,OAAO6vE,SAASjwE,EAAE4uP,YAAa5uP,EAAE4uP,YAActnP,GAAOtH,EAAEwpP,KAAKiF,UACjFzuP,EAAEwpP,KAAKiF,UAAYnnP,EACnBtH,EAAEwpP,KAAK+E,WAAajnP,EACpBtH,EAAEwpP,KAAKkF,WAAapnP,EACpBtH,EAAE4uP,aAAetnP,EACjBsH,GAAOtH,GAMLsH,IACFogP,GAAShvP,EAAEwpP,KAAMxpP,EAAEwpP,KAAKnjJ,OAAQrmG,EAAEwpP,KAAKiF,SAAU7/O,GACjD5O,EAAEwpP,KAAKiF,UAAY7/O,EACnB5O,EAAEwpP,KAAK+E,WAAa3/O,EACpB5O,EAAEwpP,KAAKkF,WAAa9/O,EAExB,OAAkB,IAAT0oG,GA6CT,OArCA05I,GAAQhxP,EAAEwpP,KAAKyF,SACX+B,IAIEA,GAAQhxP,EAAEiuP,QACZjuP,EAAEm9L,QAAU,EAEZn9L,EAAEI,OAAOiF,IAAIrF,EAAEwpP,KAAKr9O,MAAM8jE,SAASjwE,EAAEwpP,KAAK0F,QAAUlvP,EAAEiuP,OAAQjuP,EAAEwpP,KAAK0F,SAAU,GAC/ElvP,EAAE6uP,SAAW7uP,EAAEiuP,OACfjuP,EAAE0wP,OAAS1wP,EAAE6uP,WAGT7uP,EAAEywP,YAAczwP,EAAE6uP,UAAYmC,IAEhChxP,EAAE6uP,UAAY7uP,EAAEiuP,OAEhBjuP,EAAEI,OAAOiF,IAAIrF,EAAEI,OAAO6vE,SAASjwE,EAAEiuP,OAAQjuP,EAAEiuP,OAASjuP,EAAE6uP,UAAW,GAC7D7uP,EAAEm9L,QAAU,GACdn9L,EAAEm9L,UAEAn9L,EAAE0wP,OAAS1wP,EAAE6uP,WACf7uP,EAAE0wP,OAAS1wP,EAAE6uP,WAIjB7uP,EAAEI,OAAOiF,IAAIrF,EAAEwpP,KAAKr9O,MAAM8jE,SAASjwE,EAAEwpP,KAAK0F,QAAU8B,EAAMhxP,EAAEwpP,KAAK0F,SAAUlvP,EAAE6uP,UAC7E7uP,EAAE6uP,UAAYmC,EACdhxP,EAAE0wP,QAAUM,EAAOhxP,EAAEiuP,OAASjuP,EAAE0wP,OAAS1wP,EAAEiuP,OAASjuP,EAAE0wP,OAASM,GAEjEhxP,EAAE4uP,YAAc5uP,EAAE6uP,UAEhB7uP,EAAEixP,WAAajxP,EAAE6uP,WACnB7uP,EAAEixP,WAAajxP,EAAE6uP,UAIfv3I,EA5hBoB,EAiiBpBhuC,IAAUsjL,IAAgBtjL,IAAUwjL,IAClB,IAApB9sP,EAAEwpP,KAAKyF,UAAkBjvP,EAAE6uP,WAAa7uP,EAAE4uP,YApiBpB,GAyiBxBiC,EAAO7wP,EAAEywP,YAAczwP,EAAE6uP,SACrB7uP,EAAEwpP,KAAKyF,SAAW4B,GAAQ7wP,EAAE4uP,aAAe5uP,EAAEiuP,SAE/CjuP,EAAE4uP,aAAe5uP,EAAEiuP,OACnBjuP,EAAE6uP,UAAY7uP,EAAEiuP,OAEhBjuP,EAAEI,OAAOiF,IAAIrF,EAAEI,OAAO6vE,SAASjwE,EAAEiuP,OAAQjuP,EAAEiuP,OAASjuP,EAAE6uP,UAAW,GAC7D7uP,EAAEm9L,QAAU,GACdn9L,EAAEm9L,UAEJ0zD,GAAQ7wP,EAAEiuP,OACNjuP,EAAE0wP,OAAS1wP,EAAE6uP,WACf7uP,EAAE0wP,OAAS1wP,EAAE6uP,WAGbgC,EAAO7wP,EAAEwpP,KAAKyF,WAChB4B,EAAO7wP,EAAEwpP,KAAKyF,UAEZ4B,IACF7B,GAAShvP,EAAEwpP,KAAMxpP,EAAEI,OAAQJ,EAAE6uP,SAAUgC,GACvC7wP,EAAE6uP,UAAYgC,EACd7wP,EAAE0wP,QAAUG,EAAO7wP,EAAEiuP,OAASjuP,EAAE0wP,OAAS1wP,EAAEiuP,OAASjuP,EAAE0wP,OAASG,GAE7D7wP,EAAEixP,WAAajxP,EAAE6uP,WACnB7uP,EAAEixP,WAAajxP,EAAE6uP,UAQnBgC,EAAQ7wP,EAAE2lP,SAAW,IAAO,EAE5BkL,EAAO7wP,EAAE+wP,iBAAmBF,EAAO,MAAwB,MAAwB7wP,EAAE+wP,iBAAmBF,EACxGC,EAAYD,EAAO7wP,EAAEiuP,OAASjuP,EAAEiuP,OAAS4C,EACzCvpP,EAAOtH,EAAE6uP,SAAW7uP,EAAE4uP,aAClBtnP,GAAQwpP,IACPxpP,GAAQgiE,IAAUwjL,KAAexjL,IAAUsjL,IACzB,IAApB5sP,EAAEwpP,KAAKyF,UAAkB3nP,GAAQupP,KAClCjiP,EAAMtH,EAAOupP,EAAOA,EAAOvpP,EAC3BgwG,EAAOhuC,IAAUwjL,IAAkC,IAApB9sP,EAAEwpP,KAAKyF,UACjCrgP,IAAQtH,EAAO,EAAI,EACxB6hP,GAAiBnpP,EAAGA,EAAE4uP,YAAahgP,EAAK0oG,GACxCt3G,EAAE4uP,aAAehgP,EACjB0/O,GAActuP,EAAEwpP,OAIXlyI,EAzlBiB,EAFA,EA2lBsB,EAW1C45I,GAAe,CAAClxP,EAAGspE,KAEvB,IAAI6nL,EACAC,EAEJ,OAAS,CAMP,GAAIpxP,EAAEowP,UAAY3C,GAAe,CAE/B,GADA6C,GAAYtwP,GACRA,EAAEowP,UAAY3C,IAAiBnkL,IAAUsjL,GAC3C,OApnBkB,EAsnBpB,GAAoB,IAAhB5sP,EAAEowP,UACJ,KAEJ,CAyBA,GApBAe,EAAY,EACRnxP,EAAEowP,WAhpBQ,IAkpBZpwP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAOJ,EAAE6uP,SAlpB1B,EAkpBiD,IAC7DsC,EAAYnxP,EAAEqmD,KAAKrmD,EAAE6uP,SAAW7uP,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OACrD3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS3wP,EAAE6uP,UAOJ,IAAdsC,GAA4BnxP,EAAE6uP,SAAWsC,GAAenxP,EAAEiuP,OAASR,KAKrEztP,EAAEqxP,aAAehC,GAAcrvP,EAAGmxP,IAGhCnxP,EAAEqxP,cAnqBQ,EA+qBZ,GAPAD,EAASjH,GAAUnqP,EAAGA,EAAE6uP,SAAW7uP,EAAEqwP,YAAarwP,EAAEqxP,aAxqBxC,GA0qBZrxP,EAAEowP,WAAapwP,EAAEqxP,aAKbrxP,EAAEqxP,cAAgBrxP,EAAEsxP,gBAAuCtxP,EAAEowP,WA/qBrD,EA+qB6E,CACvFpwP,EAAEqxP,eACF,GACErxP,EAAE6uP,WAEF7uP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAOJ,EAAE6uP,SAprB9B,EAorBqD,IAC7DsC,EAAYnxP,EAAEqmD,KAAKrmD,EAAE6uP,SAAW7uP,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OACrD3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS3wP,EAAE6uP,eAKQ,KAAnB7uP,EAAEqxP,cACbrxP,EAAE6uP,UACJ,MAEE7uP,EAAE6uP,UAAY7uP,EAAEqxP,aAChBrxP,EAAEqxP,aAAe,EACjBrxP,EAAE2wP,MAAQ3wP,EAAEI,OAAOJ,EAAE6uP,UAErB7uP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAOJ,EAAE6uP,SAAW,SAanDuC,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEI,OAAOJ,EAAE6uP,WAEpC7uP,EAAEowP,YACFpwP,EAAE6uP,WAEJ,GAAIuC,IAEFzC,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WACT,OAxsBkB,CA4sBxB,CAEA,OADAvuP,EAAE0wP,OAAW1wP,EAAE6uP,SAAW,EAAmB7uP,EAAE6uP,SAAW0C,EACtDjoL,IAAUwjL,IAEZ6B,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,UA/sBW,EACA,GAotBpBvuP,EAAE6mP,WAEJ8H,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WA1tBW,EACA,CA8tBJ,EAQhBiD,GAAe,CAACxxP,EAAGspE,KAEvB,IAAI6nL,EACAC,EAEAK,EAGJ,OAAS,CAMP,GAAIzxP,EAAEowP,UAAY3C,GAAe,CAE/B,GADA6C,GAAYtwP,GACRA,EAAEowP,UAAY3C,IAAiBnkL,IAAUsjL,GAC3C,OAxvBkB,EA0vBpB,GAAoB,IAAhB5sP,EAAEowP,UAAmB,KAC3B,CAyCA,GApCAe,EAAY,EACRnxP,EAAEowP,WAlxBQ,IAoxBZpwP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAOJ,EAAE6uP,SApxB1B,EAoxBiD,IAC7DsC,EAAYnxP,EAAEqmD,KAAKrmD,EAAE6uP,SAAW7uP,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OACrD3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS3wP,EAAE6uP,UAMtB7uP,EAAE2vP,YAAc3vP,EAAEqxP,aAClBrxP,EAAE0xP,WAAa1xP,EAAEqwP,YACjBrwP,EAAEqxP,aAAeE,EAEC,IAAdJ,GAA0BnxP,EAAE2vP,YAAc3vP,EAAEsxP,gBAC5CtxP,EAAE6uP,SAAWsC,GAAcnxP,EAAEiuP,OAASR,KAKxCztP,EAAEqxP,aAAehC,GAAcrvP,EAAGmxP,GAG9BnxP,EAAEqxP,cAAgB,IAClBrxP,EAAEmqC,WAAagiN,IA1yBP,IA0yBsBnsP,EAAEqxP,cAA8BrxP,EAAE6uP,SAAW7uP,EAAEqwP,YAAc,QAK7FrwP,EAAEqxP,aAAeE,IAMjBvxP,EAAE2vP,aArzBQ,GAqzBoB3vP,EAAEqxP,cAAgBrxP,EAAE2vP,YAAa,CACjE8B,EAAazxP,EAAE6uP,SAAW7uP,EAAEowP,UAtzBhB,EA6zBZgB,EAASjH,GAAUnqP,EAAGA,EAAE6uP,SAAW,EAAI7uP,EAAE0xP,WAAY1xP,EAAE2vP,YA7zB3C,GAm0BZ3vP,EAAEowP,WAAapwP,EAAE2vP,YAAc,EAC/B3vP,EAAE2vP,aAAe,EACjB,KACQ3vP,EAAE6uP,UAAY4C,IAElBzxP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAOJ,EAAE6uP,SAx0B9B,EAw0BqD,IAC7DsC,EAAYnxP,EAAEqmD,KAAKrmD,EAAE6uP,SAAW7uP,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OACrD3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS3wP,EAAE6uP,gBAGK,KAAlB7uP,EAAE2vP,aAKb,GAJA3vP,EAAE2xP,gBAAkB,EACpB3xP,EAAEqxP,aAAeE,EACjBvxP,EAAE6uP,WAEEuC,IAEFzC,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WACT,OAr0BgB,CA00BtB,MAAO,GAAIvuP,EAAE2xP,iBAgBX,GATAP,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEI,OAAOJ,EAAE6uP,SAAW,IAE3CuC,GAEFzC,GAAiB3uP,GAAG,GAGtBA,EAAE6uP,WACF7uP,EAAEowP,YACuB,IAArBpwP,EAAEwpP,KAAK+E,UACT,OA31BkB,OAi2BpBvuP,EAAE2xP,gBAAkB,EACpB3xP,EAAE6uP,WACF7uP,EAAEowP,WAEN,CAUA,OARIpwP,EAAE2xP,kBAGJP,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEI,OAAOJ,EAAE6uP,SAAW,IAE/C7uP,EAAE2xP,gBAAkB,GAEtB3xP,EAAE0wP,OAAS1wP,EAAE6uP,SAAW0C,EAAgBvxP,EAAE6uP,SAAW0C,EACjDjoL,IAAUwjL,IAEZ6B,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,UAh3BW,EACA,GAq3BpBvuP,EAAE6mP,WAEJ8H,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WA33BW,EACA,CAg4BJ,EAmKtB,SAASqD,GAAOC,EAAaC,EAAUC,EAAaC,EAAWppM,GAE7DnqD,KAAKozP,YAAcA,EACnBpzP,KAAKqzP,SAAWA,EAChBrzP,KAAKszP,YAAcA,EACnBtzP,KAAKuzP,UAAYA,EACjBvzP,KAAKmqD,KAAOA,CACd,CAEA,MAAMqpM,GAAsB,CAE1B,IAAIL,GAAO,EAAG,EAAG,EAAG,EAAGhB,IACvB,IAAIgB,GAAO,EAAG,EAAG,EAAG,EAAGV,IACvB,IAAIU,GAAO,EAAG,EAAG,GAAI,EAAGV,IACxB,IAAIU,GAAO,EAAG,EAAG,GAAI,GAAIV,IAEzB,IAAIU,GAAO,EAAG,EAAG,GAAI,GAAIJ,IACzB,IAAII,GAAO,EAAG,GAAI,GAAI,GAAIJ,IAC1B,IAAII,GAAO,EAAG,GAAI,IAAK,IAAKJ,IAC5B,IAAII,GAAO,EAAG,GAAI,IAAK,IAAKJ,IAC5B,IAAII,GAAO,GAAI,IAAK,IAAK,KAAMJ,IAC/B,IAAII,GAAO,GAAI,IAAK,IAAK,KAAMJ,KA+BjC,SAASU,KACPzzP,KAAK+qP,KAAO,KACZ/qP,KAAK+L,OAAS,EACd/L,KAAKgnP,YAAc,KACnBhnP,KAAKsyP,iBAAmB,EACxBtyP,KAAK+vP,YAAc,EACnB/vP,KAAKosC,QAAU,EACfpsC,KAAK0wP,KAAO,EACZ1wP,KAAK0zP,OAAS,KACd1zP,KAAK2zP,QAAU,EACf3zP,KAAKogD,OAAS0uM,GACd9uP,KAAK4zP,YAAc,EAEnB5zP,KAAKwvP,OAAS,EACdxvP,KAAK6zP,OAAS,EACd7zP,KAAKsxP,OAAS,EAEdtxP,KAAK2B,OAAS,KAQd3B,KAAKgyP,YAAc,EAKnBhyP,KAAK4nD,KAAO,KAMZ5nD,KAAKq3L,KAAO,KAEZr3L,KAAKkyP,MAAQ,EACblyP,KAAKyvP,UAAY,EACjBzvP,KAAK8zP,UAAY,EACjB9zP,KAAK4vP,UAAY,EAEjB5vP,KAAK2vP,WAAa,EAOlB3vP,KAAKmwP,YAAc,EAKnBnwP,KAAK4yP,aAAe,EACpB5yP,KAAKizP,WAAa,EAClBjzP,KAAKkzP,gBAAkB,EACvBlzP,KAAKowP,SAAW,EAChBpwP,KAAK4xP,YAAc,EACnB5xP,KAAK2xP,UAAY,EAEjB3xP,KAAKkxP,YAAc,EAKnBlxP,KAAK+wP,iBAAmB,EAMxB/wP,KAAK6yP,eAAiB,EAYtB7yP,KAAKyrJ,MAAQ,EACbzrJ,KAAK0rC,SAAW,EAEhB1rC,KAAK0xP,WAAa,EAGlB1xP,KAAKmxP,WAAa,EAYlBnxP,KAAK8nP,UAAa,IAAIz9K,YAAY0pL,MAClC/zP,KAAK+nP,UAAa,IAAI19K,YAAY,KAClCrqE,KAAKgoP,QAAa,IAAI39K,YAAY,IAClCglL,GAAKrvP,KAAK8nP,WACVuH,GAAKrvP,KAAK+nP,WACVsH,GAAKrvP,KAAKgoP,SAEVhoP,KAAKuqP,OAAW,KAChBvqP,KAAKwqP,OAAW,KAChBxqP,KAAKyqP,QAAW,KAGhBzqP,KAAKwnP,SAAW,IAAIn9K,YAAY2pL,IAIhCh0P,KAAK0oP,KAAO,IAAIr+K,YAAY,KAC5BglL,GAAKrvP,KAAK0oP,MAEV1oP,KAAK2oP,SAAW,EAChB3oP,KAAKkpP,SAAW,EAKhBlpP,KAAKg+D,MAAQ,IAAIqM,YAAY,KAC7BglL,GAAKrvP,KAAKg+D,OAIVh+D,KAAK+oP,QAAU,EAEf/oP,KAAKi0P,YAAc,EAoBnBj0P,KAAKooP,SAAW,EAChBpoP,KAAK2rP,QAAU,EAEf3rP,KAAKkoP,QAAU,EACfloP,KAAKmoP,WAAa,EAClBnoP,KAAK0+L,QAAU,EACf1+L,KAAKiyP,OAAS,EAGdjyP,KAAKmnP,OAAS,EAIdnnP,KAAKknP,SAAW,CAalB,CAMA,MAAMgN,GAAqBnJ,IAEzB,IAAKA,EACH,OAAO,EAET,MAAMxpP,EAAIwpP,EAAKznO,MACf,OAAK/hB,GAAKA,EAAEwpP,OAASA,GAASxpP,EAAEwK,SAAWkjP,IAlyCtB,KAoyCS1tP,EAAEwK,QAlyCX,KAoyCSxK,EAAEwK,QAnyCX,KAoyCSxK,EAAEwK,QAnyCX,KAoyCSxK,EAAEwK,QAnyCZ,MAoyCUxK,EAAEwK,QACFxK,EAAEwK,SAAWmjP,IACb3tP,EAAEwK,SAAWojP,GAClC,EAEF,CAAC,EAIJgF,GAAoBpJ,IAExB,GAAImJ,GAAkBnJ,GACpB,OAAOv7O,GAAIu7O,EAAM0D,IAGnB1D,EAAK4F,SAAW5F,EAAKkF,UAAY,EACjClF,EAAKC,UAAYiD,GAEjB,MAAM1sP,EAAIwpP,EAAKznO,MAmBf,OAlBA/hB,EAAE6qC,QAAU,EACZ7qC,EAAEwuP,YAAc,EAEZxuP,EAAEmvP,KAAO,IACXnvP,EAAEmvP,MAAQnvP,EAAEmvP,MAGdnvP,EAAEwK,OAEW,IAAXxK,EAAEmvP,KAr0CiB,GAu0CnBnvP,EAAEmvP,KAAOzB,GAAaC,GACxBnE,EAAKiB,MAAoB,IAAXzqP,EAAEmvP,KACd,EAEA,EACFnvP,EAAEqyP,YAAc,EAChBzJ,GAAS5oP,GACFgtP,EAAM,EAIT6F,GAAgBrJ,IAEpB,MAAM3sE,EAAM+1E,GAAiBpJ,GAI7B,OAHI3sE,IAAQmwE,MA5QGhtP,EA6QLwpP,EAAKznO,OA3Qb0uO,YAAc,EAAIzwP,EAAEiuP,OAGtBH,GAAK9tP,EAAE81L,MAIP91L,EAAEsxP,eAAiBW,GAAoBjyP,EAAEkqJ,OAAO4nG,SAChD9xP,EAAEmwP,WAAa8B,GAAoBjyP,EAAEkqJ,OAAO2nG,YAC5C7xP,EAAE4vP,WAAaqC,GAAoBjyP,EAAEkqJ,OAAO6nG,YAC5C/xP,EAAEwvP,iBAAmByC,GAAoBjyP,EAAEkqJ,OAAO8nG,UAElDhyP,EAAE6uP,SAAW,EACb7uP,EAAE4uP,YAAc,EAChB5uP,EAAEowP,UAAY,EACdpwP,EAAE0wP,OAAS,EACX1wP,EAAEqxP,aAAerxP,EAAE2vP,YAAc4B,EACjCvxP,EAAE2xP,gBAAkB,EACpB3xP,EAAE2wP,MAAQ,GA2PH9zE,EA/QO,IAAC78K,CA+QL,EAcN8yP,GAAe,CAACtJ,EAAMt/F,EAAOrrG,EAAQk0M,EAAYC,EAAU7oN,KAE/D,IAAKq/M,EACH,OAAO0D,GAET,IAAIiC,EAAO,EAiBX,GAfIjlG,IAAUmjG,KACZnjG,EAAQ,GAGN6oG,EAAa,GACf5D,EAAO,EACP4D,GAAcA,GAGPA,EAAa,KACpB5D,EAAO,EACP4D,GAAc,IAIZC,EAAW,GAAKA,EA15CA,GA05C4Bn0M,IAAW0uM,IACzDwF,EAAa,GAAKA,EAAa,IAAM7oG,EAAQ,GAAKA,EAAQ,GAC1D//G,EAAW,GAAKA,EAAWmiN,IAA2B,IAAfyG,GAA6B,IAAT5D,EAC3D,OAAOlhP,GAAIu7O,EAAM0D,IAIA,IAAf6F,IACFA,EAAa,GAIf,MAAM/yP,EAAI,IAAIkyP,GAmFd,OAjFA1I,EAAKznO,MAAQ/hB,EACbA,EAAEwpP,KAAOA,EACTxpP,EAAEwK,OAASkjP,GAEX1tP,EAAEmvP,KAAOA,EACTnvP,EAAEmyP,OAAS,KACXnyP,EAAEsyP,OAASS,EACX/yP,EAAEiuP,OAAS,GAAKjuP,EAAEsyP,OAClBtyP,EAAE+vP,OAAS/vP,EAAEiuP,OAAS,EAEtBjuP,EAAEuyP,UAAYS,EAAW,EACzBhzP,EAAEkuP,UAAY,GAAKluP,EAAEuyP,UACrBvyP,EAAEquP,UAAYruP,EAAEkuP,UAAY,EAC5BluP,EAAEouP,eAAiBpuP,EAAEuyP,UA/5CL,EA+5C6B,GA/5C7B,GAi6ChBvyP,EAAEI,OAAS,IAAI47D,WAAsB,EAAXh8D,EAAEiuP,QAC5BjuP,EAAE81L,KAAO,IAAIhtH,YAAY9oE,EAAEkuP,WAC3BluP,EAAEqmD,KAAO,IAAIyiB,YAAY9oE,EAAEiuP,QAK3BjuP,EAAE0yP,YAAc,GAAMM,EAAW,EAyCjChzP,EAAE+wP,iBAAmC,EAAhB/wP,EAAE0yP,YACvB1yP,EAAEylP,YAAc,IAAIzpL,WAAWh8D,EAAE+wP,kBAIjC/wP,EAAEwnP,QAAUxnP,EAAE0yP,YAGd1yP,EAAEoqP,QAAgC,GAArBpqP,EAAE0yP,YAAc,GAM7B1yP,EAAEkqJ,MAAQA,EACVlqJ,EAAEmqC,SAAWA,EACbnqC,EAAE6+C,OAASA,EAEJg0M,GAAarJ,EAAK,EA2c3B,IAoBIyJ,GAAc,CACjBC,YA7dmB,CAAC1J,EAAMt/F,IAElB4oG,GAAatJ,EAAMt/F,EAAOqjG,GA5/Cf,GAEE,EA0/CuDD,IA4d5EwF,aArBoBA,GAsBpBD,aArBoBA,GAsBpBD,iBArBwBA,GAsBxBO,iBAnmBwB,CAAC3J,EAAM1zD,IAE1B68D,GAAkBnJ,IAA6B,IAApBA,EAAKznO,MAAMotO,KACjCjC,IAET1D,EAAKznO,MAAMowO,OAASr8D,EACbk3D,IA8lBRoG,QA3diB,CAAC5J,EAAMlgL,KAEvB,GAAIqpL,GAAkBnJ,IAASlgL,EAAQyjL,IAAazjL,EAAQ,EAC1D,OAAOkgL,EAAOv7O,GAAIu7O,EAAM0D,IAAoBA,GAG9C,MAAMltP,EAAIwpP,EAAKznO,MAEf,IAAKynO,EAAKnjJ,QACa,IAAlBmjJ,EAAKyF,WAAmBzF,EAAKr9O,OAC7BnM,EAAEwK,SAAWojP,IAAgBtkL,IAAUwjL,GAC1C,OAAO7+O,GAAIu7O,EAA0B,IAAnBA,EAAK+E,UAAmBnB,GAAgBF,IAG5D,MAAMmG,EAAYrzP,EAAEqyP,WAIpB,GAHAryP,EAAEqyP,WAAa/oL,EAGG,IAAdtpE,EAAE6qC,SAEJ,GADAyjN,GAAc9E,GACS,IAAnBA,EAAK+E,UAQP,OADAvuP,EAAEqyP,YAAc,EACTrF,QAOJ,GAAsB,IAAlBxD,EAAKyF,UAAkBhF,GAAK3gL,IAAU2gL,GAAKoJ,IACpD/pL,IAAUwjL,GACV,OAAO7+O,GAAIu7O,EAAM4D,IAInB,GAAIptP,EAAEwK,SAAWojP,IAAkC,IAAlBpE,EAAKyF,SACpC,OAAOhhP,GAAIu7O,EAAM4D,IAOnB,GAHIptP,EAAEwK,SAAWkjP,IAAyB,IAAX1tP,EAAEmvP,OAC/BnvP,EAAEwK,OAASmjP,IAET3tP,EAAEwK,SAAWkjP,GAAY,CAE3B,IAAIx/N,EAAUq/N,IAAiBvtP,EAAEsyP,OAAS,GAAM,IAAO,EACnDgB,GAAe,EA2BnB,GAxBEA,EADEtzP,EAAEmqC,UAAYiiN,IAAkBpsP,EAAEkqJ,MAAQ,EAC9B,EACLlqJ,EAAEkqJ,MAAQ,EACL,EACO,IAAZlqJ,EAAEkqJ,MACG,EAEA,EAEhBh8H,GAAWolO,GAAe,EACP,IAAftzP,EAAE6uP,WAAkB3gO,GAziDR,IA0iDhBA,GAAU,GAAMA,EAAS,GAEzB6gO,GAAY/uP,EAAGkuB,GAGI,IAAfluB,EAAE6uP,WACJE,GAAY/uP,EAAGwpP,EAAKiB,QAAU,IAC9BsE,GAAY/uP,EAAgB,MAAbwpP,EAAKiB,QAEtBjB,EAAKiB,MAAQ,EACbzqP,EAAEwK,OAASmjP,GAGXW,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,EAEX,CAEA,GA1jDqB,KA0jDjBhtP,EAAEwK,OAMJ,GAJAg/O,EAAKiB,MAAQ,EACbqE,GAAS9uP,EAAG,IACZ8uP,GAAS9uP,EAAG,KACZ8uP,GAAS9uP,EAAG,GACPA,EAAEmyP,OAoBLrD,GAAS9uP,GAAIA,EAAEmyP,OAAOl2M,KAAO,EAAI,IACpBj8C,EAAEmyP,OAAOoB,KAAO,EAAI,IACnBvzP,EAAEmyP,OAAO1+F,MAAY,EAAJ,IACjBzzJ,EAAEmyP,OAAOvnP,KAAW,EAAJ,IAChB5K,EAAEmyP,OAAOqB,QAAc,GAAJ,IAEjC1E,GAAS9uP,EAAmB,IAAhBA,EAAEmyP,OAAO51O,MACrBuyO,GAAS9uP,EAAIA,EAAEmyP,OAAO51O,MAAQ,EAAK,KACnCuyO,GAAS9uP,EAAIA,EAAEmyP,OAAO51O,MAAQ,GAAM,KACpCuyO,GAAS9uP,EAAIA,EAAEmyP,OAAO51O,MAAQ,GAAM,KACpCuyO,GAAS9uP,EAAe,IAAZA,EAAEkqJ,MAAc,EACflqJ,EAAEmqC,UAAYiiN,IAAkBpsP,EAAEkqJ,MAAQ,EAC1C,EAAI,GACjB4kG,GAAS9uP,EAAiB,IAAdA,EAAEmyP,OAAOpwH,IACjB/hI,EAAEmyP,OAAO1+F,OAASzzJ,EAAEmyP,OAAO1+F,MAAMl0J,SACnCuvP,GAAS9uP,EAA2B,IAAxBA,EAAEmyP,OAAO1+F,MAAMl0J,QAC3BuvP,GAAS9uP,EAAIA,EAAEmyP,OAAO1+F,MAAMl0J,QAAU,EAAK,MAEzCS,EAAEmyP,OAAOoB,OACX/J,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAS,IAE7D7qC,EAAEoyP,QAAU,EACZpyP,EAAEwK,OAxmDe,QA4kDjB,GAbAskP,GAAS9uP,EAAG,GACZ8uP,GAAS9uP,EAAG,GACZ8uP,GAAS9uP,EAAG,GACZ8uP,GAAS9uP,EAAG,GACZ8uP,GAAS9uP,EAAG,GACZ8uP,GAAS9uP,EAAe,IAAZA,EAAEkqJ,MAAc,EACflqJ,EAAEmqC,UAAYiiN,IAAkBpsP,EAAEkqJ,MAAQ,EAC1C,EAAI,GACjB4kG,GAAS9uP,EA3jDC,GA4jDVA,EAAEwK,OAASmjP,GAGXW,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,GA6Bb,GA3mDqB,KA2mDjBhtP,EAAEwK,OAAwB,CAC5B,GAAIxK,EAAEmyP,OAAO1+F,MAAqB,CAChC,IAAIggG,EAAMzzP,EAAE6qC,QACRvjC,GAAgC,MAAxBtH,EAAEmyP,OAAO1+F,MAAMl0J,QAAmBS,EAAEoyP,QAChD,KAAOpyP,EAAE6qC,QAAUvjC,EAAOtH,EAAE+wP,kBAAkB,CAC5C,IAAIjkF,EAAO9sK,EAAE+wP,iBAAmB/wP,EAAE6qC,QAYlC,GATA7qC,EAAEylP,YAAYpgP,IAAIrF,EAAEmyP,OAAO1+F,MAAMxjF,SAASjwE,EAAEoyP,QAASpyP,EAAEoyP,QAAUtlF,GAAO9sK,EAAE6qC,SAC1E7qC,EAAE6qC,QAAU7qC,EAAE+wP,iBAEV/wP,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,IAGnEzzP,EAAEoyP,SAAWtlF,EACbwhF,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,GAETyG,EAAM,EACNnsP,GAAQwlK,CACV,CAGA,IAAI4mF,EAAe,IAAI13L,WAAWh8D,EAAEmyP,OAAO1+F,OAG3CzzJ,EAAEylP,YAAYpgP,IAAIquP,EAAazjL,SAASjwE,EAAEoyP,QAASpyP,EAAEoyP,QAAU9qP,GAAOtH,EAAE6qC,SACxE7qC,EAAE6qC,SAAWvjC,EAETtH,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,IAGnEzzP,EAAEoyP,QAAU,CACd,CACApyP,EAAEwK,OAhpDiB,EAipDrB,CACA,GAlpDqB,KAkpDjBxK,EAAEwK,OAAuB,CAC3B,GAAIxK,EAAEmyP,OAAOvnP,KAAoB,CAC/B,IACI4gD,EADAioM,EAAMzzP,EAAE6qC,QAEZ,EAAG,CACD,GAAI7qC,EAAE6qC,UAAY7qC,EAAE+wP,iBAAkB,CAOpC,GALI/wP,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,IAGnEnF,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,GAETyG,EAAM,CACR,CAGEjoM,EADExrD,EAAEoyP,QAAUpyP,EAAEmyP,OAAOvnP,KAAKrL,OACkB,IAAxCS,EAAEmyP,OAAOvnP,KAAKulE,WAAWnwE,EAAEoyP,WAE3B,EAERtD,GAAS9uP,EAAGwrD,EACd,OAAiB,IAARA,GAELxrD,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,IAGnEzzP,EAAEoyP,QAAU,CACd,CACApyP,EAAEwK,OAlrDiB,EAmrDrB,CACA,GAprDqB,KAorDjBxK,EAAEwK,OAA0B,CAC9B,GAAIxK,EAAEmyP,OAAOqB,QAAuB,CAClC,IACIhoM,EADAioM,EAAMzzP,EAAE6qC,QAEZ,EAAG,CACD,GAAI7qC,EAAE6qC,UAAY7qC,EAAE+wP,iBAAkB,CAOpC,GALI/wP,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,IAGnEnF,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,GAETyG,EAAM,CACR,CAGEjoM,EADExrD,EAAEoyP,QAAUpyP,EAAEmyP,OAAOqB,QAAQj0P,OACkB,IAA3CS,EAAEmyP,OAAOqB,QAAQrjL,WAAWnwE,EAAEoyP,WAE9B,EAERtD,GAAS9uP,EAAGwrD,EACd,OAAiB,IAARA,GAELxrD,EAAEmyP,OAAOoB,MAAQvzP,EAAE6qC,QAAU4oN,IAC/BjK,EAAKiB,MAAQG,GAAQpB,EAAKiB,MAAOzqP,EAAEylP,YAAazlP,EAAE6qC,QAAU4oN,EAAKA,GAGrE,CACAzzP,EAAEwK,OAntDgB,GAotDpB,CACA,GArtDoB,MAqtDhBxK,EAAEwK,OAAuB,CAC3B,GAAIxK,EAAEmyP,OAAOoB,KAAM,CACjB,GAAIvzP,EAAE6qC,QAAU,EAAI7qC,EAAE+wP,mBACpBzC,GAAc9E,GACI,IAAdxpP,EAAE6qC,SAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,GAGX8B,GAAS9uP,EAAgB,IAAbwpP,EAAKiB,OACjBqE,GAAS9uP,EAAIwpP,EAAKiB,OAAS,EAAK,KAChCjB,EAAKiB,MAAQ,CACf,CAKA,GAJAzqP,EAAEwK,OAASmjP,GAGXW,GAAc9E,GACI,IAAdxpP,EAAE6qC,QAEJ,OADA7qC,EAAEqyP,YAAc,EACTrF,EAEX,CAKA,GAAsB,IAAlBxD,EAAKyF,UAAkC,IAAhBjvP,EAAEowP,WAC1B9mL,IAAUsjL,IAAgB5sP,EAAEwK,SAAWojP,GAAe,CACvD,IAAI+F,EAAqB,IAAZ3zP,EAAEkqJ,MAAc0mG,GAAe5wP,EAAGspE,GAClCtpE,EAAEmqC,WAAaiiN,GApwBX,EAACpsP,EAAGspE,KAEvB,IAAI8nL,EAEJ,OAAS,CAEP,GAAoB,IAAhBpxP,EAAEowP,YACJE,GAAYtwP,GACQ,IAAhBA,EAAEowP,WAAiB,CACrB,GAAI9mL,IAAUsjL,GACZ,OAp/BgB,EAs/BlB,KACF,CAUF,GANA5sP,EAAEqxP,aAAe,EAGjBD,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEI,OAAOJ,EAAE6uP,WACpC7uP,EAAEowP,YACFpwP,EAAE6uP,WACEuC,IAEFzC,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WACT,OArgCkB,CAygCxB,CAEA,OADAvuP,EAAE0wP,OAAS,EACPpnL,IAAUwjL,IAEZ6B,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,UA5gCW,EACA,GAihCpBvuP,EAAE6mP,WAEJ8H,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WAvhCW,EACA,CA2hCJ,EAktB2BqF,CAAa5zP,EAAGspE,GAChDtpE,EAAEmqC,WAAakiN,GAr2BZ,EAACrsP,EAAGspE,KAEtB,IAAI8nL,EACA/qM,EACAopM,EAAMO,EAEV,MAAMH,EAAO7vP,EAAEI,OAEf,OAAS,CAKP,GAAIJ,EAAEowP,WAAa5C,GAAW,CAE5B,GADA8C,GAAYtwP,GACRA,EAAEowP,WAAa5C,IAAalkL,IAAUsjL,GACxC,OA15BkB,EA45BpB,GAAoB,IAAhB5sP,EAAEowP,UAAmB,KAC3B,CAIA,GADApwP,EAAEqxP,aAAe,EACbrxP,EAAEowP,WAl7BQ,GAk7BkBpwP,EAAE6uP,SAAW,IAC3CY,EAAOzvP,EAAE6uP,SAAW,EACpBxoM,EAAOwpM,EAAKJ,GACRppM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IAAO,CAC3EO,EAAShwP,EAAE6uP,SAAWrB,GACtB,UAESnnM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IACzCppM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IACzCppM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IACzCppM,IAASwpM,IAAOJ,IAASppM,IAASwpM,IAAOJ,IACzCA,EAAOO,GAChBhwP,EAAEqxP,aAAe7D,IAAawC,EAASP,GACnCzvP,EAAEqxP,aAAerxP,EAAEowP,YACrBpwP,EAAEqxP,aAAerxP,EAAEowP,UAEvB,CAuBF,GAlBIpwP,EAAEqxP,cAv8BQ,GA28BZD,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEqxP,aA38Bf,GA68BZrxP,EAAEowP,WAAapwP,EAAEqxP,aACjBrxP,EAAE6uP,UAAY7uP,EAAEqxP,aAChBrxP,EAAEqxP,aAAe,IAKjBD,EAASjH,GAAUnqP,EAAG,EAAGA,EAAEI,OAAOJ,EAAE6uP,WAEpC7uP,EAAEowP,YACFpwP,EAAE6uP,YAEAuC,IAEFzC,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WACT,OA58BkB,CAg9BxB,CAEA,OADAvuP,EAAE0wP,OAAS,EACPpnL,IAAUwjL,IAEZ6B,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,UAn9BW,EACA,GAw9BpBvuP,EAAE6mP,WAEJ8H,GAAiB3uP,GAAG,GACK,IAArBA,EAAEwpP,KAAK+E,WA99BW,EACA,CAk+BJ,EA4wBkBsF,CAAY7zP,EAAGspE,GACtC2oL,GAAoBjyP,EAAEkqJ,OAAOthG,KAAK5oD,EAAGspE,GAKlD,GAnvDsB,IAgvDlBqqL,GA/uDkB,IA+uDcA,IAClC3zP,EAAEwK,OAASojP,IAnvDS,IAqvDlB+F,GAnvDkB,IAmvDSA,EAK7B,OAJuB,IAAnBnK,EAAK+E,YACPvuP,EAAEqyP,YAAc,GAGXrF,GAST,GAlwDsB,IAkwDlB2G,IACErqL,IAAU2hL,GACZZ,GAAUrqP,GAEHspE,IAAUyjL,KAEjB5D,GAAiBnpP,EAAG,EAAG,GAAG,GAItBspE,IAAUujL,KAEZiB,GAAK9tP,EAAE81L,MAEa,IAAhB91L,EAAEowP,YACJpwP,EAAE6uP,SAAW,EACb7uP,EAAE4uP,YAAc,EAChB5uP,EAAE0wP,OAAS,KAIjBpC,GAAc9E,GACS,IAAnBA,EAAK+E,WAEP,OADAvuP,EAAEqyP,YAAc,EACTrF,EAGb,CAEA,OAAI1jL,IAAUwjL,GAAqBE,GAC/BhtP,EAAEmvP,MAAQ,EAAYlC,IAGX,IAAXjtP,EAAEmvP,MACJL,GAAS9uP,EAAgB,IAAbwpP,EAAKiB,OACjBqE,GAAS9uP,EAAIwpP,EAAKiB,OAAS,EAAK,KAChCqE,GAAS9uP,EAAIwpP,EAAKiB,OAAS,GAAM,KACjCqE,GAAS9uP,EAAIwpP,EAAKiB,OAAS,GAAM,KACjCqE,GAAS9uP,EAAmB,IAAhBwpP,EAAK4F,UACjBN,GAAS9uP,EAAIwpP,EAAK4F,UAAY,EAAK,KACnCN,GAAS9uP,EAAIwpP,EAAK4F,UAAY,GAAM,KACpCN,GAAS9uP,EAAIwpP,EAAK4F,UAAY,GAAM,OAIpCL,GAAY/uP,EAAGwpP,EAAKiB,QAAU,IAC9BsE,GAAY/uP,EAAgB,MAAbwpP,EAAKiB,QAGtB6D,GAAc9E,GAIVxpP,EAAEmvP,KAAO,IAAKnvP,EAAEmvP,MAAQnvP,EAAEmvP,MAET,IAAdnvP,EAAE6qC,QAAgBmiN,GAASC,GAAc,EA8HjD6G,WA1HmBtK,IAElB,GAAImJ,GAAkBnJ,GACpB,OAAO0D,GAGT,MAAM1iP,EAASg/O,EAAKznO,MAAMvX,OAI1B,OAFAg/O,EAAKznO,MAAQ,KAENvX,IAAWmjP,GAAa1/O,GAAIu7O,EAAM2D,IAAkBH,EAAM,EAiHlE+G,qBAzG4B,CAACvK,EAAM5gE,KAElC,IAAIorE,EAAaprE,EAAWrpL,OAE5B,GAAIozP,GAAkBnJ,GACpB,OAAO0D,GAGT,MAAMltP,EAAIwpP,EAAKznO,MACTotO,EAAOnvP,EAAEmvP,KAEf,GAAa,IAATA,GAAwB,IAATA,GAAcnvP,EAAEwK,SAAWkjP,IAAe1tP,EAAEowP,UAC7D,OAAOlD,GAYT,GARa,IAATiC,IAEF3F,EAAKiB,MAAQD,GAAUhB,EAAKiB,MAAO7hE,EAAYorE,EAAY,IAG7Dh0P,EAAEmvP,KAAO,EAGL6E,GAAch0P,EAAEiuP,OAAQ,CACb,IAATkB,IAEFrB,GAAK9tP,EAAE81L,MACP91L,EAAE6uP,SAAW,EACb7uP,EAAE4uP,YAAc,EAChB5uP,EAAE0wP,OAAS,GAIb,IAAIuD,EAAU,IAAIj4L,WAAWh8D,EAAEiuP,QAC/BgG,EAAQ5uP,IAAIujL,EAAW34G,SAAS+jL,EAAah0P,EAAEiuP,OAAQ+F,GAAa,GACpEprE,EAAaqrE,EACbD,EAAah0P,EAAEiuP,MACjB,CAEA,MAAMiG,EAAQ1K,EAAKyF,SACbjmP,EAAOwgP,EAAK0F,QACZ/iP,EAAQq9O,EAAKr9O,MAKnB,IAJAq9O,EAAKyF,SAAW+E,EAChBxK,EAAK0F,QAAU,EACf1F,EAAKr9O,MAAQy8K,EACb0nE,GAAYtwP,GACLA,EAAEowP,WAh5DO,GAg5DiB,CAC/B,IAAItsK,EAAM9jF,EAAE6uP,SACR5vP,EAAIe,EAAEowP,UAAY,EACtB,GAEEpwP,EAAE2wP,MAAQxC,GAAKnuP,EAAGA,EAAE2wP,MAAO3wP,EAAEI,OAAO0jF,EAr5DxB,EAq5D0C,IAEtD9jF,EAAEqmD,KAAKy9B,EAAM9jF,EAAE+vP,QAAU/vP,EAAE81L,KAAK91L,EAAE2wP,OAElC3wP,EAAE81L,KAAK91L,EAAE2wP,OAAS7sK,EAClBA,YACS7kF,GACXe,EAAE6uP,SAAW/qK,EACb9jF,EAAEowP,UAAYmB,EACdjB,GAAYtwP,EACd,CAWA,OAVAA,EAAE6uP,UAAY7uP,EAAEowP,UAChBpwP,EAAE4uP,YAAc5uP,EAAE6uP,SAClB7uP,EAAE0wP,OAAS1wP,EAAEowP,UACbpwP,EAAEowP,UAAY,EACdpwP,EAAEqxP,aAAerxP,EAAE2vP,YAAc4B,EACjCvxP,EAAE2xP,gBAAkB,EACpBnI,EAAK0F,QAAUlmP,EACfwgP,EAAKr9O,MAAQA,EACbq9O,EAAKyF,SAAWiF,EAChBl0P,EAAEmvP,KAAOA,EACFnC,EAAM,EAiCdmH,YArBiB,sCAwBlB,MAAMC,GAAO,CAACnoP,EAAKJ,IACVjN,OAAOY,UAAUC,eAAeC,KAAKuM,EAAKJ,GAGnD,IA0CIwoP,GAAS,CACZh1P,OA3CY,SAAU4M,GACrB,MAAM6iD,EAAUxhD,MAAM9N,UAAU8O,MAAM5O,KAAKJ,UAAW,GACtD,KAAOwvD,EAAQvvD,QAAQ,CACrB,MAAMqM,EAASkjD,EAAQ/sB,QACvB,GAAKn2B,EAAL,CAEA,GAAsB,iBAAXA,EACT,MAAM,IAAI/B,UAAU+B,EAAS,sBAG/B,IAAK,MAAMxJ,KAAKwJ,EACVwoP,GAAKxoP,EAAQxJ,KACf6J,EAAI7J,GAAKwJ,EAAOxJ,GARK,CAW3B,CAEA,OAAO6J,CACT,EA0BCqoP,cAtBoBC,IAEnB,IAAI3lP,EAAM,EAEV,IAAK,IAAIzP,EAAI,EAAG6B,EAAIuzP,EAAOh1P,OAAQJ,EAAI6B,EAAG7B,IACxCyP,GAAO2lP,EAAOp1P,GAAGI,OAInB,MAAMoqC,EAAS,IAAIqyB,WAAWptD,GAE9B,IAAK,IAAIzP,EAAI,EAAG8U,EAAM,EAAGjT,EAAIuzP,EAAOh1P,OAAQJ,EAAI6B,EAAG7B,IAAK,CACtD,IAAIq1P,EAAQD,EAAOp1P,GACnBwqC,EAAOtkC,IAAImvP,EAAOvgP,GAClBA,GAAOugP,EAAMj1P,MACf,CAEA,OAAOoqC,CAAM,GAgBf,IAAI8qN,IAAmB,EAEvB,IAAMhoP,OAAOyjE,aAAavwE,MAAM,KAAM,IAAIq8D,WAAW,GAAK,CAAE,MAAOspB,GAAMmvK,IAAmB,CAAO,CAMnG,MAAMC,GAAW,IAAI14L,WAAW,KAChC,IAAK,IAAIvmD,EAAI,EAAGA,EAAI,IAAKA,IACvBi/O,GAASj/O,GAAMA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAI,EAE5Fi/O,GAAS,KAAOA,GAAS,KAAO,EAiFhC,IAyEIC,GAAU,CACbC,WAvJiB9wK,IAChB,GAA2B,mBAAhB+wK,aAA8BA,YAAYr1P,UAAUs1P,OAC7D,OAAO,IAAID,aAAcC,OAAOhxK,GAGlC,IAAImV,EAAKh5F,EAAG07H,EAAIo5H,EAAO51P,EAAG61P,EAAUlxK,EAAIvkF,OAAQ01P,EAAU,EAG1D,IAAKF,EAAQ,EAAGA,EAAQC,EAASD,IAC/B90P,EAAI6jF,EAAI3T,WAAW4kL,GACE,QAAZ,MAAJ90P,IAA2B80P,EAAQ,EAAIC,IAC1Cr5H,EAAK73C,EAAI3T,WAAW4kL,EAAQ,GACN,QAAZ,MAALp5H,KACH17H,EAAI,OAAYA,EAAI,OAAW,KAAO07H,EAAK,OAC3Co5H,MAGJE,GAAWh1P,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,EAO9D,IAHAg5F,EAAM,IAAIj9B,WAAWi5L,GAGhB91P,EAAI,EAAG41P,EAAQ,EAAG51P,EAAI81P,EAASF,IAClC90P,EAAI6jF,EAAI3T,WAAW4kL,GACE,QAAZ,MAAJ90P,IAA2B80P,EAAQ,EAAIC,IAC1Cr5H,EAAK73C,EAAI3T,WAAW4kL,EAAQ,GACN,QAAZ,MAALp5H,KACH17H,EAAI,OAAYA,EAAI,OAAW,KAAO07H,EAAK,OAC3Co5H,MAGA90P,EAAI,IAENg5F,EAAI95F,KAAOc,EACFA,EAAI,MAEbg5F,EAAI95F,KAAO,IAAQc,IAAM,EACzBg5F,EAAI95F,KAAO,IAAY,GAAJc,GACVA,EAAI,OAEbg5F,EAAI95F,KAAO,IAAQc,IAAM,GACzBg5F,EAAI95F,KAAO,IAAQc,IAAM,EAAI,GAC7Bg5F,EAAI95F,KAAO,IAAY,GAAJc,IAGnBg5F,EAAI95F,KAAO,IAAQc,IAAM,GACzBg5F,EAAI95F,KAAO,IAAQc,IAAM,GAAK,GAC9Bg5F,EAAI95F,KAAO,IAAQc,IAAM,EAAI,GAC7Bg5F,EAAI95F,KAAO,IAAY,GAAJc,GAIvB,OAAOg5F,CAAG,EAkGXi8J,WA3EgB,CAACj8J,EAAKn4F,KACrB,MAAM8N,EAAM9N,GAAOm4F,EAAI15F,OAEvB,GAA2B,mBAAhBwwE,aAA8BA,YAAYvwE,UAAUu8D,OAC7D,OAAO,IAAIgU,aAAchU,OAAOk9B,EAAIhpB,SAAS,EAAGnvE,IAGlD,IAAI3B,EAAGm7H,EAKP,MAAM66H,EAAW,IAAI7nP,MAAY,EAANsB,GAE3B,IAAK0rH,EAAM,EAAGn7H,EAAI,EAAGA,EAAIyP,GAAM,CAC7B,IAAI3O,EAAIg5F,EAAI95F,KAEZ,GAAIc,EAAI,IAAM,CAAEk1P,EAAS76H,KAASr6H,EAAG,QAAU,CAE/C,IAAIm1P,EAAQV,GAASz0P,GAErB,GAAIm1P,EAAQ,EAAKD,EAAS76H,KAAS,MAAQn7H,GAAKi2P,EAAQ,MAAxD,CAKA,IAFAn1P,GAAe,IAAVm1P,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKj2P,EAAIyP,GACtB3O,EAAKA,GAAK,EAAiB,GAAXg5F,EAAI95F,KACpBi2P,IAIEA,EAAQ,EAAKD,EAAS76H,KAAS,MAE/Br6H,EAAI,MACNk1P,EAAS76H,KAASr6H,GAElBA,GAAK,MACLk1P,EAAS76H,KAAS,MAAWr6H,GAAK,GAAM,KACxCk1P,EAAS76H,KAAS,MAAc,KAAJr6H,EAlBuC,CAoBvE,CAEA,MA9DoB,EAACg5F,EAAKrqF,KAI1B,GAAIA,EAAM,OACJqqF,EAAIhpB,UAAYwkL,GAClB,OAAOhoP,OAAOyjE,aAAavwE,MAAM,KAAMs5F,EAAI15F,SAAWqP,EAAMqqF,EAAMA,EAAIhpB,SAAS,EAAGrhE,IAItF,IAAI+6B,EAAS,GACb,IAAK,IAAIxqC,EAAI,EAAGA,EAAIyP,EAAKzP,IACvBwqC,GAAUl9B,OAAOyjE,aAAa+oB,EAAI95F,IAEpC,OAAOwqC,CAAM,EAgDN0rN,CAAcF,EAAU76H,EAAI,EAiCpCg7H,WAvBgB,CAACr8J,EAAKn4F,MAErBA,EAAMA,GAAOm4F,EAAI15F,QACP05F,EAAI15F,SAAUuB,EAAMm4F,EAAI15F,QAGlC,IAAI0U,EAAMnT,EAAM,EAChB,KAAOmT,GAAO,GAA2B,MAAV,IAAXglF,EAAIhlF,KAAyBA,IAIjD,OAAIA,EAAM,GAIE,IAARA,EAJkBnT,EAMdmT,EAAMygP,GAASz7J,EAAIhlF,IAAQnT,EAAOmT,EAAMnT,CAAG,GAqDjDy0P,GAzBJ,WAEE92P,KAAK0N,MAAQ,KACb1N,KAAKywP,QAAU,EAEfzwP,KAAKwwP,SAAW,EAEhBxwP,KAAK2wP,SAAW,EAEhB3wP,KAAK4nG,OAAS,KACd5nG,KAAKgwP,SAAW,EAEhBhwP,KAAK8vP,UAAY,EAEjB9vP,KAAKiwP,UAAY,EAEjBjwP,KAAKm9B,IAAM,GAEXn9B,KAAKsjB,MAAQ,KAEbtjB,KAAKgrP,UAAY,EAEjBhrP,KAAKgsP,MAAQ,CACf,EAIA,MAAM+K,GAAa52P,OAAOY,UAAU6O,UAMlC28O,WAAYyK,GAAY,aAAEvK,GAAY,aAAEC,GAAcC,SAAUsK,GAChEnK,KAAMoK,GAAQnK,aAAcoK,GAAc,sBAC1C1J,GAAqB,mBACrBK,GACAI,WAAYkJ,IACV9K,GA0FJ,SAAS+K,GAAUhzP,GACjBrE,KAAKqE,QAAUuxP,GAAOh1P,OAAO,CAC3B6qJ,MAAOgiG,GACPrtM,OAAQg3M,GACRE,UAAW,MACXhD,WAAY,GACZC,SAAU,EACV7oN,SAAUoiN,IACTzpP,GAAW,CAAC,GAEf,IAAIkzP,EAAMv3P,KAAKqE,QAEXkzP,EAAIt6C,KAAQs6C,EAAIjD,WAAa,EAC/BiD,EAAIjD,YAAciD,EAAIjD,WAGfiD,EAAIC,MAASD,EAAIjD,WAAa,GAAOiD,EAAIjD,WAAa,KAC7DiD,EAAIjD,YAAc,IAGpBt0P,KAAKwP,IAAS,EACdxP,KAAKm9B,IAAS,GACdn9B,KAAKy3P,OAAS,EACdz3P,KAAK81P,OAAS,GAEd91P,KAAK+qP,KAAO,IAAI+L,GAChB92P,KAAK+qP,KAAK+E,UAAY,EAEtB,IAAI/jP,EAASyoP,GAAYH,aACvBr0P,KAAK+qP,KACLwM,EAAI9rG,MACJ8rG,EAAIn3M,OACJm3M,EAAIjD,WACJiD,EAAIhD,SACJgD,EAAI7rN,UAGN,GAAI3/B,IAAWmrP,GACb,MAAM,IAAIp1O,MAAMuqO,GAAStgP,IAO3B,GAJIwrP,EAAI9nO,QACN+kO,GAAYE,iBAAiB10P,KAAK+qP,KAAMwM,EAAI9nO,QAG1C8nO,EAAIptE,WAAY,CAClB,IAAIutE,EAaJ,GATEA,EAF4B,iBAAnBH,EAAIptE,WAEN+rE,GAAQC,WAAWoB,EAAIptE,YACe,yBAApC4sE,GAAW91P,KAAKs2P,EAAIptE,YACtB,IAAI5sH,WAAWg6L,EAAIptE,YAEnBotE,EAAIptE,WAGbp+K,EAASyoP,GAAYc,qBAAqBt1P,KAAK+qP,KAAM2M,GAEjD3rP,IAAWmrP,GACb,MAAM,IAAIp1O,MAAMuqO,GAAStgP,IAG3B/L,KAAK23P,WAAY,CACnB,CACF,CA8JA,SAASC,GAAUlqP,EAAOrJ,GACxB,MAAMwzP,EAAW,IAAIR,GAAUhzP,GAK/B,GAHAwzP,EAASvsP,KAAKoC,GAAO,GAGjBmqP,EAASroP,IAAO,MAAMqoP,EAAS16N,KAAOkvN,GAASwL,EAASroP,KAE5D,OAAOqoP,EAAS3sN,MAClB,CA/IAmsN,GAAUt2P,UAAUuK,KAAO,SAAU+hC,EAAMyqN,GACzC,MAAM/M,EAAO/qP,KAAK+qP,KACZuM,EAAYt3P,KAAKqE,QAAQizP,UAC/B,IAAIvrP,EAAQgsP,EAEZ,GAAI/3P,KAAKy3P,MAAS,OAAO,EAkBzB,IAhBiCM,EAA7BD,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAAT3pN,EAET09M,EAAKr9O,MAAQwoP,GAAQC,WAAW9oN,GACG,yBAA1B0pN,GAAW91P,KAAKosC,GACzB09M,EAAKr9O,MAAQ,IAAI6vD,WAAWlwB,GAE5B09M,EAAKr9O,MAAQ2/B,EAGf09M,EAAK0F,QAAU,EACf1F,EAAKyF,SAAWzF,EAAKr9O,MAAM5M,SAUzB,GAPuB,IAAnBiqP,EAAK+E,YACP/E,EAAKnjJ,OAAS,IAAIrqC,WAAW+5L,GAC7BvM,EAAKiF,SAAW,EAChBjF,EAAK+E,UAAYwH,IAIdS,IAAgBtL,IAAgBsL,IAAgBrL,KAAiB3B,EAAK+E,WAAa,EACtF9vP,KAAKg4P,OAAOjN,EAAKnjJ,OAAOp2B,SAAS,EAAGu5K,EAAKiF,WACzCjF,EAAK+E,UAAY,MAFnB,CASA,GAHA/jP,EAASyoP,GAAYG,QAAQ5J,EAAMgN,GAG/BhsP,IAAWorP,GAOb,OANIpM,EAAKiF,SAAW,GAClBhwP,KAAKg4P,OAAOjN,EAAKnjJ,OAAOp2B,SAAS,EAAGu5K,EAAKiF,WAE3CjkP,EAASyoP,GAAYa,WAAWr1P,KAAK+qP,MACrC/qP,KAAKi4P,MAAMlsP,GACX/L,KAAKy3P,OAAQ,EACN1rP,IAAWmrP,GAIpB,GAAuB,IAAnBnM,EAAK+E,WAMT,GAAIiI,EAAc,GAAKhN,EAAKiF,SAAW,EACrChwP,KAAKg4P,OAAOjN,EAAKnjJ,OAAOp2B,SAAS,EAAGu5K,EAAKiF,WACzCjF,EAAK+E,UAAY,OAInB,GAAsB,IAAlB/E,EAAKyF,SAAgB,WAXvBxwP,KAAKg4P,OAAOjN,EAAKnjJ,OAjBnB,CA+BF,OAAO,CACT,EAUAyvJ,GAAUt2P,UAAUi3P,OAAS,SAAUjC,GACrC/1P,KAAK81P,OAAOxqP,KAAKyqP,EACnB,EAYAsB,GAAUt2P,UAAUk3P,MAAQ,SAAUlsP,GAEhCA,IAAWmrP,KACbl3P,KAAKkrC,OAAS0qN,GAAOC,cAAc71P,KAAK81P,SAE1C91P,KAAK81P,OAAS,GACd91P,KAAKwP,IAAMzD,EACX/L,KAAKm9B,IAAMn9B,KAAK+qP,KAAK5tN,GACvB,EA6EA,IAMI+6N,GAAc,CACjBC,QAPiBd,GAQjB1C,QAPeiD,GAQfQ,WA/BD,SAAsB1qP,EAAOrJ,GAG3B,OAFAA,EAAUA,GAAW,CAAC,GACd44M,KAAM,EACP26C,GAAUlqP,EAAOrJ,EAC1B,EA4BCmzP,KAjBD,SAAgB9pP,EAAOrJ,GAGrB,OAFAA,EAAUA,GAAW,CAAC,GACdmzP,MAAO,EACRI,GAAUlqP,EAAOrJ,EAC1B,EAcCg0P,UAPiB/L,IA8BlB,MAAMgM,GAAQ,MAsCd,IAAIC,GAAU,SAAsBxN,EAAMhrO,GACxC,IAAIy4O,EACA3/I,EACA4/I,EACAzD,EACAh1O,EAEA04O,EAEAnJ,EACAoJ,EACAC,EAEAC,EACAC,EACAnR,EACAoR,EACAC,EACAC,EACAC,EACAC,EACA3xK,EAEAr3E,EACA0iI,EACA9iI,EACAqpP,EAGA1rP,EAAOk6F,EAGX,MAAMtkF,EAAQynO,EAAKznO,MAEnBk1O,EAAMzN,EAAK0F,QACX/iP,EAAQq9O,EAAKr9O,MACbmrG,EAAO2/I,GAAOzN,EAAKyF,SAAW,GAC9BiI,EAAO1N,EAAKiF,SACZpoJ,EAASmjJ,EAAKnjJ,OACdotJ,EAAMyD,GAAQ14O,EAAQgrO,EAAK+E,WAC3B9vO,EAAMy4O,GAAQ1N,EAAK+E,UAAY,KAE/B4I,EAAOp1O,EAAMo1O,KAEbnJ,EAAQjsO,EAAMisO,MACdoJ,EAAQr1O,EAAMq1O,MACdC,EAAQt1O,EAAMs1O,MACdC,EAAWv1O,EAAM3hB,OACjBm3P,EAAOx1O,EAAMw1O,KACbnR,EAAOrkO,EAAMqkO,KACboR,EAAQz1O,EAAM+1O,QACdL,EAAQ11O,EAAMg2O,SACdL,GAAS,GAAK31O,EAAMi2O,SAAW,EAC/BL,GAAS,GAAK51O,EAAMk2O,UAAY,EAMhC/wP,EACA,EAAG,CACGk/O,EAAO,KACTmR,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,EACRmR,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,GAGVwR,EAAOJ,EAAMD,EAAOG,GAEpBQ,EACA,OAAS,CAKP,GAJAjyK,EAAK2xK,IAAS,GACdL,KAAUtxK,EACVmgK,GAAQngK,EACRA,EAAM2xK,IAAS,GAAM,IACV,IAAP3xK,EAIFogB,EAAO6wJ,KAAiB,MAAPU,MAEd,MAAS,GAAL3xK,GAwKJ,IAAU,GAALA,EAIL,IAAS,GAALA,EAAS,CAEhBlkE,EAAMpP,KArSC,MAsSP,MAAMzL,CACR,CAEEsiP,EAAK5tN,IAAM,8BACX7Z,EAAMpP,KAAOokP,GACb,MAAM7vP,CACR,CAZE0wP,EAAOJ,GAAc,MAAPI,IAA8BL,GAAS,GAAKtxK,GAAM,IAChE,SAASiyK,CAWX,CA/JE,IArBAtpP,EAAa,MAAPgpP,EACN3xK,GAAM,GACFA,IACEmgK,EAAOngK,IACTsxK,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,GAEVx3O,GAAO2oP,GAAS,GAAKtxK,GAAM,EAC3BsxK,KAAUtxK,EACVmgK,GAAQngK,GAGNmgK,EAAO,KACTmR,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,EACRmR,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,GAEVwR,EAAOH,EAAMF,EAAOI,KAGX,CAMP,GALA1xK,EAAK2xK,IAAS,GACdL,KAAUtxK,EACVmgK,GAAQngK,EACRA,EAAM2xK,IAAS,GAAM,IAEZ,GAAL3xK,EAAJ,CAaE,GAZAqrD,EAAc,MAAPsmH,EACP3xK,GAAM,GACFmgK,EAAOngK,IACTsxK,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,EACJA,EAAOngK,IACTsxK,GAAQprP,EAAM8qP,MAAU7Q,EACxBA,GAAQ,IAGZ90G,GAAQimH,GAAS,GAAKtxK,GAAM,EAExBqrD,EAAO6lH,EAAM,CACf3N,EAAK5tN,IAAM,gCACX7Z,EAAMpP,KAAOokP,GACb,MAAM7vP,CACR,CAMA,GAJAqwP,KAAUtxK,EACVmgK,GAAQngK,EAERA,EAAKixK,EAAOzD,EACRniH,EAAOrrD,EAAI,CAEb,GADAA,EAAKqrD,EAAOrrD,EACRA,EAAKmxK,GACHr1O,EAAMo2O,KAAM,CACd3O,EAAK5tN,IAAM,gCACX7Z,EAAMpP,KAAOokP,GACb,MAAM7vP,CACR,CA0BF,GAFAsH,EAAO,EACPqpP,EAAcP,EACA,IAAVD,GAEF,GADA7oP,GAAQw/O,EAAQ/nK,EACZA,EAAKr3E,EAAK,CACZA,GAAOq3E,EACP,GACEogB,EAAO6wJ,KAAUI,EAAS9oP,aACjBy3E,GACXz3E,EAAO0oP,EAAO5lH,EACdumH,EAAcxxJ,CAChB,OAEG,GAAIgxJ,EAAQpxK,GAGf,GAFAz3E,GAAQw/O,EAAQqJ,EAAQpxK,EACxBA,GAAMoxK,EACFpxK,EAAKr3E,EAAK,CACZA,GAAOq3E,EACP,GACEogB,EAAO6wJ,KAAUI,EAAS9oP,aACjBy3E,GAEX,GADAz3E,EAAO,EACH6oP,EAAQzoP,EAAK,CACfq3E,EAAKoxK,EACLzoP,GAAOq3E,EACP,GACEogB,EAAO6wJ,KAAUI,EAAS9oP,aACjBy3E,GACXz3E,EAAO0oP,EAAO5lH,EACdumH,EAAcxxJ,CAChB,CACF,OAIA,GADA73F,GAAQ6oP,EAAQpxK,EACZA,EAAKr3E,EAAK,CACZA,GAAOq3E,EACP,GACEogB,EAAO6wJ,KAAUI,EAAS9oP,aACjBy3E,GACXz3E,EAAO0oP,EAAO5lH,EACdumH,EAAcxxJ,CAChB,CAEF,KAAOz3F,EAAM,GACXy3F,EAAO6wJ,KAAUW,EAAYrpP,KAC7B63F,EAAO6wJ,KAAUW,EAAYrpP,KAC7B63F,EAAO6wJ,KAAUW,EAAYrpP,KAC7BI,GAAO,EAELA,IACFy3F,EAAO6wJ,KAAUW,EAAYrpP,KACzBI,EAAM,IACRy3F,EAAO6wJ,KAAUW,EAAYrpP,MAGnC,KACK,CACHA,EAAO0oP,EAAO5lH,EACd,GACEjrC,EAAO6wJ,KAAU7wJ,EAAO73F,KACxB63F,EAAO6wJ,KAAU7wJ,EAAO73F,KACxB63F,EAAO6wJ,KAAU7wJ,EAAO73F,KACxBI,GAAO,QACAA,EAAM,GACXA,IACFy3F,EAAO6wJ,KAAU7wJ,EAAO73F,KACpBI,EAAM,IACRy3F,EAAO6wJ,KAAU7wJ,EAAO73F,MAG9B,CAYF,KAFA,CARK,GAAU,GAALy3E,EAIL,CACHujK,EAAK5tN,IAAM,wBACX7Z,EAAMpP,KAAOokP,GACb,MAAM7vP,CACR,CAPE0wP,EAAOH,GAAc,MAAPG,IAA8BL,GAAS,GAAKtxK,GAAM,GAUpE,CAeF,CAEA,KACF,CACF,OAASgxK,EAAM3/I,GAAQ4/I,EAAOz4O,GAG9B7P,EAAMw3O,GAAQ,EACd6Q,GAAOroP,EACPw3O,GAAQx3O,GAAO,EACf2oP,IAAS,GAAKnR,GAAQ,EAGtBoD,EAAK0F,QAAU+H,EACfzN,EAAKiF,SAAWyI,EAChB1N,EAAKyF,SAAYgI,EAAM3/I,EAAYA,EAAO2/I,EAAZ,EAAmB,GAAKA,EAAM3/I,GAC5DkyI,EAAK+E,UAAa2I,EAAOz4O,EAAaA,EAAMy4O,EAAb,IAAqB,KAAOA,EAAOz4O,GAClEsD,EAAMw1O,KAAOA,EACbx1O,EAAMqkO,KAAOA,CAEf,EAqBA,MASMgS,GAAQ,IAAItvL,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAGzDuvL,GAAO,IAAIr8L,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGpDs8L,GAAQ,IAAIxvL,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,IAG1ByvL,GAAO,IAAIv8L,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,KAkStB,IAAIw8L,GA/RkB,CAAChlP,EAAMilP,EAAMC,EAAYC,EAAOr1E,EAAOs1E,EAAaC,EAAMC,KAE9E,MAAM1S,EAAO0S,EAAK1S,KAGlB,IASI2S,EACAr8M,EACAs8M,EACAp1G,EACA56I,EAGAyT,EAhBA7N,EAAM,EACNnD,EAAM,EACN5K,EAAM,EAAGC,EAAM,EACf5C,EAAO,EACPy5D,EAAO,EACPshM,EAAO,EACP3xP,EAAO,EACP0pP,EAAO,EACPkI,EAAO,EAMP5tD,EAAO,KAGX,MAAMl3H,EAAQ,IAAItL,YAAYqwL,IACxBC,EAAO,IAAItwL,YAAYqwL,IAC7B,IAEIE,EAAWC,EAASC,EAFpB9lG,EAAQ,KAoCZ,IAAK7kJ,EAAM,EAAGA,GA3FA,GA2FgBA,IAC5BwlE,EAAMxlE,GAAO,EAEf,IAAKnD,EAAM,EAAGA,EAAMktP,EAAOltP,IACzB2oE,EAAMqkL,EAAKC,EAAajtP,MAK1B,IADAvN,EAAOkoP,EACFtlP,EApGS,GAoGMA,GAAO,GACN,IAAfszE,EAAMtzE,GADkBA,KAM9B,GAHI5C,EAAO4C,IACT5C,EAAO4C,GAEG,IAARA,EAaF,OATAwiL,EAAMs1E,KAAiB,SAMvBt1E,EAAMs1E,KAAiB,SAEvBE,EAAK1S,KAAO,EACL,EAET,IAAKvlP,EAAM,EAAGA,EAAMC,GACC,IAAfszE,EAAMvzE,GADaA,KASzB,IANI3C,EAAO2C,IACT3C,EAAO2C,GAITyG,EAAO,EACFsH,EAAM,EAAGA,GAlIA,GAkIgBA,IAG5B,GAFAtH,IAAS,EACTA,GAAQ8sE,EAAMxlE,GACVtH,EAAO,EACT,OAAQ,EAGZ,GAAIA,EAAO,IApIG,IAoIGkM,GAA4B,IAAR1S,GACnC,OAAQ,EAKV,IADAs4P,EAAK,GAAK,EACLxqP,EAAM,EAAGA,EA/IA,GA+IeA,IAC3BwqP,EAAKxqP,EAAM,GAAKwqP,EAAKxqP,GAAOwlE,EAAMxlE,GAIpC,IAAKnD,EAAM,EAAGA,EAAMktP,EAAOltP,IACM,IAA3BgtP,EAAKC,EAAajtP,KACpBotP,EAAKO,EAAKX,EAAKC,EAAajtP,OAAWA,GAiE3C,GAlNc,IAuLV+H,GACF83L,EAAO73C,EAAQolG,EACfp8O,EAAQ,IAxLG,IA0LFjJ,GACT83L,EAAO8sD,GACP3kG,EAAQ4kG,GACR57O,EAAQ,MAGR6uL,EAAOgtD,GACP7kG,EAAQ8kG,GACR97O,EAAQ,GAIVy8O,EAAO,EACPztP,EAAM,EACNmD,EAAM/N,EACNmI,EAAO4vP,EACPjhM,EAAOz5D,EACP+6P,EAAO,EACPD,GAAO,EACPhI,EAAO,GAAK9yP,EACZ0lJ,EAAOotG,EAAO,EA9MD,IAiNRx9O,GAAmBw9O,EAtNJ,KAMN,IAiNXx9O,GAAoBw9O,EAtNF,IAuNnB,OAAO,EAIT,OAAS,CAEPqI,EAAYzqP,EAAMqqP,EACdJ,EAAKptP,GAAO,EAAIgR,GAClB68O,EAAU,EACVC,EAAWV,EAAKptP,IAETotP,EAAKptP,IAAQgR,GACpB68O,EAAU7lG,EAAMolG,EAAKptP,GAAOgR,GAC5B88O,EAAWjuD,EAAKutD,EAAKptP,GAAOgR,KAG5B68O,EAAU,GACVC,EAAW,GAIbR,EAAO,GAAMnqP,EAAMqqP,EACnBv8M,EAAO,GAAKib,EACZ92D,EAAM67C,EACN,GACEA,GAAQq8M,EACRz1E,EAAMt6K,GAAQkwP,GAAQD,GAAQv8M,GAAS28M,GAAa,GAAOC,GAAW,GAAMC,QAC5D,IAAT78M,GAIT,IADAq8M,EAAO,GAAMnqP,EAAM,EACZsqP,EAAOH,GACZA,IAAS,EAWX,GATa,IAATA,GACFG,GAAQH,EAAO,EACfG,GAAQH,GAERG,EAAO,EAITztP,IACqB,KAAf2oE,EAAMxlE,GAAY,CACtB,GAAIA,IAAQ9N,EAAO,MACnB8N,EAAM6pP,EAAKC,EAAaG,EAAKptP,GAC/B,CAGA,GAAImD,EAAM1Q,IAASg7P,EAAOt1G,KAAUo1G,EAAK,CAYvC,IAVa,IAATC,IACFA,EAAO/6P,GAIT8K,GAAQnI,EAGR82D,EAAO/oD,EAAMqqP,EACb3xP,EAAO,GAAKqwD,EACLA,EAAOshM,EAAOn4P,IACnBwG,GAAQ8sE,EAAMzc,EAAOshM,KACjB3xP,GAAQ,KACZqwD,IACArwD,IAAS,EAKX,GADA0pP,GAAQ,GAAKr5L,EAxRJ,IAyRJnkD,GAAmBw9O,EA9RR,KAMN,IAyRPx9O,GAAoBw9O,EA9RN,IA+Rf,OAAO,EAITgI,EAAME,EAAOt1G,EAIb0/B,EAAM01E,GAAQ96P,GAAQ,GAAOy5D,GAAQ,GAAO3uD,EAAO4vP,CACrD,CACF,CAeA,OAVa,IAATM,IAIF51E,EAAMt6K,EAAOkwP,GAAUtqP,EAAMqqP,GAAS,GAAO,IAAM,IAKrDH,EAAK1S,KAAOloP,EACL,CAAC,EA8BV,MAQEktP,SAAUoO,GAAU,QAAEnO,GAAO,QAAEC,GAC/BC,KAAMkO,GAAQjO,aAAckO,GAAgBjO,YAAakO,GAAehO,eAAgBiO,GAAkBhO,aAAciO,GAAgBhO,YAAaiO,GAAa,YAAEhO,GAAW,WAC/Ka,IACE5B,GAOKgP,GAAO,MAUPC,GAAO,MACHC,GAAO,MACPC,GAAS,MAETC,GAAQ,MAKJC,GAAO,MACPC,GAAM,MAMdC,GAAQ,MAGRC,GAAM,MAiBTC,GAAW/kP,IAEJA,IAAM,GAAM,MACbA,IAAM,EAAK,SACP,MAAJA,IAAe,KACX,IAAJA,IAAa,IAIzB,SAASglP,KACPh8P,KAAK+qP,KAAO,KACZ/qP,KAAKkU,KAAO,EACZlU,KAAK64G,MAAO,EACZ74G,KAAK0wP,KAAO,EAEZ1wP,KAAKi8P,UAAW,EAChBj8P,KAAKq0E,MAAQ,EAEbr0E,KAAK04P,KAAO,EACZ14P,KAAK62C,MAAQ,EACb72C,KAAKqrE,MAAQ,EAEbrrE,KAAKq3L,KAAO,KAGZr3L,KAAKk8P,MAAQ,EACbl8P,KAAKuvP,MAAQ,EACbvvP,KAAK24P,MAAQ,EACb34P,KAAK44P,MAAQ,EACb54P,KAAK2B,OAAS,KAGd3B,KAAK84P,KAAO,EACZ94P,KAAK2nP,KAAO,EAGZ3nP,KAAKc,OAAS,EACdd,KAAKqzC,OAAS,EAGdrzC,KAAKg1J,MAAQ,EAGbh1J,KAAKq5P,QAAU,KACfr5P,KAAKs5P,SAAW,KAChBt5P,KAAKu5P,QAAU,EACfv5P,KAAKw5P,SAAW,EAGhBx5P,KAAKm8P,MAAQ,EACbn8P,KAAKo8P,KAAO,EACZp8P,KAAKq8P,MAAQ,EACbr8P,KAAKoyP,KAAO,EACZpyP,KAAKuK,KAAO,KAEZvK,KAAKg6P,KAAO,IAAI3vL,YAAY,KAC5BrqE,KAAKo6P,KAAO,IAAI/vL,YAAY,KAO5BrqE,KAAKs8P,OAAS,KACdt8P,KAAKu8P,QAAU,KACfv8P,KAAK05P,KAAO,EACZ15P,KAAK88L,KAAO,EACZ98L,KAAKw8P,IAAM,CACb,CAGA,MAAMC,GAAqB1R,IAEzB,IAAKA,EACH,OAAO,EAET,MAAMznO,EAAQynO,EAAKznO,MACnB,OAAKA,GAASA,EAAMynO,OAASA,GAC3BznO,EAAMpP,KAAOonP,IAAQh4O,EAAMpP,KA7Ff,MA8FL,EAEF,CAAC,EAIJwoP,GAAoB3R,IAExB,GAAI0R,GAAkB1R,GAAS,OAAOoQ,GACtC,MAAM73O,EAAQynO,EAAKznO,MAqBnB,OApBAynO,EAAK4F,SAAW5F,EAAKkF,UAAY3sO,EAAM+nD,MAAQ,EAC/C0/K,EAAK5tN,IAAM,GACP7Z,EAAMotO,OACR3F,EAAKiB,MAAqB,EAAb1oO,EAAMotO,MAErBptO,EAAMpP,KAAOonP,GACbh4O,EAAMu1F,KAAO,EACbv1F,EAAM24O,SAAW,EACjB34O,EAAM+wD,OAAS,EACf/wD,EAAMo1O,KAAO,MACbp1O,EAAM+zK,KAAO,KACb/zK,EAAMw1O,KAAO,EACbx1O,EAAMqkO,KAAO,EAEbrkO,EAAM+1O,QAAU/1O,EAAMg5O,OAAS,IAAI/uL,WAhHjB,KAiHlBjqD,EAAMg2O,SAAWh2O,EAAMi5O,QAAU,IAAIhvL,WAhHlB,KAkHnBjqD,EAAMo2O,KAAO,EACbp2O,EAAMw5K,MAAQ,EAEPk+D,EAAM,EAIT2B,GAAgB5R,IAEpB,GAAI0R,GAAkB1R,GAAS,OAAOoQ,GACtC,MAAM73O,EAAQynO,EAAKznO,MAInB,OAHAA,EAAMisO,MAAQ,EACdjsO,EAAMq1O,MAAQ,EACdr1O,EAAMs1O,MAAQ,EACP8D,GAAiB3R,EAAK,EAKzB6R,GAAgB,CAAC7R,EAAMuJ,KAC3B,IAAI5D,EAGJ,GAAI+L,GAAkB1R,GAAS,OAAOoQ,GACtC,MAAM73O,EAAQynO,EAAKznO,MAenB,OAZIgxO,EAAa,GACf5D,EAAO,EACP4D,GAAcA,IAGd5D,EAA2B,GAAnB4D,GAAc,GAClBA,EAAa,KACfA,GAAc,KAKdA,IAAeA,EAAa,GAAKA,EAAa,IACzC6G,IAEY,OAAjB73O,EAAM3hB,QAAmB2hB,EAAM44O,QAAU5H,IAC3ChxO,EAAM3hB,OAAS,MAIjB2hB,EAAMotO,KAAOA,EACbptO,EAAM44O,MAAQ5H,EACPqI,GAAa5R,GAAK,EAIrB8R,GAAe,CAAC9R,EAAMuJ,KAE1B,IAAKvJ,EAAQ,OAAOoQ,GAGpB,MAAM73O,EAAQ,IAAI04O,GAIlBjR,EAAKznO,MAAQA,EACbA,EAAMynO,KAAOA,EACbznO,EAAM3hB,OAAS,KACf2hB,EAAMpP,KAAOonP,GACb,MAAMl9E,EAAMw+E,GAAc7R,EAAMuJ,GAIhC,OAHIl2E,IAAQ48E,KACVjQ,EAAKznO,MAAQ,MAER86J,CAAG,EAoBZ,IAEI0+E,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAe35O,IAGnB,GAAI05O,GAAQ,CACVF,GAAS,IAAIvvL,WAAW,KACxBwvL,GAAU,IAAIxvL,WAAW,IAGzB,IAAIvgE,EAAM,EACV,KAAOA,EAAM,KAAOsW,EAAM02O,KAAKhtP,KAAS,EACxC,KAAOA,EAAM,KAAOsW,EAAM02O,KAAKhtP,KAAS,EACxC,KAAOA,EAAM,KAAOsW,EAAM02O,KAAKhtP,KAAS,EACxC,KAAOA,EAAM,KAAOsW,EAAM02O,KAAKhtP,KAAS,EAMxC,IAJA+sP,GAtRS,EAsROz2O,EAAM02O,KAAM,EAAG,IAAK8C,GAAU,EAAGx5O,EAAM82O,KAAM,CAAEzS,KAAM,IAGrE36O,EAAM,EACCA,EAAM,IAAMsW,EAAM02O,KAAKhtP,KAAS,EAEvC+sP,GA3RU,EA2RMz2O,EAAM02O,KAAM,EAAG,GAAM+C,GAAS,EAAGz5O,EAAM82O,KAAM,CAAEzS,KAAM,IAGrEqV,IAAS,CACX,CAEA15O,EAAM+1O,QAAUyD,GAChBx5O,EAAMi2O,QAAU,EAChBj2O,EAAMg2O,SAAWyD,GACjBz5O,EAAMk2O,SAAW,CAAC,EAkBd0D,GAAe,CAACnS,EAAMlhP,EAAKmW,EAAKquJ,KAEpC,IAAIx7B,EACJ,MAAMvvH,EAAQynO,EAAKznO,MAqCnB,OAlCqB,OAAjBA,EAAM3hB,SACR2hB,EAAMisO,MAAQ,GAAKjsO,EAAM44O,MACzB54O,EAAMs1O,MAAQ,EACdt1O,EAAMq1O,MAAQ,EAEdr1O,EAAM3hB,OAAS,IAAI47D,WAAWj6C,EAAMisO,QAIlClhF,GAAQ/qJ,EAAMisO,OAChBjsO,EAAM3hB,OAAOiF,IAAIiD,EAAI2nE,SAASxxD,EAAMsD,EAAMisO,MAAOvvO,GAAM,GACvDsD,EAAMs1O,MAAQ,EACdt1O,EAAMq1O,MAAQr1O,EAAMisO,QAGpB18G,EAAOvvH,EAAMisO,MAAQjsO,EAAMs1O,MACvB/lH,EAAOw7B,IACTx7B,EAAOw7B,GAGT/qJ,EAAM3hB,OAAOiF,IAAIiD,EAAI2nE,SAASxxD,EAAMquJ,EAAMruJ,EAAMquJ,EAAOx7B,GAAOvvH,EAAMs1O,QACpEvqF,GAAQx7B,IAGNvvH,EAAM3hB,OAAOiF,IAAIiD,EAAI2nE,SAASxxD,EAAMquJ,EAAMruJ,GAAM,GAChDsD,EAAMs1O,MAAQvqF,EACd/qJ,EAAMq1O,MAAQr1O,EAAMisO,QAGpBjsO,EAAMs1O,OAAS/lH,EACXvvH,EAAMs1O,QAAUt1O,EAAMisO,QAASjsO,EAAMs1O,MAAQ,GAC7Ct1O,EAAMq1O,MAAQr1O,EAAMisO,QAASjsO,EAAMq1O,OAAS9lH,KAG7C,CAAC,EAipCV,IAuBIsqH,GAAc,CACjBR,aAxBoBA,GAyBpBC,cAxBqBA,GAyBrBF,iBAxBwBA,GAyBxBU,YAxxCoBrS,GAEZ8R,GAAa9R,EA3LJ,IAk9CjB8R,aAxBoBA,GAyBpBQ,QA1qCiB,CAACtS,EAAMlgL,KAEvB,IAAIvnD,EACA5V,EAAOk6F,EACPr9F,EACA+yP,EACAlL,EAAMvpP,EACNiwP,EACAnR,EACA6Q,EAAKC,EACLpqF,EACAt+J,EACAqpP,EAEAwB,EAAWC,EAASC,EAEpByC,EAAWC,EAASC,EACpBttP,EACAiuK,EALA+6E,EAAO,EAMX,MAAMuE,EAAO,IAAIngM,WAAW,GAC5B,IAAI88L,EAEA75P,EAEJ,MAAMuqC,EACJ,IAAIwyB,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,KAGjF,GAAIk/L,GAAkB1R,KAAUA,EAAKnjJ,SAC/BmjJ,EAAKr9O,OAA2B,IAAlBq9O,EAAKyF,SACvB,OAAO2K,GAGT73O,EAAQynO,EAAKznO,MACTA,EAAMpP,OAASsnP,KAAQl4O,EAAMpP,KAAOunP,IAIxC6B,EAAMvS,EAAKiF,SACXpoJ,EAASmjJ,EAAKnjJ,OACd/+F,EAAOkiP,EAAK+E,UACZvlP,EAAOwgP,EAAK0F,QACZ/iP,EAAQq9O,EAAKr9O,MACb0kP,EAAOrH,EAAKyF,SACZsI,EAAOx1O,EAAMw1O,KACbnR,EAAOrkO,EAAMqkO,KAGb6Q,EAAMpG,EACNqG,EAAO5vP,EACPu1K,EAAM48E,GAEN2C,EACA,OACE,OAAQr6O,EAAMpP,MACZ,KAAKonP,GACH,GAAmB,IAAfh4O,EAAMotO,KAAY,CACpBptO,EAAMpP,KAAOunP,GACb,KACF,CAEA,KAAO9T,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEA,GAAkB,EAAbrkO,EAAMotO,MAAsB,QAAToI,EAAiB,CACnB,IAAhBx1O,EAAM44O,QACR54O,EAAM44O,MAAQ,IAEhB54O,EAAMuzB,MAAQ,EAEd6mN,EAAK,GAAY,IAAP5E,EACV4E,EAAK,GAAM5E,IAAS,EAAK,IACzBx1O,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAO6mN,EAAM,EAAG,GAI5C5E,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KApaC,MAqaP,KACF,CAIA,GAHIoP,EAAM+zK,OACR/zK,EAAM+zK,KAAK5sL,MAAO,KAED,EAAb6Y,EAAMotO,UACA,IAAPoI,IAA2B,IAAMA,GAAQ,IAAM,GAAI,CACtD/N,EAAK5tN,IAAM,yBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACA,IAAY,GAAPhD,KAA4B5K,GAAY,CAC3CnD,EAAK5tN,IAAM,6BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CASA,GAPAhD,KAAU,EACVnR,GAAQ,EAERx3O,EAAiC,GAAnB,GAAP2oP,GACa,IAAhBx1O,EAAM44O,QACR54O,EAAM44O,MAAQ/rP,GAEZA,EAAM,IAAMA,EAAMmT,EAAM44O,MAAO,CACjCnR,EAAK5tN,IAAM,sBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAIAx4O,EAAMo1O,KAAO,GAAKp1O,EAAM44O,MAGxB54O,EAAM+wD,MAAQ,EAEd02K,EAAKiB,MAAQ1oO,EAAMuzB,MAAQ,EAC3BvzB,EAAMpP,KAAc,IAAP4kP,EAncH,MAmc2B0C,GAErC1C,EAAO,EACPnR,EAAO,EAEP,MACF,KAjdW,MAmdT,KAAOA,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAGA,GADArkO,EAAM+wD,MAAQykL,GACK,IAAdx1O,EAAM+wD,SAAkB65K,GAAY,CACvCnD,EAAK5tN,IAAM,6BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACA,GAAkB,MAAdx4O,EAAM+wD,MAAgB,CACxB02K,EAAK5tN,IAAM,2BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACIx4O,EAAM+zK,OACR/zK,EAAM+zK,KAAK75I,KAASs7M,GAAQ,EAAK,GAEhB,IAAdx1O,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OAEnCgN,EAAK,GAAY,IAAP5E,EACV4E,EAAK,GAAM5E,IAAS,EAAK,IACzBx1O,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAO6mN,EAAM,EAAG,IAI9C5E,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KAlfE,MAofV,KApfU,MAsfR,KAAOyzO,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEIrkO,EAAM+zK,OACR/zK,EAAM+zK,KAAKv5K,KAAOg7O,GAED,IAAdx1O,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OAEnCgN,EAAK,GAAY,IAAP5E,EACV4E,EAAK,GAAM5E,IAAS,EAAK,IACzB4E,EAAK,GAAM5E,IAAS,GAAM,IAC1B4E,EAAK,GAAM5E,IAAS,GAAM,IAC1Bx1O,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAO6mN,EAAM,EAAG,IAI9C5E,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KA5gBA,MA8gBR,KA9gBQ,MAghBN,KAAOyzO,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEIrkO,EAAM+zK,OACR/zK,EAAM+zK,KAAKumE,OAAiB,IAAP9E,EACrBx1O,EAAM+zK,KAAK/zD,GAAMw1H,GAAQ,GAER,IAAdx1O,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OAEnCgN,EAAK,GAAY,IAAP5E,EACV4E,EAAK,GAAM5E,IAAS,EAAK,IACzBx1O,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAO6mN,EAAM,EAAG,IAI9C5E,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KAriBG,MAuiBX,KAviBW,MAwiBT,GAAkB,KAAdoP,EAAM+wD,MAAgB,CAExB,KAAOszK,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEArkO,EAAMxiB,OAASg4P,EACXx1O,EAAM+zK,OACR/zK,EAAM+zK,KAAKwmE,UAAY/E,GAEN,IAAdx1O,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OAEnCgN,EAAK,GAAY,IAAP5E,EACV4E,EAAK,GAAM5E,IAAS,EAAK,IACzBx1O,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAO6mN,EAAM,EAAG,IAI9C5E,EAAO,EACPnR,EAAO,CAET,MACSrkO,EAAM+zK,OACb/zK,EAAM+zK,KAAKriC,MAAQ,MAErB1xI,EAAMpP,KAnkBG,MAqkBX,KArkBW,MAskBT,GAAkB,KAAdoP,EAAM+wD,QACRg6F,EAAO/qJ,EAAMxiB,OACTutK,EAAO+jF,IAAQ/jF,EAAO+jF,GACtB/jF,IACE/qJ,EAAM+zK,OACRlnL,EAAMmT,EAAM+zK,KAAKwmE,UAAYv6O,EAAMxiB,OAC9BwiB,EAAM+zK,KAAKriC,QAEd1xI,EAAM+zK,KAAKriC,MAAQ,IAAIz3F,WAAWj6C,EAAM+zK,KAAKwmE,YAE/Cv6O,EAAM+zK,KAAKriC,MAAMpuJ,IACf8G,EAAM8jE,SACJjnE,EAGAA,EAAO8jK,GAGTl+J,IAMe,IAAdmT,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OACnCptO,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAOnpC,EAAO2gK,EAAM9jK,IAElD6nP,GAAQ/jF,EACR9jK,GAAQ8jK,EACR/qJ,EAAMxiB,QAAUutK,GAEd/qJ,EAAMxiB,QAAU,MAAM68P,EAE5Br6O,EAAMxiB,OAAS,EACfwiB,EAAMpP,KAvmBE,MAymBV,KAzmBU,MA0mBR,GAAkB,KAAdoP,EAAM+wD,MAAgB,CACxB,GAAa,IAAT+9K,EAAc,MAAMuL,EACxBtvF,EAAO,EACP,GAEEl+J,EAAMzC,EAAMnD,EAAO8jK,KAEf/qJ,EAAM+zK,MAAQlnL,GACbmT,EAAMxiB,OAAS,QAClBwiB,EAAM+zK,KAAKlrL,MAAQ6B,OAAOyjE,aAAathE,UAElCA,GAAOk+J,EAAO+jF,GAOvB,GALmB,IAAd9uO,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OACnCptO,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAOnpC,EAAO2gK,EAAM9jK,IAElD6nP,GAAQ/jF,EACR9jK,GAAQ8jK,EACJl+J,EAAO,MAAMwtP,CACnB,MACSr6O,EAAM+zK,OACb/zK,EAAM+zK,KAAKlrL,KAAO,MAEpBmX,EAAMxiB,OAAS,EACfwiB,EAAMpP,KAjoBK,MAmoBb,KAnoBa,MAooBX,GAAkB,KAAdoP,EAAM+wD,MAAgB,CACxB,GAAa,IAAT+9K,EAAc,MAAMuL,EACxBtvF,EAAO,EACP,GACEl+J,EAAMzC,EAAMnD,EAAO8jK,KAEf/qJ,EAAM+zK,MAAQlnL,GACbmT,EAAMxiB,OAAS,QAClBwiB,EAAM+zK,KAAK09D,SAAW/mP,OAAOyjE,aAAathE,UAErCA,GAAOk+J,EAAO+jF,GAMvB,GALmB,IAAd9uO,EAAM+wD,OAAiC,EAAb/wD,EAAMotO,OACnCptO,EAAMuzB,MAAQs1M,GAAQ7oO,EAAMuzB,MAAOnpC,EAAO2gK,EAAM9jK,IAElD6nP,GAAQ/jF,EACR9jK,GAAQ8jK,EACJl+J,EAAO,MAAMwtP,CACnB,MACSr6O,EAAM+zK,OACb/zK,EAAM+zK,KAAK09D,QAAU,MAEvBzxO,EAAMpP,KAxpBE,MA0pBV,KA1pBU,MA2pBR,GAAkB,IAAdoP,EAAM+wD,MAAgB,CAExB,KAAOszK,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEA,GAAkB,EAAbrkO,EAAMotO,MAAaoI,KAAwB,MAAdx1O,EAAMuzB,OAAiB,CACvDk0M,EAAK5tN,IAAM,sBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAEAhD,EAAO,EACPnR,EAAO,CAET,CACIrkO,EAAM+zK,OACR/zK,EAAM+zK,KAAKy9D,KAASxxO,EAAM+wD,OAAS,EAAK,EACxC/wD,EAAM+zK,KAAK5sL,MAAO,GAEpBsgP,EAAKiB,MAAQ1oO,EAAMuzB,MAAQ,EAC3BvzB,EAAMpP,KAAOsnP,GACb,MACF,KAprBY,MAsrBV,KAAO7T,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEAoD,EAAKiB,MAAQ1oO,EAAMuzB,MAAQklN,GAAQjD,GAEnCA,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KAAOqnP,GAEf,KAAKA,GACH,GAAuB,IAAnBj4O,EAAM24O,SASR,OAPAlR,EAAKiF,SAAWsN,EAChBvS,EAAK+E,UAAYjnP,EACjBkiP,EAAK0F,QAAUlmP,EACfwgP,EAAKyF,SAAW4B,EAChB9uO,EAAMw1O,KAAOA,EACbx1O,EAAMqkO,KAAOA,EAENuT,GAETnQ,EAAKiB,MAAQ1oO,EAAMuzB,MAAQ,EAC3BvzB,EAAMpP,KAAOsnP,GAEf,KAAKA,GACH,GAAI3wL,IAAU+hL,IAAW/hL,IAAUgiL,GAAW,MAAM8Q,EAEtD,KAAKlC,GACH,GAAIn4O,EAAMu1F,KAAM,CAEdigJ,KAAiB,EAAPnR,EACVA,GAAe,EAAPA,EAERrkO,EAAMpP,KAAO2nP,GACb,KACF,CAEA,KAAOlU,EAAO,GAAG,CACf,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAQA,OANArkO,EAAMu1F,KAAe,EAAPigJ,EAEdA,KAAU,EACVnR,GAAQ,EAGQ,EAAPmR,GACP,KAAK,EAGHx1O,EAAMpP,KA7uBI,MA8uBV,MACF,KAAK,EAKH,GAJA+oP,GAAY35O,GAGZA,EAAMpP,KAAOynP,GACT9wL,IAAUgiL,GAAS,CAErBiM,KAAU,EACVnR,GAAQ,EAER,MAAMgW,CACR,CACA,MACF,KAAK,EAGHr6O,EAAMpP,KA5vBG,MA6vBT,MACF,KAAK,EACH62O,EAAK5tN,IAAM,qBACX7Z,EAAMpP,KAAO4nP,GAGjBhD,KAAU,EACVnR,GAAQ,EAER,MACF,KA1wBgB,MAgxBd,IAJAmR,KAAiB,EAAPnR,EACVA,GAAe,EAAPA,EAGDA,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEA,IAAY,MAAPmR,KAAqBA,IAAS,GAAM,OAAS,CAChD/N,EAAK5tN,IAAM,+BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CASA,GARAx4O,EAAMxiB,OAAgB,MAAPg4P,EAIfA,EAAO,EACPnR,EAAO,EAEPrkO,EAAMpP,KAAOwnP,GACT7wL,IAAUgiL,GAAW,MAAM8Q,EAEjC,KAAKjC,GACHp4O,EAAMpP,KAryBM,MAuyBd,KAvyBc,MAyyBZ,GADAm6J,EAAO/qJ,EAAMxiB,OACTutK,EAAM,CAGR,GAFIA,EAAO+jF,IAAQ/jF,EAAO+jF,GACtB/jF,EAAOxlK,IAAQwlK,EAAOxlK,GACb,IAATwlK,EAAc,MAAMsvF,EAExB/1J,EAAOhhG,IAAI8G,EAAM8jE,SAASjnE,EAAMA,EAAO8jK,GAAOivF,GAE9ClL,GAAQ/jF,EACR9jK,GAAQ8jK,EACRxlK,GAAQwlK,EACRivF,GAAOjvF,EACP/qJ,EAAMxiB,QAAUutK,EAChB,KACF,CAEA/qJ,EAAMpP,KAAOsnP,GACb,MACF,KAzzBe,MA2zBb,KAAO7T,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAkBA,GAhBArkO,EAAM84O,KAAkC,KAAnB,GAAPtD,GAEdA,KAAU,EACVnR,GAAQ,EAERrkO,EAAM+4O,MAAmC,GAAnB,GAAPvD,GAEfA,KAAU,EACVnR,GAAQ,EAERrkO,EAAM64O,MAAmC,GAAnB,GAAPrD,GAEfA,KAAU,EACVnR,GAAQ,EAGJrkO,EAAM84O,KAAO,KAAO94O,EAAM+4O,MAAQ,GAAI,CACxCtR,EAAK5tN,IAAM,sCACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAGAx4O,EAAM8uO,KAAO,EACb9uO,EAAMpP,KAz1BS,MA21BjB,KA31BiB,MA41Bf,KAAOoP,EAAM8uO,KAAO9uO,EAAM64O,OAAO,CAE/B,KAAOxU,EAAO,GAAG,CACf,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEArkO,EAAM02O,KAAKjvN,EAAMznB,EAAM8uO,SAAmB,EAAP0G,EAEnCA,KAAU,EACVnR,GAAQ,CAEV,CACA,KAAOrkO,EAAM8uO,KAAO,IAClB9uO,EAAM02O,KAAKjvN,EAAMznB,EAAM8uO,SAAW,EAapC,GAPA9uO,EAAM+1O,QAAU/1O,EAAMg5O,OACtBh5O,EAAMi2O,QAAU,EAEhBc,EAAO,CAAE1S,KAAMrkO,EAAMi2O,SACrBn7E,EAAM27E,GAz5BA,EAy5BgBz2O,EAAM02O,KAAM,EAAG,GAAI12O,EAAM+1O,QAAS,EAAG/1O,EAAM82O,KAAMC,GACvE/2O,EAAMi2O,QAAUc,EAAK1S,KAEjBvpE,EAAK,CACP2sE,EAAK5tN,IAAM,2BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAEAx4O,EAAM8uO,KAAO,EACb9uO,EAAMpP,KA/3BU,MAi4BlB,KAj4BkB,MAk4BhB,KAAOoP,EAAM8uO,KAAO9uO,EAAM84O,KAAO94O,EAAM+4O,OAAO,CAC5C,KACElD,EAAO71O,EAAM+1O,QAAQP,GAAS,GAAKx1O,EAAMi2O,SAAW,GACpDqB,EAAYzB,IAAS,GACrB0B,EAAW1B,IAAS,GAAM,IAC1B2B,EAAkB,MAAP3B,IAEP,GAAexR,IANZ,CAQP,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CAEV,CACA,GAAImT,EAAW,GAEbhC,KAAU8B,EACVjT,GAAQiT,EAERt3O,EAAM02O,KAAK12O,EAAM8uO,QAAU0I,MAExB,CACH,GAAiB,KAAbA,EAAiB,CAGnB,IADAt6P,EAAIo6P,EAAY,EACTjT,EAAOnnP,GAAG,CACf,GAAa,IAAT4xP,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAMA,GAHAmR,KAAU8B,EACVjT,GAAQiT,EAEW,IAAft3O,EAAM8uO,KAAY,CACpBrH,EAAK5tN,IAAM,4BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACA3rP,EAAMmT,EAAM02O,KAAK12O,EAAM8uO,KAAO,GAC9B/jF,EAAO,GAAY,EAAPyqF,GAEZA,KAAU,EACVnR,GAAQ,CAEV,MACK,GAAiB,KAAbmT,EAAiB,CAGxB,IADAt6P,EAAIo6P,EAAY,EACTjT,EAAOnnP,GAAG,CACf,GAAa,IAAT4xP,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAGAmR,KAAU8B,EACVjT,GAAQiT,EAERzqP,EAAM,EACNk+J,EAAO,GAAY,EAAPyqF,GAEZA,KAAU,EACVnR,GAAQ,CAEV,KACK,CAGH,IADAnnP,EAAIo6P,EAAY,EACTjT,EAAOnnP,GAAG,CACf,GAAa,IAAT4xP,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAGAmR,KAAU8B,EACVjT,GAAQiT,EAERzqP,EAAM,EACNk+J,EAAO,IAAa,IAAPyqF,GAEbA,KAAU,EACVnR,GAAQ,CAEV,CACA,GAAIrkO,EAAM8uO,KAAO/jF,EAAO/qJ,EAAM84O,KAAO94O,EAAM+4O,MAAO,CAChDtR,EAAK5tN,IAAM,4BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACA,KAAOztF,KACL/qJ,EAAM02O,KAAK12O,EAAM8uO,QAAUjiP,CAE/B,CACF,CAGA,GAAImT,EAAMpP,OAAS4nP,GAAO,MAG1B,GAAwB,IAApBx4O,EAAM02O,KAAK,KAAY,CACzBjP,EAAK5tN,IAAM,uCACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAcA,GATAx4O,EAAMi2O,QAAU,EAEhBc,EAAO,CAAE1S,KAAMrkO,EAAMi2O,SACrBn7E,EAAM27E,GA3hCD,EA2hCgBz2O,EAAM02O,KAAM,EAAG12O,EAAM84O,KAAM94O,EAAM+1O,QAAS,EAAG/1O,EAAM82O,KAAMC,GAG9E/2O,EAAMi2O,QAAUc,EAAK1S,KAGjBvpE,EAAK,CACP2sE,EAAK5tN,IAAM,8BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAaA,GAXAx4O,EAAMk2O,SAAW,EAGjBl2O,EAAMg2O,SAAWh2O,EAAMi5O,QACvBlC,EAAO,CAAE1S,KAAMrkO,EAAMk2O,UACrBp7E,EAAM27E,GA3iCA,EA2iCgBz2O,EAAM02O,KAAM12O,EAAM84O,KAAM94O,EAAM+4O,MAAO/4O,EAAMg2O,SAAU,EAAGh2O,EAAM82O,KAAMC,GAG1F/2O,EAAMk2O,SAAWa,EAAK1S,KAGlBvpE,EAAK,CACP2sE,EAAK5tN,IAAM,wBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAGA,GADAx4O,EAAMpP,KAAOynP,GACT9wL,IAAUgiL,GAAW,MAAM8Q,EAEjC,KAAKhC,GACHr4O,EAAMpP,KAAO0nP,GAEf,KAAKA,GACH,GAAIxJ,GAAQ,GAAKvpP,GAAQ,IAAK,CAE5BkiP,EAAKiF,SAAWsN,EAChBvS,EAAK+E,UAAYjnP,EACjBkiP,EAAK0F,QAAUlmP,EACfwgP,EAAKyF,SAAW4B,EAChB9uO,EAAMw1O,KAAOA,EACbx1O,EAAMqkO,KAAOA,EAEb4Q,GAAQxN,EAAM0N,GAEd6E,EAAMvS,EAAKiF,SACXpoJ,EAASmjJ,EAAKnjJ,OACd/+F,EAAOkiP,EAAK+E,UACZvlP,EAAOwgP,EAAK0F,QACZ/iP,EAAQq9O,EAAKr9O,MACb0kP,EAAOrH,EAAKyF,SACZsI,EAAOx1O,EAAMw1O,KACbnR,EAAOrkO,EAAMqkO,KAGTrkO,EAAMpP,OAASsnP,KACjBl4O,EAAMw5K,MAAQ,GAEhB,KACF,CAEA,IADAx5K,EAAMw5K,KAAO,EAEXq8D,EAAO71O,EAAM+1O,QAAQP,GAAS,GAAKx1O,EAAMi2O,SAAW,GACpDqB,EAAYzB,IAAS,GACrB0B,EAAW1B,IAAS,GAAM,IAC1B2B,EAAkB,MAAP3B,IAEPyB,GAAajT,IANV,CAQP,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CAEV,CACA,GAAIkT,KAAsB,IAAVA,GAAuB,CAIrC,IAHA0C,EAAY3C,EACZ4C,EAAU3C,EACV4C,EAAW3C,EAET3B,EAAO71O,EAAM+1O,QAAQoE,IACX3E,GAAS,GAAMyE,EAAYC,GAAY,IAAoCD,IACrF3C,EAAYzB,IAAS,GACrB0B,EAAW1B,IAAS,GAAM,IAC1B2B,EAAkB,MAAP3B,IAENoE,EAAY3C,GAAcjT,IAPxB,CASP,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CAEV,CAEAmR,KAAUyE,EACV5V,GAAQ4V,EAERj6O,EAAMw5K,MAAQygE,CAChB,CAOA,GALAzE,KAAU8B,EACVjT,GAAQiT,EAERt3O,EAAMw5K,MAAQ89D,EACdt3O,EAAMxiB,OAASg6P,EACC,IAAZD,EAAe,CAIjBv3O,EAAMpP,KAjmCO,MAkmCb,KACF,CACA,GAAc,GAAV2mP,EAAc,CAEhBv3O,EAAMw5K,MAAQ,EACdx5K,EAAMpP,KAAOsnP,GACb,KACF,CACA,GAAc,GAAVX,EAAc,CAChB9P,EAAK5tN,IAAM,8BACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACAx4O,EAAM0xI,MAAkB,GAAV6lG,EACdv3O,EAAMpP,KApnCY,MAsnCpB,KAtnCoB,MAunClB,GAAIoP,EAAM0xI,MAAO,CAGf,IADAx0J,EAAI8iB,EAAM0xI,MACH2yF,EAAOnnP,GAAG,CACf,GAAa,IAAT4xP,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEArkO,EAAMxiB,QAAUg4P,GAAS,GAAKx1O,EAAM0xI,OAAS,EAE7C8jG,KAAUx1O,EAAM0xI,MAChB2yF,GAAQrkO,EAAM0xI,MAEd1xI,EAAMw5K,MAAQx5K,EAAM0xI,KACtB,CAEA1xI,EAAMk5O,IAAMl5O,EAAMxiB,OAClBwiB,EAAMpP,KAzoCU,MA2oClB,KA3oCkB,MA4oChB,KACEilP,EAAO71O,EAAMg2O,SAASR,GAAS,GAAKx1O,EAAMk2O,UAAY,GACtDoB,EAAYzB,IAAS,GACrB0B,EAAW1B,IAAS,GAAM,IAC1B2B,EAAkB,MAAP3B,IAEP,GAAexR,IANZ,CAQP,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CAEV,CACA,KAAe,IAAVkT,GAAuB,CAI1B,IAHA0C,EAAY3C,EACZ4C,EAAU3C,EACV4C,EAAW3C,EAET3B,EAAO71O,EAAMg2O,SAASmE,IACZ3E,GAAS,GAAMyE,EAAYC,GAAY,IAAoCD,IACrF3C,EAAYzB,IAAS,GACrB0B,EAAW1B,IAAS,GAAM,IAC1B2B,EAAkB,MAAP3B,IAENoE,EAAY3C,GAAcjT,IAPxB,CASP,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CAEV,CAEAmR,KAAUyE,EACV5V,GAAQ4V,EAERj6O,EAAMw5K,MAAQygE,CAChB,CAMA,GAJAzE,KAAU8B,EACVjT,GAAQiT,EAERt3O,EAAMw5K,MAAQ89D,EACA,GAAVC,EAAc,CAChB9P,EAAK5tN,IAAM,wBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CACAx4O,EAAM+vB,OAASynN,EACfx3O,EAAM0xI,MAAoB,GAAZ,EACd1xI,EAAMpP,KA9rCa,MAgsCrB,KAhsCqB,MAisCnB,GAAIoP,EAAM0xI,MAAO,CAGf,IADAx0J,EAAI8iB,EAAM0xI,MACH2yF,EAAOnnP,GAAG,CACf,GAAa,IAAT4xP,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEArkO,EAAM+vB,QAAUylN,GAAS,GAAKx1O,EAAM0xI,OAAS,EAE7C8jG,KAAUx1O,EAAM0xI,MAChB2yF,GAAQrkO,EAAM0xI,MAEd1xI,EAAMw5K,MAAQx5K,EAAM0xI,KACtB,CAEA,GAAI1xI,EAAM+vB,OAAS/vB,EAAMo1O,KAAM,CAC7B3N,EAAK5tN,IAAM,gCACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAGAx4O,EAAMpP,KAztCW,MA2tCnB,KA3tCmB,MA4tCjB,GAAa,IAATrL,EAAc,MAAM80P,EAExB,GADAtvF,EAAOoqF,EAAO5vP,EACVya,EAAM+vB,OAASg7H,EAAM,CAEvB,GADAA,EAAO/qJ,EAAM+vB,OAASg7H,EAClBA,EAAO/qJ,EAAMq1O,OACXr1O,EAAMo2O,KAAM,CACd3O,EAAK5tN,IAAM,gCACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAiBEztF,EAAO/qJ,EAAMs1O,OACfvqF,GAAQ/qJ,EAAMs1O,MACd7oP,EAAOuT,EAAMisO,MAAQlhF,GAGrBt+J,EAAOuT,EAAMs1O,MAAQvqF,EAEnBA,EAAO/qJ,EAAMxiB,SAAUutK,EAAO/qJ,EAAMxiB,QACxCs4P,EAAc91O,EAAM3hB,MACtB,MAEEy3P,EAAcxxJ,EACd73F,EAAOutP,EAAMh6O,EAAM+vB,OACnBg7H,EAAO/qJ,EAAMxiB,OAEXutK,EAAOxlK,IAAQwlK,EAAOxlK,GAC1BA,GAAQwlK,EACR/qJ,EAAMxiB,QAAUutK,EAChB,GACEzmE,EAAO01J,KAASlE,EAAYrpP,aACnBs+J,GACU,IAAjB/qJ,EAAMxiB,SAAgBwiB,EAAMpP,KAAO0nP,IACvC,MACF,KA5wCiB,MA6wCf,GAAa,IAAT/yP,EAAc,MAAM80P,EACxB/1J,EAAO01J,KAASh6O,EAAMxiB,OACtB+H,IACAya,EAAMpP,KAAO0nP,GACb,MACF,KAAKC,GACH,GAAIv4O,EAAMotO,KAAM,CAEd,KAAO/I,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IAEA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAaA,GAXA8Q,GAAQ5vP,EACRkiP,EAAKkF,WAAawI,EAClBn1O,EAAM+nD,OAASotL,EACG,EAAbn1O,EAAMotO,MAAa+H,IACtB1N,EAAKiB,MAAQ1oO,EAAMuzB,MAEdvzB,EAAM+wD,MAAQ83K,GAAQ7oO,EAAMuzB,MAAO+wD,EAAQ6wJ,EAAM6E,EAAM7E,GAAQ1M,GAAUzoO,EAAMuzB,MAAO+wD,EAAQ6wJ,EAAM6E,EAAM7E,IAGjHA,EAAO5vP,EAEW,EAAbya,EAAMotO,OAAcptO,EAAM+wD,MAAQykL,EAAOiD,GAAQjD,MAAWx1O,EAAMuzB,MAAO,CAC5Ek0M,EAAK5tN,IAAM,uBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAEAhD,EAAO,EACPnR,EAAO,CAGT,CACArkO,EAAMpP,KAjzCI,MAmzCZ,KAnzCY,MAozCV,GAAIoP,EAAMotO,MAAQptO,EAAM+wD,MAAO,CAE7B,KAAOszK,EAAO,IAAI,CAChB,GAAa,IAATyK,EAAc,MAAMuL,EACxBvL,IACA0G,GAAQprP,EAAMnD,MAAWo9O,EACzBA,GAAQ,CACV,CAEA,GAAkB,EAAbrkO,EAAMotO,MAAaoI,KAAwB,WAAdx1O,EAAM+nD,OAAqB,CAC3D0/K,EAAK5tN,IAAM,yBACX7Z,EAAMpP,KAAO4nP,GACb,KACF,CAEAhD,EAAO,EACPnR,EAAO,CAGT,CACArkO,EAAMpP,KAv0CE,MAy0CV,KAz0CU,MA00CRkqK,EAAM68E,GACN,MAAM0C,EACR,KAAK7B,GACH19E,EAAMg9E,GACN,MAAMuC,EACR,KA70CS,MA80CP,OAAOtC,GAGT,QACE,OAAOF,GAyCb,OA3BApQ,EAAKiF,SAAWsN,EAChBvS,EAAK+E,UAAYjnP,EACjBkiP,EAAK0F,QAAUlmP,EACfwgP,EAAKyF,SAAW4B,EAChB9uO,EAAMw1O,KAAOA,EACbx1O,EAAMqkO,KAAOA,GAGTrkO,EAAMisO,OAAUkJ,IAAS1N,EAAK+E,WAAaxsO,EAAMpP,KAAO4nP,KACvCx4O,EAAMpP,KAAO2nP,IAAShxL,IAAUkwL,MAC/CmC,GAAanS,EAAMA,EAAKnjJ,OAAQmjJ,EAAKiF,SAAUyI,EAAO1N,EAAK+E,WAEjE0I,GAAOzN,EAAKyF,SACZiI,GAAQ1N,EAAK+E,UACb/E,EAAK4F,UAAY6H,EACjBzN,EAAKkF,WAAawI,EAClBn1O,EAAM+nD,OAASotL,EACG,EAAbn1O,EAAMotO,MAAa+H,IACtB1N,EAAKiB,MAAQ1oO,EAAMuzB,MAChBvzB,EAAM+wD,MAAQ83K,GAAQ7oO,EAAMuzB,MAAO+wD,EAAQ6wJ,EAAM1N,EAAKiF,SAAWyI,GAAQ1M,GAAUzoO,EAAMuzB,MAAO+wD,EAAQ6wJ,EAAM1N,EAAKiF,SAAWyI,IAEnI1N,EAAKC,UAAY1nO,EAAMqkO,MAAQrkO,EAAMu1F,KAAO,GAAK,IAC9Bv1F,EAAMpP,OAASsnP,GAAO,IAAM,IAC5Bl4O,EAAMpP,OAASynP,IAAQr4O,EAAMpP,OAASwnP,GAAQ,IAAM,IACzD,IAARlD,GAAsB,IAATC,GAAe5tL,IAAUkwL,KAAe38E,IAAQ48E,KACjE58E,EAAMivE,IAEDjvE,CAAG,EAoGX0/E,WAhGmB/S,IAElB,GAAI0R,GAAkB1R,GACpB,OAAOoQ,GAGT,IAAI73O,EAAQynO,EAAKznO,MAKjB,OAJIA,EAAM3hB,SACR2hB,EAAM3hB,OAAS,MAEjBopP,EAAKznO,MAAQ,KACN03O,EAAM,EAsFd+C,iBAlFwB,CAAChT,EAAM1zD,KAG9B,GAAIolE,GAAkB1R,GAAS,OAAOoQ,GACtC,MAAM73O,EAAQynO,EAAKznO,MACnB,OAAkB,EAAbA,EAAMotO,MAGXptO,EAAM+zK,KAAOA,EACbA,EAAK5sL,MAAO,EACLuwP,IAL8BG,EAKxB,EAyEd6C,qBArE4B,CAACjT,EAAM5gE,KAClC,MAAMorE,EAAaprE,EAAWrpL,OAE9B,IAAIwiB,EACA26O,EACA7/E,EAGJ,OAAIq+E,GAAkB1R,GAAgBoQ,IACtC73O,EAAQynO,EAAKznO,MAEM,IAAfA,EAAMotO,MAAcptO,EAAMpP,OAASqnP,GAC9BJ,GAIL73O,EAAMpP,OAASqnP,KACjB0C,EAAS,EAETA,EAASlS,GAAUkS,EAAQ9zE,EAAYorE,EAAY,GAC/C0I,IAAW36O,EAAMuzB,OACZukN,IAKXh9E,EAAM8+E,GAAanS,EAAM5gE,EAAYorE,EAAYA,GAC7Cn3E,GACF96J,EAAMpP,KAx7CK,MAy7CJmnP,KAET/3O,EAAM24O,SAAW,EAEVjB,KAAM,EAqCdkD,YAxBiB,sCAkFdC,GApCJ,WAEEn+P,KAAKw9C,KAAa,EAElBx9C,KAAK8d,KAAa,EAElB9d,KAAK49P,OAAa,EAElB59P,KAAKsjI,GAAa,EAElBtjI,KAAKg1J,MAAa,KAElBh1J,KAAK69P,UAAa,EAWlB79P,KAAKmM,KAAa,GAIlBnM,KAAK+0P,QAAa,GAIlB/0P,KAAK80P,KAAa,EAElB90P,KAAKyK,MAAa,CACpB,EAIA,MAAM,GAAWtK,OAAOY,UAAU6O,UAK5B,WACJ28O,GAAU,SAAEI,GAAQ,KACpBG,GAAI,aAAEC,GAAY,YAAEC,GAAW,eAAEE,GAAc,aAAEC,GAAY,YAAEC,IAC7Dd,GAkFJ,SAAS8R,GAAU/5P,GACjBrE,KAAKqE,QAAUuxP,GAAOh1P,OAAO,CAC3B02P,UAAW,MACXhD,WAAY,GACZl6H,GAAI,IACH/1H,GAAW,CAAC,GAEf,MAAMkzP,EAAMv3P,KAAKqE,QAIbkzP,EAAIt6C,KAAQs6C,EAAIjD,YAAc,GAAOiD,EAAIjD,WAAa,KACxDiD,EAAIjD,YAAciD,EAAIjD,WACC,IAAnBiD,EAAIjD,aAAoBiD,EAAIjD,YAAc,OAI3CiD,EAAIjD,YAAc,GAAOiD,EAAIjD,WAAa,KACzCjwP,GAAWA,EAAQiwP,aACvBiD,EAAIjD,YAAc,IAKfiD,EAAIjD,WAAa,IAAQiD,EAAIjD,WAAa,KAGvB,GAAjBiD,EAAIjD,aACPiD,EAAIjD,YAAc,KAItBt0P,KAAKwP,IAAS,EACdxP,KAAKm9B,IAAS,GACdn9B,KAAKy3P,OAAS,EACdz3P,KAAK81P,OAAS,GAEd91P,KAAK+qP,KAAS,IAAI+L,GAClB92P,KAAK+qP,KAAK+E,UAAY,EAEtB,IAAI/jP,EAAUoxP,GAAYN,aACxB78P,KAAK+qP,KACLwM,EAAIjD,YAGN,GAAIvoP,IAAW+gP,GACb,MAAM,IAAIhrO,MAAMuqO,GAAStgP,IAQ3B,GALA/L,KAAKyvB,OAAS,IAAI0uO,GAElBhB,GAAYY,iBAAiB/9P,KAAK+qP,KAAM/qP,KAAKyvB,QAGzC8nO,EAAIptE,aAEwB,iBAAnBotE,EAAIptE,WACbotE,EAAIptE,WAAa+rE,GAAQC,WAAWoB,EAAIptE,YACG,yBAAlC,GAASlpL,KAAKs2P,EAAIptE,cAC3BotE,EAAIptE,WAAa,IAAI5sH,WAAWg6L,EAAIptE,aAElCotE,EAAIt6C,MACNlxM,EAASoxP,GAAYa,qBAAqBh+P,KAAK+qP,KAAMwM,EAAIptE,YACrDp+K,IAAW+gP,KACb,MAAM,IAAIhrO,MAAMuqO,GAAStgP,GAIjC,CAiNA,SAASsyP,GAAU3wP,EAAOrJ,GACxB,MAAMi6P,EAAW,IAAIF,GAAU/5P,GAK/B,GAHAi6P,EAAShzP,KAAKoC,GAGV4wP,EAAS9uP,IAAK,MAAM8uP,EAASnhO,KAAOkvN,GAASiS,EAAS9uP,KAE1D,OAAO8uP,EAASpzN,MAClB,CA/LAkzN,GAAUr9P,UAAUuK,KAAO,SAAU+hC,EAAMyqN,GACzC,MAAM/M,EAAO/qP,KAAK+qP,KACZuM,EAAYt3P,KAAKqE,QAAQizP,UACzBntE,EAAanqL,KAAKqE,QAAQ8lL,WAChC,IAAIp+K,EAAQgsP,EAAawG,EAEzB,GAAIv+P,KAAKy3P,MAAO,OAAO,EAevB,IAbiCM,EAA7BD,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBnL,GAAWJ,GAGxB,yBAAxB,GAAStrP,KAAKosC,GAChB09M,EAAKr9O,MAAQ,IAAI6vD,WAAWlwB,GAE5B09M,EAAKr9O,MAAQ2/B,EAGf09M,EAAK0F,QAAU,EACf1F,EAAKyF,SAAWzF,EAAKr9O,MAAM5M,SAElB,CAqBP,IApBuB,IAAnBiqP,EAAK+E,YACP/E,EAAKnjJ,OAAS,IAAIrqC,WAAW+5L,GAC7BvM,EAAKiF,SAAW,EAChBjF,EAAK+E,UAAYwH,GAGnBvrP,EAASoxP,GAAYE,QAAQtS,EAAMgN,GAE/BhsP,IAAWihP,IAAe7iE,IAC5Bp+K,EAASoxP,GAAYa,qBAAqBjT,EAAM5gE,GAE5Cp+K,IAAW+gP,GACb/gP,EAASoxP,GAAYE,QAAQtS,EAAMgN,GAC1BhsP,IAAWohP,KAEpBphP,EAASihP,KAKNjC,EAAKyF,SAAW,GAChBzkP,IAAWghP,IACXhC,EAAKznO,MAAMotO,KAAO,GACK,IAAvBrjN,EAAK09M,EAAK0F,UAEf0M,GAAYR,aAAa5R,GACzBh/O,EAASoxP,GAAYE,QAAQtS,EAAMgN,GAGrC,OAAQhsP,GACN,KAAKmhP,GACL,KAAKC,GACL,KAAKH,GACL,KAAKI,GAGH,OAFAptP,KAAKi4P,MAAMlsP,GACX/L,KAAKy3P,OAAQ,GACN,EAOX,GAFA8G,EAAiBxT,EAAK+E,UAElB/E,EAAKiF,WACgB,IAAnBjF,EAAK+E,WAAmB/jP,IAAWghP,IAErC,GAAwB,WAApB/sP,KAAKqE,QAAQ+1H,GAAiB,CAEhC,IAAIokI,EAAgBtI,GAAQW,WAAW9L,EAAKnjJ,OAAQmjJ,EAAKiF,UAErDyO,EAAO1T,EAAKiF,SAAWwO,EACvBE,EAAUxI,GAAQO,WAAW1L,EAAKnjJ,OAAQ42J,GAG9CzT,EAAKiF,SAAWyO,EAChB1T,EAAK+E,UAAYwH,EAAYmH,EACzBA,GAAM1T,EAAKnjJ,OAAOhhG,IAAImkP,EAAKnjJ,OAAOp2B,SAASgtL,EAAeA,EAAgBC,GAAO,GAErFz+P,KAAKg4P,OAAO0G,EAEd,MACE1+P,KAAKg4P,OAAOjN,EAAKnjJ,OAAO9mG,SAAWiqP,EAAKiF,SAAWjF,EAAKnjJ,OAASmjJ,EAAKnjJ,OAAOp2B,SAAS,EAAGu5K,EAAKiF,WAMpG,GAAIjkP,IAAW+gP,IAA2B,IAAnByR,EAAvB,CAGA,GAAIxyP,IAAWghP,GAIb,OAHAhhP,EAASoxP,GAAYW,WAAW99P,KAAK+qP,MACrC/qP,KAAKi4P,MAAMlsP,GACX/L,KAAKy3P,OAAQ,GACN,EAGT,GAAsB,IAAlB1M,EAAKyF,SAAgB,KAV4B,CAWvD,CAEA,OAAO,CACT,EAWA4N,GAAUr9P,UAAUi3P,OAAS,SAAUjC,GACrC/1P,KAAK81P,OAAOxqP,KAAKyqP,EACnB,EAYAqI,GAAUr9P,UAAUk3P,MAAQ,SAAUlsP,GAEhCA,IAAW+gP,KACW,WAApB9sP,KAAKqE,QAAQ+1H,GACfp6H,KAAKkrC,OAASlrC,KAAK81P,OAAO9sO,KAAK,IAE/BhpB,KAAKkrC,OAAS0qN,GAAOC,cAAc71P,KAAK81P,SAG5C91P,KAAK81P,OAAS,GACd91P,KAAKwP,IAAMzD,EACX/L,KAAKm9B,IAAMn9B,KAAK+qP,KAAK5tN,GACvB,EA+EA,IAMIwhO,GAAc,CACjBC,QAPiBR,GAQjBf,QAPegB,GAQfQ,WA1BD,SAAsBnxP,EAAOrJ,GAG3B,OAFAA,EAAUA,GAAW,CAAC,GACd44M,KAAM,EACPohD,GAAU3wP,EAAOrJ,EAC1B,EAuBCy6P,OAPcT,GAQdhG,UAPe/L,IAUhB,MAAM,QAAE6L,GAAO,QAAExD,GAAO,WAAEyD,GAAU,KAAEZ,IAASU,IAEzC,QAAE0G,GAAO,QAAEvB,GAAO,WAAEwB,GAAU,OAAEC,IAAWH,GAIjD,IAUII,GAAO,CACV5G,QAXeA,GAYfxD,QAXeA,GAYfyD,WAXkBA,GAYlBZ,KAXYA,GAYZoH,QAXeA,GAYfvB,QAXeA,GAYfwB,WAXkBA,GAYlBC,OAXcA,GAYdzG,UAXiB/L,ICxsNX,MAAM0S,GAAyBzuP,IAClC,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,kBAC7Bo8I,EAAa8kE,IAAkB,IAAAx9P,UAAS,KACxCigD,EAAMC,IAAW,IAAAlgD,UAASmgD,EAAc,cAAd,WAC3Bs9M,GAAgB,IAAA57P,QAAO,IAAI+C,KAC3B84P,GAAgB,IAAA77P,QAAO,IAAI+C,MACjC,IAAA3E,YAAU,MACLggD,GAAQC,EAAQC,EAAc,cAAd,WACjB,MAAMw9M,EAAY,IAAIC,UAAU,GAAG9uP,EAAM+uP,oBAAoB/uP,EAAMgvP,WACnEH,EAAUI,WAAa,cACvB,MAAMC,GAAc,IAAIrJ,aAAcC,OAAO,QAC7C,IAAIzpJ,EAWJ,OAVAwyJ,EAAUM,OAAS,KACf9yJ,EAAW0a,aAAY,KACnB83I,EAAU5hM,KAAKiiM,EAAY,GAC5B,IAAK,EAEZL,EAAU/8I,UAAapgF,IACnB,MAAMoL,EAAOpL,EAAMoL,KACb+a,EAAU22M,GAAK1B,QAAQhwN,EAAM,CAAE+sF,GAAI,WACzCulI,EAAgBv3M,EAAQ,EAErB,KACHm3B,cAAcqtB,GACdwyJ,EAAU14L,OAAO,CACpB,GACF,IACH,MAAMi5L,EAAmBv3M,IACrB,MAAMsvM,EAAO11K,KAAKC,MAAM75B,GAClB+xI,EAAc,GACpB,IAAK,MAAM/sL,KAAOsqP,EACd,GAAItqP,EAAImV,SAAS,SAAU,CACvB,MAAM8zH,EAAQjpI,EAAI+kB,MAAM,KAAK,GACvBytO,EAAe59K,KAAKC,MAAMy1K,EAAKtqP,IAC/B5M,EAAIwhF,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBjpI,EAAI+kB,MAAM,KAAK,OAAO0tO,KACjEC,EAAcC,EAAgB1pH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GAC5FyI,EAAUhB,EAAcz7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DI,EAAUlB,EAAcx7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DK,EAAa,CACfl0P,KAAM3L,EACN08B,KAAM0iO,EAAaI,KACnBM,UAAWjqH,EACXkqH,IAAKX,EAAaK,IAClBO,SAAUC,EAAYb,EAAaK,IAAKE,GACxCO,QAAS,GACTC,IAAKf,EAAaM,IAClBU,SAAUH,EAAYb,EAAaM,IAAKE,GACxCS,QAAS,GACTC,OAAQC,EAAW1qH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GACjFoI,cACAkB,iBAAkBA,GAAkBlB,GACpCmB,gBAAiB,IAErB/B,EAAcx7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaM,KAC1Df,EAAcz7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaK,KAC1D9lE,EAAY7uL,KAAK+0P,EACrB,CAEJ,MAAMa,EAAiB/mE,EAAYptL,QAAOszP,GAAc9vP,EAAM4wP,kBAAkBvuP,KAAI0lB,GAAMA,EAAG9N,QAAOjI,SAAS89O,EAAWnjO,QAAOnwB,QAAO,CAAChK,EAAGrC,EAAG2C,IAAMA,EAAEwvD,WAAU07E,GAAOA,EAAGrxG,OAASn6B,EAAEm6B,SAAWx8B,IAC/Lu+P,EAAeiC,EAAe,EAE5BH,EAAa,CAAC1qH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KACvC,MAAM0J,EAAap/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBn5G,MAC1D,IAAImkO,EAAmB,EACnBC,EAAW,EACf,GAAI5J,EAAK,GAAGrhH,oBAAwBn5G,KAAS,CACzC,MAAMqkO,EAAiBv/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,oBAAwBn5G,MAClEmkO,EACIE,EAAeC,kBAAoBJ,EAAWI,iBAClDF,EAAWC,EAAeE,UAAYL,EAAWK,QACrD,MAEIJ,EAAmBD,EAAWI,iBAC9BF,EAAWF,EAAWK,SAE1B,IAAIC,EAAUJ,GAAY,EAAM,EAAID,EAGpC,OAFAK,EAAUA,EAAU,EAAIA,EAAU,EAAIA,IACrBf,EAAMJ,GAAOp+P,KAAKkkG,IAAI,GAAIq7J,IAAUlmM,QAAQ,EAChD,EAEXukM,EAAkB,CAAC1pH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KAC5C,GAAIA,EAAK,GAAGrhH,uBAA2Bn5G,KAAS,CAC5C,MACMykO,EADe3/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,uBAA2Bn5G,MACpC0kO,WAAa,EAI5C,MAAO,MAHsBjB,EAAMJ,GAAO,EACDoB,GACLA,EAAa,KAAKnmM,QAAQ,KAElE,CACA,MAAO,KAAK,EAEVilM,EAAc,CAACoB,EAAcC,IAC3BD,GAAgBC,EACT,uBAGA,uBAGTd,EAAoB3gQ,GAClBA,GAAS,EACF,uBAGA,uBAGf,OAAQ,kBAAoB,KAAa,CAAE09C,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,2CACpCsJ,EAAMia,OAAS,kBAAoB,KAAM,KAAMja,EAAMia,OACrDja,EAAMwwC,UAAY,kBAAoB,IAAK,CAAE95C,UAAW,2CAA4Cm+C,wBAAyB,CAAEC,OAAQ90C,EAAMwwC,aACjJ,kBAAoB,MAAO,CAAE95C,UAAW,4CAA8CkzL,EAAYr5L,OAASq5L,EAAYvnL,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoBkkP,GAAkB,CAAEx3O,IAAK,cAAc1M,IAAK8pB,MAAOgc,EAAKtJ,KAAMjF,KAAM1nB,EAAM4wP,kBAAkBj1P,MAAKosB,GAAMA,EAAG9N,QAAUgc,EAAKtJ,QAAOjF,MAAQ,GAAI8yB,IAAKvkB,EAAKtJ,KAAM8nN,OAAQ,GAAGx+M,EAAK+5N,MAAOpb,OAAQ,GAAG3+M,EAAKm6N,MAAO7b,aAAct+M,EAAKg6N,SAAUtb,aAAc1+M,EAAKo6N,SAAU/b,SAAUt0O,EAAM4wP,kBAAkBzgQ,GAAGmkP,SAAUI,UAAW10O,EAAM4wP,kBAAkBzgQ,GAAGukP,UAAWF,cAAe,gDAAkD,IACjkBx0O,EAAMwxP,UAAY,kBAAoB,MAAO,CAAE96P,UAAW,wCACtD,kBAAoB,IAAK,KAAMsJ,EAAMwxP,aAAc,ECvH1DC,GAAgB,EAAGC,gBAAeC,mBAAkBx9M,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,mBAC5H,kBAAoB,MAAO,CAAEA,UAAW,mCACpC,kBAAoB,KAAK,CAAE4C,IAAKo4P,EAAel3M,IAAKm3M,KACxD,kBAAoB,KAAM,CAAE98M,wBAAyB,CAC7CC,OAAQ76B,KAEhB,kBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQX,MCHPy9M,GAAqB,EAAGz8M,aAAYD,cAAa8vL,QAAO/qN,QAAO43O,kBAAiB5vC,yBACzF,MAAM,QAAEtrK,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,8BACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,4CAA8CsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,GAAU,kBAAoBwsB,GAAe,CAAE50P,IAAK,UAAUooO,EAAKhrN,WAAYgrN,OACpM,kBAAoB,KAAU,CAAEt4L,KAAMwI,EAAYjH,OAAQ,gBAAiBG,aAAc4zK,GAAsB/sK,KAAgB,ECZlI48M,GAAgB,EAAGC,WAAUC,eAAiB,kBAAoB,MAAO,CAAEt7P,UAAW,mBAC/F,kBAAoB,IAAK,CAAEA,UAAW,0BAA4Bs7P,GAClE,kBAAoB,IAAK,CAAEt7P,UAAW,wBAAyBm+C,wBAAyB,CAChFC,OAAQi9M,GAAY,OCEnBE,GAA8B,EAAGh4O,QAAOk6B,WAAU6wL,QAAOktB,qBAAoBC,oBAAmBC,uBAAsBC,sBAAqB7kN,kBAAkB,OAAQ8kN,SAAS,SACvL,MAAM,QAAE37M,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,qCACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,mDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,sBAAwBj0B,GAC/D,kBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQX,GAAY,OAEhC,kBAAoB,MAAO,CAAEz9C,UAAW,mDAAqDsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoBs0N,GAAe,CAAEC,SAAU9sB,EAAK8sB,SAAUC,UAAWx0N,EAAQ,EAAG3gC,IAAK,SAASooO,EAAK8sB,gBACpP,kBAAoB,MAAO,CAAEr7P,UAAW,qDACpC,kBAAoB,KAAU,CAAEw3C,OAAQ,gBAAiBvB,KAAMwlN,GAAqBD,GACpF,kBAAoB,OAAQ,KAAMI,GAClC,kBAAoB,KAAU,CAAEpkN,OAAQ,kBAAmBvB,KAAM0lN,GAAuBD,MAA0B,EClBzHG,GAAwB,EAAGt4O,QAAOsyB,UAAS0lB,WAAa,kBAAoB,MAAO,CAAEv7D,UAAW,sBACzG,kBAAoB,KAAK,CAAE4C,IAAK24D,EAAOzX,IAAKvgC,IAC5C,kBAAoB,KAAM,CAAEvjB,UAAW,WAAaujB,GACpD,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,CAAEvjB,UAAW,2BAA4Bm+C,wBAAyB,CAAEC,OAAQvI,MCF9FimN,GAA4B,EAAGv4O,QAAOu2B,WAAUw0L,QAAOx3L,sBAChE,MAAMilN,GAAS,SAAUjlN,GACzB,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBilN,EAAO97M,SAC/D,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,2BACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,KAAM,CAAEvjB,UAAW,gBAAkB85C,GACzD,kBAAoB,MAAO,CAAE95C,UAAW,kCAAoCsuO,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAU,kBAAoB+0N,GAAuB,CAAE11P,IAAK,sBAAsB2gC,OAAYynM,SAAa,ECT3MytB,GAAoB1yP,GAAW,kBAAoB,IAAK,CAAE2sC,KAAM3sC,EAAM4jD,QAASltD,UAAW,uBACnG,kBAAoB,KAAK,CAAEA,UAAW,6BAA8B4C,IAAK0G,EAAM+9M,QAASvjK,IAAKx6C,EAAMioL,UACnG,kBAAoB,IAAK,KAAMjoL,EAAMia,QCA5B04O,GAAwB3yP,IACjC,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBACpC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,4BACpC,kBAAoB,MAAO,CAAEA,UAAW,4CACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,IAAK,KAAMja,EAAM46C,cACzC,kBAAoB,MAAO,CAAElkD,UAAW,6CAA+CsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBuiQ,GAAkB,IAAKztB,EAAMpoO,IAAK1M,SAAU,ECRvLyiQ,GAA4B,EAAG34O,QAAO2gC,cAAaoqL,QAAOx3L,kBAAiBqlN,gBAAeC,iBAAgBp4M,oBACnH,MAAM,QAAE/D,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,sBACxC,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoB,KAAM,KAAMujB,GAChC2gC,GAAe,kBAAoB,IAAK,KAAMA,IAClD,kBAAoB,MAAO,CAAElkD,UAAW,mDAAqDsuO,GAAO3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,aAAgB,KAAM,kBAAoB,IAAK,CAAEw8C,KAAMs4L,EAAKjjB,QAASnlN,IAAK1M,EAAGuG,UAAW,wCAC7N,kBAAoB0nN,GAAO,CAAE1nN,UAAW,wCAAyC4C,IAAK2rO,EAAKlnB,QAASvjK,IAAKyqL,EAAKh9C,UAC9G,kBAAoB,IAAK,CAAEvxL,UAAW,UAAYuuO,EAAKhrN,OACvD,kBAAoB,MAAO,CAAEvjB,UAAW,0DAA4DuuO,EAAKz0L,eAC7GqiN,GAAiBC,GAAkB,kBAAoB,IAAK,CAAEp8P,UAAW,sDAAuDR,OAAQwkD,EAAgB,SAAW,QAASixF,IAAK,aAAch/F,KAAMkmN,GAAiBC,KAAmB,ECb5OC,GAAwB/yP,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,2BAA4Bf,MAAO,CAAE63C,gBAAiBxtC,EAAMgzP,YAChJ,gBAAoB,MAAO,CAAEt8P,UAAW,0CACpC,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAMgoL,QAASxtI,IAAKx6C,EAAMioL,WAC9D,gBAAoB,MAAO,CAAEvxL,UAAW,0CACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWluC,EAAMia,OACxD,gBAAoB,MAAO,CAAEvjB,UAAW,qCAAsCm+C,wBAAyB,CAAEC,OAAQ90C,EAAMitC,UCJlHgmN,GAAqBjzP,IAC9B,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBACpC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB,MAAO,CAAEA,UAAW,8BACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,IAAK,KAAMja,EAAMwwC,WACzC,kBAAoB,MAAO,CAAE95C,UAAW,+BAAiCsJ,EAAMusC,QAAQlqC,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB4iQ,GAAsB,CAAEl2P,IAAK1M,EAAG8pB,MAAOgrN,EAAKhrN,MAAOgzB,KAAMg4L,EAAKh4L,KAAMg7I,QAASg9C,EAAKh9C,QAASD,QAASi9C,EAAKj9C,QAASgrE,UAAW/tB,EAAK+tB,iBAAmB,ECPrRE,GAA2B,EAAGj5O,QAAO2gC,cAAaD,WAAUwtI,WAAUgrE,yBAAwBrxC,gBAAer3B,YAAWv1I,cAAa1H,kBAAiBs1K,eAAcswC,sBAAqBC,iBAAgBC,uBAAsBC,gBAAeC,kBAAiBC,iBAAgBC,oBAAmBrlN,mBAC3S,MAAM,QAAEsI,IAAY,SAAUnJ,GACxBq/K,EAAgB,GAAqB,SAAlB/K,EAA2B,kDAAoD,sDAA8E,OAAxBsxC,EAA+B,UAAY,eAAeM,IACxN,IAAIC,EAEAA,EADmB,SAAnBN,EACkB,kBAEM,UAAnBA,EACa,mBAGA,oBAEtB,MAAMO,EAAoB,oDAAoDD,IAO9E,OAAQ,kBAAoB,KAAa,CAAEnmN,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAWm2N,GACpC,kBAAoB,MAAO,CAAEn2N,UAAWk9P,GACpC,kBAAoB,MAAO,CAAEl9P,UAAW,oEACpC,kBAAoB,KAAM,CAAEA,UAAW,kFAAmFm+C,wBAAyB,CAAEC,OAAQ76B,KAC7J,kBAAoB,MAAO,CAAEvjB,UAAW,iFAAkFm+C,wBAAyB,CAAEC,OAAQ8F,MACjK1F,GAAe,kBAAoB,MAAO,CAAEx+C,UAAW,sEACnD,kBAAoBu3C,GAAA,EAAU,CAAEvmB,KAAM8rO,EAAiB7kN,UAAW8kN,EAAgBvlN,OAAQ40K,EAAcn2K,KAAM89I,EAAWl8I,eAAgB+kN,EAAsBjlN,aAAcA,EAAc14C,MAAO,CAAE,oBAAqB,GAbrO49P,GAGG,cAUgQr+M,KAC/P,kBAAoB,MAAO,CAAEx+C,UAAW,6CAA8Cf,MAAO,CAAE63C,gBAAiB2lN,IAC5G,kBAAoB/0C,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAK2tI,EAAU3oI,QAAS,aAAe,EChC1Fq0M,GAAU,EAAGC,YAAWC,YAAWC,YAAWC,gBACvD,MAAMC,EAAiB,IAAID,EAAUryO,MAAM,MAC3C,OAAQ,gBAAoB,MAAO,CAAElrB,UAAW,YAC5C,gBAAoB,MAAO,CAAEA,UAAW,kCACpC,gBAAoB,MAAO,CAAEA,UAAW,2BACpC,gBAAoB,OAAQ,KACxBs9P,GAAa,gBAAoB51C,GAAO,CAAE9kN,IAAK06P,EAAWx5M,IAAKs5M,IAC/DC,IACR,gBAAoB,MAAO,CAAEr9P,UAAW,2BACpC,gBAAoB,KAAM,KAAMo9P,KACxC,gBAAoB,MAAO,CAAEp9P,UAAW,0BAA4Bw9P,GAAkBA,EAAe7xP,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,sCACnK,QAAes9P,EAAY,UAAY,WACvC,IACA,gBAAoB,OAAQ,KAAM/9N,OAAW,ECZ5Ck+N,GAAe,EAAGl6O,QAAOsyB,UAASiB,sBAC3C,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEjgD,UAAW,kBACpC,gBAAoB,MAAO,CAAEA,UAAW,mCAAqCujB,GAAS,gBAAoB,KAAM,KAAMA,IACtH,gBAAoB,MAAO,CAAEvjB,UAAW,mCAAqC61C,EAAQlqC,KAAI,CAAC4iO,EAAM90O,IAAM,gBAAoB0jQ,GAAS,CAAEh3P,IAAK1M,EAAG2jQ,UAAW7uB,EAAK6uB,UAAWC,UAAW9uB,EAAK8uB,UAAWC,UAAW/uB,EAAK+uB,UAAWC,UAAWhvB,EAAKgvB,iBAAkB,ECRnQG,GAA0B,EAAGnsE,UAAS81B,UAAS9jM,QAAOu2B,WAAUoT,aAAe,kBAAoB,IAAK,CAAEltD,UAAW,0BAA2Bi2C,KAAMiX,GAC/J,kBAAoBw6J,GAAO,CAAE9kN,IAAKykN,EAASvjK,IAAKytI,IAChD,kBAAoB,IAAK,CAAEvxL,UAAW,kCAAoCujB,GAC1E,kBAAoB,IAAK,CAAEvjB,UAAW,qCAAuC85C,ICApE6jN,GAA8B,EAAGrvB,QAAOx3L,kBAAiBvzB,QAAO8lM,YAAWxlK,cACpF,MAAM,QAAE5D,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,GAAAgO,YAAa,CAAEhO,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,gCACpC,kBAAoB,GAAA+kD,UAAW,KAC3B,kBAAoB7G,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,wCAA0CsuO,EAAMz0O,QAAUy0O,EAAM3iO,KAAK4iO,GAAU,kBAAoBmvB,GAAyB,CAAEv3P,IAAK,SAASooO,EAAKhrN,WAAYgrN,OACrM,kBAAoB,IAAK,CAAEvuO,UAAW,gCAAiCi2C,KAAM4N,GAAWwlK,KAAc,ECTzGu0C,GAAyB,EAAGt3B,gBAAeh1C,UAASC,UAAShuK,QAAOgzB,WAC7E,MAAOsnN,EAAYC,IAAiB,IAAAtjQ,WAAS,IACtCujQ,EAAgBC,IAAqB,IAAAxjQ,WAAS,IAC9C4gF,EAAW6iL,IAAgB,IAAAzjQ,aAClC,IAAAC,YAAU,KACF6rO,GAAiBA,EAAchrN,SAAS,SACxCulC,MAAMylL,GACD7iO,MAAKm9C,GAAYA,EAASK,SAC1Bx9C,MAAMy6P,IACPD,EAAaC,EAAS,IAErBx8M,OAAO/8C,IACRD,QAAQC,MAAMA,EAAM,GAE5B,GACD,CAAC2hO,IACJ,MAIM63B,GAA0B,IAAAr/P,cAAY,KAHxCk/P,GAAkB,QAClBF,GAAc,KAEuD,IAKnEM,GAA0B,IAAAt/P,cAAY,KAHxCk/P,GAAkB,QAClBF,GAAc,KAEuD,IACzE,OAAQ,kBAAoB,MAAO,CAAE99P,UAAW,6BAC5C,kBAAoB,MAAO,CAAEA,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,gDAAiDwf,aAAc2+O,EAAyB94O,aAAc+4O,GAC1IP,GAAc,kBAAoBn2C,GAAO,CAAE9kN,IAAK0uL,EAASxtI,IAAKytI,EAASzoI,QAAS,UAChFi1M,GAAkB,kBAAoB,KAAQ,CAAEx0P,cAAe6xE,MACvE,kBAAoB,MAAO,CAAEp7E,UAAW,2CACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ7H,MAAY,EChCzE8nN,GAA0B,EAAG96O,QAAOuzB,kBAAiBjB,cAC9D,MAAM,QAAEoK,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,6CAA+CujB,GAAS,kBAAoB,KAAM,KAAMA,IAChI,kBAAoB,MAAO,CAAEvjB,UAAW,6CAA+C61C,EAAQlqC,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoBmkQ,GAAwB,CAAEz3P,IAAK1M,EAAG8pB,MAAOgrN,EAAKhrN,MAAOgzB,KAAMg4L,EAAKh4L,KAAMg7I,QAASg9C,EAAKh9C,QAASD,QAASi9C,EAAKj9C,QAASg1C,cAAeiI,EAAKjI,qBAAuB,ECNvSg4B,GAAyB,EAAG/6O,QAAO2gC,cAAaq6M,oBAAmBC,YAAWhgN,cAAa+sK,qBAAoBtnK,WAAUw6M,gBAAehtE,eACjJ,MAAM,QAAE/qI,EAAO,SAAEC,EAAQ,QAAEF,IAAY,YAChCi4M,EAAcC,IAAmB,IAAAnkQ,UAASypD,IAC1C26M,EAAiBC,IAAsB,IAAArkQ,UAAS0pD,GAYvD,OAXA,IAAAzpD,YAAU,KACFisD,GACAi4M,EAAgBF,GAChBI,EAAmBN,KAGnBI,EAAgB16M,GAChB46M,EAAmB36M,GACvB,GACD,CAACwC,EAASC,EAAUF,EAASm4M,IAExB,kBAAoB,MAAO,CAAE5+P,UAAW,8BAC5C,kBAAoB,MAAO,CAAEA,UAAW,uDACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQ76B,KAEhB,kBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQwgN,KAEhB,kBAAoB,KAAU,CAAE3oN,KAAMuoN,EAAWhnN,OAAQ,sBAAuBG,aAAc4zK,GAAsB/sK,IACxH,kBAAoB,MAAO,CAAEx+C,UAAW,6CAVjB,kBAAoB0nN,GAAO,CAAE9kN,IAAK87P,EAAc56M,IAAK2tI,EAAU3oI,QAAS,WAUQ,ECvBlGg2M,GAA8B,EAAGv7O,QAAO43O,kBAAiB7sB,QAAQ,CAAC,CAAC,GAAInG,gBAAgB,iBAChG,MAAM,QAAEloL,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ2wL,GAAiB5kN,IAC5D,kBAAoB,MAAO,CAAEvjB,UAAW,mDAAqDsuO,EAAMz0O,OAAS,GACxGy0O,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB6kQ,GAAwB,CAAEn4P,IAAK1M,KAAM80O,SAAc,ECXtGwwB,GAA4B,EAAGx7O,QAAOgzB,OAAM+6I,UAASC,UAAStxI,UAASoS,YAAW2sM,0BAA4B,kBAAoB,MAAO,CAAEh/P,UAAW,qBAAsBf,MAAO,CAAE,yBAA0BghD,IACxN,kBAAoB,MAAO,CAAEjgD,UAAW,oCACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAK0uL,EAASxtI,IAAKytI,KACpD,kBAAoB,IAAK,CAAEvxL,UAAW,4BAA6Bf,MAAO,CAAE,eAAgBozD,GAAalU,wBAAyB,CAC1HC,OAAQ76B,GAAS,MAEzB,kBAAoB,MAAO,CAAEvjB,UAAW,kCAAmCm+C,wBAAyB,CAC5FC,OAAQ7H,GAAQ,IACjBt3C,MAAO,CAAE,2BAA4B+/P,MCNnCC,GAA6B,EAAGppN,UAASiB,kBAAiBooN,sBACnE,MAAM,QAAEj/M,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,uCAAuCk/P,GAAmB,MAC9F,kBAAoB,KAAW,CAAEl/P,UAAW,+BAAiC61C,EAAQh8C,OAAS,GAAKg8C,EAAQlqC,KAAKvP,GAAO,kBAAoB2iQ,GAA2B,CAAE54P,IAAK,SAAS/J,EAAEmnB,WAAYnnB,QAAU,ECL7M+iQ,GAA0B,EAAGroN,kBAAiBjB,cACvD,MAAM,QAAEoK,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,6CAA+C61C,EAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoB,MAAO,CAAEuG,UAAW,uCAAwCmG,IAAK,QAAQ1M,KACzM,kBAAoB,MAAO,CAAEmJ,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKgyJ,UAC1D,kBAAoB,KAAM,KAAMhyJ,EAAKhc,OACrC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ7e,EAAKgX,cAAgB,ECHvG,OAAe,CAACyP,GAAY+1J,GAAU/C,KAC/B,MAAMomD,GAA8B,EAAG77O,QAAO+qN,QAAO+wB,2BACxD,MAAM,QAAEp/M,IAAY,EAAAmS,GAAA,GAAUitM,IACxB,QAAE34M,EAAO,QAAED,EAAO,SAAEE,IAAa,WACjC01L,GAAa,IAAAv9O,cAAayvO,GAAU,kBAAoB,MAAO,CAAEtvO,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAW,0CACnH,kBAAoB,MAAO,KACvB,kBAAoB0nN,GAAO,CAAE9kN,IAAK2rO,EAAKj9C,WAC3C,kBAAoB,MAAO,KACvB,kBAAoBpzI,GAAA,EAAS,CAAE1G,OAAQ,WAAa+2L,EAAKhrN,QAC7D,kBAAoB,MAAO,CAAEvjB,UAAW,YAAam+C,wBAAyB,CACtEC,OAAQmwL,EAAKrqL,iBACT,CAACjE,IACjB,OAAQ,kBAAoB,KAAa,CAAEnJ,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,oCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBj0B,IACxDkjC,GAAWE,IAAa,kBAAoB,MAAO,CAAE3mD,UAAW,+CAAiDsuO,GAAO3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,EAAAo9C,SAAU,CAAE1wC,IAAK1M,GAAK4iP,EAAW9N,OAC/L7nL,GACI,kBAAoB,GAAQ,CAAE6zI,aAAc,GAAIe,cAAe,IAAKud,WAAY,CACxEC,WAAW,IACVw1B,GAAO3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,2CAA2C1M,KAAO4iP,EAAW9N,SAAY,ECzBzJ+wB,GAAa,EAAG9gN,cAAau1I,YAAW9vI,WAAUwtI,WAAUh0I,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,oBACpI,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAK2tI,KACrD,kBAAoB,MAAO,CAAEzxL,UAAW,kCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWj0B,GAClD,kBAAoB,IAAK,CAAEvjB,UAAW,2CAA4Cm+C,wBAAyB,CACnGC,OAAQX,GAAY,OAE/Be,GAAeu1I,GAAc,kBAAoB,IAAK,CAAEv0L,OAAQ,SAAUy1I,IAAK,sBAAuBj1I,UAAW,WAAYi2C,KAAM89I,GAAav1I,ICLxI+gN,GAAiC,EAAGh8O,QAAO+qN,QAAO6sB,sBAC3D,MAAM,QAAEl7M,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,0CACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,uDACpC,kBAAoB,GAAQ,CAAE64M,WAAY,CAClCC,WAAW,EACXM,aAAc,IAAM,0FACrB7d,YAAa,CACZ,IAAK,CACDD,cAAe,KACff,aAAc,GAElB,IAAK,CACDe,cAAe,IACff,aAAc,IAElB,KAAM,CACFe,cAAe,EACff,aAAc,MAEjB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,yCAAyC1M,KAC7G,kBAAoB6lQ,GAAY,IAAK/wB,WAAe,EC3B/DixB,GAAwB,EAAGj8O,QAAOk6B,WAAUwG,cAAgB,kBAAoB,MAAO,CAAEjkD,UAAW,0BAC7G,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,sBAAwBj0B,GAC/D,kBAAoB,IAAK,CAAEvjB,UAAW,UAAWm+C,wBAAyB,CAClEC,OAAQX,KAEhB,kBAAoB,MAAO,CAAEz9C,UAAW,gBACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,MCL7Bw7M,GAAqB,EAAGnxB,QAAOx3L,sBACxC,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,+BAAiCsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAKvP,GAAO,kBAAoBojQ,GAAuB,CAAEr5P,IAAK,SAAS/J,EAAEmnB,WAAYnnB,QAAU,ECFjMsjQ,GAAyB,EAAGn8O,QAAO+qN,QAAOx3L,sBACnD,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,mCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,gDACpC,kBAAoB,GAAQ,CAAE64M,WAAY,CAClCC,WAAW,EACXM,aAAc,IAAM,oFACrB7d,YAAa,CACZ,IAAK,CACDD,cAAe,KACff,aAAc,GAElB,IAAK,CACDe,cAAe,EACff,aAAc,IAElB,KAAM,CACFe,cAAe,EACff,aAAc,MAEjB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,yCAAyC1M,KAC7G,kBAAoB6lQ,GAAY,IAAK/wB,WAAe,EC5B/DoxB,GAAa,EAAGruE,UAASC,UAAShuK,QAAOsyB,aAAe,kBAAoB,MAAO,CAAE71C,UAAW,oBACzG,kBAAoB0nN,GAAO,CAAE9kN,IAAK0uL,EAASxtI,IAAKytI,IAChD,kBAAoB,IAAK,CAAEvxL,UAAW,WAAaujB,GACnDsyB,GAAW,kBAAoB,IAAK,CAAEsI,wBAAyB,CACvDC,OAAQvI,GACT71C,UAAW,eCDT4/P,GAAkB,EAAGr8O,QAAO43O,kBAAiB7sB,YACtD,MAAM,QAAEruL,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBj0B,GACzD,kBAAoB,MAAO,CAAEvjB,UAAW,wCACpC,kBAAoB,GAAQ,CAAE64M,WAAY,CAClCC,WAAW,EACXM,aAAc,IAAM,4EACrB7d,YAAa,CACZ,IAAK,CACDD,cAAe,KACff,aAAc,GAElB,IAAK,CACDe,cAAegzC,EAAMz0O,OACrB0gM,aAAc,GAElB,KAAM,CACFe,cAAegzC,EAAMz0O,OACrB0gM,aAAc,MAEjB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,yCAAyC1M,KAC7G,kBAAoBkmQ,GAAY,IAAKpxB,WAAe,ECzB/DsxB,GAA+B,EAAGt8O,QAAOk6B,WAAUwG,WAAU+vI,aAAYD,YAAWq3B,gBAAezzK,kBAAoB,kBAAoB,KAAa,KACjK,kBAAoB,KAAW,CAAE33C,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,yCAA2D,UAAlBorN,GAA6B,oBAC1G,kBAAoB,MAAO,CAAEprN,UAAW,kBACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,KACtC,kBAAoB,MAAO,CAAEjkD,UAAW,kBACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,aAAey9C,GACpDu2I,GAAcD,GAAc,kBAAoB,KAAU,CAAEp8I,aAAcA,EAAcH,OAAQ,sBAAuBvB,KAAM89I,GAAaC,OCX9I8rE,GAAuB,EAAGC,mBAAkBx8O,QAAOu2B,WAAUnjC,UAAY,kBAAoB,MAAO,CAAE3W,UAAW,2BAC1H,kBAAoB0nN,GAAO,CAAE9kN,IAAKm9P,IAClC,kBAAoB,IAAK,CAAE//P,UAAW,kCAAoCujB,GAC1E,kBAAoB,IAAK,CAAEvjB,UAAW,qCAAuC85C,GAC7E,kBAAoB,IAAK,CAAE95C,UAAW,iCAAmC2W,ICJhEqpP,GAAiB,EAAGC,kBAAiBC,mBAAkB38O,QAAOu2B,WAAUnjC,UAAY,kBAAoB,MAAO,CAAE3W,UAAW,oBACrI,kBAAoB,MAAO,CAAEA,UAAW,mCACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKq9P,IAClC,kBAAoB,IAAK,CAAEjgQ,UAAW,0CAA4CujB,GAClF,kBAAoBmkM,GAAO,CAAE9kN,IAAKs9P,KACtC,kBAAoB,IAAK,CAAElgQ,UAAW,8BAAgC85C,GACtE,kBAAoB,IAAK,CAAE95C,UAAW,0BAA4B2W,ICFzDwpP,GAAsB,EAAGC,aAAY78O,QAAO88O,iBAAgBvpN,sBACrE,MAAM,QAAE4P,IAAY,YACd,QAAEzG,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,GAAAgO,YAAa,CAAE9kD,UAAW,mBAAoB82C,gBAAiBmJ,GACvF,kBAAoB,GAAA8E,UAAW,CAAE/kD,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,+BACpCujB,GAAS,kBAAoB,MAAO,CAAEvjB,UAAW,wDAAyDm+C,wBAAyB,CAC3HC,OAAQ76B,GACTtkB,MAAO,CAAE,oBAAqBohQ,KACrC,kBAAoB,MAAO,CAAErgQ,UAAW,kBAAoBogQ,EAAWvmQ,OAAS,GAAKumQ,EAAWz0P,KAAK20P,GAAW,kBAAoB,aAAgB,KAAM55M,EAAU,kBAAoBo5M,GAAsB,CAAE35P,IAAKm6P,EAAM/8O,MAAOA,MAAO+8O,EAAM/8O,MAAOu2B,SAAUwmN,EAAMxmN,SAAUimN,iBAAkBO,EAAMP,iBAAkBppP,KAAM2pP,EAAM3pP,OAAU,kBAAoBqpP,GAAgB,CAAE75P,IAAKm6P,EAAM/8O,MAAO5M,KAAM2pP,EAAM3pP,KAAM4M,MAAO+8O,EAAM/8O,MAAOu2B,SAAUwmN,EAAMxmN,SAAUmmN,gBAAiBK,EAAML,gBAAiBC,iBAAkBI,EAAMJ,yBAA2B,ECVtiBK,GAAa,EAAGC,eAAcn3C,YAAWxlK,UAAS/J,WAAUv2B,QAAOk9O,gBAAeC,iBAAgBn1C,sBAAqB,MAChI,MAAM,QAAE7kK,IAAY,YACbi6M,EAAUC,IAAe,IAAApmQ,WAAS,GACnCk9C,GAAa,SAAiB6zK,GAIpC,OAHA,IAAA9wN,YAAU,KACNmmQ,EAAYl6M,EAAQ,GACrB,CAACA,IACIi6M,EAAW,kBAAoB,IAAK,CAAE1qN,KAAM4N,EAASrkD,OAAQk4C,EAAY13C,UAAW,mBAAoBf,MAAO,CAAE,gCAAiC,OAAOwhQ,KAAkB,iCAAkC,OAAOC,OACxN,kBAAoB,IAAK,CAAE1gQ,UAAW,6BAA+BwgQ,GACrE,kBAAoB,MAAO,CAAExgQ,UAAW,mCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,aAAej0B,GACtD,kBAAoB,IAAK,CAAEvjB,UAAW,6CAA+C85C,KACvF,kBAAoB,MAAO,CAAE95C,UAAW,mBAAoBf,MAAO,CAAE,gCAAiC,OAAOwhQ,KAAkB,iCAAkC,OAAOC,OACtK,kBAAoB,IAAK,CAAE1gQ,UAAW,6BAA+BwgQ,GACrE,kBAAoB,MAAO,CAAExgQ,UAAW,mCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,aAAej0B,GACtD,kBAAoB,IAAK,CAAEvjB,UAAW,6CAA+C85C,IACzF,kBAAoB,KAAU,CAAErC,QAAS,2BAA4BE,aAAc4zK,EAAoBt1K,KAAM4N,GAAWwlK,GAAY,qKCnBrE,IAA0E,GAApE,SAAShwN,EAAEa,GAAG,IAAIZ,EAAnG,WAAa,IAAID,GAAE,IAAAgD,SAAO,GAAI,OAAOhD,EAAEoD,SAASpD,EAAEoD,SAAQ,GAAG,GAAIpD,EAAEoD,OAAO,CAA2BsB,IAAI,IAAAtD,YAAU,WAAW,IAAInB,EAAE,OAAOD,GAAG,GAAEa,EAAG,EAA01CmX,WAA9iC3W,OAAO,KAA+XA,QAAopB,IAAAilN,eAAc,OAAW7hL,SCC9+CrtB,UAAS/V,OAAO,IAAI,EAAAD,UAAU,EAAAglN,gBAA0Q,SAAS,GAAEpmN,EAAEa,GAAG,IAAI2mQ,GAAI,IAAA/hQ,cAAY,IAAI5E,EAAEb,EAAEu0L,aAAY,CAAC1zL,EAAEb,IAAI+C,GAAE,IAAA0C,cAAYpB,GAAGrE,EAAEgjB,MAAM20C,UAAUtzD,IAAG,CAACrE,IAAI,MDDmvC,EAACA,EAAEa,EAAEZ,KAAK,IAAII,EAAE2D,IAAG,IAAA7C,WAAS,IAAIlB,MAAK,OAAO,IAAAmB,YAAU,KAAK,IAAIiB,EAAErC,GAAE,KAAK,IAAIE,EAAEW,IAAImD,EAAE9D,EAAE,IAAI,MAAO,KAAKmC,GAAG,CAAC,GAAG,CAACrC,IAAIK,GCC91C,CAAE0C,EAAEykQ,GAAI,IAAI3mQ,EAAE,OAAe,CAAC,IAAI,GAAE,CAACkhF,UAAU,CAAC3sE,SAAS,WAAWzS,MAAM,OAAOC,OAAO,QAAQ6kQ,sBAAsB,CAACryP,SAAS,aAAa8C,GAAG,cAAa,EAAEwvP,QAAQC,EAAI7+E,kBAAkBjoL,EAAE+I,SAASpH,EAAEysL,WAAW24E,EAAI,cAAc70P,UAAU/O,EAAEwnL,aAAannL,EAAE8L,KAAK3K,EAAEimL,SAAS7mL,EAAE2mL,MAAMlpL,EAAEqQ,MAAMtO,EAAE4M,SAAS+F,EAAE,MAAM7F,iBAAiB8F,EAAE,CAAC,EAAEzN,IAAIzE,EAAE6B,UAAUzB,EAAE,GAAGisL,OAAO9tL,EAAEuD,SAASlD,EAAE4nL,aAAannL,EAAEmtL,MAAM7uL,GAAE,EAAG8uL,OAAOpsL,GAAE,EAAG0pL,cAActqL,EAAEwM,UAAU6F,KAAKtR,GAAGmR,KAAK,IAAInS,GAAE,IAAAtB,QAAO,MAAM5C,EAA7zB,EAACJ,EAAEa,EAAE2B,KAAK,IAAIO,IAAG,IAAA5B,WAAS,IAAI,IAAI,KAAsBnB,EAAEa,EAAEuC,QAAQZ,KAAIwB,GAAE,IAAAhB,SAAO,GAAI,OAAOoU,IAAE,KAAK6vC,kBAAoBjjD,EAAEZ,SAASvC,EAAEuC,UAAUY,EAAEZ,SAAQ,EAAGL,EAAEmvL,aAAarxL,EAAEuC,eAAeL,EAAEkoE,OAAQ,CAAQ5mE,GAAI,KAAKL,EAAEZ,SAASL,EAAE6O,SAAS,IAAI,CAAC7O,IAAIA,GAA0kB,CAAE+B,EAAER,EAAE,CAAC0M,SAAS+F,EAAE+xK,kBAAkBjoL,EAAEqQ,iBAAiB,CAAC2wJ,aAAY,EAAGhf,iBAAgB,EAAGrF,mBAAkB,KAAMxmI,GAAGu0K,MAAMlpL,EAAE8N,KAAK3K,EAAEuN,UAAU/O,EAAE0O,MAAMtO,EAAEonL,aAAannL,EAAE4qL,WAAW24E,EAAIn8E,SAAS7mL,EAAEgF,UAASvH,GAAKG,EAAE2uL,OAAO9tL,EAAEioL,aAAannL,EAAEmtL,MAAM7uL,EAAE8uL,OAAOpsL,EAAE0pL,cAActqL,IAAItE,GAAE,IAAA+C,QAAO5C,GAAGH,EAAEmD,QAAQhD,EAAE,sBAAsBqW,GAAE,IAAIrW,GAAE,CAACA,IAAI,sBAAsBwW,GAAE,IAAIxW,GAAE,CAACA,IAAI,IAAIuE,EAAE,GAAEvE,GAAEF,GAAGA,EAAE4uL,eAAc/pL,EAAE,GAAE3E,GAAEF,GAAGA,EAAE6uL,QAAOr4K,EAAE,GAAEtW,GAAEF,GAAGA,EAAE8uL,SAAQ/3K,EAAE,GAAE7W,GAAEF,GAAGA,EAAEgvL,qBAAoB,OAAO,IAAE,YAAY1pL,EAAE,IAAIvF,EAAEmD,QAAQ+xL,uBAAuB,CAAC,SAASl1L,EAAEmD,QAAQsrH,QAAQlpH,EAAE,GAAG,CAACA,IAAI,IAAE,KAAK,CAAC,aAAoB,cAAqByc,SAAStd,YAAYnC,EAAE,IAAIvC,EAAEmD,QAAQ+xL,uBAAuB,CAAC,aAAal1L,EAAEmD,QAAQwxL,YAAYpyL,GAAG,GAAG,CAACA,IAAI,IAAE,YAAYwB,EAAE,IAAI/D,EAAEmD,QAAQ+xL,uBAAuB,CAAC,cAAcl1L,EAAEmD,QAAQ0P,aAAa9O,EAAE,GAAG,CAACA,IAAI,IAAE,YAAYI,EAAE,IAAInE,EAAEmD,QAAQ+xL,uBAAuB,CAAC,UAAUl1L,EAAEmD,QAAQqP,SAASrO,EAAE,GAAG,CAACA,IAAI,IAAE,YAAYQ,EAAE,IAAI3E,EAAEmD,QAAQ+xL,uBAAuB,CAAC,aAAal1L,EAAEmD,QAAQqvL,QAAQ7tL,EAAE,GAAG,CAACA,IAAI,IAAE,YAAYvC,EAAE,IAAIpC,EAAEmD,QAAQ+xL,uBAAuB,CAAC,UAAUl1L,EAAEmD,QAAQmvL,SAASlwL,EAAE,GAAG,CAACA,IAAI,IAAE,YAAYulQ,EAAI,IAAI3nQ,EAAEmD,QAAQiuL,cAAc,eAAepxL,EAAEmD,QAAQiuL,cAAcu2E,EAAI,GAAG,CAACA,IAAM,IAAE,YAAYvjQ,EAAE,IAAIpE,EAAEmD,QAAQ+xL,uBAAuB,CAAC,iBAAiBl1L,EAAEmD,QAAQovL,gBAAgBnuL,EAAE,GAAG,CAACA,IAAI,IAAE,YAAYF,EAAE,MAAMA,EAAElE,EAAEmD,QAAQ+xL,uBAAuB,CAAC,iBAAiBl1L,EAAEmD,QAAQ2xL,gBAAgB5wL,EAAE,GAAG,CAACA,IAAI,IAAE,KAAKtD,GAAGZ,EAAEmD,QAAQ6F,KAAKpI,EAAE,GAAG,CAACA,IAAI,IAAE,YAAY0D,EAAE,KAAKtE,EAAEmD,QAAQ2wL,qBAAqBxvL,GAAG,KAAKtE,EAAEmD,QAAQ4wL,qBAAqB,IAAI,CAACzvL,IAAI,IAAE,YAAYO,EAAE,KAAK7E,EAAEmD,QAAQkvL,UAAUxtL,EAAE,GAAG,CAACA,KAAI,IAAA1D,YAAU,KAAK,IAAIlB,EAAE,KAAU,MAALynQ,GAAWA,EAAI,WAAmB,EAAGhkQ,EAAE,KAAU,MAALgkQ,GAAWA,EAAI,eAAuB,EAAGjjQ,EAAE,KAAU,MAALijQ,GAAWA,EAAI,cAAsB,EAAG7wP,EAAE,KAAK7W,EAAEmD,QAAQ0rL,eAAe,eAA2B,MAAL64E,GAAWA,EAAI,eAAuB,EAAGjlQ,EAAE,KAAU,MAALilQ,GAAWA,EAAI,kBAA0B,EAAG,OAAO1nQ,EAAEmD,QAAQ5B,iBAAiB,YAAYtB,GAAGD,EAAEmD,QAAQ5B,iBAAiB,aAAamC,GAAG1D,EAAEmD,QAAQ5B,iBAAiB,cAAckD,GAAGzE,EAAEmD,QAAQ5B,iBAAiB,WAAWsV,GAAG7W,EAAEmD,QAAQ5B,iBAAiB,eAAekB,GAAG,KAAKzC,EAAEmD,QAAQ1B,oBAAoB,YAAYxB,GAAGD,EAAEmD,QAAQ1B,oBAAoB,aAAaiC,GAAG1D,EAAEmD,QAAQ1B,oBAAoB,cAAcgD,GAAGzE,EAAEmD,QAAQ1B,oBAAoB,WAAWoV,GAAG7W,EAAEmD,QAAQ1B,oBAAoB,eAAegB,EAAE,CAAC,GAAG,KAAI,IAAAtB,YAAU,KAAK,OAAOuD,GAAG,KAAK,aAAyB,MAALgjQ,GAAWA,EAAI,WAAmB,MAAM,KAAK,YAAwB,MAALA,GAAWA,EAAI,YAAoB,MAAM,KAAK,aAAyB,MAALA,GAAWA,EAAI,KAAA96K,MAAmB,MAAM,KAAK,YAAwB,MAAL86K,GAAWA,EAAI,aAAqB,MAAM,KAAK,WAAuB,MAALA,GAAWA,EAAI,YAA0B,GAAG,CAAChjQ,KAAI,IAAAvD,YAAU,KAAU,MAALumQ,GAAWA,EAAI,WAAmB,CAAC54E,MAAMhqL,EAAEiqL,OAAOt4K,GAAG,GAAG,CAAC3R,IAAI,gBAAgB,GAAE,CAAChF,MAAMK,GAAG,gBAAgB,MAAM,CAACuG,UAAU,4BAA4BjD,EAAE,WAAW,MAAMwB,IAAIqoN,KAAK,QAAQlqN,GAAG,CAAC,cAAcA,MAAMiC,GAAG,gBAAgB,MAAM,CAACwB,IAAIxC,EAAE,YAAY,GAAG2S,IAAIgT,KAAK,SAAStjB,UAAU,cAAajD,EAAE,WAAW,IAAKkC,MAAMlC,EAAE,GAAE+jQ,sBAAsB,GAAE1lL,aAAa1+E,GAAG,CAAC,cAAc,cAAcsB,IAAI,YAAmB,gBAAgB,MAAM,IAAItB,GAAG,CAAC,cAAc,SAASsD,UAAU,SAAS,OAAiBjD,GAAE,ICC5hI,MAAMmkQ,GAAc,EAAGC,sBAAqB/D,YAAWgE,kBAAiBC,YAAWC,eAAcC,oBAAmBC,gBAAeC,kBAAiBC,gBAAeC,gBAAgB,GAAIC,eAAcC,mBACxM,MAAM,QAAE5hN,IAAY,EAAAmS,GAAA,GAAU+uM,GACxBW,GAA+B,IAAlBJ,EAAyB,SAAW,SAChDK,EAAkBC,GAAuB,WAAe3hQ,UACxD4hQ,EAAWC,GAAgB,WAAeZ,GA4CjD,OA3CA,aAAgB,KACZK,EAAcrmP,SAAS,WAAa0mP,GAAoB,GAAQA,GAAoB,EAAM,GAC3F,CAACL,IACJ,aAAgB,KACZO,EAAaZ,EAAa,GAC3B,CAACA,IAEkB,UAAdD,EACQ,gBAAoB,MAAO,CAAEpiQ,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAWqhQ,GACjF,gBAAoB,QAAS,CAAExpC,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,EAAMoqC,OAAQZ,GAC/F,gBAAoB,SAAU,CAAE3+P,IAAKq/P,EAAWn0P,KAAM,eAC1D,gBAAoB,MAAO,CAAE9N,UAAW,sBACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,aAAe4lN,GACtD,gBAAoB,IAAK,CAAEj/M,wBAAyB,CAC5CC,OAAQgjN,MAEpB,gBAAoB,IAAK,CAAEnrN,KAAMurN,EAAehiQ,OAAQsiQ,EAAY7sH,IAAK,cAAgBwsH,IAE1E,UAAdJ,EACG,gBAAoB,MAAO,CAAEpiQ,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAWqhQ,GACjF,gBAAoB,MAAO,CAAErhQ,UAAW,sBACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,aAAe4lN,GACtD,gBAAoB,IAAK,CAAEj/M,wBAAyB,CAC5CC,OAAQgjN,KAEhB,gBAAoB,IAAK,CAAEnrN,KAAMurN,EAAehiQ,OAAQsiQ,EAAY9hQ,UAAW,eAAgBi1I,IAAK,cAAgBwsH,IACxH,gBAAoB/5C,GAAO,CAAE9kN,IAAKg/P,EAAc99M,IAAK+9M,KAEtC,UAAdR,EACG,gBAAoB,MAAO,CAAEpiQ,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAWqhQ,GACjF,gBAAoB,MAAO,CAAErhQ,UAAW,sBACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,aAAe4lN,GACtD,gBAAoB,IAAK,CAAEj/M,wBAAyB,CAC5CC,OAAQgjN,KAEhB,gBAAoB,IAAK,CAAEnrN,KAAMurN,EAAehiQ,OAAQsiQ,EAAY9hQ,UAAW,eAAgBi1I,IAAK,cAAgBwsH,IACxHM,EAAmB,gBAAoB,GAAiB,CAAEn/P,IAAK++P,EAAe1+P,UAAU,EAAMuG,MAAM,IAAU,gBAAoB,MAAO,CAAExJ,UAAW,yBAClJ,gBAAoB0nN,GAAO,CAAE9kN,IAAK++P,EAAe79M,IAAK+9M,MAGtD,gBAAoB,WAAgB,KAGjC,ECjDVO,GAAsB,EAAGtrN,kBAAiBw3L,YACnD,MAAM,QAAEruL,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,gBAAoB,MAAO,CAAE92C,UAAW,wBAAyBf,MAAO,CAAE63C,gBAAiBmJ,IAC/F,gBAAoB,KAAa,KAC7B,gBAAoB,KAAW,CAAEjgD,UAAW,oBACxC,gBAAoB,MAAO,CAAEA,UAAW,0CAA4CsuO,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAU,gBAAoBo6N,GAAa,CAAE/6P,IAAK2gC,KAAUynM,EAAM8yB,UAAW,OAAOv6N,WAAgB,ECN5Mu7N,GAAmB,EAAG9+O,QAAOk+B,QAAO6gN,gBAAeC,mBAAkBtiQ,eAC9E,MAAOuiQ,EAAmBC,IAAwB,IAAAjoQ,UAASinD,EAAMmK,WAAWnyD,GAAMA,EAAE8pB,QAAUg/O,MACvF9nN,EAAMC,IAAW,IAAAlgD,UAAS,gBAC3BogD,EAAgBH,IAClBC,EAAQD,EAAK,GAEjB,IAAAhgD,YAAU,KACN,eAAwBmgD,GACjB,KACH,iBAA0BA,EAAa,IAE5C,CAACH,IACJ,MAAMioN,GAAoB,IAAA5jQ,cAAak8B,IACnC,GAAa,UAATyf,EAAkB,CAClBzf,EAAMvb,iBACN,MAAMqnB,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtEyyE,EAAqB37N,GACrBw7N,EAAc7gN,EAAM3a,GAAOvjB,MAC/B,IACD,IACGo/O,GAAqB,IAAA7jQ,cAAak8B,IAIpC,GAHIA,EAAMshD,QAAQziF,OAAS,GACvB4oQ,GAAsB,GAEb,UAAThoN,GAAoBzf,EAAMshD,QAAQziF,QAAU,EAAG,CAC/CmhC,EAAMvb,iBACN,MAAMqnB,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtEyyE,EAAqB37N,GACrBw7N,EAAc7gN,EAAM3a,GAAOvjB,MAC/B,IACD,IACH,OAAQ,kBAAoB,MAAO,CAAEvjB,UAAW,qBAC5CujB,GAAU,kBAAoB,KAAM,CAAEvjB,UAAW,2BAA4Bm+C,wBAAyB,CAAEC,OAAQ76B,KAChH,kBAAoB,MAAO,CAAEvjB,UAAW,4BAA8ByhD,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,0BAA0B1M,IAAKuG,UAAW,4BAA4BwiQ,IAAsB/oQ,GACpN,mCAAoC,UAAWA,EAAG8iB,QAASmmP,EAAmB/9D,aAAcg+D,GAChG,kBAAoB,KAAK,CAAE3iQ,UAAW,oCAAqC4C,IAAK28B,EAAK0kB,SAAUH,IAAKvkB,EAAKkyJ,WACzG,kBAAoB,MAAO,CAAEzxL,UAAW,iCAAmCu/B,EAAKhc,WACpFtjB,EAAU,EC3BL2iQ,GAAiB,CAC1B,GAAI,GACJC,MAVU,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAW/GvnM,QAVY,CAAC,QAAS,SAAU,OAAQ,QAAS,UAAW,SAAU,WAAY,SAAU,OAAQ,UAWpGwnM,YAVgB,CAAC,SAAU,SAAU,QAAS,MAAO,OAAQ,SAAU,SAAU,UAWjFC,KAVS,CAAC,MAAO,MAAO,UAAW,MAAO,OAAQ,OAWlDC,QAVY,CAAC,WAAY,QAWzBC,OAVW,CAAC,OAAQ,SAAU,SAAU,KAAM,OAAQ,SAAU,QAAS,YAAa,OAAQ,WAAY,WAAY,aAAc,WAAY,MAAO,SAAU,MAAO,YAAa,WAAY,YAAa,QAAS,SAAU,SAAU,UAAW,WAAY,UAAW,QAAS,QAAS,YAAa,OAAQ,UAAW,SAAU,MAAO,OAAQ,KAAM,OAAQ,KAAM,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,MAAO,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,QAWjdh5L,OAVW,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,UAAW,UAAW,WAWpFi5L,QAVY,CAAC,QAAS,OAAQ,SAAU,QAY/BC,GAAY,EAAG5/O,QAAO6/O,YAAWC,kBAAiBC,cAAaC,YAAWC,aAAYlL,UAASD,QAAOoL,mBAC/G,MAAOC,EAAgBC,IAAqB,IAAAnpQ,WAAU,IAC/C04L,EAAa8kE,IAAkB,IAAAx9P,UAAS,KACxCopQ,EAAqBC,IAA0B,IAAArpQ,UAAS,KACxDspQ,EAAyBC,IAA8B,IAAAvpQ,UAAS,KAChE+nQ,EAAkByB,IAAuB,IAAAxpQ,UAASipQ,GACnDxL,GAAgB,IAAA57P,QAAO,IAAI+C,KAC3B84P,GAAgB,IAAA77P,QAAO,IAAI+C,MACjC,IAAA3E,YAAU,KACN,MAAM09P,EAAY,IAAIC,UAAU,GAAGC,gBAAoBC,KACvDH,EAAUI,WAAa,cACvB,MAAMC,GAAc,IAAIrJ,aAAcC,OAAO,QAC7C,IAAIzpJ,EAWJ,OAVAwyJ,EAAUM,OAAS,KACf9yJ,EAAW0a,aAAY,KACnB83I,EAAU5hM,KAAKiiM,EAAY,GAC5B,IAAK,EAEZL,EAAU/8I,UAAapgF,IACnB,MAAMoL,EAAOpL,EAAMoL,KACb+a,EAAU22M,GAAK1B,QAAQhwN,EAAM,CAAE+sF,GAAI,WACzCulI,EAAgBv3M,EAAQ,EAErB,KACHm3B,cAAcqtB,GACdwyJ,EAAU14L,OAAO,CACpB,GACF,CAAC8iM,KACJ,IAAA9nQ,YAAU,KACNopQ,EAAuB3wE,EAAYptL,QAAQy5B,GAASA,EAAK85N,YAAckJ,KACvEwB,EAA2BV,EAAgBv9P,QAAQy5B,GAASA,EAAK0kO,SAAW1B,IAAkB,GAC/F,CAACA,IACJ,MAAM7J,EAAmBv3M,IACrB,MAAMsvM,EAAO11K,KAAKC,MAAM75B,GAClB+xI,EAAc,GACpB,IAAK,MAAM/sL,KAAOsqP,EACd,GAAItqP,EAAImV,SAAS,SAAU,CACvB,MAAM8zH,EAAQjpI,EAAI+kB,MAAM,KAAK,GACvBytO,EAAe59K,KAAKC,MAAMy1K,EAAKtqP,IACrC,GAAIy8P,GAAexzH,EAAMtuG,eAAexlB,SAASq9O,EAAaI,MAAO,CACjE,MAAMF,EAAcC,EAAgB1pH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GAC5FyI,EAAUhB,EAAcz7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DI,EAAUlB,EAAcx7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DK,EAAa,CACfl0P,KAAMyzP,EAAaC,KACnB3iO,KAAM0iO,EAAaI,KACnBM,UAAWjqH,EACXkqH,IAAKX,EAAaK,IAClBO,SAAUC,EAAYb,EAAaK,IAAKE,GACxCO,QAASyK,EAAWvL,EAAaK,IAAKE,GACtCQ,IAAKf,EAAaM,IAClBU,SAAUH,EAAYb,EAAaM,IAAKE,GACxCS,QAASsK,EAAWvL,EAAaM,IAAKE,GACtCU,OAAQC,EAAW1qH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GACjFoI,cACAkB,iBAAkBA,GAAkBlB,GACpCmB,gBAAiBA,GAAiBnB,IAEtCZ,EAAcx7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaM,KAC1Df,EAAcz7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaK,KAC1D9lE,EAAY7uL,KAAK+0P,EACrB,CACJ,CAEJpB,EAAe9kE,GACf2wE,EAAuB3wE,EAAYptL,QAAQy5B,GAASA,EAAK85N,YAAckJ,IAAkB,EAEvFzI,EAAa,CAAC1qH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KACvC,MAAM0J,EAAap/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBn5G,MAC1D,IAAImkO,EAAmB,EACnBC,EAAW,EACf,GAAI5J,EAAK,GAAGrhH,oBAAwBn5G,KAAS,CACzC,MAAMqkO,EAAiBv/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,oBAAwBn5G,MAClEmkO,EACIE,EAAeC,kBAAoBJ,EAAWI,iBAClDF,EAAWC,EAAeE,UAAYL,EAAWK,QACrD,MAEIJ,EAAmBD,EAAWI,iBAC9BF,EAAWF,EAAWK,SAE1B,IAAIC,EAAUJ,GAAY,EAAM,EAAID,EAGpC,OAFAK,EAAUA,EAAU,EAAIA,EAAU,EAAIA,IACrBf,EAAMJ,GAAOp+P,KAAKkkG,IAAI,GAAIq7J,IAAUlmM,QAAQ,EAChD,EAEXukM,EAAkB,CAAC1pH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KAC5C,GAAIA,EAAK,GAAGrhH,uBAA2Bn5G,KAAS,CAC5C,MACMykO,EADe3/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,uBAA2Bn5G,MACpC0kO,WAAa,EAI5C,MAAO,MAHsBjB,EAAMJ,GAAO,EACDoB,GACLA,EAAa,KAAKnmM,QAAQ,KAElE,CACA,MAAO,KAAK,EAEVilM,EAAc,CAACoB,EAAcC,IAC3BD,GAAgBC,EACT,uBAGA,uBAGTd,EAAoB3gQ,GAClBA,GAAS,EACF,uBAGA,uBAGT8qQ,EAAa,CAACtJ,EAAcC,IAC1BD,GAAgBC,EACT0I,EAAU,GAGVA,EAAU,GAGnBvJ,EAAmB5gQ,GACjBA,GAAS,EACFmqQ,EAAU,GAGVA,EAAU,GAGnBY,GAAiB,IAAArlQ,cAAak8B,IAChCA,EAAMvb,iBACN,MAAMqnB,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtE2zE,EAAkB78N,EAAM,GACzB,IACG47N,GAAoB,IAAA5jQ,cAAamlQ,IACnCD,EAAoBC,EAAO,GAC5B,IACH,OAAQ,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEjkQ,UAAW,cACpC,kBAAoB,KAAW,KAC3B,kBAAoBqiQ,GAAkB,CAAE9+O,MAAOA,EAAOk+B,MAAO6hN,EAAaf,iBAAkBkB,EAAcnB,cAAeI,IACzH,kBAAoB,MAAO,CAAE1iQ,UAAW,qBACpC,kBAAoB,MAAO,CAAEA,UAAW,sBAAwBojQ,EAAUz3P,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,0BAA0B1M,IAAKuG,UAAW,0BAA4Bu/B,EAAKhc,MAAMiyB,kBAC/MouN,EAAoBj4P,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,mBAAmB1M,IAAKuG,UAAW,mBAAmB0jQ,IAAmBjqQ,GACzI,4BAA6B,UAAWA,EAAG8iB,QAAS4nP,GACxD,kBAAoB,MAAO,CAAEnkQ,UAAW,6BACpC,kBAAoB,KAAK,CAAEA,UAAW,iCAAkC4C,IAAKkhQ,EAAwBh+P,QAAQurB,GAAOA,EAAG9N,QAAUgc,EAAKtJ,OAAM,IAAIguB,UAAY,GAAIH,IAAKggN,EAAwBh+P,QAAQurB,GAAOA,EAAG9N,QAAUgc,EAAKtJ,OAAM,IAAIw7J,UAAY,KACpP,kBAAoB,MAAO,CAAEzxL,UAAW,yBAA2Bu/B,EAAKtJ,OAC5E,kBAAoB,MAAO,CAAEj2B,UAAW,6BACpC,kBAAoB,KAAK,CAAEA,UAAW,yBAA0B4C,IAAK28B,EAAKk6N,UAC1E,kBAAoB,MAAO,CAAEz5P,UAAW,yBAAyBu/B,EAAKg6N,YAAch6N,EAAK+5N,MAC7F,kBAAoB,MAAO,CAAEt5P,UAAW,6BACpC,kBAAoB,KAAK,CAAEA,UAAW,yBAA0B4C,IAAK28B,EAAKq6N,UAC1E,kBAAoB,MAAO,CAAE55P,UAAW,yBAAyBu/B,EAAKo6N,YAAcp6N,EAAKm6N,MAC7F,kBAAoB,MAAO,CAAE15P,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBAA2Bu/B,EAAKs6N,SAC5E,kBAAoB,MAAO,CAAE75P,UAAW,6BACpC,kBAAoB,KAAK,CAAEA,UAAW,yBAA0B4C,IAAK28B,EAAKy6N,kBAC1E,kBAAoB,MAAO,CAAEh6P,UAAW,yBAAyBu/B,EAAKw6N,oBAAsBx6N,EAAKs5N,kBAC7G,kBAAoB,MAAO,CAAE74P,UAAW,0BAA4BwjQ,KAAe,EClLtFY,GAAqB96P,IAC9B,MAAM+6P,GAAsB,IAAAhoQ,SAAO,IAC7B,IAAE8D,EAAG,OAAEmqN,EAAM,MAAExgI,GAAU2gI,GAAU,CACrC76D,UAAW,EACX86D,aAAa,IAEX45C,GAAY,SAAah7P,EAAM26C,UAcrC,OAbA,IAAAxpD,YAAU,KACN,IAAK6pQ,IAAch6C,GAAU+5C,EAAoB5nQ,QAC7C,OAEJ,MAAM8nQ,EAAUz6K,GAAOtqF,OACjBglQ,EAAgBD,EAAQ1uO,cAAc,UACvC2uO,IAGLA,EAAc5hQ,IAAM4hQ,GAAe11B,QAAQlsO,KAAO,GAClD2hQ,EAAQjgM,OACR+/L,EAAoB5nQ,SAAU,EAAI,GACnC,CAACqtF,EAAOwgI,EAAQg6C,IACX,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEtkQ,UAAW,qBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ90C,EAAMwwC,YACpE,kBAAoB,MAAO,CAAE95C,UAAW,iBACpC,kBAAoB,MAAO,CAAEA,UAAW,mBAAqBskQ,EAAa,kBAAoB,QAAS,CAAEzsC,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,EAAM53N,IAAKA,GACtK,kBAAoB,SAAU,CAAE,WAAYmJ,EAAM26C,SAAUn2C,KAAMw2P,KAChE,kBAAoB,KAAK,CAAE1hQ,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMia,YAAc,EC9BtFkhP,GAAuBn7P,GAAW,kBAAoB,KAAa,KAC5E,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEtJ,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,KAAM,CAAEA,UAAW,0BAA2Bm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SAC3G,kBAAoB,KAAK,CAAE3gB,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMia,MAAOvjB,UAAW,oCAC7E,kBAAoB,IAAK,CAAEA,UAAW,+BAAiCsJ,EAAMo7P,WAC7E,kBAAoB,KAAM,CAAE1kQ,UAAW,0BAA4BsJ,EAAM8e,KAAKzc,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,KAAM,CAAE0M,IAAK,+BAA+B1M,IAAKuG,UAAW,0BAC5K,kBAAoB,MAAO,CAAEA,UAAW,oCAAsC2kQ,MAC9E,kBAAoB,MAAO,CAAE3kQ,UAAW,kCACpC,kBAAoB,SAAU,CAAEA,UAAW,gCAAkCu/B,EAAKhc,OAClF,kBAAoB,IAAK,CAAEvjB,UAAW,+BAAiCu/B,EAAKua,gBACxF,kBAAoB,KAAK,CAAEl3C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMia,MAAOvjB,UAAW,+BACnF2kQ,GAAY,IAAO,kBAAoB,MAAO,CAAE3oQ,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,OAAQ,CAAEr1B,EAAG,kRAAmRm7C,KAAM,UAAWK,OAAQ,aCMpU,GAAY,IAAO,kBAAoB,MAAO,CAAEr7C,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC/H,kBAAoB,OAAQ,CAAEr1B,EAAG,sJAAuJm7C,KAAM,aCtBrL4tN,GAAoBt7P,IAC7B,MAAMspO,GAAe,IAAA9zO,cAAY,KACzBwK,EAAMu7P,iBAAmBv7P,EAAM+tB,KAAO/tB,EAAMw7P,aAC5Cx7P,EAAMu7P,iBAAiB,GAElBv7P,EAAMu7P,sBAAgCh+P,IAAbyC,EAAM+tB,IACpC/tB,EAAMu7P,gBAAgBv7P,EAAM+tB,GAChC,GACD,CAAC/tB,EAAMw7P,aAAcx7P,EAAM+tB,GAAI/tB,EAAMu7P,kBACxC,OAAQ,kBAAoB,MAAO,CAAE7kQ,UAAW,aAAYsJ,EAAM+tB,KAAO/tB,EAAMw7P,aAAe,SAAW,KACrG,kBAAoB,KAAM,CAAE9kQ,UAAW,qBAAsBu0L,WAAW,EAAME,SAAU,aAAcD,SAAU,8BAA+Bj4K,QAASq2N,GACpJtpO,EAAMy7P,SACN,IACA,MACJ,kBAAoB,IAAK,CAAE/kQ,UAAW,mBAAoBu0L,WAAW,EAAME,SAAU,iBAAkBD,SAAU,4BAA6Br2I,wBAAyB,CAAEC,OAAQ90C,EAAM07P,UAAa,ECX/LC,GAAgB37P,IACzB,MAAOw7P,EAAcD,IAAmB,IAAArqQ,WAAU,GAClD,OAAQ,kBAAoB,MAAO,CAAEwF,UAAW,kBAAiBsJ,EAAM26C,SAAW,GAAK,4BACnF,kBAAoB,KAAK,CAAEjkD,UAAW,sBAAuB4C,IAAK0G,EAAM26C,SAAUH,IAAK,iCACvF,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE9jD,UAAW,uBACpC,kBAAoB,KAAM,CAAEA,UAAW,wBAA0BsJ,EAAMia,OACvEja,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoBmrQ,GAAkB,CAAEz+P,IAAK,uBAAuB1M,IAAK49B,GAAI59B,EAAGsrQ,SAAUxlO,EAAKwlO,SAAUC,OAAQzlO,EAAKylO,OAAQH,gBAAiBA,EAAiBC,aAAcA,MAC3M,kBAAoB,IAAK,CAAE7uN,KAAM3sC,EAAMu6C,QAAS7jD,UAAW,uBACvDsJ,EAAM6pL,SACN,IACA,SAAiB,ECZ5B+xE,GAAyB57P,GAAW,gBAAoB,KAAa,KAC9E,gBAAoB,MAAO,CAAEtJ,UAAW,0CACpC,gBAAoB,KAAM,CAAEA,UAAW,gCAAkCsJ,EAAMia,OAC/Eja,EAAMitC,MAAS,gBAAoB,IAAK,CAAE4H,wBAAyB,CAAEC,OAAQ90C,EAAMitC,QACnF,gBAAoB,MAAO,CAAEv2C,UAAW,gCACpC,gBAAoB,MAAO,CAAEA,UAAW,uCACxC,gBAAoB,GAAQ,CAAEumC,OAAQ,OAAQsyK,WAAY,CAClDxnL,GAAI,sCACJynL,WAAW,EACXM,aAAc,CAACtyK,EAAO9mC,IAAc,iEAAiEA,MAAcsJ,EAAMglO,MAAMxnM,GAAOvjB,cACvIyuL,QAAS,CAAC6L,GAAY7E,IAAah5M,UAAW,4BAA8BsJ,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,gBAAoBm9K,GAAa,CAAE99M,IAAK2gC,GACzJ,gBAAoB,MAAO,CAAE9mC,UAAW,0BACpC,gBAAoB,KAAK,CAAE4C,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAKhrN,QACzD,gBAAoB,MAAO,CAAEvjB,UAAW,+BACpC,gBAAoB,KAAM,KAAMuuO,EAAKhrN,OACrC,gBAAoB,IAAK,KAAMgrN,EAAKh4L,MACpCg4L,EAAKnpB,WAAc,gBAAoB,IAAK,CAAEnvK,KAAMs4L,EAAK1qL,SACrD0qL,EAAKnpB,UACL,IACA,eACtB,GAAY,IAAO,gBAAoB,MAAO,CAAEppN,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,UAAW9lB,MAAO,8BAC3H,gBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,gBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,gBAAoB,OAAQ,KACxB,gBAAoB,WAAY,KAC5B,gBAAoB,OAAQ,CAAEA,KAAM,OAAQn7C,EAAG,sDC3BpD,MAAMspQ,GAA4B77P,GAAW,kBAAoB,KAAa,KACjF,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEtJ,UAAW,uEACpC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,KAAM,CAAEA,UAAW,0BAA2Bm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SAC3G,kBAAoB,KAAK,CAAE3gB,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMia,MAAOvjB,UAAW,oCAC7E,kBAAoB,IAAK,CAAEA,UAAW,+BAAiCsJ,EAAMo7P,WAC7E,kBAAoB,MAAO,CAAE1kQ,UAAW,kCACpC,kBAAoB,IAAK,CAAEA,UAAW,oFAAsFsJ,EAAM87P,aAClI,kBAAoB,MAAO,CAAEplQ,UAAW,mCAAqCsJ,EAAM+7P,cAAc15P,KAAI,CAAC6nL,EAAQ/5L,IAAO,kBAAoB,IAAK,CAAE0M,IAAK,yCAAyC1M,IAAKw8C,KAAMu9I,EAAO95I,IAAK15C,UAAW,yCAC5N,kBAAoB,KAAK,CAAEA,UAAW,8CAA+C4C,IAAK4wL,EAAOvvI,SAAUH,IAAK0vI,EAAO/B,iBACnI,kBAAoB,KAAK,CAAE7uL,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMia,MAAOvjB,UAAW,gECbzF,MAAMslQ,GAAiB,CACnBC,iBAAkB,OAClBC,cAAe,OACfC,WAAY,OACZn3M,MAAO,UACPxX,gBAAiB,QAER4uN,GAAW,EAAGtoQ,UAAU,GAAIuoQ,iBAAgBp6O,cAAaq6O,yBAAwB,EAAMznP,WAAUs5B,UAASx4C,QAAOy1J,YAAY,eACtI,MAAMx9H,GAAe,IAAAp4B,cAAak8B,IAC1B7c,GACAA,EAAS6c,EAAMx7B,OAAOpG,MAC1B,GACD,CAAC+kB,IACJ,OAAQ,kBAAoB,MAAO,CAAEne,UAAW,oBAAoBy3C,GAAW,MAC3E,kBAAoB,SAAU,CAAEj7B,SAAU0a,EAAcl3B,UAAW,uCAAwCf,MAAO,IAAKqmQ,MAAmBrmQ,GAAS,aAAcy1J,EAAWt7J,MAAOusQ,GAC/Kp6O,GAAe,kBAAoB,SAAU,CAAEnyB,MAAO,GAAI24B,SAAU6zO,GAAyBr6O,GAC7FnuB,EAAQuO,KAAI,CAACurO,EAAQpwM,KACjB,MAAO++N,EAAYC,GAAiC,iBAAX5uB,EAAsB,CAACA,EAAQA,GAAU,CAACA,EAAO3gM,KAAM2gM,EAAO99O,OACvG,OAAQ,kBAAoB,SAAU,CAAE+M,IAAK2gC,EAAO1tC,MAAO0sQ,GAAeD,EAAY,KACrF,ECnBJE,GAAe,IAAO,kBAAoB,MAAO,CAAE/pQ,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAClI,kBAAoB,OAAQ,CAAEr1B,EAAG,6RAA8Rm7C,KAAM,YACrU,kBAAoB,OAAQ,CAAEn7C,EAAG,qNAAsNm7C,KAAM,aCDpPgvN,GAAa,EAAGvuN,aAAYnuC,KAAa,kBAAoB,MAAO,CAAEtJ,UAAW,4BAC1F,kBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAM2sC,KAAO3sC,EAAM2sC,KAAO,IAAK15B,QAASjT,EAAMiT,QAASvc,UAAW,yCAAyCy3C,GAAW,KAAMx4C,MAAO,IAAKqK,EAAMrK,UAAYqK,GACvL,kBAAoB,OAAQ,CAAEtJ,UAAW,sDACrCsJ,EAAMrJ,SACN8lQ,QCFCE,GAAsB38P,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,4CAA2CsJ,EAAMuoL,SAC7H,2BACA,iCACNvoL,EAAM48P,gBAAmB,gBAAoB,MAAO,CAAElmQ,UAAW,8BAC7D,IACAsJ,EAAM68P,gBAAgB3wN,cACtB,KAAS,gBAAoB,MAAO,CAAEx1C,UAAW,uCACrD,gBAAoB,MAAO,CAAEA,UAAW,2BACpC,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAW36C,EAAM26C,SAT3C,wCASmEH,IAAKx6C,EAAMw6C,MAC1F,gBAAoB,MAAO,CAAE9jD,UAAW,4BACpC,gBAAoB,KAAM,KACtB,gBAAoB,OAAQ,CAAEA,UAAW,iCAAmCsJ,EAAM88P,aAAe98P,EAAM88P,aAAe,IACtH,gBAAoB,OAAQ,CAAEpmQ,UAAW,kCAAoCsJ,EAAM+8P,cAAgB/8P,EAAM+8P,cAAgB,QAC5HC,GAAoBh9P,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,wBAChF,gBAAoB,MAAO,CAAEA,UAAW,8BAA6BsJ,EAAMuoL,SACjE,2BACA,iCACN,gBAAoB,MAAO,CAAE7xL,UAAW,sCAAwCsJ,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAMuH,IAAW,gBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,uBACpK,gBAAoB,MAAO,CAAEA,UAAW,gDACpC,gBAAoB,IAAK,KAAMu/B,EAAKhc,QACxCgc,EAAKgnO,UAAa,gBAAoB,KAAK,CAAEvmQ,UAAW,4BAA6B4C,IAAK28B,EAAK0kB,WAAgB,gBAAoB,MAAO,CAAEjkD,UAAW,mCACnJ,IACA,gBAAoB,IAAK,KAAMu/B,EAAK2kB,aACpC,UACZ,gBAAoB,MAAO,CAAElkD,UAAW,0BAAyBsJ,EAAMuoL,SAC7D,2BACA,iCACN,gBAAoB+yB,GAAQ,CAAEC,SAAS,EAAMnhN,MAAO4F,EAAM67M,YAAalvK,KAAM3sC,EAAMm1C,eC5B9E+nN,GAAsBl9P,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,sBAClF,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,+BACpC,gBAAoB,MAAO,CAAEA,UAAW,6BACpC,gBAAoB,MAAO,CAAEA,UAAW,2BAA6BsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMuH,IAAU,gBAAoB,MAAO,CAAE3gC,IAAK,aAAa2gC,IAAS9mC,UAAW,2BACrK,gBAAoBimQ,GAAoB,IAAK1mO,SACrD,gBAAoB,MAAO,CAAEv/B,UAAW,2CACpC,gBAAoB,MAAO,CAAEA,UAAW,2DAA6DsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoB,MAAO,CAAEuG,UAAW,0BAA2BmG,IAAK,aAAa1M,KACnN,gBAAoB6sQ,GAAkB,IAAK/mO,YCRlDknO,GAAoB,EAAGC,YAAWziN,WAAUH,MAAKI,cAAayiN,mBAAkBC,qBAAuB,gBAAoB,MAAO,CAAE5mQ,UAAW,uDACxJ,gBAAoB,MAAO,CAAEA,UAAW,gBAAkB0mQ,GAC1D,gBAAoB,MAAO,CAAE1mQ,UAAW,2DACpC,gBAAoB,KAAK,CAAE8oD,QAAS,QAAS9oD,UAAW,yBAA0B4C,IAAKqhD,EAAUH,IAAKA,IACtG,gBAAoB,MAAO,CAAE9jD,UAAW,oBAAsBkkD,IAClE,gBAAoB3M,GAAA,EAAU,CAAEC,OAAQ,uBAAwBvB,KAAM2wN,GAAmBD,IAChFE,GAAkB,EAAGhxN,UAASsvK,cAAa1mK,gBAAkB,gBAAoB,MAAO,CAAEz+C,UAAW,uBAC9G,gBAAoB,MAAO,CAAEA,UAAW,4BACpC,gBAAoB,MAAO,CAAEA,UAAW,qCAAuC61C,EAAQlqC,KAAI,CAAC4zB,EAAMuH,IAAW,gBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,0CAAyCu/B,EAAK0kB,SAAW,gCAAkC,IAAMhlD,MAAO,CAAE67L,UAAW,GAAGv7J,EAAKu7J,gBAC1R,gBAAoB,MAAO,CAAE96L,UAAW,kEACpCu/B,EAAK0kB,UAAY,gBAAoB,KAAK,CAAEjkD,UAAW,2BAA4B4C,IAAK28B,EAAK0kB,SAAUH,IAAKvkB,EAAKkyJ,WACjHlyJ,EAAKhc,OAAS,gBAAoB,MAAO,CAAEvjB,UAAW,wDAA0Du/B,EAAKhc,OACrH,gBAAoB,MAAO,CAAEvjB,UAAW,wDAA0Du/B,EAAK2kB,aACvG3kB,EAAKunO,QAAU,gBAAoB,MAAO,CAAE9mQ,UAAW,mFAAqFu/B,EAAKunO,aACzJ,gBAAoB,MAAO,CAAE9mQ,UAAW,mCACxCmlN,GAAe,gBAAoB,MAAO,CAAEnlN,UAAW,qDACnD,gBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,kBAAmBvB,KAAMwI,EAAY9G,cAAc,GAAQwtK,MChBlG4hD,GAAgBz9P,GAAW,gBAAoB,MAAO,CAAEtJ,UAAW,gBAC5E,gBAAoB,KAAW,CAAEA,UAAW,sBACxC,gBAAoB,MAAO,CAAEA,UAAW,0BACpC,gBAAoB,MAAO,CAAEA,UAAW,uBACpC,gBAAoB,MAAO,CAAEA,UAAW,qBAAuBsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMuH,IAAU,gBAAoB,MAAO,CAAE3gC,IAAK,aAAa2gC,IAAS9mC,UAAW,qBAC/J,gBAAoBymQ,GAAmB,IAAKlnO,SACpD,gBAAoB,MAAO,CAAEv/B,UAAW,qCACpC,gBAAoB,MAAO,CAAEA,UAAW,+CAAiDsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoB,MAAO,CAAEuG,UAAW,oBAAqBmG,IAAK,aAAa1M,KACjM,gBAAoBotQ,GAAiB,IAAKtnO,YCJxDynO,GAAgB,EAAGC,mBAAkB1jP,QAAO2jP,eAAcC,eAAcjjN,cAAakjN,QAAOC,QAAOC,QAAOC,iBAAgBC,kBAAiBC,kBAAiBC,sBAAqBC,qBAAoBC,wBAAuBC,8BAA6BC,uBAAsBC,+BACjR,MAAMC,EAAkBF,GAAsB58O,MAAM,QAC7C+8O,EAAkBC,GAAuB,YAAe,GACzDC,EAAuB,eAAkB,KAC3CD,GAAoBvnN,IAASA,GAAK,GACnC,IACGynN,EAAa,eAAmBC,GAAU,gBAAoB,WAAgB,KAAMA,GAAQ,gBAAoB,MAAO,CAAEroQ,UAAW,8BACtI,gBAAoB,MAAO,CAAEA,UAAW,mCAAqCqoQ,GAAMn9O,MAAM,OAAO,IAChG,gBAAoB,MAAO,CAAElrB,UAAW,UAAYqoQ,GAAMn9O,MAAM,OAAO,OAAQ,IACnF,OAAQ,gBAAoB,MAAO,CAAElrB,UAAW,2BAA0BinQ,EAAmB,kCAAoC,KAC7H,gBAAoB,MAAO,CAAEjnQ,UAAW,iCACpC,gBAAoB,OAAQ,CAAEA,UAAW,cACrC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,IACjE,gBAAoB,OAAQ,CAAEvjB,UAAW,0BACrC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,IACjE,gBAAoBmkM,GAAO,CAAE9kN,IAAKskQ,EAAcpjN,IAAKqjN,EAAcnnQ,UAAW,iCAClF,gBAAoB,IAAK,CAAEA,UAAW,iDAAkDm+C,wBAAyB,CACzGC,OAAQ8F,GAAe,MAE/B,gBAAoB,MAAO,CAAElkD,UAAW,qCACxC,gBAAoB,MAAO,CAAEA,UAAW,2BACpCooQ,EAAWhB,GACXgB,EAAWf,GACXe,EAAWd,IACf,gBAAoB,MAAO,CAAEtnQ,UAAW,qCACxC,gBAAoB,MAAO,KACvB,gBAAoB,IAAK,CAAEA,UAAW,6EAClC,IACAunQ,GACJC,GAAoB,gBAAoB,MAAO,CAAExnQ,UAAW,oDACxD,gBAAoB0nN,GAAO,CAAE9kN,IAAK4kQ,EAAiB1jN,IAAK,gBAAiB9jD,UAAW,oCACpF,gBAAoB0nN,GAAO,CAAE9kN,IAAK6kQ,EAAiB3jN,IAAK,gBAAiB9jD,UAAW,sCAC5F,gBAAoB,KAAU,CAAEi2C,KAAM0xN,EAAoBhwN,aAAckwN,EAA6BrwN,OAAQowN,EAAuB/vN,gBAAgB,GAAQ6vN,GAC5J,gBAAoB,MAAO,CAAE1nQ,UAAW,iCACpC,gBAAoB,MAAO,KAAMgoQ,GAAoB,gBAAoB,MAAO,CAAEhoQ,UAAW,uCAAyCioQ,EAAmBD,EAAkBA,GAAiBp/P,MAAM,EAAG,IAAI+C,KAAI,CAAC28P,EAASxhO,IAAW,gBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,QAClR,gBAAoB,MAAO,CAAEA,UAAW,0CAA4C,MACpF,gBAAoB,MAAO,CAAEA,UAAW,mBAAoBm+C,wBAAyB,CAC7EC,OAAQkqN,UAEpB,gBAAoB,KAAU,CAAE9wN,OAAQ,+BAAgCO,eAAgBkwN,EAAkBnwN,YAAamwN,EAAkB1rP,QAAS4rP,GAAwBJ,IAA4B,EAErMQ,GAAiB,EAAGhlP,QAAO2gC,cAAapN,kBAAiBw3L,QAAOk6B,cACzE,MAAM,QAAEvoN,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,gBAAoB,MAAO,CAAEA,UAAW,oBACpCujB,GACK,gBAAoB,WAAgB,KACjC,gBAAoB,MAAO,CAAEvjB,UAAW,sBACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQgxN,EAAU,aAAe,cAAgBjlP,IACpF,gBAAoB,MAAO,CAAEvjB,UAAW,oCACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBAAkB0M,IAC7D,gBAAoB,MAAO,MAC3B,gBAAoB,MAAO,OACnC,gBAAoB,MAAO,CAAElkD,UAAW,qCAAuCsuO,GAAO3iO,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoB,MAAO,CAAE0M,IAAK,OAAO1M,KAC5I,gBAAoB,MAAO,CAAEuG,UAAW,0BAAyBu/B,EAAK0nO,iBAAmB,cAAgB,IAAM9gQ,IAAK,aAAa1M,KAC7H8lC,EAAK0nO,kBAAoB,gBAAoB,MAAO,CAAEjnQ,UAAW,+FAAiGu/B,EAAK0nO,mBACtK1nO,EAAK0nO,kBAAoB,gBAAoB,MAAO,CAAEjnQ,UAAW,iHAAmH,WACrL,gBAAoBgnQ,GAAe,IAAKznO,WAAe,gECnD/E,SAASkpO,GAAS7oO,GAChB,IAAI81J,EAAM91J,GAAWA,EAAQlB,eAAiBj9B,SAE9C,MAAO,CACLA,SAAUi0L,EACVh7L,OAHQg7L,EAAI/2J,aAAe+2J,EAAIgzE,cAAgBhuQ,OAKnD,CAEA,SAASiuQ,GAAgB/oO,GACvB,OAAOA,GAAWn+B,SAAS2uL,IAC7B,CCrBA,IAAIw4E,GAAY,yBACZC,GAAwB,iBAExBhlI,GAAU,GA8CVilI,GAAwB,SAAU73C,GAGpC,SAAS63C,EAASx/P,GAChB,IAAIwxB,EAiCJ,OA/BAA,EAAQm2L,EAAiBj3N,KAAKjB,KAAMuQ,IAAUvQ,MAQxCgwQ,eAAYliQ,EAElBi0B,EAAMkuO,cAAgBluO,EAAMkuO,cAAcvzP,MAAK,QAAuBqlB,IACtEA,EAAMmuO,aAAenuO,EAAMmuO,aAAaxzP,MAAK,QAAuBqlB,IACpEA,EAAMouO,cAAgBpuO,EAAMouO,cAAczzP,MAAK,QAAuBqlB,IACtEA,EAAM0mM,QAAU1mM,EAAM0mM,QAAQ/rN,MAAK,QAAuBqlB,IAE1DA,EAAMquO,YAAcruO,EAAMquO,YAAY1zP,MAAK,QAAuBqlB,IAClEA,EAAMsuO,aAAetuO,EAAMsuO,aAAa3zP,MAAK,QAAuBqlB,IACpEA,EAAMuuO,aAAevuO,EAAMuuO,aAAa5zP,MAAK,QAAuBqlB,IACpEA,EAAMwuO,aAAexuO,EAAMwuO,aAAa7zP,MAAK,QAAuBqlB,IACpEA,EAAMouB,YAAcpuB,EAAMouB,YAAYzzC,MAAK,QAAuBqlB,IAClEA,EAAMyuO,WAAazuO,EAAMyuO,WAAW9zP,MAAK,QAAuBqlB,IAChEA,EAAM0uO,YAAc1uO,EAAM0uO,YAAY/zP,MAAK,QAAuBqlB,IAClEA,EAAM2uO,uBAAyB3uO,EAAM2uO,uBAAuBh0P,MAAK,QAAuBqlB,IACxFA,EAAM36B,IAAmB,cACzB26B,EAAM4uO,oBAAqB,EAC3B5uO,EAAMze,MAAQ,CACZstP,YAAY,EACZC,WAAW,EACXC,UAAWvgQ,EAAM+tB,GACjByyO,UAAW,IAENhvO,CACT,CC1FF,IAAwBxhC,EAAGY,IDqDA+2N,GCrDH33N,EDqDPwvQ,GCpDbhvQ,UAAYZ,OAAO4K,OAAO5J,EAAEJ,WAAYR,EAAEQ,UAAU+O,YAAcvP,GAAG,EAAAuc,GAAA,GAAevc,EAAGY,GD2FzF,IAAI0iC,EAASksO,EAAShvQ,UA0StB,OAxSA8iC,EAAOE,kBAAoB,WACzB,IAAI+sE,EAAS9wG,KAITqvL,EAAQqgF,GADEE,GAAgB5vQ,KAAKuQ,MAAMygQ,iBAEzChxQ,KAAKgwQ,UAAY3gF,EAAM1tL,OAAOsvQ,eAAYnjQ,OACC,IAAnB9N,KAAKgwQ,UAQ3BhwQ,KAAK8jB,SAAS,CACZ8sP,YAAY,IACX,WACD9/J,EAAOm/J,eACT,IAIFjwQ,KAAKowQ,aACP,EAEAvsO,EAAOI,qBAAuB,WAC5B,IAAI8sO,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEfhwQ,KAAKyoO,YAKVwoC,EAASnjO,MAAMijO,GACfE,EAAShnN,OAAO8mN,GAClB,EAEAltO,EAAOqtO,sBAAwB,SAA+BC,EAAWC,GAEvE,OAAIpxQ,KAAKsjB,MAAMstP,aAAeQ,EAAUR,YAAc5wQ,KAAKsjB,MAAMutP,YAAcO,EAAUP,SAK3F,EAEAhtO,EAAOG,mBAAqB,SAA4B61L,GACtD,IAAIw3C,EAASrxQ,KAGF,CAAC,UAAW,OAAQ,QAAS,WAAY,mBAAoB,YAEvDgiB,OAAM,SAAU5U,GAC/B,OAAOysN,EAAUzsN,KAASikQ,EAAO9gQ,MAAMnD,EACzC,KAGEpN,KAAKmwQ,eAAc,WACjBkB,EAAOpB,eACT,GAEJ,EAEApsO,EAAOusO,YAAc,WACnB,IAAIpwQ,KAAK2wQ,mBAAT,CAIA,IAAIxsO,EAAcnkC,KAAKuQ,MACnB+gQ,EAAUntO,EAAYmtO,QACtBC,EAAYptO,EAAYotO,UACxBC,EAAWrtO,EAAYqtO,SACvBtuO,EAAOiB,EAAYjB,KACnBuuO,EAAUttO,EAAYstO,SAjKL,SAA4B7pL,QACpC,IAAXA,IACFA,EAAS,CAAC,GAGZ,IAAI/gD,EAAU+oO,GAAgBhoL,EAAOopL,uBAC9BppL,EAAOopL,eACd,IAAI3hF,EAAQqgF,GAAS7oO,GACjBkwJ,EAASjsD,GAAQ5+H,MAAK,SAAU8H,GAElC,OADYA,EAAK09P,QACAriF,EAAM1tL,MACzB,IAEA,GAAI0tL,EAAM3mL,SAAS+vB,eAAeo3O,KAAc94E,EAE9C,OAAOA,EAAO18F,QAGhB,IAAIA,EAAU,IAAI/vF,SAAQ,SAAU6jC,EAAS+4C,GAE3CmoG,EAAM1tL,OAAOmuQ,IAAyB3hO,EACtC,IAAIwjO,EAAS/pL,EAAO0pL,SAAW,iCACxB1pL,EAAO0pL,QACd,IAAIv6E,EAAS1H,EAAM3mL,SAASvB,cAAc,UAC1C4vL,EAAOz4J,GAAKuxO,GACZ94E,EAAOltL,IAAM8nQ,EAAS,oCAAsC7B,GAC5D/4E,EAAOxvI,WAA6Bz5C,IAArB85E,EAAOgqL,WAA0BhqL,EAAOgqL,iBAChDhqL,EAAOgqL,UAEd76E,EAAO1qH,QAAU,SAAUpqC,GACzB,OAAOilD,EAAO,eAChB,EAEA,IAAIz+B,ED1CR,SAAuBm/B,GACrB,OAAOznF,OAAOolC,QAAQqiD,GAAQ76E,QAAO,SAAUiH,GACnCA,EAAK,GAAf,IACI3T,EAAQ2T,EAAK,GACjB,OAAO3T,IAAmB,IAAVA,CAClB,IAAGuS,KAAI,SAAUiC,GACf,IAAIzH,EAAMyH,EAAM,GACZxU,EAAQwU,EAAM,GAClB,OAAOg9P,mBAAmBzkQ,GAAO,IAAMykQ,mBAAmBxxQ,EAC5D,IAAG2oB,KAAK,IACV,CCgCgB8oP,CAAclqL,GAC1BmvG,EAAOltL,KAAiB,KAAV4+C,EAAe,IAAMA,EAAQ,GAC3C5hB,EAAQjO,YAAYm+J,EACtB,IAKA,OAJAjsD,GAAQx/H,KAAK,CACX+uF,QAASA,EACTq3K,MAAOriF,EAAM1tL,SAER04F,CACT,EA6II03K,CAdkB,CAChBT,QAASA,EACTC,UAAWA,EACXC,SAAUA,EACVQ,GAXO7tO,EAAY8tO,iBAYnB/uO,KAAMA,EACNuuO,QAASA,EACTS,iBAAqC,IAbjB/tO,EAAYguO,gBAaa,MAAQ,KACrDC,UAbcjuO,EAAYiuO,UAc1BC,OAbWluO,EAAYkuO,OAcvBnmF,OAbW/nJ,EAAY+nJ,OAcvB0lF,UAbcztO,EAAYytO,UAc1BZ,eAbmB7sO,EAAY6sO,iBAeDtmQ,KAAK1K,KAAKqwQ,cAAqB,MAAErwQ,KAAKmwD,aACtEnwD,KAAK2wQ,oBAAqB,CA9B1B,CA+BF,EAEA9sO,EAAOosO,cAAgB,SAAuBqC,GAE5C,GADiBtyQ,KAAKsjB,MAAMstP,WAC5B,CACA,IAAI2B,EAAepyQ,OAAOS,OAAO,CAC/B,gBAAiBZ,KAAKwwQ,WACtB,iBAAkBxwQ,KAAKywQ,YACvB,iBAAkBzwQ,KAAKmwD,YACvB,uBAAwBnwD,KAAK0wQ,uBAC7B,mBAAoB1wQ,KAAKuwQ,aACzB,SAAYvwQ,KAAKswQ,cAChBtwQ,KAAKuQ,MAAO,CACbyhQ,GAAIhyQ,KAAKuQ,MAAMyhQ,IAAMhyQ,KAAKuQ,MAAM0hQ,iBAChCA,sBAAkBnkQ,IAIhBijQ,EAFW/wQ,KAAKgwQ,UAEK9rO,OAAOlkC,KAAKoH,IAAI1D,QAAS6uQ,GAClDvyQ,KAAK8jB,SAAS,CACZ+sP,WAAW,EACXE,UAAWA,IACV,WACDuB,GAAWA,GACb,GApBuB,CAqBzB,EAEAzuO,EAAOqsO,aAAe,WACpB,IAAIa,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEfhwQ,KAAKyoO,WAKVwoC,EAASnjO,MAAMijO,EACjB,EAEAltO,EAAOssO,cAAgB,SAAuBj4M,GAC5C,IAAI64M,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEfhwQ,KAAKyoO,WAIVzoO,KAAK8jB,SAAS,CACZ+sP,WAAW,IACV,WACDI,EAAShnN,OAAO8mN,GAChB74M,GAAYA,GACd,GACF,EAEAr0B,EAAOwsO,aAAe,WACpB,IAAImC,EAASxyQ,KAEbA,KAAK8jB,SAAS,CACZ8sP,YAAY,IACX,WACD,IACIvhF,EAAQqgF,GADEE,GAAgB4C,EAAOjiQ,MAAMygQ,iBAE3CwB,EAAOxC,UAAY3gF,EAAM1tL,OAAOsvQ,SAEhCuB,EAAOvC,eAAc,WAEnB,IAAI1+K,EAASihL,EAAOjiQ,MAAMghF,OACtBA,GAAQA,GACd,GACF,GACF,EAEA1tD,EAAOysO,aAAe,SAAsBruO,GAC1C,IAAIwwO,EAAWzyQ,KAAKuQ,MAAMkiQ,SACtBC,EAAc1yQ,KAAKsjB,MACnButP,EAAY6B,EAAY7B,UACxBE,EAAY2B,EAAY3B,UACxBE,EAAWjxQ,KAAKgwQ,UACpB,QAAwB,IAAbiB,IAA4BJ,EAAvC,CACA,IAAIvoN,EAAQ2oN,EAAS0B,YAAY5B,GAE7B6B,EAAO3B,EAAS4B,WAAW9B,GAE3B0B,GAAUA,EAASnqN,EAAOsqN,EAL0B,CAM1D,EAEA/uO,EAAO0sO,aAAe,WACpB,IAAIuC,EAAW9yQ,KAAKuQ,MAAMuiQ,SACtB/B,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEfhwQ,KAAKyoO,YAIVwoC,EAASnjO,MAAMijO,GAEX+B,GAAUA,IAChB,EAEAjvO,EAAOssB,YAAc,SAAqBluB,GACxC,IAAI+tB,EAAUhwD,KAAKuQ,MAAMy/C,QACrB+gN,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEhBhwQ,KAAKyoO,WAEPwoC,EAASnjO,MAAMijO,GAGb/gN,GAASA,EAAQ/tB,EACvB,EAEA4B,EAAO4kM,QAAU,WACf,IAAIsqC,EAAe/yQ,KAAKsjB,MACpBstP,EAAamC,EAAanC,WAC1BC,EAAYkC,EAAalC,UAC7B,OAAOD,IAAeC,CACxB,EAEAhtO,EAAO2sO,WAAa,WACbxwQ,KAAKyoO,WAAczoO,KAAKuQ,MAAMyiQ,QAInChzQ,KAAKuQ,MAAMyiQ,QACb,EAEAnvO,EAAO4sO,YAAc,WACdzwQ,KAAKyoO,WAAczoO,KAAKuQ,MAAM0iQ,SAInCjzQ,KAAKuQ,MAAM0iQ,SACb,EAEApvO,EAAO6sO,uBAAyB,WACzB1wQ,KAAKyoO,WAAczoO,KAAKuQ,MAAM2iQ,eAInClzQ,KAAKuQ,MAAM2iQ,eACb,EAEArvO,EAAOsvO,QAAU,SAAiB9Y,QACnB,IAATA,IACFA,EAAO,MAGT,IAAI0W,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEpB,GAAKhwQ,KAAKyoO,UAQV,OAJI4xB,GAAwB,iBAATA,IACjBA,EAAO,MAGF4W,EAASkC,QAAQpC,EAAW1W,EACrC,EAEAx2N,EAAO6Y,QAAU,SAAiBrP,GAChC,IAAI0jO,EAAY/wQ,KAAKsjB,MAAMytP,UACvBE,EAAWjxQ,KAAKgwQ,UAEfhwQ,KAAKyoO,YAINp7L,GAAwB,iBAATA,IACjBA,EAAO,MAGT4jO,EAASv0N,QAAQq0N,EAAW1jO,GAC9B,EAEAxJ,EAAO8uO,YAAc,WAEnB,OADe3yQ,KAAKgwQ,UACJ2C,YAAY3yQ,KAAKsjB,MAAMytP,UACzC,EAEAltO,EAAOgvO,WAAa,WAElB,OADe7yQ,KAAKgwQ,UACJ6C,WAAW7yQ,KAAKsjB,MAAMytP,UACxC,EAEAltO,EAAOK,OAAS,WACd,IAAI4sO,EAAY9wQ,KAAKsjB,MAAMwtP,UAC3B,OAAoB,gBAAoB,MAAO,CAC7C1pQ,IAAKpH,KAAKoH,IACVk3B,GAAIwyO,GAER,EAEOf,CACT,CAnV4B,CAmV1B,aAEF,4CEnYO,MAAMqD,GAAe7iQ,IACxB,MAAM8iQ,EAAkB,CACpBC,OAAQ/iQ,EAAMgjQ,cAAc,GAC5BC,UAAW,GACX74M,MAAO,GACP84M,YAAa,GACbx/B,WAAY1jO,EAAMmjQ,qBAAqB,GACvCtrN,QAAS,GACTurN,SAAU,GACVC,WAAW,GAETC,EAAyB,CAC3BP,QAAQ,EACRE,WAAW,EACX74M,OAAO,EACP84M,aAAa,EACbx/B,YAAY,EACZ2/B,WAAW,EACXE,YAAY,EACZ1rN,SAAS,GAEP2rN,EACM,SADNA,EAEO,UAFPA,EAGK,QAHLA,EAIO,WAENC,EAAYC,GAAiB,cAC7BC,EAAiBC,GAAsB,WAAeN,IACtDO,EAAcC,GAAmB,WAAe,KAChDC,EAAgBC,GAAqB,WAAe,KACpDC,EAAcC,GAAmB,WAAeV,IAChDW,EAAmBC,GAAwB,YAAe,IAC1Dr5K,EAAUs5K,GAAe,WAAevB,GACzCvnN,EAAa,SAAa,MAC1B+oN,EAAa,SAAa,MAC1BC,EAAqB,eAAkB,KACzCT,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAAC7jQ,EAAM6jQ,gBACJ,OAAEd,EAAM,UAAEE,EAAS,MAAE74M,EAAK,YAAE84M,EAAW,WAAEx/B,EAAU,QAAE7rL,EAAO,UAAEwrN,GAAct4K,EAC5Ey5K,EAAkB,eAAmB9gC,GAAe1jO,EAAMmjQ,qBAAqB,KAAOz/B,GAAY,CAAC1jO,EAAMmjQ,uBACzGsB,EAAgB,eAAmB1B,GAAW/iQ,EAAMgjQ,cAAc,KAAOD,GAAQ,CAAC/iQ,EAAMgjQ,iBAEvF0B,EAAaC,GAAkB,WAAe,cAC9C5sN,EAAO6sN,GAAY,aACpBC,EAAoB,eAAmB/0Q,GAAY60Q,EAAe70Q,IAAU,IAClF,aAAgB,KACZ,GAAI6zQ,EAAgBJ,WAAY,CAC5B,MAAMuB,EAAqB,IACpBnB,EACHV,YAAY,SAAYl4K,EAASk4K,WACjC74M,QAAQ,SAAa2gC,EAAS3gC,OAC9B84M,cAAc,SAAan4K,EAASm4K,aACpCx/B,YAAa8gC,EAAgBz5K,EAAS24I,YACtCq/B,QAAS0B,EAAc15K,EAASg4K,QAChCM,WAA6Bt4K,EAASs4K,UACtCxrN,SAAUkzC,EAASlzC,SAEvB+rN,EAAmBkB,EACvB,IACD,CAAC/5K,IACJ,MAAMg6K,EAAe,eAAmBh1Q,IACpC+zQ,EAAgB,IAChBE,EAAkB,IAClB,MAAM,KAAEpoQ,EAAI,MAAE9L,GAAUC,EAAEmG,OACtBiuQ,GACAE,GAAat5K,IAAa,IAAMA,EAAU,CAACnvF,GAAO9L,KACtD,GACD,CAACq0Q,IACEa,EAAkB,eAAkB,KACtClB,EAAgB,IACZK,GACAE,GAAat5K,IAAa,IAAMA,EAAUs4K,WAAYt4K,EAASs4K,aACnE,GACD,CAACc,IACEc,EAAY,eAAkB,KAChCrB,EAAmBN,GACnBpwQ,YAAW,KACPmxQ,EAAYvB,EAAgB,GAC7B,IACHgB,EAAgB,IAChBM,GAAqB,EAAK,GAC3B,IACGc,EAA2B,eAAmBC,IAChD,MAAMC,EAAkB,IAAI56K,SAC5B46K,EAAgB/7K,OAAO,mBAAoB87K,GAAoC,IAC/E,IAAK,MAAMtoQ,KAAOkuF,EACF,aAARluF,EACAuoQ,EAAgB/7K,OAAOxsF,EAAKkuF,EAASluF,IAGvBkuF,EAASluF,GACjB7G,SAAS4sE,IACXwiM,EAAgB/7K,OAAO,WAAYzmB,EAAK,IAKpD,OADA5iE,EAAMqlQ,YAAcD,EAAgB/7K,OAAO,aAAcrpF,EAAMqlQ,YACxDD,CAAe,GACvB,CAACr6K,IACEu6K,EAAgB,eAAkB,KACpC,MAAMR,EAAqB,IACpBnB,EACHV,YAAY,SAAYl4K,EAASk4K,WACjC74M,QAAQ,SAAa2gC,EAAS3gC,OAC9B84M,cAAc,SAAan4K,EAASm4K,aACpCx/B,YAAa8gC,EAAgBz5K,EAAS24I,YACtCq/B,QAAS0B,EAAc15K,EAASg4K,QAChCM,WAA6Bt4K,EAASs4K,UACtCxrN,SAAUkzC,EAASlzC,SAEvB,MAAO,CAAE0tN,OAAS31Q,OAAO+wD,OAAO,IAAKmkN,EAAoBvB,YAAY,IAAShzP,MAAKzgB,IAAmB,IAAVA,IAAkBg1Q,qBAAoB,GACnI,CAACnB,EAAiB54K,EAASk4K,UAAWl4K,EAAS3gC,MAAO2gC,EAASm4K,YAAan4K,EAAS24I,WAAY34I,EAASg4K,OAAQh4K,EAASs4K,UAAWt4K,EAASlzC,QAAS2sN,EAAiBC,IACtKe,EAAmB,eAAkB,KACvCxB,EAAkBhkQ,EAAM+jQ,gBACxBG,EAAgBV,GAChByB,GAAW,GACZ,CAACzB,EAAsBxjQ,EAAM+jQ,eAAgBkB,IAC1CQ,EAAkB,eAAkB,KACtCrB,GAAqB,GACrBF,EAAgBV,GAChBM,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAACL,EAAoBxjQ,EAAM6jQ,eACxB6B,EAAc,eAAkB1uN,UAClCktN,EAAgBV,GAChB,IAKqB,aAJDjsN,MAAM,KAAM,CACxB1H,OAAQ,OACR92B,KAAM0qP,KAEJjoQ,OACFgqQ,IAGAC,GAER,CACA,MACIA,GACJ,IACD,CAACjC,EAAsBC,EAAYgC,EAAiBD,IACjDG,EAAwB,eAAkB,IAAOrB,EAAWnxQ,SAASyvQ,WAAY,IACjFgD,EAAgB,eAAkB5uN,MAAOjnD,IAC3CA,EAAEomB,iBACFiuP,GAAqB,GACrBJ,EAAkB,IAClB,MAAM,MAAEuB,EAAK,mBAAET,GAAuBQ,IACtC,IAAKC,EAID,OAHAT,EAAmBvB,YAAa,EAChCK,EAAmBkB,QACnBV,GAAqB,GAGzB,MAAMyB,EAAgBF,IAChBP,EAAkBF,EAAyBW,GAAiB,IAClEhB,EAAkB,UAClBnB,EAAc0B,EACR,GACP,CAACF,EAA0BI,EAAeK,EAAuBd,IAC9DiB,EAAsB,eAAkB,KAC1C5B,EAAgBV,GAChBoB,OAASrnQ,GACTsnQ,EAAkB,YAAY,GAC/B,CAACrB,EAAqBqB,IACnBkB,EAAe,eAAkB,WACnC,OAAO,gBAAoB,OAAQ,CAAErvQ,UAAW,+BAAiC,IACrF,GAAG,IACGsvQ,EAAgB,eAAkB,UAAuB,MAAEC,IAC7D,OAAQtC,EAAgBsC,IAAU,gBAAoB,OAAQ,CAAEvvQ,UAAW,gCAAkCsJ,EAAMkmQ,kBACvH,GAAG,CAACvC,IACEwC,EAAY,eAAkB,IAAM,gBAAoB7qD,GAAQ,CAAElhN,MAAO4F,EAAMomQ,YAAa7qD,SAAS,EAAMtoM,QAAS2yP,EAAez3N,QAAS,IAAIg2N,GAAqB,+BAAgC,CAACnkQ,EAAMomQ,YAAaR,EAAezB,IACxOkC,EAAiB,eAAkB,IAAO,gBAAoB,WAAgB,KAChF,IACApC,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMsmQ,8BAClFrC,IAAiBT,GAAsB,gBAAoB,WAAgB,KACvE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAM6jQ,eAClFI,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMumQ,oCAAqC,CAACtC,IAC5H,aAAgB,KACZ,SAASryO,EAAmBF,GACpB6pB,EAAWpoD,UAAYooD,EAAWpoD,QAAQ+lB,SAASwY,EAAMx7B,UACpD+tQ,IAAiBT,GAAwBS,IAAiBT,GAC3DsC,IAGZ,CAEA,OADA3tQ,SAAS5G,iBAAiB,YAAaqgC,GAChC,KACHz5B,SAAS1G,oBAAoB,YAAamgC,EAAmB,CAChE,GACF,CAAC2pB,EAAY0oN,IAChB,aAAgB,KACRlsN,QAAwBx6C,IAAfkmQ,IACJiC,IACLd,OAASrnQ,GACTmmQ,OAAcnmQ,GAClB,GACD,CAACkmQ,EAAYiC,EAAa3tN,IAC7B,MAAMyuN,GAAU,eAAkB,IAAO,gBAAoB,WAAgB,KAAMvC,IAAiBT,GAChG,gBAAoB,MAAO,CAAE9sQ,UAAW,iCACpC,gBAAoB,MAAO,CAAEG,IAAK0kD,EAAY7kD,UAAW,+BACrD,gBAAoB,MAAO,CAAEA,UAAW,6CACpC,gBAAoB2vQ,EAAgB,OACxC,gBAAoB,OAAQ,CAAE3vQ,UAAW,mCAAqCutQ,IAAiBT,GAAwB,gBAAoB,WAAgB,KACvJ,gBAAoBnqN,GAAA,EAAgB,QACxC4qN,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoBloD,GAAQ,CAAElhN,MAAO4F,EAAMymQ,mBAAoBlrD,SAAS,EAAMtoM,QAAS6yP,SAA6B,CAACO,EAAgB7C,EAAqBA,EAAsBsC,EAAqB7B,EAAcjkQ,EAAMymQ,qBAEzO,OAAQ,gBAAoB,MAAO,CAAE/vQ,UAAW,4CAC5C,gBAAoB,MAAO,CAAEA,UAAW,2BACpC,gBAAoB,MAAO,CAAEA,UAAW,sBACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBluC,EAAMia,OAC/D,gBAAoBusP,GAAS,MAC7B,gBAAoB,MAAO,CAAE9vQ,UAAW,kCAAiCutQ,IAAiBT,EAAsB,iCAAmC,KAC/I,gBAAoB,MAAO,CAAE9sQ,UAAW,8DACpC,gBAAoB,QAAS,CAAE8sO,QAAS,SAAU9sO,UAAW,qDACzDsJ,EAAM0mQ,YACN,gBAAoBX,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,YAChD,gBAAoB,SAAU,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,SAAUmyB,GAAI,SAAUj+B,MAAOizQ,GAAU/iQ,EAAMgjQ,cAAc3gQ,KAAI,CAACurO,EAAQz9O,IAAO,gBAAoB,SAAU,CAAE0M,IAAK,iBAAiB1M,IAAKL,MAAO89O,EAAQnlN,SAAgB,IAANt4B,GAAWy9O,OAClP,gBAAoB,MAAO,CAAEl3O,UAAW,iEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,YAAa9sO,UAAW,qDAC5DsJ,EAAM2mQ,eACN,gBAAoBZ,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,eAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOmzQ,EAAWz+P,KAAM,OAAQ5I,KAAM,YAAamyB,GAAI,YAAa9L,YAAajiB,EAAM4mQ,wBAClJ,gBAAoB,MAAO,CAAElwQ,UAAW,6DACpC,gBAAoB,QAAS,CAAE8sO,QAAS,QAAS9sO,UAAW,qDACxDsJ,EAAMq0C,WACN,gBAAoB0xN,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,WAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOs6D,EAAO5lD,KAAM,QAAS5I,KAAM,QAASmyB,GAAI,QAAS9L,YAAajiB,EAAM6mQ,oBACvI,gBAAoB,MAAO,CAAEnwQ,UAAW,mEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,cAAe9sO,UAAW,qDAC9DsJ,EAAM8mQ,WACN,gBAAoBf,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,iBAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOozQ,EAAa1+P,KAAM,SAAU5I,KAAM,cAAemyB,GAAI,cAAe9L,YAAajiB,EAAM+mQ,oBAC1J,gBAAoB,MAAO,CAAErwQ,UAAW,qEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,gBAAiB9sO,UAAW,qDAChEsJ,EAAMgnQ,mBACN,gBAAoBjB,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,gBAChD,gBAAoB,SAAU,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,aAAcmyB,GAAI,aAAcj+B,MAAO4zO,GAAc1jO,EAAMmjQ,qBAAqB9gQ,KAAI,CAACurO,EAAQz9O,IAAO,gBAAoB,SAAU,CAAE0M,IAAK,wBAAwB1M,IAAKL,MAAO89O,EAAQnlN,SAAgB,IAANt4B,GAAWy9O,OAC5Q,gBAAoB,MAAO,CAAEl3O,UAAW,qCACpC,gBAAoB,QAAS,CAAE8sO,QAAS,UAAW9sO,UAAW,uBAC1DsJ,EAAMinQ,aACN,gBAAoBlB,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,aAChD,gBAAoB,WAAY,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,UAAWmyB,GAAI,UAAWj+B,MAAO+nD,EAAS+5I,KAAM,EAAG3vK,YAAajiB,EAAMknQ,sBAC1I,gBAAoB,MAAO,CAAExwQ,UAAW,oEACpC,gBAAoB,OAAQ,CAAEA,UAAW,oBACrC,gBAAoB,QAAS,CAAEwc,SAAU8xP,EAAiBxgQ,KAAM,WAAY5I,KAAM,YAAamyB,GAAI,YAAao5O,QAAS9D,KAC7H,gBAAoB,QAAS,CAAE7/B,QAAS,YAAa9sO,UAAW,iCAC5D,gBAAoB,OAAQ,CAAEA,UAAW,uCAAwCm+C,wBAAyB,CAClGC,OAAQ90C,EAAMonQ,mBAE1B,gBAAoBpB,EAAe,CAAEC,MAAO,eAChD,gBAAoB,MAAO,CAAEvvQ,UAAW,wBACpC,gBAAoByvQ,EAAW,OACnC,gBAAoB,MAAO,CAAEzvQ,UAAW,qCACpC,gBAAoB,GAAU,CAAE2wQ,QAASrnQ,EAAMsnQ,YAAa7nN,QAAS8kN,EAAoB1tQ,IAAKytQ,EAAYv5M,KAAM25M,EAAahD,iBAAkB1hQ,EAAMunQ,qBAAsBrF,SAtDhKnqN,GAAW6sN,EAAS7sN,MAuDnC8rN,GAAgB,gBAAoB,MAAO,CAAEntQ,UAAW,qCAAuCmtQ,GAC/FE,GAAkB,gBAAoB,MAAO,CAAErtQ,UAAW,uCAAyCqtQ,MAAoB,ECzQ9HyD,GAAmBxnQ,IAC5B,MAAM8iQ,EAAkB,CACpBC,OAAQ/iQ,EAAMgjQ,cAAc,GAC5BC,UAAW,GACXwE,SAAU,GACVr9M,MAAO,GACP84M,YAAa,GACbx/B,WAAY1jO,EAAMmjQ,qBAAqB,GACvCtrN,QAAS,GACTurN,SAAU,IAERE,EAAyB,CAC3BP,QAAQ,EACRE,WAAW,EACXwE,UAAU,EACVr9M,OAAO,EACP84M,aAAa,EACbx/B,YAAY,EACZ6/B,YAAY,EACZ1rN,SAAS,GAEP2rN,EACM,SADNA,EAEO,UAFPA,EAGK,QAHLA,EAIO,WAENz4K,EAAUs5K,GAAe,WAAevB,IACxCW,EAAYC,GAAiB,cAC7BC,EAAiBC,GAAsB,WAAeN,IACtDO,EAAcC,GAAmB,WAAe,KAChDC,EAAgBC,GAAqB,WAAe,KACpDC,EAAcC,GAAmB,WAAeV,IAChDW,EAAmBC,GAAwB,YAAe,GAC3D7oN,EAAa,SAAa,MAC1B+oN,EAAa,SAAa,MAC1BC,EAAqB,eAAkB,KACzCT,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAAC7jQ,EAAM6jQ,gBACJ,OAAEd,EAAM,UAAEE,EAAS,SAAEwE,EAAQ,MAAEr9M,EAAK,YAAE84M,EAAW,WAAEx/B,EAAU,QAAE7rL,GAAakzC,EAC5E/gC,EAAepuD,IAAU,4BAA4B6D,KAAK7D,IAASA,EAAKrL,QAAU,KAAOqL,EAAKrL,OAAS,EACvG05D,EAAgBC,GAAU,wBAAwBzqD,KAAKyqD,IAAUA,EAAM35D,QAAU,GACjF45D,EAAgBC,GAAU,+CAA+C3qD,KAAK2qD,IAAUA,EAAM75D,QAAU,IACxGi0Q,EAAkB,eAAmB/I,GAAmD,IAAtCz7P,EAAMmjQ,qBAAqB5yQ,QAAeyP,EAAMmjQ,qBAAqB,KAAO1H,GAAiB,CAACz7P,EAAMmjQ,uBACtJsB,EAAgB,eAAmB1B,GAAW/iQ,EAAMgjQ,cAAc,KAAOD,GAAQ,CAAC/iQ,EAAMgjQ,iBACvF0B,EAAaC,GAAkB,WAAe,cAC9C5sN,EAAO6sN,GAAY,aACpBC,EAAoB,eAAmB/0Q,GAAY60Q,EAAe70Q,IAAU,IAClF,aAAgB,KACZ,GAAI6zQ,EAAgBJ,WAAY,CAC5B,MAAMuB,EAAqB,IACpBnB,EACHV,WAAYj5M,EAAY+gC,EAASk4K,WACjCwE,UAAWz9M,EAAY+gC,EAAS08K,UAChCr9M,OAAQD,EAAa4gC,EAAS3gC,OAC9B84M,aAAcj5M,EAAa8gC,EAASm4K,aACpCx/B,YAAa8gC,EAAgBz5K,EAAS24I,YACtCq/B,QAAS0B,EAAc15K,EAASg4K,QAChClrN,SAAUkzC,EAASlzC,SAEvB+rN,EAAmBkB,EACvB,IACD,CAAC/5K,IACJ,MAAMg6K,EAAe,eAAmBh1Q,IACpC+zQ,EAAgB,IAChBE,EAAkB,IAClB,MAAM,KAAEpoQ,EAAI,MAAE9L,GAAUC,EAAEmG,OAC1BmuQ,GAAat5K,IAAa,IAAMA,EAAU,CAACnvF,GAAO9L,KAAS,GAC5D,IACGm1Q,EAAY,eAAkB,KAChCrB,EAAmBN,GACnBpwQ,YAAW,KACPmxQ,EAAYvB,EAAgB,GAC7B,IACHgB,EAAgB,IAChBM,GAAqB,EAAK,GAC3B,IACGc,EAA2B,eAAmBC,IAChD,MAAMC,EAAkB,IAAI56K,SAC5B46K,EAAgB/7K,OAAO,mBAAoB87K,GAAoC,IAC/E,IAAK,MAAMtoQ,KAAOkuF,EACF,aAARluF,EACAuoQ,EAAgB/7K,OAAOxsF,EAAKkuF,EAASluF,IAGvBkuF,EAASluF,GACjB7G,SAAS4sE,IACXwiM,EAAgB/7K,OAAO,WAAYzmB,EAAK,IAKpD,OADA5iE,EAAMqlQ,YAAcD,EAAgB/7K,OAAO,aAAcrpF,EAAMqlQ,YACxDD,CAAe,GACvB,CAACr6K,IACEu6K,EAAgB,eAAkB,KACpC,MAAMR,EAAqB,IACpBnB,EACHV,WAAYj5M,EAAY+gC,EAASk4K,WACjCwE,UAAWz9M,EAAY+gC,EAAS08K,UAChCr9M,OAAQD,EAAa4gC,EAAS3gC,OAC9B84M,aAAcj5M,EAAa8gC,EAASm4K,aACpCx/B,YAAa8gC,EAAgBz5K,EAAS24I,YACtCq/B,QAAS0B,EAAc15K,EAASg4K,QAChClrN,SAAUkzC,EAASlzC,SAEvB,MAAO,CAAE0tN,OAAS31Q,OAAO+wD,OAAO,IAAKmkN,EAAoBvB,YAAY,IAAShzP,MAAKzgB,IAAmB,IAAVA,IAAkBg1Q,qBAAoB,GACnI,CAACnB,EAAiB54K,EAASk4K,UAAWl4K,EAAS08K,SAAU18K,EAAS3gC,MAAO2gC,EAASm4K,YAAan4K,EAAS24I,WAAY34I,EAASg4K,OAAQh4K,EAASlzC,QAAS2sN,EAAiBC,IACrKe,EAAmB,eAAkB,KACvCxB,EAAkBhkQ,EAAM+jQ,gBACxBG,EAAgBV,GAChByB,GAAW,GACZ,CAACzB,EAAsBxjQ,EAAM+jQ,eAAgBkB,IAC1CQ,EAAkB,eAAkB,KACtCrB,GAAqB,GACrBF,EAAgBV,GAChBM,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAACL,EAAoBxjQ,EAAM6jQ,eACxB6B,EAAc,eAAkB1uN,UAClCktN,EAAgBV,GAChB,IAKqB,aAJDjsN,MAAM,GAAI,CACtB1H,OAAQ,OACR92B,KAAM0qP,KAEJjoQ,OACFgqQ,IAGAC,GAER,CACA,MACIA,GACJ,IACD,CAACjC,EAAsBC,EAAYgC,EAAiBD,IACjDG,EAAwB,eAAkB,IAAOrB,EAAWnxQ,SAASyvQ,WAAY,IACjFgD,EAAgB,eAAkB5uN,MAAOjnD,IAC3CA,EAAEomB,iBACFiuP,GAAqB,GACrBJ,EAAkB,IAClB,MAAM,MAAEuB,EAAK,mBAAET,GAAuBQ,IACtC,IAAKC,EAID,OAHAT,EAAmBvB,YAAa,EAChCK,EAAmBkB,QACnBV,GAAqB,GAGzB,MAAMyB,EAAgBF,IAChBP,EAAkBF,EAAyBW,GAAiB,IAClEhB,EAAkB,UAClBnB,EAAc0B,EACR,GACP,CAACF,EAA0BI,EAAeK,EAAuBd,IAC9DiB,EAAsB,eAAkB,KAC1C5B,EAAgBV,GAChBoB,OAASrnQ,GACTsnQ,EAAkB,YAAY,GAC/B,CAACrB,EAAqBqB,IACnBkB,EAAe,eAAkB,WACnC,OAAO,gBAAoB,OAAQ,CAAErvQ,UAAW,+BAAiC,IACrF,GAAG,IACGsvQ,GAAgB,eAAkB,UAAuB,MAAEC,IAC7D,OAAQtC,EAAgBsC,IAAU,gBAAoB,OAAQ,CAAEvvQ,UAAW,gCAAkCsJ,EAAMkmQ,kBACvH,GAAG,CAACvC,IACEwC,GAAY,eAAkB,IAAM,gBAAoB7qD,GAAQ,CAAElhN,MAAO4F,EAAMomQ,YAAa7qD,SAAS,EAAMtoM,QAAS2yP,EAAez3N,QAAS,IAAIg2N,GAAqB,+BAAgC,CAACnkQ,EAAMomQ,YAAaR,EAAezB,IACxOkC,GAAiB,eAAkB,IAAO,gBAAoB,WAAgB,KAChF,IACApC,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMsmQ,8BAClFrC,IAAiBT,GAAsB,gBAAoB,WAAgB,KACvE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAM6jQ,eAClFI,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMumQ,oCAAqC,CAACtC,IAC5H,aAAgB,KACZ,SAASryO,EAAmBF,GACpB6pB,EAAWpoD,UAAYooD,EAAWpoD,QAAQ+lB,SAASwY,EAAMx7B,UACpD+tQ,IAAiBT,GAAwBS,IAAiBT,GAC3DsC,IAGZ,CAEA,OADA3tQ,SAAS5G,iBAAiB,YAAaqgC,GAChC,KACHz5B,SAAS1G,oBAAoB,YAAamgC,EAAmB,CAChE,GACF,CAAC2pB,EAAY0oN,IAChB,aAAgB,KACRlsN,QAAwBx6C,IAAfkmQ,IACJiC,IACLd,OAASrnQ,GACTmmQ,OAAcnmQ,GAClB,GACD,CAACkmQ,EAAYiC,EAAa3tN,IAC7B,MAAMyuN,GAAU,eAAkB,IAAO,gBAAoB,WAAgB,KAAMvC,IAAiBT,GAChG,gBAAoB,MAAO,CAAE9sQ,UAAW,iCACpC,gBAAoB,MAAO,CAAEG,IAAK0kD,EAAY7kD,UAAW,+BACrD,gBAAoB,MAAO,CAAEA,UAAW,6CACpC,gBAAoB2vQ,GAAgB,OACxC,gBAAoB,OAAQ,CAAE3vQ,UAAW,mCAAqCutQ,IAAiBT,GAAwB,gBAAoB,WAAgB,KACvJ,gBAAoBnqN,GAAA,EAAgB,QACxC4qN,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoBloD,GAAQ,CAAElhN,MAAO4F,EAAMymQ,mBAAoBlrD,SAAS,EAAMtoM,QAAS6yP,SAA6B,CAACO,GAAgB7C,EAAqBA,EAAsBsC,EAAqB7B,EAAcjkQ,EAAMymQ,qBAEzO,OAAQ,gBAAoB,KAAa,KACrC,gBAAoB,MAAO,CAAE/vQ,UAAW,gCACpC,gBAAoB,KAAW,CAAEA,UAAW,+BACxC,gBAAoB,MAAO,CAAEA,UAAW,2BACpC,gBAAoB,MAAO,CAAEA,UAAW,sBACpC,gBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,gBAAoBusP,GAAS,MAC7B,gBAAoB,MAAO,CAAE9vQ,UAAW,4EAA2EutQ,IAAiBT,EAAsB,iCAAmC,KACzL,gBAAoB,MAAO,CAAE9sQ,UAAW,iEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,YAAa9sO,UAAW,qDAC5DsJ,EAAM2mQ,eACN,gBAAoBZ,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,eAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOmzQ,EAAWz+P,KAAM,OAAQ5I,KAAM,YAAamyB,GAAI,YAAa9L,YAAajiB,EAAM4mQ,wBAClJ,gBAAoB,MAAO,CAAElwQ,UAAW,8DACpC,gBAAoB,QAAS,CAAE8sO,QAAS,SAAU9sO,UAAW,qDACzDsJ,EAAM0mQ,YACN,gBAAoBX,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,YAChD,gBAAoB,SAAU,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,SAAUmyB,GAAI,SAAUj+B,MAAOizQ,GAAU/iQ,EAAMgjQ,cAAc3gQ,KAAI,CAACurO,EAAQz9O,IAAO,gBAAoB,SAAU,CAAE0M,IAAK,iBAAiB1M,IAAKL,MAAO89O,EAAQnlN,SAAgB,IAANt4B,GAAWy9O,OAClP,gBAAoB,MAAO,CAAEl3O,UAAW,mEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,cAAe9sO,UAAW,qDAC9DsJ,EAAM8mQ,WACN,gBAAoBf,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,iBAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOozQ,EAAa1+P,KAAM,SAAU5I,KAAM,cAAemyB,GAAI,cAAe9L,YAAajiB,EAAM+mQ,oBAC1J,gBAAoB,MAAO,CAAErwQ,UAAW,qCACpC,gBAAoB,QAAS,CAAE8sO,QAAS,UAAW9sO,UAAW,uBAAyBsJ,EAAMinQ,cAC7F,gBAAoB,WAAY,CAAE/zP,SAAU6xP,EAAcnpQ,KAAM,UAAWmyB,GAAI,UAAWj+B,MAAO+nD,EAAS+5I,KAAM,EAAG3vK,YAAajiB,EAAMknQ,sBAC1I,gBAAoB,MAAO,CAAExwQ,UAAW,gEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,WAAY9sO,UAAW,qDAC3DsJ,EAAM0nQ,cACN,gBAAoB3B,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,cAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAO23Q,EAAUjjQ,KAAM,OAAQ5I,KAAM,WAAYmyB,GAAI,WAAY9L,YAAajiB,EAAM2nQ,uBAC/I,gBAAoB,MAAO,CAAEjxQ,UAAW,6DACpC,gBAAoB,QAAS,CAAE8sO,QAAS,QAAS9sO,UAAW,qDACxDsJ,EAAMq0C,WACN,gBAAoB0xN,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,WAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOs6D,EAAO5lD,KAAM,QAAS5I,KAAM,QAASmyB,GAAI,QAAS9L,YAAajiB,EAAM6mQ,oBACvI,gBAAoB,MAAO,CAAEnwQ,UAAW,qEACpC,gBAAoB,QAAS,CAAE8sO,QAAS,gBAAiB9sO,UAAW,qDAChEsJ,EAAMgnQ,mBACN,gBAAoBjB,EAAc,MAClC,gBAAoBC,GAAe,CAAEC,MAAO,gBAChD,gBAAoB,SAAU,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,aAAcmyB,GAAI,aAAcj+B,MAAO4zO,GAAc1jO,EAAMmjQ,qBAAqB9gQ,KAAI,CAACurO,EAAQz9O,IAAO,gBAAoB,SAAU,CAAE0M,IAAK,wBAAwB1M,IAAKL,MAAO89O,EAAQnlN,SAAgD,IAAtCzoB,EAAMmjQ,qBAAqB5yQ,QAAsB,IAANJ,GAAWy9O,OACvT,gBAAoB,MAAO,CAAEl3O,UAAW,wBACpC,gBAAoByvQ,GAAW,OACnC,gBAAoB,MAAO,CAAEzvQ,UAAW,qCACpC,gBAAoB,GAAU,CAAE2wQ,QAASrnQ,EAAMsnQ,YAAa7nN,QAAS8kN,EAAoB1tQ,IAAKytQ,EAAYv5M,KAAM25M,EAAahD,iBAAkB1hQ,EAAMunQ,qBAAsBrF,SAnDxKnqN,GAAW6sN,EAAS7sN,MAoD3B8rN,GAAgB,gBAAoB,MAAO,CAAEntQ,UAAW,qCAAuCmtQ,GAC/FE,GAAkB,gBAAoB,MAAO,CAAErtQ,UAAW,uCAAyCqtQ,QAAsB,ECnQxI6D,GAAqB,EAAG3tP,QAAOklC,SAAQ0oN,YAAe,kBAAoB,aAAgB,KACnG,kBAAoB,KAAK,CAAEvuQ,IAAK6lD,EAAQ3E,IAAKqtN,IAC7C,kBAAoB,IAAK,CAAEnxQ,UAAW,iBAAmBujB,qCCDtD,MAAM6tP,GAAwB,EAAG3oN,SAAQ0oN,SAAQ5tP,QAAOsgC,UAASqJ,cACpE,MAAMhqC,GAAc,IAAAoyB,UAAQ,IAAM4X,GAAW,OACvC,SAAgBA,GAChB,OAAqC,CAACA,IACtCmkN,GAAiB,IAAA/7N,UAAQ,IAAM4X,GAAW,OAC1C,SAAgBA,GAChB,OAAqC,CAACA,IACtCokN,GAAkB,SAAyBztN,GACjD,MAAwB,QAApBytN,EACQ,kBAAoB,aAAgB,KACxC,kBAAoB,IAAK,CAAEtxQ,UAAW,8DAA+Di2C,KAAM4N,EAASkoB,IAAK,OACrH,kBAAoBmlM,GAAoB,CAAE3tP,MAAOA,EAAOklC,OAAQA,EAAQ0oN,OAAQA,KACpF,kBAAoB,IAAK,CAAEnxQ,UAAW,kEAAmEuc,QAAS2G,EAAaquP,WAAYF,EAAgBtlM,IAAK,OAC5J,kBAAoBmlM,GAAoB,CAAE3tP,MAAOA,EAAOklC,OAAQA,EAAQ0oN,OAAQA,MAEpE,WAApBG,EACQ,kBAAoB,IAAK,CAAEtxQ,UAAW,4BAA6Bi2C,KAAM4N,GAC7E,kBAAoBqtN,GAAoB,CAAE3tP,MAAOA,EAAOklC,OAAQA,EAAQ0oN,OAAQA,KAEhF,kBAAoB,IAAK,CAAEnxQ,UAAW,4BAA6Buc,QAAS2G,EAAaquP,WAAYF,GACzG,kBAAoBH,GAAoB,CAAE3tP,MAAOA,EAAOklC,OAAQA,EAAQ0oN,OAAQA,IAAW,ECrBtFK,GAAiB,EAAGC,oBAAsB,kBAAoB,MAAO,CAAEzxQ,UAAW,wBAC3F,kBAAoB,MAAO,CAAEA,UAAW,qCAAuCyxQ,EAAe53Q,OAAS,GAAK43Q,EAAe9lQ,KAAKurO,GAAY,kBAAoBk6B,GAAuB,CAAEjrQ,IAAK,SAAS+wO,EAAO3zN,QAASA,MAAO2zN,EAAO3zN,MAAOklC,OAAQyuL,EAAOzuL,OAAQ0oN,OAAQj6B,EAAOi6B,OAAQttN,QAASqzL,EAAOrzL,cCEjS6tN,GAAoBpoQ,IAC7B,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBACpC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,2BACpC,kBAAoBwxQ,GAAgB,CAAEC,eAAgBnoQ,EAAMmoQ,iBAC5D,kBAAoBtF,GAAa,IAAK7iQ,EAAOwtC,gBAAiB,cAAgB,ECR9F,GAFgB,EAAG76C,SAAS,GAAID,QAAQ,MAAU,kBAAoB,MAAO,CAAEC,OAAQA,EAAQD,MAAOA,EAAOg7C,KAAM,OAAQ7lB,QAAS,YAAaD,MAAO,8BACpJ,kBAAoB,OAAQ,CAAEr1B,EAAG,wPAAyPm7C,KAAM,aCCpS,GAFkB,EAAG/6C,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEC,OAAQA,EAAQD,MAAOA,EAAOg7C,KAAM,OAAQ7lB,QAAS,YAAaD,MAAO,8BAC1J,kBAAoB,OAAQ,CAAEr1B,EAAG,0HAA2Hm7C,KAAM,aCKhK,GAAmB,EAAG3f,KAAI0tO,WAAUC,SAAQH,kBAAiBC,eAAc7kN,cAC7E,MAAM2yL,GAAe,IAAA9zO,cAAY,KACzB+lQ,GAAmBxtO,IAAOytO,EAC1BD,GAAiB,GAEZA,QAA0Bh+P,IAAPwwB,GACxBwtO,EAAgBxtO,EACpB,GACD,CAACytO,EAAcztO,EAAIwtO,KACf8M,EAAaC,IAAkB,IAAAp3Q,UAAS,IAI/C,OAHA,IAAAC,YAAU,KACNm3Q,EAAe5M,EAAO,GACvB,CAACA,IACI,kBAAoB,MAAO,CAAEzwE,WAAW,EAAME,SAAU,aAAcD,SAAU,8BAA+Bv1L,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAW,iCAAgCq3B,IAAOytO,EAAe,SAAW,KACpO,kBAAoB,MAAO,CAAE9kQ,UAAW,wCAAyCuc,QAASq2N,GACtF,kBAAoB,MAAO,CAAE5yO,UAAW,4CACpC,kBAAoB,OAAQ,CAAEA,UAAW,4BAA8B,GAAQ,CAAC,IAChF,kBAAoB,OAAQ,CAAEA,UAAW,6BAA+B,GAAU,CAAC,IACnF,kBAAoB,KAAM,CAAEy0L,SAAU,QAAUswE,KACxD,kBAAoB,MAAO,CAAE/kQ,UAAW,4CACpC,kBAAoB,OAAQ,CAAEA,UAAW,iCAAkCf,MAAO,CAAE4O,WAAY,WAAc,GAAU,CAAC,IACzH,kBAAoB,MAAO,CAAE0mL,WAAW,EAAME,SAAU,iBAAkBD,SAAU,6BAChF,kBAAoB,MAAO,CAAEC,SAAU,OAAQz0L,UAAW,sCAAuCm+C,wBAAyB,CAAEC,OAAQuzN,OAAoB,EAE3JE,GAAmB,EAAGtuP,QAAOuuP,YAAWvgF,UAASwgF,gBAAeC,wBAAuBC,uBAAsBxwN,QAAO3K,kBAAiBo7N,wBAC9I,MAAOpN,EAAcD,GAAmB,cAAgB,IAClD,QAAE5kN,EAAO,UAAEoS,IAAc,SAAUvb,GAAmB,SACtDq7N,GAAY,IAAA78N,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,2BAA4Bf,MAAO,CAAE63C,gBAAiBmJ,IAAawB,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoB,GAAkB,CAAE0M,IAAK,4BAA4B1M,IAAK49B,GAAI59B,EAAGsrQ,SAAUxlO,EAAKwlO,SAAUC,OAAQzlO,EAAKylO,OAAQH,gBAAiBA,EAAiBC,aAAcA,EAAc7kN,QAASA,QAAe,CAACwB,EAAOojN,EAAiBC,EAAc7kN,IAC7ZmyN,GAAyB,SAA6BF,GACtDG,GAAsB,SAA0BD,GACtD,OAAQ,kBAAoB,KAAa,CAAEt7N,gBAAiBmJ,EAASjgD,UAAWqyQ,GAC5E,kBAAoB,KAAW,CAAEryQ,UAAWqyQ,GACxC,kBAAoB,MAAO,CAAEpzQ,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,sBACjE,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,0DACpC,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,uCAAyC8xQ,EAAY,kBAAoB,KAAK,CAAElvQ,IAAKkvQ,EAAWhuN,IAAKytI,EAASvxL,UAAW,iCAAkC8oD,QAAS,UAAa,kBAAoB,OAAQ,CAAE9oD,UAAW,mCAAoC,YACtS,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoB,KAAM,CAAEA,UAAW,iCAAmCujB,MACjFyuP,GAAyBD,IAAkB,kBAAoB,MAAO,CAAE/xQ,UAAW,8DAChF,kBAAoB,MAAO,CAAEA,UAAW,wCACxC,kBAAoB,IAAK,KACrB+xQ,EACA,kBAAoB,IAAK,CAAE97N,KAAMg8N,GAC7B,kBAAoB,OAAQ,CAAEjyQ,UAAW,UAAYgyQ,OACrE,kBAAoB,MAAO,CAAEz9E,WAAW,EAAMC,SAAU,6BAA8Bv1L,MAAO,CAAE63C,gBAAiBmJ,IAAakyN,GAC7H,kBAAoB,MAAO,CAAEnyQ,UAAW,eACxC,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoB,IAAK,KACrB+xQ,EACA,kBAAoB,IAAK,CAAE97N,KAAMg8N,GAC7B,kBAAoB,OAAQ,CAAEjyQ,UAAW,UAAYgyQ,SAA8B,ECtDtGM,GAAWhpQ,IACpB,MAAOipQ,EAAQC,GAAa,cACrBnuM,EAAQouM,GAAa,YAAe,GACrCC,EAAsB,SAAa,OAClCt1P,EAAWu1P,GAAgB,WAAe,GAC3Cz6O,EAAW,KACb,GAAIw6O,GAAuBA,EAAoBj2Q,QAAS,CACpD,MAAMutC,EAAYvoC,SAASC,gBAAgB0b,UACrCnhB,EAASy2Q,EAAoBj2Q,QAAQ6gB,aAAe7b,SAASC,gBAAgB1C,aAEnF2zQ,EADkB3oO,EAAY/tC,EAAU,IAE5C,GAMJ,aAAgB,KACZ,MAAM22Q,EA2Cd,SAAmBhpO,GACf,MAAMtwC,EAAImI,SAASvB,cAAc,YAEjC,OADA5G,EAAEy/C,UAAYnP,EACPtwC,EAAEu8C,OACb,CA/CoBg9N,CAAUvpQ,EAAMusC,SAC5B+8N,EAAI1gP,iBAAiB,MACrBsgP,EAAU,IAAII,EAAI1gP,iBAAiB,QACnCugP,GAAU,GACV/3Q,OAAOG,iBAAiB,SAAUq9B,EAAS,GAC5C,CAAC5uB,EAAMusC,QAASvsC,EAAMwpQ,WACzB,MACMn8P,EAAO,IAAIS,KAAK9N,EAAM8qO,aAa5B,OAAQ,gBAAoB,KAAa,KACrCh3N,GAAa,KAAO,gBAAoB,MAAO,CAAEpd,UAAW,eACxD,gBAAoB,MAAO,CAAEA,UAAW,sBAAuBf,MAAO,CAAEjD,MAAO,GAAGohB,SACtF,gBAAoB,MAAO,CAAEpd,UAAW,WACpC,gBAAoB2lN,GAAe,CAAEpqJ,MAAOjyD,EAAM26C,SAAU1gC,MAAOja,EAAMia,MAAO8wK,YAAa/qL,EAAM+qL,YAAa0xB,WAAYz8M,EAAM08M,SAAS96L,MAAM,KAAMg7L,cAAe58M,EAAM48M,cAAeD,QAAS38M,EAAM28M,QAASH,WAAYx8M,EAAMw8M,WAAYD,gBAAiBv8M,EAAMu8M,iBAhBxP,gBAAoB,WAAgB,KACxDv8M,EAAMypQ,YACN,IAfa,SAAUl3Q,GACvB,MAAM8b,EAASlW,SAASC,gBAAgBklN,KACxC,OADsD/qN,EAAEgrN,eAAelvM,EAAQ,CAAE8G,MAAO,QAE5F,CAaI2K,CAASzS,GACT,IACAA,EAAK0S,UACL,KACA1S,EAAKwS,cACL,IACA7f,EAAM4rH,GACN,IACA5rH,EAAMm9M,UAAY,gBAAoB,IAAK,CAAExwK,KAAM3sC,EAAMm9M,UAAWzmN,UAAW,gBAAiBR,OAAQ,SAAUy1I,IAAK,uBAAyB3rI,EAAM07K,QAAU17K,EAAM07K,SAMlK,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEhlL,UAAW,qBAAsBG,IAAKuyQ,GAC9DH,GAAUA,EAAO14Q,QAAU,GAAO,gBAAoB,MAAO,CAAEmG,UAAW,kBACvE,gBAAoB,KAAM,CAAEA,UAAW,WAAasJ,EAAM0pQ,sBAC1D,gBAAoB,KAAM,KAAMT,EAAO5mQ,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoBw5Q,GAAa,CAAE9sQ,IAAK,uBAAuB1M,IAAK8pB,MAAOgc,EAAK0Z,gBAC7I,gBAAoB,MAAO,CAAEj5C,UAAW,mBAAoBm+C,wBAAyB,CAC7EC,OAAQimB,EAAS/6D,EAAMusC,QAAU,MAzBjCvsC,EAAM4pQ,SAASr5Q,OAAU,gBAAoBg4Q,GAAkB,CAAEtuP,MAAOja,EAAMwpQ,SAAUvhF,QAASjoL,EAAM6pQ,YAAarB,UAAWxoQ,EAAMwoQ,UAAWC,cAAezoQ,EAAMyoQ,cAAetwN,MAAOn4C,EAAM4pQ,SAAUlB,sBAAuB1oQ,EAAM6pQ,YAAalB,qBAAsB3oQ,EAAM8pQ,aAAiB,GA4B1S9pQ,EAAM+pQ,gBAAkB,gBAAoB,UAAW,CAAErzQ,UAAW,2BAA6BsJ,EAAM+pQ,mBAAoB,EAEzIJ,GAAc,cAAiB,CAAC3pQ,EAAOnJ,KACzC,MAAMmzQ,EAAkB,eAAkB,KACtC,IAAI7xQ,SAASywB,iBAAiB,gBAAgBjtB,MAAKosB,GAAMA,EAAG2nB,aAAa19B,SAAShS,EAAMia,UAASqpN,eAAe,CAAElqL,SAAU,SAAU6wN,MAAO,SAAU,GACxJ,CAACjqQ,EAAMia,QACV,OAAQ,gBAAoB,KAAM,CAAEhH,QAAS+2P,GAAmBhqQ,EAAMia,MAAO,IAEjF0vP,GAAYv4O,YAAc,cC3DnB,MAAM84O,GAAkBlqQ,IAC3B,MAAOmqQ,EAAgBC,GAAqB,aAa5C,OAJA,aAAgB,KACZ,MAAMC,EAAarqQ,EAAMsqQ,QAAQjoQ,KAAI0lB,GAAMA,EAAGmhK,MAAM1sL,QAAOs/C,GAAQA,EAAK7hC,QAAUja,EAAMia,QAAO1pB,OAASw3B,OAAKxqB,IAAWf,QAAOzM,QAAWwN,IAANxN,IAAiB,IAAIkqB,MACzJmwP,EAAkBC,EAAW,GAC9B,IACK,gBAAoB,KAAa,KACrC,gBAAoB,MAAO,CAAE3zQ,UAAW,mBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,wBACpC,gBAAoB,MAAO,CAAEA,UAAW,4BACpCsJ,EAAMuqQ,cAAgB,gBAAoB,IAAK,CAAE59N,KAAM3sC,EAAMwqQ,YAAa9zQ,UAAW,6CACjF,KACA,IACAsJ,EAAMuqQ,aACN,KACJvqQ,EAAMrJ,SAAWqJ,EAAMrJ,SAAW,gBAAoB,WAAgB,KAClE,gBAAoB,KAAM,CAAED,UAAW,0BAA4BsJ,EAAMia,OACzE,gBAAoB,MAAO,CAAEvjB,UAAW,wBAAyBm+C,wBAAyB,CAAEC,OAAQ90C,EAAMusC,aAClH,gBAAoB,KAAM,CAAE71C,UAAW,+BAAiCsJ,EAAMsqQ,QAAQjoQ,KAAI,CAAC4zB,EAAMlI,KAAO,OAAC,gBAAoB,KAAM,CAAElxB,IAAK,yBAAyBkxB,IAAMr3B,UAAW,0BAAyByzQ,IAAmBl0O,EAAKhc,MAAQ,SAAW,KACpP,gBAAoB,KAAM,CAAEhH,SA1BjBgH,EA0BgDgc,EAAKhc,MA1B3C,eAAkB,KAEnDmwP,EADAD,IAAmBlwP,OACD1c,EAGA0c,EACtB,GACD,CAACkwP,KAmBwFzzQ,UAAW,+BAC/Eu/B,EAAKhc,MACL,IACA,MACJ,gBAAoB,MAAO,CAAEvjB,UAAW,yBAA2Bu/B,EAAKizJ,MAAM7mL,KAAI,CAACooQ,EAAUt6Q,IAAO,gBAAoB,IAAK,CAAE0M,IAAK,8BAA8B1M,IAAKuG,UAAW,+BAA8BsJ,EAAMia,QAAUwwP,EAASxwP,MAAQ,SAAW,KACxP,gBAAoB,IAAK,CAAE0yB,KAAM89N,EAASr6N,KAAOq6N,EAASxwP,YA/BpD,IAACA,CA+B+D,QAAO,EC7B5FywP,GAAgB1qQ,IACzB,MAAOmxC,EAAMC,GAAW,WAAeC,EAAc,cAAd,YACjC,IAAEx6C,EAAG,OAAEmqN,GAAWG,GAAU,CAC9B76D,UAAW,EACX48B,WAAY,sBAEhB,aAAgB,MACX/xI,GAAQC,EAAQC,EAAc,cAAd,UAAwB,GAC1C,CAACF,IACJ,MAAMw5N,EAAkB,WAAc,IAAM3qQ,EAAMsqQ,SAASnyN,OAAO37C,QAAQ1J,GAAMA,EAAEu3O,eAAiBrqO,EAAM4qQ,YAAY3wP,SAAQ,CAACja,EAAM4qQ,YAAY3wP,MAAOja,EAAMsqQ,SAASnyN,QAStK,OAAQ,gBAAoB,KAAa,CAAE3K,gBAAiB,QACxD,gBAAoB,MAAO,CAAE92C,UAAW,gBACpC,gBAAoB,KAAW,KAC3B,gBAAoBo0L,EAAa,IAAK9qL,EAAM+qL,cAC5C,gBAAoB,MAAO,CAAEr0L,UAAW,uBACpC,gBAAoBomN,GAAa,IAAK98M,EAAM4qQ,cAC5C5qQ,EAAM26C,UAAa,gBAAoB,KAAK,CAAEjkD,UAAW,0BAA2B4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,WACpH,gBAAoB,MAAO,CAAEzxL,UAAW,wBAAyBm+C,wBAAyB,CAAEC,OAAQ90C,EAAMusC,WAC1GvsC,EAAM+pQ,gBAAkB,gBAAoB,UAAW,CAAErzQ,UAAW,+BAAgCm+C,wBAAyB,CACrHC,OAAQ90C,EAAM+pQ,kBAEtB,gBAAoB,MAAO,CAAErzQ,UAAW,0BACpC,gBAAoB,IAAK,CAAEG,IAAKA,EAAK81C,KAAM3sC,EAAM6yP,cAAen8P,UAAW,mCACvE,KACAsJ,EAAM8yP,kBAClB9yP,EAAMsqQ,SACF,gBAAoB,QAAS,CAAE5zQ,UAAW,0BAlBhCsqN,GAAmB,UAAT7vK,EAAoB,+BAAiC,KAmBrEnxC,EAAMsqQ,QAAQO,YAAc,gBAAoB,IAAK,CAAEl+N,KAAM3sC,EAAMsqQ,QAAQO,WAAYn0Q,UAAW,gCAC9F,gBAAoB,MAAO,KACvB,gBAAoB,OAAQ,CAAEA,UAAW,oBAAsBsJ,EAAMsqQ,QAAQQ,aAC7E,gBAAoB,OAAQ,CAAEp0Q,UAAW,oBAAsBsJ,EAAMsqQ,QAAQS,qBArBjFT,EAsBetqQ,EAAMsqQ,SAtBDU,WAAa,gBAAoB,KAAK,CAAE1xQ,IAAKgxQ,EAAQU,WAAYxwN,IAAK8vN,EAAQQ,cAAiB,MAuBvH9qQ,EAAMsqQ,QAAQnyN,OAAS,gBAAoB,MAAO,CAAEzhD,UAAW,8BAC3D,gBAAoB,MAAO,CAAEA,UAAW,gBAAkBsJ,EAAMsqQ,QAAQW,YA/BjE,gBAAoB,WAAgB,KAAMN,GAAiBtoQ,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoB,IAAK,CAAEw8C,KAAM1W,EAAKy0M,WAAYh0O,UAAW,6BAA8BmG,IAAK,mBAAmB1M,KAC3N,gBAAoB,MAAO,CAAEuG,UAAW,qBACpC,gBAAoB,OAAQ,CAAEA,UAAW,0BAA4Bu/B,EAAK00M,mBAC1E,gBAAoB,OAAQ,CAAEj0O,UAAW,+BAAiCu/B,EAAKu0M,iBAC/E,gBAAoB,OAAQ,CAAE9zO,UAAW,2BAA6BsmN,GAAY/mL,EAAKm0M,eAC3F,gBAAoB,KAAM,KAAMn0M,EAAKo0M,mBA4BrB,gBAAoB,MAAO,CAAE3zO,UAAW,gCACpC,gBAAoB,MAAO,CAAEA,UAAW,oBAAsBsJ,EAAMsqQ,QAAQxO,aAC5E,gBAAoB,KAAU,CAAE5tN,OAAQ,iBAAkBvB,KAAM3sC,EAAMsqQ,QAAQY,iBAAmBlrQ,EAAMsqQ,QAAQa,uBA5BhH,IAACb,CA4BsI,EClDrJc,GAAoBprQ,IAC7B,MAAMmxC,EAAOE,EAAc,cAAd,UACb,OAAQ,gBAAoB,MAAO,CAAE36C,UAAW,oBAC5C,gBAAoB,KAAa,KAC7B,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,+BACpC,gBAAoB,MAAO,CAAEA,UAAW,0BACpC,gBAAoB,MAAO,CAAEA,UAAW,2BACpC,gBAAoB,KAAM,KAAMsJ,EAAMia,QACjC,UAATk3B,GAA6B,WAATA,GAAqB,gBAAoB,MAAO,CAAEz6C,UAAW,2BAC7E,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,YAC/DnoL,EAAMrJ,SAAWqJ,EAAMrJ,SACnB,gBAAoB,MAAO,CAAED,UAAW,gCACpC,gBAAoB,KAAM,KAAMsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMuH,IAAW,gBAAoB,KAAM,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,+BACjH,gBAAoB,IAAK,CAAEA,UAAW,mCAAoCi2C,KAAM1W,EAAKo1O,UAAYp1O,EAAKA,YAC7G,UAATkb,GAAoB,gBAAoB,MAAO,CAAEz6C,UAAW,2BACxD,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,eAAiB,ECnBvFmjF,GAAgB,EAAGC,cAAap6N,WACzC,MAAMq6N,EAAsB,eAAkB,KAC1CD,GAAY,EAAM,GACnB,CAACA,IACEE,EAAsB,eAAkB,KAC1CF,GAAY,EAAK,GAClB,CAACA,IACJ,OAAQ,gBAAoB,MAAO,CAAE70Q,UAAW,mCAC5C,gBAAoB,MAAO,CAAEA,UAAW,wCACpC,gBAAoB,MAAO,CAAEuc,QAASu4P,EAAqB90Q,UAAW,4BAA2By6C,EAAO,GAAK,WAAcu6N,MAC3H,gBAAoB,MAAO,CAAEz4P,QAASw4P,EAAqB/0Q,UAAW,4BAA2By6C,EAAO,SAAW,KAAQw6N,OAAkB,EAEnJD,GAAe,IAAO,gBAAoB,MAAO,CAAEh5Q,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC3H,gBAAoB,OAAQ,CAAEr1B,EAAG,+pBAAgqBm7C,KAAM,UACrsBi+N,GAAe,IAAO,gBAAoB,MAAO,CAAEj5Q,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC3H,gBAAoB,OAAQ,CAAEr1B,EAAG,s4BAAu4Bm7C,KAAM,UCZr6Bk+N,GAAgB,EAAGC,mBAAkBC,aAAYC,yBAAwBC,aAAYxnQ,OAAMynQ,aAAY96N,OAAM+6N,eAAcx0H,UAASy0H,oBAAmB,EAAOt/N,cAAau/N,iBAAgBC,wBACpM,MAAOvvO,EAAMqP,GAAW,WAAe,KAChCmgO,EAAWC,GAAgB,WAAe1/N,GACjD,aAAgB,KACZ0/N,EAAa1/N,EAAY,GAC1B,CAACA,IACJ,MAAM2/N,EAAe,eAAkBz8Q,GAAKo8C,EAAQp8C,EAAEmG,OAAOpG,QAAQ,CAACgtC,IAChEyuO,EAAc,eAAmB/4Q,GAAMy5Q,EAAWz5Q,IAAI,CAACy5Q,IACvD7vN,EAAqB,eAAkBrsD,IACzCo8C,EAAQp8C,EAAEmG,OAAOpG,OACjBy8Q,EAAax8Q,EAAEmG,OAAOpG,MAAM,GAC7B,CAACgtC,IACE2vO,EAAqB,eAAmB18Q,IAChC,UAAVA,EAAE8M,KAAmBuvQ,EAAetvO,EAAK,GAC1C,CAACA,IACE4vO,EAAmB,eAAmB38Q,IACxCA,EAAEomB,iBACF/a,QAAQ+S,KAAK2uB,EAAK,GACnB,CAACA,IACE6vO,EAAgB,eAAkB,KACpCT,GAAcx0H,EAAQ,GACvB,CAACA,IACEk1H,EAAoB,CACtBl6N,OAAS,gBAAoB,MAAO,CAAEh8C,UAAW,2BAC7C,gBAAoB,QAAS,CAAEijB,UAAW8yP,EAAoBv5P,SAAUkpC,EAAoBtsD,MAAOw8Q,EAAW51Q,UAAW,6EAA8E8N,KAAM,SAAUyd,YAAa6pP,EAAYx8N,UAAW,OAC/PoY,UAAY,gBAAoB,MAAO,CAAEhxD,UAAW,2BAChD,gBAAoB,QAAS,CAAEwc,SAAUs5P,EAAc18Q,MAAOgtC,EAAMpmC,UAAW,8CAA+C8N,KAAM,QAASyd,YAAa4pP,IAC1JE,GAA0B,gBAAoBzwD,GAAQ,CAAElhN,MAAO2xQ,GAAkD,GAAIxwD,SAAS,EAAMtoM,QAASy5P,MAE/IG,EAAeroQ,EAAOooQ,EAAkBpoQ,QAAQjH,EACtD,OAAQ,gBAAoB,KAAa,KACrC,gBAAoB,MAAO,CAAE7G,UAAW,mBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,8BACpCm2Q,EACA,gBAAoB,MAAO,CAAEn2Q,UAAW,4BACpCy1Q,GAAoB,gBAAoBb,GAAe,CAAEC,YAAaA,EAAap6N,KAAMA,IACzF,gBAAoB,MAAO,CAAEl+B,QAAS05P,EAAej2Q,UAAW,mCAC5D,gBAAoB,IAAK,CAAEA,UAAW,GAAG21Q,GAAqB,YAC1DL,EACA,IACAc,WAAmB,EAE7CA,GAAY,IAAO,gBAAoB,MAAO,CAAEp6Q,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,gBAAoB,OAAQ,CAAEr1B,EAAG,yJAA0Jm7C,KAAM,2CC/C9L,MAAMq/N,GAAc/sQ,IACvB,MAAOgtQ,EAAWC,GAAgB,WAAe,IAC3CT,EAAe,CAACvyP,EAAOuiC,IAAQ,eAAkB,KACnD,MAAM0wN,EAAYjzP,EAAMkzP,WAAW,IAAK,IAClCC,EAAYptQ,EAAMqtQ,YAAYH,IAAc,GAC5Cp9Q,EAAQs9Q,EAAUp7P,SAAS,GAAGwqC,MAAU4wN,EAAUz/P,QAAQ,GAAG6uC,KAAQ,IAAM,GAAG4wN,IAAY5wN,KAC1F8wN,EAAcF,EAAUp7P,SAAShS,EAAMm4C,MAAM1/B,KAAK,KAAK9K,QAAQ,OAAQ,KAAO,GAAK,GAAG3N,EAAMm4C,MAAM1/B,KAAK,KAAK9K,QAAQ,OAAQ,OAC1H,QAAR6uC,EAAgBx8C,EAAMkC,QAAQgrQ,EAAWI,GAAettQ,EAAMkC,QAAQgrQ,EAAWp9Q,EAAM,GACxF,CAACkQ,EAAMqtQ,cACJE,EAAcvtQ,EAAMwtQ,aAAe,SAAW,GAMpD,OALA,aAAgB,KACO,QAAfxtQ,EAAMwE,MACN5U,OAAOiM,KAAKmE,EAAMqtQ,aAAa98Q,QAAU08Q,EAAajtQ,EAAMqtQ,YAAYrtQ,EAAMia,OAAOjI,SAAShS,EAAMm4C,MAAM1/B,KAAK,KAAK9K,QAAQ,OAAQ,KAAO3N,EAAMm4C,MAAM1/B,KAAK,KAAOzY,EAAMqtQ,YAAYrtQ,EAAMia,OAC/L,GACD,CAACja,EAAMqtQ,cACa,aAAfrtQ,EAAMwE,KACV,gBAAoB,MAAO,CAAE9N,UAAW,6BAA6B62Q,KAAiBvtQ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMlI,IAAO,gBAAoB,MAAO,CAAElxB,IAAK,YAAYmD,EAAM+tB,MAAMA,IAAMr3B,UAAW,qBAAqB62Q,KAChN,gBAAoB,QAAS,CAAEpG,QAASnnQ,EAAMkjJ,aAAalxI,SAASikB,KAAS,EAAO/iB,SAAUs5P,EAAaxsQ,EAAMia,MAAOgc,GAAOzxB,KAAM,WAAY5I,KAAMq6B,EAAMlI,GAAI,YAAY/tB,EAAM+tB,MAAMA,MACzL,gBAAoB,QAAS,CAAEy1M,QAAS,YAAYxjO,EAAM+tB,MAAMA,MAChEkI,MAAU,gBAAoB,MAAO,CAAEv/B,UAAW,2BACtD,gBAAoB,MAAO,CAAEA,UAAW,uBAAyBsJ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMlI,IAAO,gBAAoB,MAAO,CAAElxB,IAAK,eAAemD,EAAM+tB,MAAMA,IAAM9a,QAASu5P,EAAaxsQ,EAAMia,MAAOgc,GAAOv/B,UAAW,gBAAgB62Q,KAAeP,EAAUh7P,SAASikB,GAAQ,uBAAyB,MAAQA,MAAS,gECnB5T,MAAMw3O,GAAwBztQ,IACjC,MAAOlM,EAASuoC,GAAc,WAAe,KACtC8qO,EAASuG,GAAc,WAAe,CAAC,IACvC12P,EAAW22P,GAAgB,WAAe,IAAI7/P,OAC9CmJ,EAAS22P,GAAc,WAAe,IAAI9/P,MACjD,aAAgB,KACZ9N,EAAMkC,QAAQlC,EAAMia,MAAMkzP,WAAW,IAAK,IAAKU,EAAkB/5Q,GAAS,GAC3E,CAACA,IACJ,aAAgB,KACZg6Q,GAAU,EAAM,GACjB,CAAC9tQ,EAAMu9B,QACV,MAAMswO,EAAqB/4L,IACvB,IAAIruE,EAAI,GACR,MAAMgoF,EAAQ,IAAI3gF,KAClB,OAAQgnE,EAAInnE,QAAQ,IAAK,KACrB,IAAK,QACDlH,EAAI,aAAagoF,EAAMs/K,cAAczuQ,MAAM,EAAG,gBAAe,IAAIwO,MAAOigQ,cAAczuQ,MAAM,EAAG,MAC/F,MACJ,IAAK,YACDmH,EAAI,aAAa,IAAIqH,KAAK2gF,EAAMjgB,QAAQigB,EAAM1uE,UAAY,IAAIguP,cAAczuQ,MAAM,EAAG,gBAAe,IAAIwO,MAAOigQ,cAAczuQ,MAAM,EAAG,MACtI,MACJ,IAAK,YACDmH,EAAI,aAAa,IAAIqH,KAAK2gF,EAAMjgB,QAAQigB,EAAM1uE,UAAY,IAAIguP,cAAczuQ,MAAM,EAAG,gBAAe,IAAIwO,MAAOigQ,cAAczuQ,MAAM,EAAG,MACtI,MACJ,IAAK,aACDmH,EAAI,aAAa,IAAIqH,KAAK2gF,EAAMjgB,QAAQigB,EAAM1uE,UAAY,KAAKguP,cAAczuQ,MAAM,EAAG,gBAAe,IAAIwO,MAAOigQ,cAAczuQ,MAAM,EAAG,MACvI,MACJ,IAAK,WACDmH,EAAI,sBACJ,MACJ,QACIA,EAAIquE,EAEZ,OAAOruE,CAAC,EAWZ,SAASu2F,EAAW3vF,EAAMksH,GACtB,MAAO,GAAGA,IAASlsH,EAAKwS,kBAAkBxS,EAAKyS,WAAa,GAAGzgB,WAAW2uQ,SAAS,EAAG,QAAQ3gQ,EAAK0S,UAAU1gB,WAAW2uQ,SAAS,EAAG,MACxI,CACA,MAAMF,EAAatxN,IACf,MAAMyxN,EAAsB,CAAC,EAC7BjuQ,EAAMm4C,MAAMniD,SAAQigC,GAAQg4O,EAAoBh4O,EAAKi4O,YAAc1xN,IACnEkxN,EAAWO,GACX5xO,EAAW,GAAG,EAUZ8xO,EAAe3pQ,GAAS,eAAmB6I,IAC7C,MAAM+gQ,EAAc,aACdC,EAAY,WACL,UAAT7pQ,GACAmpQ,EAAatgQ,GACbgvB,EAAW,GAAG2gE,EAAW3vF,EAAM+gQ,MAAgBpxK,EAAW/lF,EAASo3P,SAGnEhyO,EAAW,GAAG2gE,EAAWhmF,EAAWo3P,MAAgBpxK,EAAW3vF,EAAMghQ,OACrET,EAAWvgQ,GACf,GACD,CAAC2J,EAAWC,EAASnjB,IAClBy5Q,EAAcvtQ,EAAMwtQ,aAAe,SAAW,GACpD,OAAQ,gBAAoB,MAAO,CAAE92Q,UAAW,yBAAyB62Q,KAAiBvtQ,EAAMm4C,MAAM91C,KAAI,CAAC4zB,EAAMlI,KAAO,OAAC,gBAAoB,MAAO,CAAElxB,IAAK,SAASmD,EAAM+tB,MAAMA,IAAMr3B,UAAW,kBAAkB62Q,KAAsC,eAAvBt3O,EAAKq4O,cAAiC,iBAAmB,MACvR,gBAAoB,QAAS,CAAEnH,QAASA,EAAQlxO,EAAKi4O,cAAe,EAAOh7P,UAtBzDspC,EAsBgFvmB,EAAKi4O,WAtBhFK,EAsB4FpH,EAAQlxO,EAAKi4O,YAtBzF,eAAkB,KACzD,MAAMM,EAnBV,SAA6BvxQ,GACzB,MAAMwxQ,EAAkBxxQ,EACxB,IAAK,MAAMJ,KAAO4xQ,EACVA,EAAgBh+Q,eAAeoM,KAC/B4xQ,EAAgB5xQ,IAAe4xQ,EAAgB5xQ,IAeG,IAZ1D,OAAO4xQ,CACX,CAWsBC,CAAoBvH,GAChCwH,EAAiBJ,EAAcC,EAAY,IAAKA,EAAW,CAAChyN,IAAM,GACxEkxN,GAAWkB,IAAe,IAAMA,KAAgBD,MAE5CtyO,EADI,eAARmgB,EACeqyN,GAAkBA,EAAe78P,SAAS,QAAU,GAAK,cAAa,IAAIlE,MAAOigQ,cAAczuQ,MAAM,EAAG,gBAAe,IAAIwO,MAAOigQ,cAAczuQ,MAAM,EAAG,MACvJuvQ,GAAkBA,EAAe78P,SAAS,GAAGwqC,KAASqyN,EAAelhQ,QAAQ,GAAG6uC,KAAQ,IAAM,GAAGA,KAAO,GAC1H,CAAC1oD,EAASqzQ,KAeqI3iQ,KAAM,QAAS5I,KAAMq6B,EAAKi4O,WAAYngP,GAAI,SAAS/tB,EAAM+tB,MAAMA,MAC7M,gBAAoB,QAAS,CAAEy1M,QAAS,SAASxjO,EAAM+tB,MAAMA,MAC7DkI,EAAKq4O,cACkB,eAAvBr4O,EAAKq4O,eACD,gBAAoB,MAAO,CAAE53Q,UAAW,eACpC,gBAAoB,KAAY,CAAE+xB,UAAW0+O,EAAoB,WAAG3wP,SAAUQ,EAAW9D,SAAUi7P,EAAY,SAAUj3P,cAAc,EAAMF,UAAWA,EAAWhH,QAASiH,IAC5K,gBAAoB,KAAY,CAAEwR,UAAW0+O,EAAoB,WAAG3wP,SAAUS,EAAS/D,SAAUi7P,EAAY,OAAQh3P,YAAY,EAAMH,UAAWC,EAASlH,QAASiH,MA5B3J,IAACwlC,EAAK+xN,CA4BoK,IAAG,EClFzLO,GAAS9uQ,IAClB,MAAO+uQ,EAAOC,GAAiB,WAAehvQ,EAAMlQ,MAAQkQ,EAAMlQ,MAAQ,IACnE+mF,EAAMo4L,GAAW,WAAe,GACjCp4Q,EAAM,cAAa0G,GACzB,aAAgB,KAEZ,GADA2xQ,SACoB3xQ,IAAhB1G,EAAI1D,QAAuB,CAC3B,MAAMg8Q,EAAmB,GACnBC,GAAYv4Q,EAAI1D,QAAQyjC,YAAcu4O,IAAqBnvQ,EAAMlO,IAAMkO,EAAMnO,KACnFo9Q,EAAQG,EACZ,IACD,IACH,aAAgB,KACZJ,EAAchvQ,EAAMlO,IAAM,GACtBoB,YAAW,IAAMg8Q,KAAW,GACjC,CAAClvQ,EAAMu9B,QACV,MAOM2xO,EAAW,KACb/2Q,UAAUywB,iBAAiB,WAAW5yB,SAAQ,SAAU+xB,GARvC,CAACuO,IAClB,CACI,MAAM+4O,GAAc/4O,EAAQg5O,cAAgBv5P,SAASugB,EAAQzkC,OAASkkB,SAASugB,EAAQxkC,KAAOikB,SAASugB,EAAQzkC,MACzG8D,EAAQ,yEAAyE05Q,2BAAoCA,eAC3H/4O,EAAQlO,aAAa,QAASzyB,EAClC,GAKI45Q,CADgBxnP,EAEpB,GAAE,EAEN,aAAgB,KACZ/nB,EAAMkC,QAAQlC,EAAMia,MAAMkzP,WAAW,IAAK,IAAK4B,EAAM,GACtD,CAACA,IACJ,MAAMvC,EAAe,eAAmBz8Q,IACpCi/Q,EAAcj/Q,EAAEmG,OAAOpG,OACvBo/Q,GAAU,GACX,CAACH,EAAO/uQ,EAAM88B,OACjB,OAAQ,gBAAoB,MAAO,CAAEpmC,UAAW,oBAC5C,gBAAoB,QAAS,CAAEG,IAAKA,EAAK24Q,QAAShD,EAAc91Q,UAAW,QAASq3B,GAAI,SAAS/tB,EAAM+tB,KAAMvpB,KAAM,QAAS1U,MAAOi/Q,EAAOl9Q,IAAKmO,EAAMnO,IAAKC,IAAKkO,EAAMlO,MACrK,gBAAoB,QAAS,CAAE0xO,QAAS,QAAS7tO,MAAO,CAChDkkC,UAAW,cAAck1O,EAAQl4L,EAAOA,EAAO72E,EAAMnO,WAEzD,gBAAoB,MAAO,KACvB,IACQ,EAARk9Q,IAAc/uQ,EAAMlO,IAAM,GAAGi9Q,QAAc,GAAGA,QAC9C,MACR,gBAAoB,MAAO,CAAEr4Q,UAAW,kBAAoB,IAAI4H,MAAM,IAAIzC,QAAQW,QAAOy5B,GAAQA,GAAQj2B,EAAMlO,IAAM,IAAO,IAAGuQ,KAAI,CAAC0lB,EAAI53B,IAAM,gBAAoB,MAAO,CAAE0M,IAAK,iBAAiB1M,IAAKuG,UAAW,iBAAyB,IAANvG,EAAU,GAAG43B,EAAK,SAAW,GAAG/nB,EAAMlO,eAAe,EC9CpR29Q,GAAsBC,IAC/B,MAAMC,EAAYD,EAAWv3N,MAAM,GACnC,MAAyB,iBAAdw3N,EACA,SAEc,iBAAdA,EACA,cADX,CAGgB,ECAPC,GAAU,EAAGC,YAAWC,YAAWC,SAAQjzO,OAAMqP,UAAS5O,QAAOyyO,WAAUC,SAAQ/D,eAAcgE,mBAAkBC,eAC5H,MAAOC,EAAkBC,GAAuB,YAAe,GACzDC,EAA2B,CAACC,EAAazzO,KAC3C,MACM0zO,EAAY1zO,EADFyzO,EAAYt2P,MAAMkzP,WAAW,IAAK,KAElD,MAAyB,UAArBoD,EAAY/rQ,KACL,GAEc,aAArB+rQ,EAAY/rQ,MACIgsQ,GAAa,IAAI5uP,MAAM,KAGlB,kBAArB2uP,EAAY/rQ,KACLgsQ,EAEJ,EAAE,EAEPC,EAAiBV,EAAO1tQ,KAAKkuQ,IAAgB,IAC5CA,EACHrtH,aAAcotH,EAAyBC,EAAazzO,OAElD4zO,EAAe,eAAkB,KACnC,MAAMrrH,EAAU,CAAC,EACjB0qH,EAAO/5Q,SAASiwQ,IACZ5gH,EAAQ4gH,EAAMhsP,MAAMkzP,WAAW,IAAK,KAAO,EAAE,IAEjDhhO,EAAQk5G,EAAQ,GACjB,CAAC0qH,EAAQ5jO,IACNwkO,EAAe,eAAmB5gR,IACpCA,EAAEomB,iBACF65P,EAASjgR,GACT2gR,IACAxE,GAAa,EAAM,GACpB,CAACA,EAAcwE,EAAcV,IAC1BY,EAAe,eAAmB7gR,IACpCA,EAAEomB,iBACF,IAAI1P,EAAI,GACR7W,OAAOiM,KAAKihC,GAAMz6B,KAAIvN,GAAK2R,GAAK,GAAGq2B,EAAKhoC,GAAGmlB,SAAS6iB,EAAKhoC,GAAGhF,UAC5DmgR,EAAOxpQ,GACPylQ,GAAa,EAAM,GACpB,CAACpvO,EAAMovO,EAAc+D,IACxB,aAAgB,KACPC,GACDQ,GACJ,GACD,CAACR,EAAkBQ,IACtB,MAAMlE,EAAe,eAAkB,CAACvyP,EAAOznB,KAC3C25C,GAAQ0kO,IAEG,IADY,IAAKA,GAGpB,CAAC52P,GAAQznB,KAEf,GACH,CAAC25C,IACE2kO,EAAe,eAAkB,IAAM5E,GAAa,IAAQ,CAACA,IACnE,aAAgB,KACZ,MACM6E,EADanhR,OAAO+wD,OAAO7jB,GACFtgC,QAAQ1J,GAAY,KAANA,IACzCi+Q,EAAYxgR,OAAS,GACrB8/Q,GAAoB,GAEG,IAAvBU,EAAYxgR,QACZ8/Q,GAAoB,EACxB,GACD,CAACvzO,IACJ,MAAMk0O,EAAqB,eAAmBxzO,IAC1C,MAAMyzO,EAAYlB,EAAOvyO,GAAOh5B,KAC1B0sQ,EAAYzB,GAAmBM,EAAOvyO,IACtC2zO,EAAcpB,EAAOvyO,GAAO2a,MAClC,MAAkB,WAAd+4N,EACkB,kBAAdD,EACOE,EAAY9uQ,KAAK4zB,IAAS,CAC7Bi4O,WAAYj4O,EACZq4O,cAAer4O,MAGhBk7O,EAAY9uQ,KAAI4zB,GAAQA,IAEjB,WAAdi7O,EACOC,EAAY9uQ,KAAKvP,GAAMA,EAAEw7Q,gBAE7B,EAAE,GACV,CAACyB,IAEJ,OAAQ,gBAAoB,KAAa,KACrC,gBAAoB,MAAO,CAAEr5Q,UAAW,WACpC,gBAAoB,KAAW,KAC3B,gBAAoB,KAAM,CAAEA,UAAW,mBACnC,UACA,gBAAoB,OAAQ,CAAEuc,QAAS69P,EAAcp6Q,UAAW,mBAAoB,YACxF,gBAAoB,MAAO,CAAEA,UAAW,iBACpC,gBAAoB,MAAO,CAAEA,UAAW,sBAAwB+5Q,EAAepuQ,KAAI,CAAC4jQ,EAAO91Q,IAAO,gBAAoB,MAAO,CAAE0M,IAAK,UAAU1M,IAAKuG,UAAW,iCAAiCuvQ,EAAMzhQ,QACjM,gBAAoB,MAAO,CAAE9N,UAAW,qCAThC,CAACuvQ,GAAUA,EAAMmL,aAAenL,EAAMhsP,MAU1Co3P,CAAoBpL,GACpB,IACe,aAAfA,EAAMzhQ,MAAuB,gBAAoB,IAAK,CAAEmoC,KAAM,IAAK15B,QAASk9P,EAASlK,EAAMhsP,QAAU,eAC1F,UAAfgsP,EAAMzhQ,MAAoB,gBAAoBsqQ,GAAO,CAAEvxO,MAAOA,EAAOtjB,MAAOgsP,EAAMhsP,MAAO/X,QAASsqQ,EAAc1vO,KAAMizO,EAAQjgR,MAAO,EAAG+B,IAAKo0Q,EAAMp0Q,IAAKC,IAAKm0Q,EAAMn0Q,IAAKi8B,GAAI59B,KAC5J,aAAf81Q,EAAMzhQ,MAAsC,QAAfyhQ,EAAMzhQ,OAChC,gBAAoBuoQ,GAAY,CAAEvoQ,KAAMyhQ,EAAMzhQ,KAAM2rQ,SAAUA,EAASlK,EAAMhsP,OAAQ/X,QAASsqQ,EAAc1vO,KAAMizO,EAAQ1C,YAAavwO,EAAM0wO,aAAcvH,EAAMuH,aAAcvzP,MAAOgsP,EAAMhsP,MAAOk+B,MAAO64N,EAAmB7gR,GAAI49B,GAAI59B,EAAG+yJ,aAAc+iH,EAAM/iH,eACjP,kBAAf+iH,EAAMzhQ,MACF,gBAAoBipQ,GAAsB,CAAElwO,MAAOA,EAAOr7B,QAASsqQ,EAAc1vO,KAAMizO,EAAQvC,aAAcvH,EAAMuH,aAAcvzP,MAAOgsP,EAAMhsP,MAAOk+B,MAAO64N,EAAmB7gR,GAAI49B,GAAI59B,SACnM,gBAAoB,MAAO,CAAEuG,UAAW,oBACpC,GAAsB,gBAAoB,IAAK,CAAEi2C,KAAM,IAAK15B,QAAS09P,EAAcj6Q,UAAW,kBAAoBm5Q,GAClH,gBAAoB,KAAU,CAAE58P,QAAS29P,EAAc1iO,OAAQ,oBAAsB4hO,MAAe,EC5G3GwB,GAActxQ,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,eAC1E,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQ90C,EAAMia,SAEtB,kBAAoB,MAAO,CAAEvjB,UAAW,8BACpC,kBAAoB,IAAK,KAAMsJ,EAAMitC,MACrC,kBAAoBquK,GAAQ,CAAElhN,MAAO4F,EAAM6pL,SAAUl9I,KAAM3sC,EAAMu6C,QAASghK,SAAS,MAC3F,kBAAoB,KAAK,CAAEjiN,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,YAC/D,kBAAoB,MAAO,CAAEzxL,UAAW,uBACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAAEC,OAAQ90C,EAAMia,SACrE,kBAAoB,IAAK,KAAMja,EAAMitC,MACrC,kBAAoB,KAAK,CAAE3zC,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,WAC3D,kBAAoBmzB,GAAQ,CAAElhN,MAAO4F,EAAM6pL,SAAUl9I,KAAM3sC,EAAMu6C,QAASghK,SAAS,0CCpBhG,MAAMg2D,GAAsB,EAAGt3P,QAAO+nM,UAAS/uM,UAASyU,WAC3D,MAAM9N,GAAc,IAAApkB,cAAazF,IACzBkjB,IACAljB,EAAEomB,iBACFlD,IACJ,GACD,CAACA,IACEu+P,EAAcpgR,OAAOs7C,SAAS+F,WAAauvK,EAAU,uCAAyC,GACpG,OAAQ,kBAAoB,IAAK,CAAEr1K,KAAMq1K,GAAW,IAAKtrN,UAAW,wBAAyBuc,QAAS2G,GAClG,kBAAoB,MAAO,CAAEljB,UAAW,mDAAmD86Q,KACvF,kBAAoB,OAAQ,CAAE96Q,UAAW,yCAA2CgxB,GAAQzN,IAAS,ECNpGw3P,GAAmBzxQ,IAC5B,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBAC9BkkO,EAAWtgR,OAAOs7C,SAAS+F,SAAS7wB,MAAM,KAAKtiB,MAAM,GAAI,GAAGmZ,KAAK,KAgBvE,OAfgBzY,EAAM2xQ,WAClB,gBAAoB,MAAO,CAAEj7Q,UAAW,oBACpC,gBAAoB,MAAO,CAAEA,UAAW,qCACpC,gBAAoB,IAAK,KAAMsJ,EAAMia,QACzC,gBAAoB,MAAO,CAAEvjB,UAAW,+BACpC,gBAAoB66Q,GAAqB,CAAEt3P,MAAO,GAAIyN,KAAMkjK,EAAUo3B,QAAS0vD,IAC/E1xQ,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoBohR,GAAqB,CAAE10Q,IAAK,oBAAoB1M,OAAQ8lC,QACnH,gBAAoB,KAAa,CAAEuX,gBAAiBmJ,GAChD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEjgD,UAAW,oBACpC,gBAAoB,MAAO,CAAEA,UAAW,qCACpC,gBAAoB,IAAK,KAAMsJ,EAAMia,QACzC,gBAAoB,MAAO,CAAEvjB,UAAW,+BACpC,gBAAoB66Q,GAAqB,CAAEt3P,MAAO,GAAIyN,KAAMkjK,EAAUo3B,QAAS0vD,IAC/E1xQ,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoBohR,GAAqB,CAAE10Q,IAAK,oBAAoB1M,OAAQ8lC,SACjH,ECpBL27O,GAAwB,EAAG5sC,QAAOx3L,kBAAiBmkO,aAAY13P,QAAO43P,sBAC/E,MAAM,QAAEl7N,EAAO,UAAEoS,IAAc,SAAUvb,GACnCskO,GAAmB,IAAAt8Q,cAAagoC,GAC9Bq0O,IAAoB7sC,EAAMxnM,GAAOod,YAAYkoL,oBACtC,cAEJ,IACR,CAAC+uC,EAAiB7sC,IACfC,GAAO,IAAAzvO,cAAY,CAACyvO,EAAM90O,IAAM,kBAAoB,IAAK,CAAEw8C,KAAMs4L,EAAK1qL,QAAS19C,IAAK1M,EAAGuG,UAAW,4GAA4Go7Q,EAAiB3hR,MACjO,kBAAoB,MAAO,CAAEuG,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoB,MAAO,CAAEhE,MAAO,OAAQ4G,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAK98C,YAC9E,kBAAoB,MAAO,CAAEzxL,UAAW,uEACpC,kBAAoB,IAAK,CAAEA,UAAW,yEAA2EuuO,EAAKrqL,iBAAiB,CAACk3N,IAWpJ,OAVgBH,EACZ,kBAAoB,MAAO,CAAEh8Q,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,6BACjEujB,GACI,kBAAoB,MAAO,CAAEvjB,UAAW,qCACpC,kBAAoB,IAAK,KAAMujB,IACvC,kBAAoB,MAAO,CAAEvjB,UAAW,yCAA2CsuO,EAAM3iO,KAAI,CAACpR,EAAGd,IAAM80O,EAAKh0O,EAAGd,OACnH,kBAAoB,KAAa,CAAEq9C,gBAAiBmJ,GAChD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEhhD,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,6BACjE,kBAAoB,MAAO,CAAEA,UAAW,yCAA2CsuO,EAAM3iO,KAAI,CAACpR,EAAGd,IAAM80O,EAAKh0O,EAAGd,QACjH,ECtBL4hR,GAAmB/xQ,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,oBAC/E,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,KAAc,IAAKsJ,EAAM8e,KAAMiuB,cAAe/sC,EAAM+sC,cAAeD,kBAAmB9sC,EAAM8sC,kBAAmBD,YAAa7sC,EAAM6sC,eAC1J,kBAAoB,MAAO,CAAEn2C,UAAW,8BACpC,kBAAoB+6Q,GAAiB,IAAKzxQ,EAAMgyQ,kBAChD,kBAAoBptD,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D,kBAAoB6sD,GAAuB,IAAK5xQ,EAAMy8M,WAAYo1D,gBAAiB7xQ,EAAM8e,KAAK7E,UCTzFg4P,GAAiBjyQ,GAAW,kBAAoB,KAAa,KACtE,kBAAoB,MAAO,CAAEtJ,UAAW,qBACpC,kBAAoB,KAAW,KAC3BsJ,EAAMia,OAAS,kBAAoB,KAAM,KAAMja,EAAMia,OACrDja,EAAMwwC,UAAY,kBAAoB,IAAK,KAAMxwC,EAAMwwC,aCFtD0hO,GAAoB,EAAGj4P,QAAOu2B,WAAUmK,WAAUwtI,WAAU36I,sBACrE,MAAM,UAAEub,IAAc,EAAAD,GAAA,GAAUtb,GAChC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBA,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,sBAAuBf,MAAO,CAAE,eAAgBozD,IACpF,kBAAoB,KAAM,CAAEryD,UAAW,6BAA8Bm+C,wBAAyB,CAAEC,OAAQ76B,KACxG,kBAAoB,KAAM,CAAEvjB,UAAW,gCAAiCm+C,wBAAyB,CAAEC,OAAQtE,KAC3G,kBAAoB,KAAK,CAAE95C,UAAW,gCAAiC8jD,IAAK2tI,EAAU7uL,IAAKqhD,MAAe,ECV7Gw3N,GAAU,IAAO,kBAAoB,MAAO,CAAEvqP,MAAO,6BAA8Bl1B,MAAO,IAAKC,OAAQ,IAAKk1B,QAAS,UAAW6lB,KAAM,QAC/I,kBAAoB,SAAU,CAAE6X,GAAI,IAAKC,GAAI,IAAKp1D,EAAG,IAAKs9C,KAAM,UAAWoX,YAAa,UCE/EstN,GAAoBpyQ,IAC7B,MAAM,QAAEo9C,EAAO,QAAED,EAAO,SAAEE,IAAa,WACvC,IAAIg1N,EAAqB,EAEzB,OADAj1N,EAAUi1N,EAAqB,GAAMh1N,EAAWg1N,EAAqB,GAAMl1N,IAAUk1N,EAAqB,IAClG,kBAAoB,KAAa,CAAE7kO,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,KAAM,CAAEA,UAAW,oBAAsBsJ,EAAMia,QACvE,kBAAoB,MAAO,CAAEvjB,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,gCAAiCf,MAAO,CAAE4pN,gBAAiB,OAAOv/M,EAAMsyQ,KAAK,GAAG7qF,cACpH,kBAAoB,MAAO,CAAE/wL,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,4BACpC,kBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAMsyQ,KAAK,GAAG5nC,YAC3C,kBAAoB,MAAO,CAAEh0O,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,CAAEA,UAAW,kCAAoCsJ,EAAMsyQ,KAAK,GAAG3nC,mBAC3FwnC,KACA,kBAAoB,OAAQ,CAAEz7Q,UAAW,qCAAuCsJ,EAAMsyQ,KAAK,GAAG9nC,iBAC9F2nC,KACA,kBAAoB,OAAQ,CAAEz7Q,UAAW,iCAAmC,IAAIoX,KAAK9N,EAAMsyQ,KAAK,GAAGloC,YAAcpqO,EAAMsyQ,KAAK,GAAGloC,YAAc,IAAImoC,eAAejzQ,MAAM,MAC9K,kBAAoB,MAAO,CAAE5I,UAAW,qCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,CAAEA,UAAW,mCAAqCsJ,EAAMsyQ,KAAK,GAAG/nC,kBACxG,kBAAoB,MAAO,CAAE7zO,UAAW,kCACpC,kBAAoB,KAAM,KAAMsJ,EAAMsyQ,KAAK,GAAGjoC,eAClD,kBAAoB,MAAO,CAAE3zO,UAAW,oCACpC,kBAAoB,IAAK,KACrBsJ,EAAMsyQ,KAAK,GAAGhoC,eAAehrO,MAAM,EAAG+yQ,GACtC,YACxB,kBAAoB,MAAO,CAAE37Q,UAAW,iCAAmCsJ,EAAMsyQ,KAAKjwQ,KAAI,CAAC4zB,EAAM9lC,IACzFA,EAAI,EACI,kBAAoB,MAAO,CAAE0M,IAAK,eAAe1M,IAAKuG,UAAW,sCAAsCvG,KAC3G,kBAAoB,IAAK,CAAEuG,UAAW,sCAAsCvG,IAAKw8C,KAAM1W,EAAKy0M,YACxF,kBAAoB,MAAO,CAAEh0O,UAAW,oCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,CAAEA,UAAW,kCAAoCu/B,EAAK00M,mBAClFwnC,KACA,kBAAoB,OAAQ,CAAEz7Q,UAAW,0CAA4Cu/B,EAAKu0M,iBAC1F2nC,KACA,kBAAoB,OAAQ,CAAEz7Q,UAAW,sCAAwC,IAAIoX,KAAKmoB,EAAKm0M,YAAcn0M,EAAKm0M,YAAc,IAAImoC,eAAejzQ,MAAM,MACjK,kBAAoB,MAAO,CAAE5I,UAAW,kCACpC,kBAAoB,KAAM,KAAMu/B,EAAKo0M,iBAE9C,SACH,EC5CtBmoC,GAAgB,EAAGj9F,SAAQk9F,cAAaC,eAAcC,cAAaC,sBACrE,MAAMC,EAAY5zK,WAAWwzK,GACvBK,EAAa7zK,WAAWyzK,GAC9B,GAAIttQ,MAAMytQ,IAAcztQ,MAAM0tQ,IAAeD,EAAYC,IAAe,IACpE,OAAO,kBAAoB,aAAgB,MAE/C,MASMC,EAAoBJ,EAAcA,EAAcp9F,EAAO/9I,cAAgB+9I,EAAO/9I,cAC9E+iB,EAAUq4N,GAAoCG,EACpD,OAAQ,kBAAoB,IAAK,CAAEpmO,KAAM4N,EAASrkD,OAAQ,SAAUQ,UAAW,4CAA6Ci1I,IAAK,cAX/F,kBAAoB,MAAO,CAAEj1I,UAAW,gDACtE,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoB,MAAO,CAAEA,UAAW,yEAA2E6+K,GACnH,kBAAoB,MAAO,CAAE7+K,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,oDACpC,kBAAoB,MAAO,CAAEf,MAAO,CAAEjD,MAAO,GAAG+/Q,KAAiB/7Q,UAAW,wDACpF,kBAAoB,MAAO,CAAEA,UAAW,2EACpC,kBAAoB,MAAO,KAAM+7Q,GACjC,kBAAoB,MAAO,KAAMC,MAGyH,EAE7JM,GAA6B,EAAG/4P,QAAO2oM,eAAcrmN,UAASiqD,cAAamsN,cAAaC,kBAAiBK,8BAClH,MAAM,QAAEt8N,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,kBACjD,iBAAEiZ,EAAgB,MAAEprD,IAAU,SAAmBkB,GAAW,uDAAwDiqD,GAAe,uCACzI,OAAInrD,IAAUorD,EAAiBl2D,OACpB,kBAAoB,aAAgB,MAEvC,kBAAoB,KAAa,CAAEi9C,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,iCAAkCf,MAAO,CAAEqvD,MAAO+D,IACtF,kBAAoB,MAAO,CAAEryD,UAAW,2DACpCujB,EACA,kBAAoB,OAAQ,CAAEvjB,UAAW,gBACrCu8Q,GAA2B,KAC3BA,IACR,kBAAoB,MAAO,KACvB,kBAAoB,GAAQ,CAAEhiF,aAAc,EAAGe,cAAe,QAAUvrI,GAAkBpkD,KAAK4iO,GAAS,kBAAoBtqB,GAAa,CAAE99M,IAAK,0BAA0BooO,EAAK1vD,SAAS0vD,EAAKwtC,eACzL,kBAAoBD,GAAe,CAAEj9F,OAAQ0vD,EAAK1vD,OAAQo9F,YAAaA,EAAaC,gBAAiBA,EAAiBH,YAAaxtC,EAAKwtC,YAAaC,aAAcztC,EAAKytC,sBAAuB,EC5B1MQ,GAAelzQ,IACxB,MAAOmzQ,EAAUC,GAAe,YAAe,IACxCC,EAAeC,GAAoB,YAAe,IAClDjG,EAAakG,GAAkB,WAAe,CAAC,IAC/C7C,EAAc8C,GAAmB,WAAe,IAChDxuC,EAAOqK,GAAY,WAAe,KAClCxiM,EAAau/N,GAAkB,WAAe,KAC9CqH,EAAyBC,GAA8B,YAAe,IACtErH,EAAmBsH,GAAwB,YAAe,GAQ3DC,EANmB,CAAC5uC,GAClBhlO,EAAM6zQ,gBAAkBhnO,EACjBm4L,EAAMxoO,QAAQyoO,GAASA,EAAKhrN,MAAMud,cAAcxlB,SAAS66B,EAAYi2L,uBAEzEkC,EAEW8uC,CAPC,CAAE9uC,GAAUA,EAAM1lO,MAAMU,EAAM+zQ,kBAAoB,GAOlCC,CAAehvC,KAChD,YAAEn0L,EAAW,iBAAEoW,EAAgB,WAAEjV,EAAU,eAAEiP,IAAmB,SAAc2yN,EAAe,KAe7F,iBAAE1D,EAAgB,SAAE+D,EAAQ,iBAAEC,EAAgB,qBAAEC,GAdf,MACnC,MAAMC,EAAWntN,EAAiB12D,OAAS,EAK3C,MAAO,CACH6jR,WACAlE,iBANqBtgR,OAAO+wD,OAAO0sN,GAAa7wQ,QAAOurB,GAAa,KAAPA,GAAoB,IAAPA,IAAUx3B,OAAS,EAO7F2jR,iBALqBT,GAA2C,KAAhB5mO,EAMhDonO,SAP6B,KAAhBpnO,EAQbsnO,qBANyBC,IAAaX,EAOzC,EAE2EY,GAC1EC,EAA4B,eAAkB,IAAMt0Q,EAAM+vQ,OAAO9vP,QAAO,CAACgV,EAAKgB,KAChFhB,EAAIgB,EAAKhc,QAAS,EACXgb,IACR,CAAC,IAAI,CAACj1B,EAAM+vQ,UACRwE,EAAYC,GAAiB,YAAe,IAAMF,MAEnDnE,EAAW,eAAmBl6O,GAAUlmC,IAC1CA,EAAEomB,iBACF,MAAM8vP,EAAQjmQ,EAAM+vQ,OAAOp0Q,MAAKsqQ,GAASA,EAAMhsP,QAAUgc,IACzD,IAAKgwO,GAAwB,aAAfA,EAAMzhQ,WAA8C,IAAhByhQ,EAAM9tN,MACpD,OAEJ,MAAM+4N,EAAYzB,GAAmBxJ,GAU/Bn9I,EARgB,WAAdooJ,EACOjL,EAAM9tN,MAEC,WAAd+4N,EACOjL,EAAM9tN,MAAM91C,KAAKvP,GAAMA,EAAEw7Q,gBAE7B,GAKLmG,EAFgBF,EAAWt+O,GAEuB,GADrC6yF,EACyBrwG,KAAK,KAC3Ci8P,EAAmCz+O,EArBiBk3O,WAAW,IAAK,IAsB1EoG,GAAeoB,IAAkB,IAC1BA,EACH,CAACD,GAAUD,MAEfD,EAAc,IAAKD,EAAY,CAACt+O,IAAQs+O,EAAWt+O,IAAQ,GAC5D,CAACs+O,EAAYv0Q,EAAM+vQ,SAChB6E,EAA2B,eAAmB9kR,IAC5CA,EAAMkiB,SAAS,eAAiBliB,EAAMkiB,SAAS,aAAeliB,EAAMkiB,SAAS,eAC7E2hQ,GAAqB,GAGzBA,GAAqB,EAAM,GAC5B,IACGkB,EAAgB,eAAmBpuQ,IACrC,MAAMmpC,EAAiB,CACnBC,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3B/2B,KAAM04D,KAAK8hC,UAAU,CAAEopG,QAAS38M,EAAM28M,WAAYl2M,KAEtDmuQ,EAAyBhlO,EAAe72B,MACxC,MAAMkoP,EAAWjhQ,EAAM80Q,YAAc,wBAA2B90Q,EAAM6zQ,eAAiB,eAAiB,iBACxGt8N,MAAM,QAAQ0pN,WAAkBjhQ,EAAM+3C,QAASnI,GAC1Cz1C,MAAMm9C,GAAaA,EAASK,SAC5Bx9C,MAAM46Q,IACP1lC,EAAS0lC,GACT9zN,EAAe,EAAE,IAEhB7I,OAAMn5C,GAAO7D,QAAQ+S,KAAKlP,IAAK,GACrC,CAAC21Q,EAA0B50Q,EAAM80Q,YAAa90Q,EAAM6zQ,eAAgB7zQ,EAAM28M,QAAS38M,EAAM+3C,MAAOkJ,IACnG,aAAgB,KACZ4zN,EAAc,CAAC,GACfnB,GAA2B,EAAM,GAClC,CAACmB,IACJ,MAAMG,EAAoB,eAAmBlJ,IACzC+I,EAAc,CAAEI,aAAcnJ,IAC9BM,EAAeN,GACfyH,EAAe,CAAC,GAChBC,EAAgC,IAAhB5hR,KAAK6yD,SAAe,GACrC,CAACowN,IACEK,EAAc,eAAmB3iR,IACnCghR,EAAehhR,EAAE,GAClB,IACG4iR,EAAgB,eAAkB,KACpC,MAAMvkR,EAAIhB,OAAOmlC,YAAYnlC,OAAOolC,QAAQq4O,GAAa7wQ,QAAO,EAAE,CAAEhK,KAAa,KAANA,KAC3E5C,OAAOiM,KAAKjL,GAAGyR,KAAK0lB,IAChB,MAAMvjB,EAAOxE,EAAM+vQ,OAAOvzQ,QAAOpK,GAAKA,EAAE6nB,MAAMkzP,WAAW,IAAK,MAAQplP,IAAI,GAAGvjB,KAC7E,GAAc,UAATA,EACD5T,EAAEm3B,GAAc,EAARn3B,EAAEm3B,QAET,GAAa,kBAATvjB,EAA0B,CAC/B,MAAMwS,EAAYpmB,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAU,IAAImb,QAAQ,aAAc,IAC/EsJ,EAAUrmB,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAU,IAAImb,QAAQ,WAAY,IAC7EqJ,IACApmB,EAAQ,KAAIomB,GAEZC,IACArmB,EAAW,QAAIqmB,UAEZrmB,EAAEm3B,EACb,MAEIn3B,EAAEm3B,GAAMn3B,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAUgK,QAAQhK,GAAY,QAANA,IAC/D5C,OAAOiM,KAAKjL,GAAGyR,KAAI0lB,GAAQn3B,EAAEm3B,GAAIx3B,QAA6B,iBAAXK,EAAEm3B,GAAoCn3B,EAAEm3B,UAAVn3B,EAAEm3B,IACvF,IAEJ8sP,EAAcjkR,GACdw7Q,EAAe,IACfsH,GAA2B,EAAK,GACjC,CAACmB,EAAexH,EAAartQ,EAAM+vQ,SAChCY,EAAe,eAAmB5gR,IACpCA,EAAEomB,iBACFq9P,EAAgC,IAAhB5hR,KAAK6yD,UACrB,MAAM2wN,EAAa,CAAC,EACpBxlR,OAAOiM,KAAKwxQ,GAAahrQ,KAAItS,GAAKqlR,EAAWrlR,GAAK,KAClDwjR,EAAe6B,GACfZ,EAAcF,KACdO,EAAc,CAAC,GACfnB,GAA2B,GAC3BtH,EAAe,IACfuH,GAAqB,EAAM,GAC5B,CAACtG,EAAaiH,EAA2BO,IACtCvpC,EAAuB,gBAAoBsgC,GAAe,CAAEG,uBAAwB/rQ,EAAM+rQ,uBAAwBF,iBAAkB7rQ,EAAM6rQ,iBAAkBG,WAAYhsQ,EAAMgsQ,WAAYxnQ,KAAM,SAAU0nQ,aAAcoH,EAAkB57H,QAAS27H,EAAepH,WAAYmH,EAAajiO,KAAMgiO,EAAUtmO,YAAaA,EAAau/N,eAAgB4I,EAAmBlJ,WAAY9rQ,EAAM8rQ,WAAYO,kBAAmBA,IACzZ9gC,EAAiB,gBAAoBqkC,GAAS,CAAE1D,aAAcoH,EAAkBrD,OAAQkF,EAAe53O,MAAOmzO,EAAcV,SAAUW,EAAcZ,OAAQ/vQ,EAAM+vQ,OAAQjzO,KAAMuwO,EAAalhO,QAAS+oO,EAAarF,UAAW7vQ,EAAM6vQ,UAAWC,UAAW9vQ,EAAM8vQ,UAAWI,iBAAkBA,EAAkBqE,WAAYA,EAAYpE,SAAUA,IACjVkF,EAAqBr1Q,EAAMs1Q,sBAAwBt1Q,EAAMu1Q,2BAA6Bv1Q,EAAMwmD,aAAgB,gBAAoBwsN,GAA4B,CAAE/4P,MAAOja,EAAMu1Q,0BAA2Bh5Q,QAASyD,EAAMs1Q,qBAAsB9uN,YAAaxmD,EAAMwmD,YAAaosN,gBAAiB5yQ,EAAM4yQ,gBAAiBK,wBAAyBjzQ,EAAMizQ,0BAClVuC,EAAmB,WAAc,IAAOtB,GAAoBrnO,GAAc,CAACqnO,EAAkBrnO,IAwDnG,OAHA,aAAgB,KACZ10C,SAAS4gB,KAAKI,UAAUowK,OAAO,uBAAwB8pF,EAAc,GACtE,CAACA,IACI,gBAAoB,MAAO,CAAE38Q,UAAW,2BAC5C,gBAAoB,KAAa,CAAE82C,gBAAiB,QAChD,gBAAoB,MAAO,CAAE92C,UAAW,iBAAgB28Q,EAAgB,iBAAmB,KACvF,gBAAoB,MAAO,CAAE38Q,UAAW,oBAhB5CsJ,EAAM80Q,YACC,gBAAoB,WAAgB,MAGxB90Q,EAAM6zQ,eAzBV,CAAC5iR,IAChB,GAAIrB,OAAO+wD,OAAO0sN,GAAa7wQ,QAAOurB,GAAa,KAAPA,IAAWx3B,QAAUs8C,EAC7D,OAAQ,gBAAoB,WAAgB,KACxC,gBAAoB+3K,GAAK,CAAEG,UAAW,OAAQG,WAAY,SAC1D,gBAAoBssB,GAA6B,CAAExM,MAAO/zO,EAAGgpB,MAAO,iBAAkBqxN,qBAAsBA,EAAsBC,eAAgBA,GAC9I,gBAAoB,IAAK,CAAE70O,UAAW,+BAClCzF,EAAEV,OACF,iBACA,IACA,gBAAoB,IAAK,CAAEo8C,KAAM,IAAK15B,QAAS09P,EAAcj6Q,UAAW,kBAAoBsJ,EAAM6vQ,cAElH,MAAM4F,EAAmBxkR,GAAGqO,MAAM,EAAG,GAC/Bo2Q,EAAiBzkR,GAAGqO,MAAM,GAChC,OAAQ,gBAAoB,WAAgB,KACxCgsO,EACAC,EACA,gBAAoB3mB,GAAK,CAAEG,UAAW,OAAQG,WAAY,SAC1D,gBAAoBosB,GAAe,CAAEtM,MAAOywC,EAAkBx7P,MAAO,kBAAmBs3N,kBAAkB,EAAO7B,eAAgB1vO,EAAM0vO,iBACvI,gBAAoB9qB,GAAK,CAAEG,UAAW,OAAQG,WAAY,SAC1D,gBAAoBssB,GAA6B,CAAExM,MAAO0wC,EAAgBz7P,MAAO,aAAcy1N,eAAgB1vO,EAAM0vO,iBAAmB,EAOjIimC,CAAW1uN,GA/CJ,CAAC+9K,IACvB,IAAI4wC,EAAY,WAOhB,OANI3B,EACA2B,EAAY,iBAEP1B,IACL0B,EAAY,kBAER,gBAAoB,WAAgB,KACxCzB,GAAwB,gBAAoB/B,GAAkB,CAAEE,KAAMttC,GAAO1lO,MAAM,EAAG,GAAI2a,MAAOja,EAAMia,OAAS,KAChH,gBAAoB2qM,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5EkwD,EACA,gBAAoBzwD,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,gBAAoBkmB,GAAc,CAAEx6L,YAAaA,EAAaoW,iBAAkBA,EAAkBjV,WAAYA,EAAYiP,eAAgBA,EAAgBhnC,MAAO27P,EAAWhrC,WAAYuoC,EAAU0C,cAAevC,EAAkBwC,oBAAqBzC,EAAe/nC,qBAAsBA,EAAsBC,eAAgBA,EAAgBE,YAAazrO,EAAMyrO,aAClW,gBAAoB,IAAK,CAAE/0O,UAAW,+BAClCk9Q,EAAcrjR,OACd,iBACA,IACA,GAAsB,gBAAoB,IAAK,CAAEo8C,KAAM,IAAK15B,QAAS09P,EAAcj6Q,UAAW,kBAAoBsJ,EAAM6vQ,aAAc,EA+BvIkG,CAAkB9uN,KAUF,ECvNtB+uN,GAAiB,EAAGliR,UAASuoQ,iBAAgBxnP,WAAUohQ,cAAah0P,iBAAmB,kBAAoB,MAAO,CAAEvrB,UAAW,mBACxI,kBAAoB,QAAS,KACzBu/Q,EACA,kBAAoB7Z,GAAU,CAAEtoQ,QAASA,EAAS+gB,SAAUA,EAAUs5B,QAAS,0BAA2BkuN,eAAgBA,EAAgBp6O,YAAaA,EAAaq6O,uBAAuB,EAAO3mQ,MAAO,CAAE63C,gBAAiB,eCJvN0oO,GAAa,EAAGpiR,UAAS+gB,WAAUwnP,iBAAgB4Z,kBAC5D,MAAMroP,GAAe,IAAAp4B,cAAak8B,IAC1B7c,GACAA,EAAS6c,EAAMx7B,OAAOpG,MAC1B,GACD,CAAC+kB,IACJ,OAAQ,kBAAoB,MAAO,CAAEne,UAAW,eAC5C,kBAAoB,WAAY,KAC5B,kBAAoB,SAAU,KAAMu/Q,GACpC,kBAAoB,MAAO,CAAEv/Q,UAAW,iCAAmC5C,EAAQuO,KAAI,CAACurO,EAAQpwM,KAC5F,MAAO++N,EAAYC,GAAiC,iBAAX5uB,EAAsB,CAACA,EAAQA,GAAU,CAACA,EAAO3gM,KAAM2gM,EAAO99O,OACvG,OAAQ,kBAAoB,QAAS,CAAE+M,IAAK2gC,EAAO9mC,UAAW,oBAC1D,kBAAoB,QAAS,CAAE8N,KAAM,QAAS0O,SAAU0a,EAAc99B,MAAO0sQ,EAAa2K,QAAS9K,IAAmBG,IACtH,kBAAoB,OAAQ,KAAMD,GAAa,MACjD,ECbL4Z,GAA6B,EAAGC,aAAYtiR,UAAS+gB,WAAUwnP,iBAAgB4Z,cAAah0P,iBAAmB,kBAAoB,aAAgB,KAC7I,aAAfm0P,GAA6B,kBAAoBJ,GAAgB,CAAEliR,QAASA,EAAS+gB,SAAUA,EAAUwnP,eAAgBA,EAAgB4Z,YAAaA,EAAah0P,YAAaA,IACjK,SAAfm0P,GAAyB,kBAAoBF,GAAY,CAAEpiR,QAASA,EAAS+gB,SAAUA,EAAUwnP,eAAgBA,EAAgB4Z,YAAaA,KCFrII,GAAsB,CAACC,EAAgBC,IAAkBD,GAAkBC,EAClFC,GAA2B,CAAC1iR,EAAS2iR,KACvC,GAAK3iR,EAGL,OAAOA,EAAQuO,KAAI,CAACurO,EAAQpwM,IACF,iBAAXowM,EACA,CACH99O,MAAO89O,EACP3gM,KAAMwpO,IAAej5O,IAAUowM,GAGhC,CACH99O,MAAO89O,EAAO99O,MACdm9C,KAAMwpO,IAAej5O,IAAUowM,EAAO3gM,MAAQ2gM,EAAO99O,QAE3D,EAEO4mR,GAAyB,EAAGC,oBAAmBC,YAAWC,aAAYC,eAAcC,qBAAoBC,gBAAeC,wBAAuBC,gBAAeC,iBAAgBC,oBAAmBC,0BAAyBC,qBAAoBC,0BAAyBC,kBAAiBC,mBAAkBC,sBAAqBC,4BAA2BC,uBAAsBC,0BACxX,MAAMC,EAA4B,CAC9B,CACIhkR,QAAS0iR,GAAyBM,GAAchjR,QAAS+jR,GAAqBf,cAAchjR,SAC5FsiR,WAAY,WACZvhQ,SAAU6iQ,EACVrb,eAAgB+a,EAChBnB,YAAaI,GAAoBwB,GAAqBf,cAAc78P,MAAO,iBAE/E,CACInmB,QAAS0iR,GAAyBG,GAAmB7iR,QAAS+jR,GAAqBlB,mBAAmB7iR,SACtGsiR,WAAY,OACZvhQ,SAAU0iQ,EACVlb,eAAgB4a,EAChBhB,YAAaI,GAAoBwB,GAAqBlB,mBAAmB18P,MAAO,SAEpF,CACInmB,QAAS0iR,GAAyBO,GAAoBjjR,QAAS+jR,GAAqBd,oBAAoBjjR,SACxGsiR,WAAY,OACZvhQ,SAAU8iQ,EACVtb,eAAgBgb,EAChBpB,YAAaI,GAAoBwB,GAAqBd,oBAAoB98P,MAAO,aAErF,CACInmB,QAAS0iR,GAAyBI,GAAW9iR,QAAS+jR,GAAqBjB,WAAW9iR,SACtFsiR,WAAY,WACZvhQ,SAAU2iQ,EACVnb,eAAgB6a,EAChBjB,YAAaI,GAAoBwB,GAAqBjB,WAAW38P,MAAO,WACxEgI,YAAa,KAEjB,CACInuB,QAAS0iR,GAAyBK,GAAY/iR,QAAS+jR,GAAqBhB,YAAY/iR,SACxFsiR,WAAY,WACZvhQ,SAAU4iQ,EACVpb,eAAgB8a,EAChBlB,YAAaI,GAAoBwB,GAAqBhB,YAAY58P,MAAO,YACzEgI,YAAa,KAEjB,CACInuB,QAAS0iR,GAAyBQ,GAAeljR,QAAS+jR,GAAqBb,eAAeljR,SAC9FsiR,WAAY,WACZvhQ,SAAU+iQ,EACVvb,eAAgBib,EAChBrB,YAAaI,GAAoBwB,GAAqBb,eAAe/8P,MAAO,oBAGpF,OAAQ,kBAAoB,aAAgB,KAAM69P,EAA0Bt7Q,QAAOu7Q,GAAoBA,EAAiBjkR,UAASuO,KAAI,EAAGvO,UAASsiR,aAAYvhQ,WAAUwnP,iBAAgB4Z,cAAah0P,eAAeub,KAC/M,GAAK1pC,GAASvD,OAGd,OAAO,kBAAoB4lR,GAA4B,CAAEt5Q,IAAK2gC,EAAO44O,WAAYA,EAAYtiR,QAASA,EAAS+gB,SAAUA,EAAUwnP,eAAgBA,EAAgB4Z,YAAaA,EAAah0P,YAAaA,GAAc,IACxN,ECjDK+1P,GAA6B,EAAGttF,aAAYutF,gBAAeC,WAAUC,iBAAiB,aAC/F,MAAMC,EAAa,GAAGH,EAAgB,OAAOA,KAvBpB,CAACE,IAC1B,OAAQA,GACJ,IAAK,SACD,MAAO,gCACX,IAAK,WACD,MAAO,kCAEX,QACI,MAAO,gCACf,EAcgEE,CAAqBF,KAC/EG,EAAW,CAAE,2BAA4B,GAAGF,KAClD,OAAQ,kBAAoB,SAAU,CAAE1hR,UAAW,gEAAgEyhR,IAAkBllQ,QAASilQ,EAAUviR,MAAO2iR,GAAY5tF,GAdxJ,CAACytF,IACpB,OAAQA,GACJ,IAAK,SACD,MAAO,OACX,IAAK,WACD,MAAO,OAEX,QACI,MAAO,SACf,EAKyLI,CAAeJ,GAAiB,ECvBvNK,GAAyBC,GAAe,0BAA0BA,GAA0B,KAErFC,GAAuB,EAAGC,qBAAoB,EAAOC,4BAA2B,EAAOjiR,WAAU8hR,aAAYI,iBAAgBnlE,kBAAiBolE,qBAAoBC,cAAc,CAAC,aAC1L,MAAOC,EAAYC,IAAiB,IAAA/nR,UAASynR,IACrCvxN,UAAWjW,IAAS,WACtBw3I,GAAe,IAAAnzL,cAAY,KACzBqjR,GACAA,GAAgBG,GAEpBC,GAAeD,EAAW,GAC3B,CAACA,EAAYH,IACVK,GAAsB,IAAA1jR,cAAY,KAChCk+M,GACAA,GACJ,GACD,CAACA,IAKJ,OAHA,IAAAviN,YAAU,KACN8nR,EAAcN,EAAkB,GACjC,CAACA,IAH4BI,EAAY/mQ,SAASm/B,GAO7C,kBAAoB,MAAO,CAAEz6C,UAAW8hR,GAAsBC,KACjEG,IAA6BI,GAAc,kBAAoBhB,GAA4B,CAAEG,eAAgB,SAAUD,SAAUvvF,EAAcsvF,cAAea,GAAoBK,mBAAmBlB,cAAevtF,WAAYouF,GAAoBK,mBAAmBzuF,aACxQ,kBAAoB,MAAO,CAAEh0L,WAxBC0iR,EAwBuCJ,EAxBf,8CAA6CI,EAAsB,kDAAoD,KAwB3F1lE,gBAAiBwlE,GAC/F,kBAAoB,MAAO,CAAExiR,UAAW,mCAAqCC,KAChFiiR,GAA4BI,GAAc,kBAAoBhB,GAA4B,CAAEG,eAAgB,WAAYD,SAAUvvF,EAAcsvF,cAAea,GAAoBO,qBAAqBpB,cAAevtF,WAAYouF,GAAoBO,qBAAqB3uF,cANrQ,kBAAoB,aAAgB,KAAM/zL,GApBrB,IAACyiR,CA0B8P,EC3B9RN,GAAqB,CACvBK,kBAAmB,CACfzuF,WAAY,gBAEhB2uF,oBAAqB,CACjB3uF,WAAY,iBAGP4uF,GAAuB,EAAG1C,YAAWC,aAAYC,eAAcE,gBAAeL,oBAAmBI,qBAAoBwC,2BAA0BC,mBAAkBC,oBAAmBC,uBAAsBC,6BAA4BC,wBAAuB5oO,iBAAgBumO,0BAAyBC,kBAAiBC,mBAAkBC,sBAAqBE,uBAAsBD,4BAA2BkC,wBAAuBC,yBAAwBC,oBAAmBC,8BAA6B,EAAOC,qBAAoBC,0BAAyB,EAAMrC,sBAAqBsC,wBACtkB,MAAMC,GAA2B,IAAA5kR,cAAY,IAAM+jR,GAA4B,OAAO,CAACA,IACjFc,GAAmB,IAAA7kR,cAAY,IAAMgkR,GAAoB,IAAI,CAACA,IAC9Dc,GAAoB,IAAA9kR,cAAY,IAAMikR,GAAqB,IAAI,CAACA,IAChEc,GAAuB,IAAA/kR,cAAY,IAAMkkR,GAAwB,IAAI,CAACA,IACtEc,GAA0B,IAAAhlR,cAAY,IACpCmkR,IAGsC,iBAA5B5C,IAAqB,GAAkBA,IAAqB,GAAKA,IAAqB,IAAIjnR,QACzG,CAAC6pR,EAA4B5C,IAC1B0D,GAAwB,IAAAjlR,cAAY,IAClCokR,IAGiC,iBAAvB5C,IAAgB,GAAkBA,IAAgB,GAAKA,IAAgB,IAAIlnR,QAC1F,CAAC8pR,EAAuB5C,KACpBtkO,EAAQ2vL,IAAa,IAAAnxO,UAAS,KAC9B+lR,EAAuByD,IAA4B,IAAAxpR,UAASkpR,IAC5DlD,EAAeyD,IAAoB,IAAAzpR,UAASmpR,IAC5ClD,EAAgByD,IAAqB,IAAA1pR,UAASopR,IAC9ClD,EAAmByD,IAAwB,IAAA3pR,UAASqpR,IACpDlD,EAAyByD,IAA8B,IAAA5pR,UAASspR,IAChElD,EAAoByD,IAAyB,IAAA7pR,UAASupR,GACvDO,EAAgB,iBAAmBjrR,IACrCsyO,EAAUtyO,EAAEmG,OAAOpG,OACnBkhD,GAAkBA,EAAejhD,EAAEmG,OAAOpG,MAAM,GACjD,CAACkhD,IACEiqO,EAA8B,iBAAmBnrR,IACnD4qR,EAAyB5qR,GACzBynR,GAA2BA,EAAwBznR,EAAM,GAC1D,CAACynR,IACE2D,EAAsB,iBAAmBC,IAC3CR,EAAiBQ,GACjB3D,GAAmBA,EAAgB2D,EAAY,GAChD,CAAC3D,IACE4D,EAAuB,iBAAmBC,IAC5CT,EAAkBS,GAClB5D,GAAoBA,EAAiB4D,EAAa,GACnD,CAAC5D,IACE6D,GAAgC,IAAA9lR,cAAa+lR,IAC/C,MAAMC,EAAoBD,GAAe,GACzCT,EAA2BU,GAC3B7D,GAA6BA,EAA0B6D,EAAkB,GAC1E,CAAC7D,IACE8D,GAA0B,iBAAmBC,IAC/Cb,EAAqBa,GACrBhE,GAAuBA,EAAoBgE,EAAY,GACxD,CAAChE,IACEiE,GAAuB,iBAAmBC,IAC5Cb,EAAsBa,GACtBhE,GAAwBA,EAAqBgE,EAAa,GAC3D,CAAChE,IACEiE,IAA8B,IAAArmR,cAAazF,IAC/B,UAAVA,EAAE8M,KAAiC,KAAd9M,EAAE+rR,SACvB/rR,EAAEmG,OAAOw0B,MACb,GACD,KACH,IAAAv5B,YAAU,KACD6oR,IAGLU,EAAyBN,KACzBO,EAAiBN,KACjBO,EAAkBN,KAClBO,EAAqBN,KACrBO,EAA2BN,KAC3BO,EAAsBN,KAAwB,GAC/C,CAACF,EAAsBF,EAAkBC,EAAmBE,EAAyBC,EAAuBL,EAA0BJ,IACzI,MAAM+B,IAAkB5B,GAAmB6B,oBAC3C,OAAQ,kBAAoB,MAAO,CAAEtlR,UAAW,yBAC5CqlR,IAAmB,kBAAoB,MAAO,CAAErlR,UAAW,+CACvD,kBAAoBgiR,GAAsB,CAAEC,kBAAmBsB,EAAoBnB,mBAAoBA,GAAoBD,eAAgBgB,EAAuBnmE,gBAAiBomE,GAC/K,kBAAoB,MAAO,CAAEpjR,UAAW,qCACpC,kBAAoBggR,GAAwB,CAAEC,kBAAmBA,EAAmBC,UAAWA,EAAWC,WAAYA,EAAYC,aAAcA,EAAcE,cAAeA,EAAeD,mBAAoBA,EAAoBE,sBAAuBA,EAAuBC,cAAeA,EAAeC,eAAgBA,EAAgBC,kBAAmBA,EAAmBC,wBAAyBA,EAAyBC,mBAAoBA,EAAoBC,wBAAyB0D,EAA6BzD,gBAAiB0D,EAAqBzD,iBAAkB2D,EAAsB1D,oBAAqB+D,GAAyB9D,0BAA2B2D,EAA+B1D,qBAAsB+D,GAAsB9D,oBAAqBA,KACjwB,kBAAoBa,GAAsB,CAAEE,0BAA0B,EAAMD,kBAAmBuB,EAAwBnB,YAAa,CAAC,QAAS,SAAU,SAAUF,eAAgBgB,EAAuBnmE,gBAAiBomE,GACtN,kBAAoB,SAAU,CAAEpjR,UAAW,8CAA+Cuc,QAAS8mQ,GAAqB,oBACpI,kBAAoB,MAAO,CAAErjR,UAAW,iCACpC,kBAAoB,QAAS,CAAEwc,SAAU8nQ,EAAeiB,QAASJ,GAA6B/rR,MAAO4iD,EAAQh8C,UAAW,uBAAwB8N,KAAM,OAAQyd,YAAa41P,GAAqB/L,YAAY7xP,SAAW,ECvFtNiiQ,GAAgBl8Q,IACzB,MAAO88B,EAAMqP,GAAW,WAAe,IACjCiQ,EAAqB,eAAkBrsD,GAAKo8C,EAAQp8C,EAAEmG,OAAOpG,QAAQ,CAACgtC,IACtEwf,EAAe,eAAmBvsD,IAC1B,UAAVA,EAAE8M,KAAmBmD,EAAM0yC,OAAO5V,EAAK,GACxC,CAACA,IACJ,OAAQ,gBAAoB,KAAa,CAAE0Q,gBAAiBxtC,EAAMm8Q,eAAiBn8Q,EAAMm8Q,eAAiB,WACtG,gBAAoB,MAAO,CAAEzlR,UAAW,mBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,8BACpC,gBAAoB,MAAO,CAAEA,UAAW,2DACpC,gBAAoB,QAAS,CAAE44C,UAAW,GAAI31B,UAAW2iC,EAAcppC,SAAUkpC,EAAoBtsD,MAAOgtC,EAAMpmC,UAAW,6EAA8E8N,KAAM,OAAQyd,YAAajiB,EAAM8rQ,iBAAmB,ECV1QsQ,GAAyBp8Q,IAClC,MAAO88B,EAAMqP,IAAW,IAAAj7C,UAAS8O,EAAM8e,OAChC+tB,EAAau/N,IAAkB,IAAAl7Q,UAAS,IAe/C,OAdA,IAAAC,YAAU,KACN,MAIMkrR,EAAgBxvO,EAAYl/B,QAAQ,kBAAmB,IAC7C,KAAhBk/B,EAAqBV,EAAQnsC,EAAM8e,MAAQy4B,MAAM,IAAIv3C,EAAM28M,oCAAoC38M,EAAM+3C,eAAeskO,IAL7F,CACnBxsO,OAAQ,OACRC,QAAS,CAAE,eAAgB,sBAI1B31C,MAAMm9C,GAAaA,EAASK,SAC5Bx9C,MAAM46Q,GAAiB5oO,EAAQ,IAAKrP,EAAMyP,QAASwoO,MACnD38N,OAAMn5C,IACPktC,EAAQ,CAAEI,QAAS,KACnBnxC,QAAQ+S,KAAKlP,EAAI,GACnB,GACH,CAAC4tC,IACI,kBAAoB,MAAO,CAAEn2C,UAAW,2BAC5C,kBAAoBwlR,GAAc,CAAEC,eAAgB,OAAQzpO,OAAQ05N,EAAgBN,WAAY9rQ,EAAM8rQ,aACtG,kBAAoBiG,GAAiB,CAAEt1D,WAAYz8M,EAAMs8Q,gBAAiBtK,gBAAiBhyQ,EAAMu8Q,cAAexvO,cAAe,mBAAoBD,kBAAmB,mBAAoBD,YAAaA,EAAa/tB,KAAMge,IAAS,4BCtB+cltC,OAAO4K,OAAO,MCSxsB,MAAMgiR,GAAgB,CAAC,EAChB,SAAS,KACd,IAAK,IAAIC,EAAQnsR,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMm+Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9nP,EAAK8nP,GAASpsR,UAAUosR,GAEH,iBAAZ9nP,EAAK,IAAmB4nP,GAAc5nP,EAAK,MAC/B,iBAAZA,EAAK,KAAiB4nP,GAAc5nP,EAAK,IAAM,IAAI9mB,MAfzD,WACL,GAAI1S,SAAWA,QAAQ+S,KAAM,CAC3B,IAAK,IAAIwmB,EAAOrkC,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMq2B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQvkC,UAAUukC,GAEF,iBAAZD,EAAK,KAAiBA,EAAK,GAAK,mBAAmBA,EAAK,MACnEx5B,QAAQ+S,QAAQymB,EAClB,CACF,CAQE,IAAQA,GACV,CACA,MAAM+nP,GAAY,CAACC,EAAMrlN,IAAO,KAC9B,GAAIqlN,EAAKC,cACPtlN,QACK,CACL,MAAMs6G,EAAc,KAClB3+K,YAAW,KACT0pR,EAAKr7L,IAAI,cAAeswF,EAAY,GACnC,GACHt6G,GAAI,EAENqlN,EAAK/kR,GAAG,cAAeg6K,EACzB,GAEK,SAASirG,GAAeF,EAAMx2F,EAAI7uH,GACvCqlN,EAAKE,eAAe12F,EAAIu2F,GAAUC,EAAMrlN,GAC1C,CACO,SAASwlN,GAAcH,EAAMI,EAAK52F,EAAI7uH,GACzB,iBAAP6uH,IAAiBA,EAAK,CAACA,IAClCA,EAAGpwL,SAAQ/F,IACL2sR,EAAK9oR,QAAQsyL,GAAGv1L,QAAQZ,GAAK,GAAG2sR,EAAK9oR,QAAQsyL,GAAGrrL,KAAK9K,EAAE,IAE7D2sR,EAAKG,cAAcC,EAAKL,GAAUC,EAAMrlN,GAC1C,CCxCA,MAAM0lN,GAAkB,oGAClBC,GAAe,CACnB,QAAS,IACT,QAAS,IACT,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,QAAS,IACT,SAAU,IACV,WAAY,IACZ,UAAW,IACX,SAAU,IACV,QAAS,KAELC,GAAqB/oR,GAAK8oR,GAAa9oR,GCtB7C,ICDIgpR,GDCAzhP,GAAiB,CACnB0hP,SAAU,kBACVC,cAAe,GACfC,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClDC,aAAa,EACbC,SDesB3wO,GAAQA,EAAKt/B,QAAQsvQ,GAAiBE,KGtBvD,MAAMU,GAAmB,CAC9Br5Q,KAAM,WACN,IAAAvJ,CAAK21B,IFOA,WACL,IAAI98B,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFqrC,GAAiB,IACZA,MACA7nC,EAEP,CEZIgqR,CAAYltP,EAAS98B,QAAQiqR,ODJ1B,SAAiBntP,GACtBwsP,GAAexsP,CACjB,CCGIotP,CAAQptP,EACV,GCFW,IAAc,IAAAylL,iBACpB,MAAM4nE,GACX,WAAA1+Q,GACE9P,KAAKyuR,eAAiB,CAAC,CACzB,CACA,iBAAAC,CAAkBC,GAChBA,EAAWpoR,SAAQowL,IACZ32L,KAAKyuR,eAAe93F,KAAK32L,KAAKyuR,eAAe93F,IAAM,EAAI,GAEhE,CACA,iBAAAi4F,GACE,OAAOzuR,OAAOiM,KAAKpM,KAAKyuR,eAC1B,ECPF,SAASI,GAAW1B,EAAMn/N,EAAU8gO,EAAWC,GAC7C,OAAO5B,EAAK6B,UAAUhhO,EAAU8gO,EAAWC,EAC7C,CCAO,MCVME,GAAwB,EAAGC,YAAWC,YAAWC,WAAUC,WAAW,GAAIC,cAAc,MAAU,gBAAoB,KAAa,KAC5I,gBAAoB,MAAO,CAAEroR,UAAW,yBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,kCACpC,gBAAoB,WAAgB,KAChC,gBAAoB,MAAO,CAAEA,UAAW,qCACpCioR,GAAa,gBAAoB,KAAM,KAAMA,GAC7C,gBAAoB,MAAO,CAAE9pO,wBAAyB,CAAEC,OAAQ+pO,MACpEC,GAAY,gBAAoB,MAAO,CAAEpoR,UAAW,qCAChDkoR,GAAa,gBAAoB,KAAM,KAAMA,GAC7C,gBAAoB,MAAO,CAAE/pO,wBAAyB,CAAEC,OAAQgqO,OACxEC,GAAe,gBAAoB,MAAO,CAAEroR,UAAW,wCAAyCm+C,wBAAyB,CAAEC,OAAQiqO,SCTtIC,GAAqB,EAAGliP,OAAMmiP,aAAYvoR,YAAWwoR,uBAAsBC,sBAAqBC,4BAA8B,kBAAoB,QAAS,CAAE1oR,UAAWA,GACjL,kBAAoB,QAAS,KACzB,kBAAoB,KAAM,KAAMuoR,EAAW58Q,KAAI,CAACg9Q,EAAQC,IAAgB,kBAAoB,KAAM,CAAEziR,IAAKyiR,EAAa,kBAAmBD,EAAOE,gBAC5I,kBAAoB,MAAO,KAAMC,GAAwBH,EAAOE,eAAgBJ,QACpF,kBAAoB,KAAM,KAAMF,EAAW58Q,KAAI,CAAC8D,EAAGm5Q,IAAgB,kBAAoB,KAAM,CAAEziR,IAAKyiR,QACxG,kBAAoB,QAAS,KAAMxiP,EAAKz6B,KAAI,CAACo9Q,EAAKC,IAAa,kBAAoB,KAAM,CAAE7iR,IAAK6iR,EAAU,UAAWA,GAAYT,EAAW58Q,KAAI,CAACg9Q,EAAQC,KACrJ,MAAMK,EAAuBC,GAAwBP,EAAOE,gBACtDzvR,EAAQ+vR,GAAwBF,EAAsBN,EAAQI,GAE9DK,EADuC,iBAAVhwR,GAAuC,iBAAVA,EACxB2N,OAAO3N,GAAS,GAClDiwR,EAXc,EAACC,EAAeC,EAAWb,IAA2BA,EAAyBA,EAAuBa,EAAWD,GAAiBA,EAW1HE,CAAoBJ,EAAWH,EAAsBP,GAC3EviE,EAAY4iE,EAAI5iE,UAChBsjE,EAAkBV,EAAIU,gBACtBC,EAA6C,eAA1Bf,EAAOE,eAC1Bc,EAAYhB,EAAOiB,WAAWp0O,cAE9Bq0O,EAAkBC,GAAwBf,EAAKE,GAC/Cc,EAAqBC,GAAwBZ,GAC7Ca,GAAeJ,IAAoBE,EACnCG,EAAgB1B,GAAsBltQ,SAASqtQ,EAAOE,gBACtDsB,EAA+Bd,ECxB0BpyQ,QAAQ,gBAAiB,IDyBxF,OAAO,kBAAoBmzQ,GAAyB,CAAEjkR,IAAK,GAAG6iR,KAAYJ,IAAeyB,cAAe1B,EAAOE,eAAgBc,UAAWA,GACtI,kBAAoB,MAAO,CAAE3pR,UAAW,mCACpC0pR,GAAoBX,EAAIuB,YAAc,kBAAoBC,GAAoB,CAAED,WAAYvB,EAAIuB,WAAYH,QAASA,IACrH,kBAAoBK,GAAgC,CAAE1jP,MAAO8hP,EAAaziE,UAAWA,EAAWsjE,gBAAiBA,EAAiBrwR,MAAOiwR,EAAqBY,YAAaA,EAAaC,cAAeA,EAAeO,eAAgB1B,EAAgB,WAAGa,WAAYjB,EAAOE,kBAAmB,SAEzSuB,GAA0B,EAAGC,gBAAeV,YAAW1pR,cAAe,kBAAoB,KAAM,CAAE,kBAAmBoqR,EAAe9mQ,MAAOomQ,GAAa1pR,GACxJuqR,GAAiC,EAAGpxR,QAAO6wR,cAAaC,gBAAeN,aAAYa,qBACrFC,GAAkBD,EAAgBb,EAAYxwR,GAC1C8wR,EACO,kBAAoB,MAAO,CAAElqR,UAAW,uCAAwCm+C,wBAAyB,CAAEC,OAAQhlD,KAEvH,kBAAoB,aAAgB,KAAM6wR,EAAc,GAAK,kBAAoB,MAAO,CAAEjqR,UAAW,wCAA0C5G,KAEpJmxR,GAAqB,EAAGD,aAAYH,cACtC,MAAMQ,GAAS,IAAAtuR,QAAO,MAChBuuR,GAAmB,IAAA9rR,cAAak8B,IAClCA,EAAMx7B,OAAOijB,UAAU0hB,IAAI,gBAAgB,GAC5C,IACH,OAAO,kBAAoB,MAAO,CAAEhkC,IAAKwqR,EAAQ/nR,IAAK0nR,EAAYxmO,IAAKqmO,EAASphO,QAAS6hO,GAAmB,EE3CnGC,GAA+B,EAAGjB,aAAY1E,eAAc4F,yBAAwB7kE,UAAS8kE,qBAAoBC,oBAC1H,MAAMC,EAA2BrB,EAAW1+P,MAAM,MAAM,GAClDggQ,EAAyBtB,IAAeqB,EAE9C,IAD+B/xR,OAAO+wD,OAAO6gO,GAAwB7lR,MAAKkmR,GAAiBA,EAAc7vQ,SAAS2vQ,KAE9G,OAAOD,EAEX,MAAMI,EAAsBL,GAAoB9lR,MAAKomR,GAAqBA,EAAkBC,SAAShwQ,SAAS2qM,MAAWslE,aACzH,OAAIL,GACKE,GACMN,EAAuB5F,GAAc5pQ,SAASsuQ,GAMxDwB,EAIMN,EAAuB5F,GAAc5pQ,SAAS2vQ,IAA6BrB,IAAeqB,EAA2BG,EAHrHN,EAAuB5F,GAAc5pQ,SAASsuQ,EAIzD,EAES4B,GAA8B,CAACC,EAAaxlE,EAASi/D,EAAc4F,KAC5E,GAA2B,YAAvBW,EAAYjsR,QAGZisR,EAAYC,oBAAoBpwQ,SAAS2qM,GAAU,CACnD,MAAM0lE,EAAyBzyR,OAAO+wD,OAAO6gO,EAAuB5F,IAAe,GACnF,GAAIyG,EACA,MAAO,GAAGA,MAA2B1lE,EAAQ/6L,MAAM,KAAK,GAAGsqB,eAEnE,CACM,EAEGo2O,GAAiC,CAACH,EAAaI,EAA8BC,KACtF,GAA2B,oBAAvBL,EAAYjsR,OACZ,OAEJ,MAAMusR,EAAsBC,GAA8BH,EAA8BC,GACxF,OAAIC,GACIA,EAAoBlyQ,MAAKzgB,GAASqyR,EAAYQ,4BAA4B3wQ,SAASliB,KAC5EqyR,EAAYS,sBAF3B,CAKM,EAEGC,GAA+B,EAAGjH,eAAc4G,4BAA2BD,+BAA8Bf,yBAAwB7kE,UAAS8kE,yBACnJ,MAAMqB,EAA8BrB,GAAoB9lR,MAAKomR,GAAqBA,EAAkBC,SAAShwQ,SAAS2qM,IAAYolE,EAAkBI,eAAcA,YAClK,GAAKW,EAAL,CAGA,GAA2C,YAAvCA,EAA4B5sR,OAAsB,CAClD,MAAM6sR,EAA2Bb,GAA4BY,EAA6BnmE,EAASi/D,EAAc4F,GACjH,GAAIuB,EACA,OAAOA,CAEf,CACA,GAA2C,oBAAvCD,EAA4B5sR,OAA8B,CAC1D,MAAM8sR,EAA8BV,GAA+BQ,EAA6BP,EAA8BC,GAC9H,GAAIQ,EACA,OAAOA,CAEf,CAZA,CAaM,EAEGC,GAAuB,EAAGC,eAActH,eAAc4G,4BAA2BD,+BAA8Bf,yBAAwB7kE,UAAS8kE,wBAAyByB,EAAa7gR,KAAI48Q,IACnM,MAAMkE,EAAmB5B,GAA6B,CAAEjB,WAAYrB,EAAWM,eAAgB3D,eAAc4G,4BAA2BhB,yBAAwB7kE,UAAS8kE,qBAAoBC,eAAe,IACtM0B,EAAoBD,GAAoBN,GAA6B,CAAEjH,eAAc4G,4BAA2BD,+BAA8Bf,yBAAwB7kE,UAAS8kE,6BAAyBlkR,EAC9M,MAAO,IACA0hR,EACHkE,mBACAC,oBACH,IAUQC,GAAuB,CAAC1mE,EAAS2mE,IAAeA,EAAW3nR,MAAK4nR,GAAiBA,EAAcvB,SAAS3/Q,KAAImhR,GAAeA,EAAYhsP,gBAAexlB,SAAS2qM,EAAQnlL,iBACvKisP,GAA+B,EAAGC,sBAAqBC,0BAA0BJ,KAC1F,MAAMK,EAHoB,GAAGF,sBAAqBC,6BAA8BA,GAA0BD,GAAqBlsP,cAGpGqsP,CAAsB,CAAEH,sBAAqBC,2BAClEG,EAA4BP,GAAiB3zR,OAAOolC,QAAQuuP,EAAcQ,yBAAyBpoR,MAAK,EAAEqoR,KAA+BA,EAAyBxsP,gBAAkBosP,MAAsB,GAIhN,OAHKE,GACD1oR,QAAQ6oR,KAAK,gEAAgEN,gBAAqCD,MAE/GI,CAAyB,EAEvBI,GAAkB,CAACvnE,EAAS+mE,EAAqBC,EAAwBQ,EAAuBC,KAEzG,MAAMC,EAnByB,GAAGX,sBAAqBC,0BAA0B7mP,IACpEA,EAAKtgC,QAAQy5B,GAASA,EAAKkqP,iBAAiB3oP,gBACrDmsP,GAAwBnsP,eACxBvB,EAAKkqP,iBAAiB3oP,gBAAkBksP,EAAoBlsP,gBAgB1C8sP,CAA2B,CAAEZ,sBAAqBC,0BAA0B,IADzDS,IAGzC,OADoBD,GAAuBD,kBAAkBG,EAAeV,EAAwBD,IAAwBW,CAC1G,EAETE,GAAsBJ,GAA0BA,GAAuBI,wBAA0B,CAAC,EAClGC,GAA0BL,GAA0BA,GAAuBK,4BAA8B,CAAC,EAC1GC,GAA2BN,GAA0BA,GAAuBM,6BAA+B,CAAC,EAC5GC,GAAqBnB,GAAkBA,EAAcoB,eACrDC,GAA4B,CAACrB,EAAeY,IAA0BA,GAAuB3C,wBAA0B+B,EAAc/B,uBACrIqD,GAA0B,CAACtB,EAAeY,IAA0BA,GAAuBjF,sBAAwBqE,GAAerE,sBAAwB,GAC1J4F,GAAkC,CAAChO,EAAciO,EAAiBJ,KAC3E,IAAKA,EACD,OAAO,EAEX,MAAMK,EAAsBlO,EAAal1P,MAAM,KACzCqjQ,EAAgBr1R,OAAOolC,QAAQ2vP,IAAiBhpR,MAAK,EAAE,CAAEupR,KAAiBA,EAAY1tP,gBAAkButP,EAAgBjiD,wBAAuB,GACrJ,OAAOkiD,EAAoBhzQ,SAASvU,OAAOwnR,GAAe,EAEjDE,GAAsB5B,GAAkBA,EAAc6B,YAAc,CAAC,EACrEC,GAAmB,CAAC9B,EAAe+B,EAAcC,KAC1D,IAAKhC,EACD,OAEJ,MAAMiC,EAAaL,GAAmB5B,KAAiB+B,GACvD,OAAOC,EAAgB5pR,MAAKs6B,GAAQA,EAAK6vG,QAAU0/I,GAAW,EAErDj9N,GAAoBrI,GACnBA,EAAOjU,OAAO,GAAGC,cAAgBgU,EAAO5gD,MAAM,GAG/CmmR,GAAsBvlO,GACrBA,EAAOjU,OAAO,GAAGzU,cAAgB0oB,EAAO5gD,MAAM,GAG/ComR,GAAuBC,GAAeF,GAAmBE,EAAWh4Q,QAAQ,YAAa,KACzFi4Q,GAA8B,CAACluI,EAASmgI,IAAwBjoR,OAAOolC,QAAQ0iH,GAASz3H,QAAO,CAAC4lQ,EAAmBC,KAC5H,MAAOH,EAAYI,GAAgBD,EAC7BE,EAAiBD,GAAcC,eAC/BC,EAAmBD,GAAkBnO,IAAsBmO,IAAiB/rQ,OAAU0rQ,EACtFO,EAAqBF,GAAkBnO,IAAsBmO,IAAiBlyR,SAAYiyR,GAAcjyR,QAC9G,MAAO,IACA+xR,EACH,CAACF,GAAa,CACV1rQ,MAAOgsQ,EACPnyR,QAASoyR,GAEf,GACH,CAAC,GACSC,GAAkB,CAACxpE,EAASwjE,EAAiBiG,EAAwBC,KAC3DD,EAAuBzqR,MAAK2qR,GAAoBA,EAAiBtE,SAAShwQ,SAAS2qM,MAAW4pE,yBAAyBpG,IAAoB,IAC5I99Q,KAAKmkR,GAAcH,EAAsBG,KAElDC,GAAyB,CAAC36C,EAAa46C,IAA6BA,EAAyB/qR,MAAKmqI,GAAsC,OAA7BA,EAAMlqI,KAAK47B,iBAAyBwqP,SAAShwQ,SAAS85N,GACjK42C,GAAgC,CAACH,EAA8BoE,KACxE,MAAMC,EAA6Bh3R,OAAOolC,QAAQutP,GAA8B5mR,MAAK,EAAE,CAAEkrR,KAAqBA,EAAgB70Q,SAAS20Q,KACvI,GAAKC,EAGL,OAAOA,EAA2B,EAAE,EAE3BE,GAAyB,CAACC,EAAmBxE,EAA8B5lE,EAAS6lE,KAC7F,MAAMwE,EAAYD,EAAkBpqE,GACpC,IAAKqqE,EACD,OAEJ,MAAMC,EAAiBvE,GAA8BH,EAA8BC,GACnF,IAAKyE,EACD,OAEJ,MAAMC,EAAc,CAAC,EAYrB,OAXAF,EAAUhxR,SAAQwqF,IACTymM,EAAej1Q,SAASwuE,EAAMmmM,kBAGnCnmM,EAAM2mM,gBAAgBnxR,SAAQ22B,IAC1Bu6P,EAAYv6P,GAAQ,CAChBm9I,aAActpF,EAAMspF,aACpBhhD,SAAUtoC,EAAMsoC,SACnB,GACH,IAECo+J,CAAW,EAETE,GAAiB,CAACtqP,EAAMiqP,EAAmBxE,EAA8B5lE,EAAS6lE,KAC3F,MAAM0E,EAAcJ,GAAuBC,EAAmBxE,EAA8B5lE,EAAS6lE,GACrG,OAAK0E,EAGe,IAAIpqP,GAAMz6B,KAAIglR,IAC9B,MAAMC,EAAgBD,EAASv3B,YAAco3B,EAAYG,EAASv3B,YAClE,OAAIw3B,EACO,IACAD,EACH,CAACC,EAAcx9G,cAAew9G,EAAcx+J,UAG7Cu+J,CAAQ,IAVRvqP,CAYO,EAETyqP,GAAwB7vI,IACjC,MAAM8vI,EAAgB53R,OAAOolC,QAAQ0iH,GAC/B+vI,EAA0B,GAC1BC,EAAuB,GAC7B,IAAIC,GAAuB,EAC3B,MAAMC,EAAgB,CAACC,EAAWC,KAC9B,GAAkB,eAAdD,EACAF,GAAwBG,MAEvB,CACD,MAAMC,EAAgBzpR,MAAMC,QAAQupR,IAC9BC,GAAiBD,GAAkBC,GAAiBD,EAAav3R,OACnEk3R,EAAwB1sR,KAAK8sR,GAG7BH,EAAqB3sR,KAAK8sR,EAElC,GAEJ,IAAK,IAAI13R,EAAI,EAAGA,EAAIq3R,EAAcj3R,OAAQJ,IAAK,CAC3C,MAAO03R,EAAWC,GAAgBN,EAAcr3R,GAChDy3R,EAAcC,EAAWC,EAC7B,CACA,MAAO,CACHE,mBAAuD,IAAnCP,EAAwBl3R,QAAgBo3R,EAC5D3L,oBAAwD,IAAnCyL,EAAwBl3R,OAC7C03R,cAAeN,EACfO,UAAWR,EACXS,aAAcV,EACjB,EC/NCW,GAAyB,CAACC,EAASC,KACrC,MAAMC,EAAsB7qR,OAAO2qR,EAAQG,gBACrCC,EAAuB/qR,OAAO4qR,EAAQE,gBAC5C,OAAID,EAAsBE,GACd,EAERF,EAAsBE,EACf,EAEJ,CAAC,EAECC,GAAqBC,GAAY,IAAIA,GAAS/oQ,KAAKwoQ,IACnDxI,GAA2BU,GAAeA,EAAWr0O,OAAO,GAAGzU,cAAgB8oP,EAAWhhR,MAAM,GAChGkhR,GAA0B,CAACoI,EAAStI,IAAe1wR,OAAOiM,KAAK+sR,GAASvmR,KAAIxF,GAAOA,EAAI26B,gBAAexlB,SAASsuQ,EAAW9oP,eAC1HkpP,GAA2B5wR,IAAqB,IAAXA,EACrC+4R,GAA8BC,IAAwD,IAArCA,EAAeC,mBACjC,IAArCD,EAAeE,kBACqB,KAApCF,EAAeG,kBACoB,KAAnCH,EAAeI,gBAChBC,GAA8B,CAAClzP,EAAMg/O,KAAiBA,GACtDh/O,EAAK65N,YAAYt4N,cAAcxlB,SAASijQ,EAAaz9O,eAE9C4xP,GAAiC,CAACnzP,EAAMozP,KAAqBA,GAAuC,QAApBA,GACvFpzP,EAAKozP,kBAAoBA,EAElBC,GAAyB,CAACrzP,EAAMszP,KAAYA,GACnDtzP,EAAKszP,UAAYA,EAEVC,GAA0B,CAACvzP,EAAMwzP,KAAaA,GACrDxzP,EAAKwzP,WAAaA,EAEXC,GAAmB,CAAC5sP,EAAMm4O,IAAiBn4O,EAAKtgC,QAAQy5B,GAASkzP,GAA4BlzP,EAAMg/O,KACnG0U,GAA4B,CAACC,EAAOlO,KAC7C,IAAKA,EACD,OAAO,EAEX,MAAMmO,GAAmD,IAA5BD,EAAMZ,kBAA2BjyR,QAAQ6yR,EAAMZ,kBACtEc,GAA6D,IAAjCF,EAAMG,uBAAgChzR,QAAQ6yR,EAAMG,uBAOtF,OAAOhzR,QANsB,CACzBizR,KAAMH,EACNI,UAAWH,EACXI,UAAWL,IAAyBC,EACpCK,aAAcN,IAAyBC,GAEPpO,GAAalkP,eAAe,EAEvD4yP,GAAwB,EAAGnV,eAAcyG,cAAayE,kBAAiBkJ,kBAAiB7N,oBAAmB+N,UAASE,WAAU9sE,WAAW7/K,KAClJ,MAAMutP,EAA4B,CAC9B9wB,MAAQz8N,GAASA,GAAMtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoBA,GACzD0I,GAA2B5yP,IAC3BmzP,GAA+BnzP,EAAMozP,IACrCC,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KACrCz3N,QAAUl1B,GAASA,EAAKtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoBA,GAC1D0I,GAA2B5yP,IAC3BqzP,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KACrCjwB,YAAc18N,GAASA,EAAKtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoB3E,GAC9DqN,GAA2B5yP,IAC3BqzP,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KACQ,WAArCjO,GAAmBhkP,eAA6BmyP,GAA0B1zP,EAAMylP,MACxF/6M,OAAS7jC,GAASA,EAAKtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoBA,GACzD0I,GAA2B5yP,IAC3BqzP,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,MAEnCa,EAA+B,CACjC/wB,MAAQz8N,GAASA,EAAKtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoBA,GACxDiJ,GAA+BnzP,EAAMozP,IACrCC,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KACrCjwB,YAAc18N,GAASA,EAAKtgC,QAAOy5B,GAASA,EAAKkqP,kBAAoB3E,GAC9D8N,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KACQ,WAArCjO,GAAmBhkP,eAA6BmyP,GAA0B1zP,EAAMylP,OAKtF6O,EAAmBpK,GAAiB3oP,eAAiB,GACrDgzP,EAAgB9O,GAAalkP,cAC7BizP,EAA0C,SAAlBD,EAA2BH,EAA4BC,EAE/EI,EADoB,IAAI50R,IAAIlG,OAAOolC,QAAQy1P,IACLx0R,IAAIs0R,GAChD,MARkC,CAACztP,GAASA,EAAKtgC,QAAQy5B,GAASkzP,GAA4BlzP,EAAMg/O,IAC7FqU,GAAuBrzP,EAAMszP,IAC7BC,GAAwBvzP,EAAMwzP,KAO1BkB,CADsB,mBAAtBD,EAC0BA,EAAkB5tP,GAEtBA,EAAK,EAE7B0iP,GAA0B,CAACc,EAAYnB,KAChD,MAAMQ,EAAuBC,GAAwBU,GAC/CsK,EAAuBzL,IAAsBQ,GACnD,OAAOiL,GAAwBtK,CAAU,EAEhCT,GAA0B,CAACF,EAAsBV,EAAY2J,KACtE,MAAMiC,EAAmB5L,EAAWmE,mBAAqBwF,EAAQhJ,GAAwBX,EAAWmE,oBACpG,YAAgC,IAArByH,GAAyD,KAArBA,EACpCA,EAEJjC,EAAQjJ,EAAqB,EAE3ByB,GAAoB,CAACD,EAAgBb,EAAYwK,KACtC,KAAhBA,GAGJ1vR,QAAQ6+E,MAAM,sDAAsDknM,YAAyBb,WAAoBwK,IAAc,EC1GtHC,GAAgC,CAACpuE,EAAS2mE,IAAeA,EAAW3nR,MAAK4nR,GAAiBA,EAAcvB,SAAS3/Q,KAAImhR,GAAeA,EAAYhsP,gBAAexlB,SAAS2qM,EAAQnlL,iBAEhLwzP,GAAmC,CAACtH,EAAqBC,EAAwBJ,KAC1F,MAAMK,EAFoB,EAACF,EAAqBC,IAA2BA,GAAwBnsP,eAAiBksP,EAAoBlsP,cAE7G,CAAsBksP,EAAqBC,GAChEG,EAA4BP,GAAiB3zR,OAAOolC,QAAQuuP,EAAc0H,sBAAsBtvR,MAAK,EAAEqoR,KAA+BA,EAAyBxsP,gBAAkBosP,EAAmBpsP,kBAAiB,GAI3N,OAHKssP,GACD1oR,QAAQ6oR,KAAK,sEAAsEP,MAEhFI,CAAyB,EAEvBoH,GAAsB,EAAGruR,MAAKsuR,UAASC,UAASpL,gBAAeqL,0BACxE,IAAIC,EAOJ,GALIA,EADY,oBAAZH,EACU,GAAGC,KAAWpL,IAGdnjR,OAES,IAAZyuR,EACP,OAAOtL,EAEX,MAAMuL,EAAkBF,EAAoBC,EAAS,CAAEx7R,MAAOkwR,IAC9D,OAAOuL,IAAoBD,EAAUtL,EAAgBuL,CAAe,EAE3DC,GAAqB,EAAGvL,YAAWD,gBAAemE,wBAAuBkH,0BAClF,IAAKlH,EACD,OAAOnE,EAEX,MAAMyL,EAAwBtH,EAAsB3nR,QAAQkvR,GAAoBA,EAAgBzL,UAAUzoP,gBAAkByoP,EAAUzoP,gBACtI,OAAKi0P,EAAsBl7R,OAGHk7R,EAAsBxrQ,QAAO,CAAC0rQ,EAAYC,KAC9D,MAAMC,EAAeD,EAAQC,cAAgBF,EAC7C,OAAOA,EAAWh+Q,QAAQk+Q,EAAcX,GAAoB,CACxDruR,IAAK+uR,EAAQ5F,eACbmF,QAASS,EAAQE,mBACjBV,QAASQ,EAAQG,mBACjB/L,cAAe2L,EACfN,wBACD,GACJrL,GAXQA,CAYW,ECzCnB,MAAMgM,GACT,WAAAzsR,CAAY0sR,GACRx8R,KAAKktN,QAAUsvE,EAAYtvE,QAC3BltN,KAAK0wR,gBAAkB8L,EAAYvI,oBACnCj0R,KAAKy8R,mBAAqBD,EAAYtI,uBACtCl0R,KAAK8yR,6BAA+B0J,EAAY1J,6BAChD9yR,KAAK6zR,WAAa2I,EAAY3I,WAC9B7zR,KAAK8zR,cAAgB,GAA2B9zR,KAAKktN,QAASltN,KAAK6zR,YACnE7zR,KAAK+yR,0BAA4B/yR,KAAKy8R,oBAAsBz8R,KAAK0wR,iBAAmB,GAC/E1wR,KAAK8zR,eAIV9zR,KAAK00R,sBAAwB,GAAmC,CAC5DT,oBAAqBj0R,KAAK0wR,gBAC1BwD,uBAAwBl0R,KAAKy8R,oBAC9Bz8R,KAAK8zR,eACR9zR,KAAKioJ,QAAU,GAAyBjoJ,KAAK00R,uBAC7C10R,KAAKk1R,eAAiB,GAAwBl1R,KAAK8zR,eACnD9zR,KAAK+xR,uBAAyB,GAAgC/xR,KAAK8zR,cAAe9zR,KAAK00R,wBATnF/oR,QAAQ+S,KAAK,kDAUrB,CACA,QAAAg+Q,CAASC,GACLx8R,OAAOolC,QAAQo3P,GAAap2R,SAAQ,EAAE6G,EAAK/M,KAAWL,KAAKoN,GAAO/M,GACtE,CACA,eAAAo0R,CAAgBE,GACZ,OAAO,GAAsB30R,KAAKktN,QAASltN,KAAK0wR,gBAAiB1wR,KAAKy8R,mBAAoBz8R,KAAK00R,sBAAuBC,EAC1H,CACA,UAAAiI,GACI,OAAO58R,KAAKioJ,OAChB,CACA,sBAAA8sI,GACI,OAAO,GAA6B/0R,KAAK00R,sBAC7C,CACA,uBAAAM,GACI,OAAO,GAA8Bh1R,KAAK00R,sBAC9C,CACA,uBAAAU,GACI,OAAO,GAA8Bp1R,KAAK8zR,cAAe9zR,KAAK00R,sBAClE,CACA,gBAAAkB,CAAiBC,EAAcgH,GAC3B,OAAO,GAAuB78R,KAAK8zR,cAAe+B,EAAcgH,EACpE,CACA,+BAAAxH,CAAgChO,EAAciO,GAC1C,YAAmC,IAAxBt1R,KAAKk1R,gBAGT,GAAsC7N,EAAciO,EAAiBt1R,KAAKk1R,eACrF,CACA,4BAAApD,CAA6BjB,EAAY1E,EAAc8F,GAAgB,GACnE,YAA2C,IAAhCjyR,KAAK+xR,wBAGT,GAAmC,CACtClB,aACA1E,eACA4G,0BAA2B/yR,KAAK+yR,0BAChChB,uBAAwB/xR,KAAK+xR,uBAC7B7kE,QAASltN,KAAKktN,QACd8kE,mBAAoBhyR,KAAK8zR,eAAe9B,mBACxCC,iBAER,CACA,oBAAAuB,CAAqBC,EAActH,GAC/B,YAA2C,IAAhCnsR,KAAK+xR,uBACL0B,EAEJ,GAA2B,CAC9BA,eACAtH,eACA4G,0BAA2B/yR,KAAK+yR,0BAChCD,6BAA8B9yR,KAAK8yR,6BACnCf,uBAAwB/xR,KAAK+xR,uBAC7B7kE,QAASltN,KAAKktN,QACd8kE,mBAAoBhyR,KAAK8zR,eAAe9B,oBAEhD,CACA,4BAAAoB,CAA6BjH,GACzB,YAA2C,IAAhCnsR,KAAK+xR,wBAGT,GAAmC,CACtC5F,eACA4G,0BAA2B/yR,KAAK+yR,0BAChCD,6BAA8B9yR,KAAK8yR,6BACnCf,uBAAwB/xR,KAAK+xR,uBAC7B7kE,QAASltN,KAAKktN,QACd8kE,mBAAoBhyR,KAAK8zR,eAAe9B,oBAEhD,CACA,yBAAA8K,CAA0BC,GACtB,GAAK/8R,KAAKioJ,QAGV,OAAO,GAAkCjoJ,KAAKioJ,QAAS80I,EAC3D,CACA,sBAAA1F,CAAuBC,EAAmB0F,GACtC,OAAO,GAA6B1F,EAAmB0F,EAA4Bh9R,KAAKktN,QAASltN,KAAKy8R,oBAAsB,GAChI,CACA,cAAA9E,CAAetqP,EAAMiqP,GACjB,OAAO,GAAqBjqP,EAAMiqP,EAAmBt3R,KAAK8yR,6BAA8B9yR,KAAKktN,QAASltN,KAAK+yR,0BAC/G,ECrGJ,MAAMkK,GAAgB,CACpBloR,KAAM,SACN,GAAA4pD,CAAIx5B,GACFnlC,KAAK4nG,OAAO,MAAOziE,EACrB,EACA,IAAAzmB,CAAKymB,GACHnlC,KAAK4nG,OAAO,OAAQziE,EACtB,EACA,KAAAv5B,CAAMu5B,GACJnlC,KAAK4nG,OAAO,QAASziE,EACvB,EACA,MAAAyiE,CAAO7yF,EAAMowB,GACPx5B,SAAWA,QAAQoJ,IAAOpJ,QAAQoJ,GAAM7T,MAAMyK,QAASw5B,EAC7D,GAEF,MAAM+3P,GACJ,WAAAptR,CAAYqtR,GACV,IAAI94R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFb,KAAKwL,KAAK2xR,EAAgB94R,EAC5B,CACA,IAAAmH,CAAK2xR,GACH,IAAI94R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFb,KAAK8pI,OAASzlI,EAAQylI,QAAU,WAChC9pI,KAAKo9R,OAASD,GAAkBF,GAChCj9R,KAAKqE,QAAUA,EACfrE,KAAKwqF,MAAQnmF,EAAQmmF,KACvB,CACA,GAAA7rB,GACE,IAAK,IAAIz5B,EAAOrkC,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMq2B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQvkC,UAAUukC,GAEzB,OAAOplC,KAAKq9R,QAAQl4P,EAAM,MAAO,IAAI,EACvC,CACA,IAAAzmB,GACE,IAAK,IAAIsuQ,EAAQnsR,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMm+Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9nP,EAAK8nP,GAASpsR,UAAUosR,GAE1B,OAAOjtR,KAAKq9R,QAAQl4P,EAAM,OAAQ,IAAI,EACxC,CACA,KAAAv5B,GACE,IAAK,IAAI0xR,EAAQz8R,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMyuR,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFp4P,EAAKo4P,GAAS18R,UAAU08R,GAE1B,OAAOv9R,KAAKq9R,QAAQl4P,EAAM,QAAS,GACrC,CACA,SAAAq4P,GACE,IAAK,IAAIC,EAAQ58R,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAM4uR,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFv4P,EAAKu4P,GAAS78R,UAAU68R,GAE1B,OAAO19R,KAAKq9R,QAAQl4P,EAAM,OAAQ,wBAAwB,EAC5D,CACA,OAAAk4P,CAAQl4P,EAAMymH,EAAK9hB,EAAQ6zJ,GACzB,OAAIA,IAAc39R,KAAKwqF,MAAc,MACd,iBAAZrlD,EAAK,KAAiBA,EAAK,GAAK,GAAG2kG,IAAS9pI,KAAK8pI,UAAU3kG,EAAK,MACpEnlC,KAAKo9R,OAAOxxI,GAAKzmH,GAC1B,CACA,MAAAp6B,CAAO6yR,GACL,OAAO,IAAIV,GAAOl9R,KAAKo9R,OAAQ,CAE3BtzJ,OAAQ,GAAG9pI,KAAK8pI,UAAU8zJ,QAEzB59R,KAAKqE,SAEZ,CACA,KAAA2yE,CAAM3yE,GAGJ,OAFAA,EAAUA,GAAWrE,KAAKqE,SAClBylI,OAASzlI,EAAQylI,QAAU9pI,KAAK8pI,OACjC,IAAIozJ,GAAOl9R,KAAKo9R,OAAQ/4R,EACjC,EAEF,IAAIw5R,GAAa,IAAIX,GAErB,MAAMY,GACJ,WAAAhuR,GACE9P,KAAK2wF,UAAY,CAAC,CACpB,CACA,EAAAvoF,CAAGu6B,EAAQjwB,GAMT,OALAiwB,EAAOxQ,MAAM,KAAK5rB,SAAQ07B,IACnBjiC,KAAK2wF,UAAU1uD,KAAQjiC,KAAK2wF,UAAU1uD,GAAS,IAAI57B,KACxD,MAAM03R,EAAe/9R,KAAK2wF,UAAU1uD,GAAOz7B,IAAIkM,IAAa,EAC5D1S,KAAK2wF,UAAU1uD,GAAOr7B,IAAI8L,EAAUqrR,EAAe,EAAE,IAEhD/9R,IACT,CACA,GAAA8xF,CAAI7vD,EAAOvvB,GACJ1S,KAAK2wF,UAAU1uD,KACfvvB,EAIL1S,KAAK2wF,UAAU1uD,GAAOn7B,OAAO4L,UAHpB1S,KAAK2wF,UAAU1uD,GAI1B,CACA,IAAA69J,CAAK79J,GACH,IAAK,IAAIiD,EAAOrkC,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMq2B,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKvkC,UAAUukC,GAEzBplC,KAAK2wF,UAAU1uD,IACFpzB,MAAMkB,KAAK/P,KAAK2wF,UAAU1uD,GAAOsD,WACzCh/B,SAAQyN,IACb,IAAKtN,EAAUs3R,GAAiBhqR,EAChC,IAAK,IAAItT,EAAI,EAAGA,EAAIs9R,EAAet9R,IACjCgG,KAAYy+B,EACd,IAGAnlC,KAAK2wF,UAAU,MACF9hF,MAAMkB,KAAK/P,KAAK2wF,UAAU,KAAKprD,WACvCh/B,SAAQsO,IACb,IAAKnO,EAAUs3R,GAAiBnpR,EAChC,IAAK,IAAInU,EAAI,EAAGA,EAAIs9R,EAAet9R,IACjCgG,EAASxF,MAAMwF,EAAU,CAACu7B,KAAUkD,GACtC,GAGN,EAGF,SAAS84P,KACP,IAAIlwR,EACAmwR,EACJ,MAAM7jM,EAAU,IAAI/vF,SAAQ,CAAC6jC,EAAS+4C,KACpCn5E,EAAMogC,EACN+vP,EAAMh3M,CAAM,IAId,OAFAmT,EAAQlsD,QAAUpgC,EAClBssF,EAAQnT,OAASg3M,EACV7jM,CACT,CACA,SAAS8jM,GAAWvxR,GAClB,OAAc,MAAVA,EAAuB,GACpB,GAAKA,CACd,CAMA,MAAMwxR,GAA4B,OAClC,SAASC,GAAczxR,EAAQmnE,EAAMuqN,GACnC,SAASC,EAASnxR,GAChB,OAAOA,GAAOA,EAAIhM,QAAQ,QAAU,EAAIgM,EAAI8Q,QAAQkgR,GAA2B,KAAOhxR,CACxF,CACA,SAASoxR,IACP,OAAQ5xR,GAA4B,iBAAXA,CAC3B,CACA,MAAMooE,EAAwB,iBAATjB,EAAoBA,EAAOA,EAAK5hD,MAAM,KAC3D,IAAIssQ,EAAa,EACjB,KAAOA,EAAazpN,EAAMl0E,OAAS,GAAG,CACpC,GAAI09R,IAAwB,MAAO,CAAC,EACpC,MAAMpxR,EAAMmxR,EAASvpN,EAAMypN,KACtB7xR,EAAOQ,IAAQkxR,IAAO1xR,EAAOQ,GAAO,IAAIkxR,GAE3C1xR,EADEzM,OAAOY,UAAUC,eAAeC,KAAK2L,EAAQQ,GACtCR,EAAOQ,GAEP,CAAC,IAEVqxR,CACJ,CACA,OAAID,IAA+B,CAAC,EAC7B,CACLhxR,IAAKZ,EACLvH,EAAGk5R,EAASvpN,EAAMypN,IAEtB,CACA,SAASx2K,GAAQr7G,EAAQmnE,EAAMslD,GAC7B,MAAM,IACJ7rH,EAAG,EACHnI,GACEg5R,GAAczxR,EAAQmnE,EAAM5zE,QAChC,QAAY2N,IAARN,GAAqC,IAAhBumE,EAAKjzE,OAE5B,YADA0M,EAAInI,GAAKg0H,GAGX,IAAI/4H,EAAIyzE,EAAKA,EAAKjzE,OAAS,GACvB6C,EAAIowE,EAAKlkE,MAAM,EAAGkkE,EAAKjzE,OAAS,GAChC+3G,EAAOwlL,GAAczxR,EAAQjJ,EAAGxD,QACpC,UAAoB2N,IAAb+qG,EAAKrrG,KAAqB7J,EAAE7C,QACjCR,EAAI,GAAGqD,EAAEA,EAAE7C,OAAS,MAAMR,IAC1BqD,EAAIA,EAAEkM,MAAM,EAAGlM,EAAE7C,OAAS,GAC1B+3G,EAAOwlL,GAAczxR,EAAQjJ,EAAGxD,QAC5B04G,GAAQA,EAAKrrG,UAA6C,IAA/BqrG,EAAKrrG,IAAI,GAAGqrG,EAAKxzG,KAAK/E,OACnDu4G,EAAKrrG,SAAMM,GAGf+qG,EAAKrrG,IAAI,GAAGqrG,EAAKxzG,KAAK/E,KAAO+4H,CAC/B,CAUA,SAASnK,GAAQtiH,EAAQmnE,GACvB,MAAM,IACJvmE,EAAG,EACHnI,GACEg5R,GAAczxR,EAAQmnE,GAC1B,GAAKvmE,EACL,OAAOA,EAAInI,EACb,CAQA,SAASq5R,GAAWj4R,EAAQ0G,EAAQwxR,GAClC,IAAK,MAAM74M,KAAQ34E,EACJ,cAAT24E,GAAiC,gBAATA,IACtBA,KAAQr/E,EACkB,iBAAjBA,EAAOq/E,IAAsBr/E,EAAOq/E,aAAiB93E,QAAkC,iBAAjBb,EAAO24E,IAAsB34E,EAAO24E,aAAiB93E,OAChI2wR,IAAWl4R,EAAOq/E,GAAQ34E,EAAO24E,IAErC44M,GAAWj4R,EAAOq/E,GAAO34E,EAAO24E,GAAO64M,GAGzCl4R,EAAOq/E,GAAQ34E,EAAO24E,IAI5B,OAAOr/E,CACT,CACA,SAASm4R,GAAYv5M,GACnB,OAAOA,EAAInnE,QAAQ,sCAAuC,OAC5D,CACA,IAAI2gR,GAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,SAAS,GAAOxxP,GACd,MAAoB,iBAATA,EACFA,EAAKnvB,QAAQ,cAAc3c,GAAKs9R,GAAWt9R,KAE7C8rC,CACT,CAqBA,MAAM+tD,GAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAC7B0jM,GAAiC,IArBvC,MACE,WAAAhvR,CAAYivR,GACV/+R,KAAK++R,SAAWA,EAChB/+R,KAAKg/R,UAAY,IAAI34R,IACrBrG,KAAKi/R,YAAc,EACrB,CACA,SAAAC,CAAU58L,GACR,MAAM68L,EAAkBn/R,KAAKg/R,UAAUx4R,IAAI87F,GAC3C,QAAwBx0F,IAApBqxR,EACF,OAAOA,EAET,MAAMC,EAAY,IAAIzhP,OAAO2kD,GAM7B,OALItiG,KAAKi/R,YAAYn+R,SAAWd,KAAK++R,UACnC/+R,KAAKg/R,UAAUl4R,OAAO9G,KAAKi/R,YAAY37P,SAEzCtjC,KAAKg/R,UAAUp4R,IAAI07F,EAAS88L,GAC5Bp/R,KAAKi/R,YAAY3zR,KAAKg3F,GACf88L,CACT,GAGqD,IAgBvD,SAASC,GAAS7xR,EAAKumE,GACrB,IAAIurN,EAAez+R,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,IACvF,IAAK2M,EAAK,OACV,GAAIA,EAAIumE,GAAO,OAAOvmE,EAAIumE,GAC1B,MAAMmiC,EAASniC,EAAK5hD,MAAMmtQ,GAC1B,IAAI57R,EAAU8J,EACd,IAAK,IAAI9M,EAAI,EAAGA,EAAIw1G,EAAOp1G,QAAS,CAClC,IAAK4C,GAA8B,iBAAZA,EACrB,OAEF,IAAI6G,EACAg1R,EAAW,GACf,IAAK,IAAI/5R,EAAI9E,EAAG8E,EAAI0wG,EAAOp1G,SAAU0E,EAMnC,GALIA,IAAM9E,IACR6+R,GAAYD,GAEdC,GAAYrpL,EAAO1wG,GACnB+E,EAAO7G,EAAQ67R,QACFzxR,IAATvD,EAAoB,CACtB,GAAI,CAAC,SAAU,SAAU,WAAWnJ,eAAemJ,IAAS,GAAK/E,EAAI0wG,EAAOp1G,OAAS,EACnF,SAEFJ,GAAK8E,EAAI9E,EAAI,EACb,KACF,CAEFgD,EAAU6G,CACZ,CACA,OAAO7G,CACT,CACA,SAAS87R,GAAetiQ,GACtB,OAAIA,GAAQA,EAAK97B,QAAQ,KAAO,EAAU87B,EAAKhf,QAAQ,IAAK,KACrDgf,CACT,CAEA,MAAMuiQ,WAAsB3B,GAC1B,WAAAhuR,CAAYu9B,GACV,IAAIhpC,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChF81L,GAAI,CAAC,eACL+oG,UAAW,eAEb9lN,QACA55E,KAAKqtC,KAAOA,GAAQ,CAAC,EACrBrtC,KAAKqE,QAAUA,OACmByJ,IAA9B9N,KAAKqE,QAAQi7R,eACft/R,KAAKqE,QAAQi7R,aAAe,UAEWxxR,IAArC9N,KAAKqE,QAAQs7R,sBACf3/R,KAAKqE,QAAQs7R,qBAAsB,EAEvC,CACA,aAAAC,CAAcjpG,GACR32L,KAAKqE,QAAQsyL,GAAGv1L,QAAQu1L,GAAM,GAChC32L,KAAKqE,QAAQsyL,GAAGrrL,KAAKqrL,EAEzB,CACA,gBAAAkpG,CAAiBlpG,GACf,MAAM5oJ,EAAQ/tC,KAAKqE,QAAQsyL,GAAGv1L,QAAQu1L,GAClC5oJ,GAAS,GACX/tC,KAAKqE,QAAQsyL,GAAGhkI,OAAO5kB,EAAO,EAElC,CACA,WAAA+xP,CAAYvS,EAAK52F,EAAIvpL,GACnB,IAAI/I,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMy+R,OAAwCxxR,IAAzBzJ,EAAQi7R,aAA6Bj7R,EAAQi7R,aAAet/R,KAAKqE,QAAQi7R,aACxFK,OAAsD7xR,IAAhCzJ,EAAQs7R,oBAAoCt7R,EAAQs7R,oBAAsB3/R,KAAKqE,QAAQs7R,oBACnH,IAAI5rN,EACAw5M,EAAInsR,QAAQ,MAAQ,EACtB2yE,EAAOw5M,EAAIp7P,MAAM,MAEjB4hD,EAAO,CAACw5M,EAAK52F,GACTvpL,IACEyB,MAAMC,QAAQ1B,GAChB2mE,EAAKzoE,QAAQ8B,GACW,iBAARA,GAAoBkyR,EACpCvrN,EAAKzoE,QAAQ8B,EAAI+kB,MAAMmtQ,IAEvBvrN,EAAKzoE,KAAK8B,KAIhB,MAAM89B,EAASgkF,GAAQlvH,KAAKqtC,KAAM0mC,GAMlC,OALK7oC,IAAWyrJ,IAAOvpL,GAAOmgR,EAAInsR,QAAQ,MAAQ,IAChDmsR,EAAMx5M,EAAK,GACX4iH,EAAK5iH,EAAK,GACV3mE,EAAM2mE,EAAKlkE,MAAM,GAAGmZ,KAAK,MAEvBkiB,IAAWy0P,GAAsC,iBAARvyR,EAAyB89B,EAC/Dm0P,GAASr/R,KAAKqtC,MAAQrtC,KAAKqtC,KAAKkgP,IAAQvtR,KAAKqtC,KAAKkgP,GAAK52F,GAAKvpL,EAAKkyR,EAC1E,CACA,WAAAS,CAAYxS,EAAK52F,EAAIvpL,EAAK/M,GACxB,IAAIgE,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChFm/R,QAAQ,GAEV,MAAMV,OAAwCxxR,IAAzBzJ,EAAQi7R,aAA6Bj7R,EAAQi7R,aAAet/R,KAAKqE,QAAQi7R,aAC9F,IAAIvrN,EAAO,CAACw5M,EAAK52F,GACbvpL,IAAK2mE,EAAOA,EAAKlyE,OAAOy9R,EAAelyR,EAAI+kB,MAAMmtQ,GAAgBlyR,IACjEmgR,EAAInsR,QAAQ,MAAQ,IACtB2yE,EAAOw5M,EAAIp7P,MAAM,KACjB9xB,EAAQs2L,EACRA,EAAK5iH,EAAK,IAEZ/zE,KAAK4/R,cAAcjpG,GACnB1uE,GAAQjoH,KAAKqtC,KAAM0mC,EAAM1zE,GACpBgE,EAAQ27R,QAAQhgS,KAAK8/L,KAAK,QAASytF,EAAK52F,EAAIvpL,EAAK/M,EACxD,CACA,YAAA4/R,CAAa1S,EAAK52F,EAAI6zE,GACpB,IAAInmQ,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChFm/R,QAAQ,GAEV,IAAK,MAAMr7R,KAAK6lQ,EACc,iBAAjBA,EAAU7lQ,IAAqE,mBAAlDxE,OAAOY,UAAU6O,SAAS1O,MAAMspQ,EAAU7lQ,KAA0B3E,KAAK+/R,YAAYxS,EAAK52F,EAAIhyL,EAAG6lQ,EAAU7lQ,GAAI,CACrJq7R,QAAQ,IAGP37R,EAAQ27R,QAAQhgS,KAAK8/L,KAAK,QAASytF,EAAK52F,EAAI6zE,EACnD,CACA,iBAAA01B,CAAkB3S,EAAK52F,EAAI6zE,EAAW21B,EAAMxB,GAC1C,IAAIt6R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChFm/R,QAAQ,EACRI,UAAU,GAERrsN,EAAO,CAACw5M,EAAK52F,GACb42F,EAAInsR,QAAQ,MAAQ,IACtB2yE,EAAOw5M,EAAIp7P,MAAM,KACjBguQ,EAAO31B,EACPA,EAAY7zE,EACZA,EAAK5iH,EAAK,IAEZ/zE,KAAK4/R,cAAcjpG,GACnB,IAAI0pG,EAAOnxK,GAAQlvH,KAAKqtC,KAAM0mC,IAAS,CAAC,EACnC1vE,EAAQ+7R,WAAU51B,EAAYxoL,KAAKC,MAAMD,KAAK8hC,UAAU0mJ,KACzD21B,EACFzB,GAAW2B,EAAM71B,EAAWm0B,GAE5B0B,EAAO,IACFA,KACA71B,GAGPviJ,GAAQjoH,KAAKqtC,KAAM0mC,EAAMssN,GACpBh8R,EAAQ27R,QAAQhgS,KAAK8/L,KAAK,QAASytF,EAAK52F,EAAI6zE,EACnD,CACA,oBAAA81B,CAAqB/S,EAAK52F,GACpB32L,KAAKugS,kBAAkBhT,EAAK52F,WACvB32L,KAAKqtC,KAAKkgP,GAAK52F,GAExB32L,KAAK6/R,iBAAiBlpG,GACtB32L,KAAK8/L,KAAK,UAAWytF,EAAK52F,EAC5B,CACA,iBAAA4pG,CAAkBhT,EAAK52F,GACrB,YAAqC7oL,IAA9B9N,KAAK8/R,YAAYvS,EAAK52F,EAC/B,CACA,iBAAA6pG,CAAkBjT,EAAK52F,GAErB,OADKA,IAAIA,EAAK32L,KAAKqE,QAAQq7R,WACW,OAAlC1/R,KAAKqE,QAAQo8R,iBAAkC,IAE9CzgS,KAAK8/R,YAAYvS,EAAK52F,IAEpB32L,KAAK8/R,YAAYvS,EAAK52F,EAC/B,CACA,iBAAA+pG,CAAkBnT,GAChB,OAAOvtR,KAAKqtC,KAAKkgP,EACnB,CACA,2BAAAoT,CAA4BpT,GAC1B,MAAMlgP,EAAOrtC,KAAK0gS,kBAAkBnT,GAEpC,SADUlgP,GAAQltC,OAAOiM,KAAKihC,IAAS,IAC5BnhC,MAAKnJ,GAAKsqC,EAAKtqC,IAAM5C,OAAOiM,KAAKihC,EAAKtqC,IAAIjC,OAAS,GAChE,CACA,MAAA+oL,GACE,OAAO7pL,KAAKqtC,IACd,EAGF,IAAIuzP,GAAgB,CAClBC,WAAY,CAAC,EACb,gBAAAC,CAAiBlhS,GACfI,KAAK6gS,WAAWjhS,EAAOuM,MAAQvM,CACjC,EACA,MAAAs9M,CAAO2jF,EAAYxgS,EAAO+M,EAAK/I,EAAS08R,GAItC,OAHAF,EAAWt6R,SAAQy6R,IACbhhS,KAAK6gS,WAAWG,KAAY3gS,EAAQL,KAAK6gS,WAAWG,GAAW3xM,QAAQhvF,EAAO+M,EAAK/I,EAAS08R,GAAW,IAEtG1gS,CACT,GAGF,MAAM4gS,GAAmB,CAAC,EAC1B,MAAMC,WAAmBpD,GACvB,WAAAhuR,CAAYqxR,GACV,IAAI98R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAlVvF,IAAiBU,EAAGhB,EAmVhBq5E,QAnVar4E,EAoVyG4/R,EApVtG5gS,EAoVgHP,KAA3H,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SAnV5GuG,SAAQ5B,IACJpD,EAAEoD,KAAIpE,EAAEoE,GAAKpD,EAAEoD,GAAE,IAmVrB3E,KAAKqE,QAAUA,OACmByJ,IAA9B9N,KAAKqE,QAAQi7R,eACft/R,KAAKqE,QAAQi7R,aAAe,KAE9Bt/R,KAAKo9R,OAASS,GAAW9yR,OAAO,aAClC,CACA,cAAAq2R,CAAe7T,GACTA,IAAKvtR,KAAKguD,SAAWu/N,EAC3B,CACA,MAAA8T,CAAOj0R,GACL,IAAI/I,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChFygS,cAAe,CAAC,GAElB,GAAIl0R,QACF,OAAO,EAET,MAAMm0R,EAAWvhS,KAAKmuC,QAAQ/gC,EAAK/I,GACnC,OAAOk9R,QAA6BzzR,IAAjByzR,EAASxzR,GAC9B,CACA,cAAAyzR,CAAep0R,EAAK/I,GAClB,IAAIo9R,OAAsC3zR,IAAxBzJ,EAAQo9R,YAA4Bp9R,EAAQo9R,YAAczhS,KAAKqE,QAAQo9R,iBACrE3zR,IAAhB2zR,IAA2BA,EAAc,KAC7C,MAAMnC,OAAwCxxR,IAAzBzJ,EAAQi7R,aAA6Bj7R,EAAQi7R,aAAet/R,KAAKqE,QAAQi7R,aAC9F,IAAI3Q,EAAatqR,EAAQsyL,IAAM32L,KAAKqE,QAAQq7R,WAAa,GACzD,MAAMgC,EAAuBD,GAAer0R,EAAIhM,QAAQqgS,IAAgB,EAClEE,IAAwB3hS,KAAKqE,QAAQu9R,yBAA4Bv9R,EAAQi7R,cAAiBt/R,KAAKqE,QAAQw9R,wBAA2Bx9R,EAAQo9R,aAzOpJ,SAA6Br0R,EAAKq0R,EAAanC,GAC7CmC,EAAcA,GAAe,GAC7BnC,EAAeA,GAAgB,GAC/B,MAAMwC,EAAgB1mM,GAAMruF,QAAOvL,GAAKigS,EAAYrgS,QAAQI,GAAK,GAAK89R,EAAal+R,QAAQI,GAAK,IAChG,GAA6B,IAAzBsgS,EAAchhS,OAAc,OAAO,EACvC,MAAMH,EAAIm+R,GAA+BI,UAAU,IAAI4C,EAAclvR,KAAIpR,GAAW,MAANA,EAAY,MAAQA,IAAGwnB,KAAK,SAC1G,IAAImnB,GAAWxvC,EAAEqP,KAAK5C,GACtB,IAAK+iC,EAAS,CACZ,MAAM4xP,EAAK30R,EAAIhM,QAAQk+R,GACnByC,EAAK,IAAMphS,EAAEqP,KAAK5C,EAAIuuE,UAAU,EAAGomN,MACrC5xP,GAAU,EAEd,CACA,OAAOA,CACT,CA2NoK6xP,CAAoB50R,EAAKq0R,EAAanC,IACtM,GAAIoC,IAAyBC,EAAsB,CACjD,MAAMh9R,EAAIyI,EAAI4Q,MAAMhe,KAAKiiS,aAAaC,eACtC,GAAIv9R,GAAKA,EAAE7D,OAAS,EAClB,MAAO,CACLsM,MACAuhR,cAGJ,MAAM3xO,EAAQ5vC,EAAI+kB,MAAMsvQ,IACpBA,IAAgBnC,GAAgBmC,IAAgBnC,GAAgBt/R,KAAKqE,QAAQsyL,GAAGv1L,QAAQ47C,EAAM,KAAO,KAAG2xO,EAAa3xO,EAAM1Z,SAC/Hl2B,EAAM4vC,EAAMh0B,KAAKs2Q,EACnB,CAEA,MAD0B,iBAAf3Q,IAAyBA,EAAa,CAACA,IAC3C,CACLvhR,MACAuhR,aAEJ,CACA,SAAA7jN,CAAU1+D,EAAM/H,EAAS89R,GAQvB,GAPuB,iBAAZ99R,GAAwBrE,KAAKqE,QAAQ+9R,mCAC9C/9R,EAAUrE,KAAKqE,QAAQ+9R,iCAAiCvhS,YAEnC,iBAAZwD,IAAsBA,EAAU,IACtCA,IAEAA,IAASA,EAAU,CAAC,GACrB+H,QAAqC,MAAO,GAC3CyC,MAAMC,QAAQ1C,KAAOA,EAAO,CAAC4B,OAAO5B,KACzC,MAAMi2R,OAA0Cv0R,IAA1BzJ,EAAQg+R,cAA8Bh+R,EAAQg+R,cAAgBriS,KAAKqE,QAAQg+R,cAC3F/C,OAAwCxxR,IAAzBzJ,EAAQi7R,aAA6Bj7R,EAAQi7R,aAAet/R,KAAKqE,QAAQi7R,cACxF,IACJlyR,EAAG,WACHuhR,GACE3uR,KAAKwhS,eAAep1R,EAAKA,EAAKtL,OAAS,GAAIuD,GACzCyqR,EAAYH,EAAWA,EAAW7tR,OAAS,GAC3CysR,EAAMlpR,EAAQkpR,KAAOvtR,KAAKguD,SAC1Bs0O,EAA0Bj+R,EAAQi+R,yBAA2BtiS,KAAKqE,QAAQi+R,wBAChF,GAAI/U,GAA6B,WAAtBA,EAAIxlP,cAA4B,CACzC,GAAIu6P,EAAyB,CAC3B,MAAMb,EAAcp9R,EAAQo9R,aAAezhS,KAAKqE,QAAQo9R,YACxD,OAAIY,EACK,CACLt0R,IAAK,GAAG+gR,IAAY2S,IAAcr0R,IAClCm1R,QAASn1R,EACTo1R,aAAcp1R,EACdq1R,QAASlV,EACTmV,OAAQ5T,EACR6T,WAAY3iS,KAAK4iS,qBAAqBv+R,IAGnC,GAAGyqR,IAAY2S,IAAcr0R,GACtC,CACA,OAAIi1R,EACK,CACLt0R,IAAKX,EACLm1R,QAASn1R,EACTo1R,aAAcp1R,EACdq1R,QAASlV,EACTmV,OAAQ5T,EACR6T,WAAY3iS,KAAK4iS,qBAAqBv+R,IAGnC+I,CACT,CACA,MAAMm0R,EAAWvhS,KAAKmuC,QAAQ/hC,EAAM/H,GACpC,IAAI0J,EAAMwzR,GAAYA,EAASxzR,IAC/B,MAAM80R,EAAatB,GAAYA,EAASgB,SAAWn1R,EAC7C01R,EAAkBvB,GAAYA,EAASiB,cAAgBp1R,EACvD21R,EAAU5iS,OAAOY,UAAU6O,SAAS1O,MAAM6M,GAE1Ci1R,OAAoCl1R,IAAvBzJ,EAAQ2+R,WAA2B3+R,EAAQ2+R,WAAahjS,KAAKqE,QAAQ2+R,WAClFC,GAA8BjjS,KAAKkjS,YAAcljS,KAAKkjS,WAAWC,eAEvE,GAAIF,GAA8Bl1R,GADI,iBAARA,GAAmC,kBAARA,GAAoC,iBAARA,GAHpE,CAAC,kBAAmB,oBAAqB,mBAIU3M,QAAQ2hS,GAAW,IAA6B,iBAAfC,GAAuC,mBAAZD,GAA+B,CAC7J,IAAK1+R,EAAQ++R,gBAAkBpjS,KAAKqE,QAAQ++R,cAAe,CACpDpjS,KAAKqE,QAAQg/R,uBAChBrjS,KAAKo9R,OAAO1+Q,KAAK,mEAEnB,MAAM/d,EAAIX,KAAKqE,QAAQg/R,sBAAwBrjS,KAAKqE,QAAQg/R,sBAAsBR,EAAY90R,EAAK,IAC9F1J,EACHsyL,GAAIg4F,IACD,QAAQvhR,MAAQpN,KAAKguD,mDAC1B,OAAIq0O,GACFd,EAASxzR,IAAMpN,EACf4gS,EAASoB,WAAa3iS,KAAK4iS,qBAAqBv+R,GACzCk9R,GAEF5gS,CACT,CACA,GAAI2+R,EAAc,CAChB,MAAMgE,EAA6B,mBAAZP,EACjB10H,EAAOi1H,EAAiB,GAAK,CAAC,EAC9BC,EAAcD,EAAiBR,EAAkBD,EACvD,IAAK,MAAMl+R,KAAKoJ,EACd,GAAI5N,OAAOY,UAAUC,eAAeC,KAAK8M,EAAKpJ,GAAI,CAChD,MAAM6+R,EAAU,GAAGD,IAAcjE,IAAe36R,IAChD0pK,EAAK1pK,GAAK3E,KAAK8qE,UAAU04N,EAAS,IAC7Bn/R,EAED2+R,YAAY,EACZrsG,GAAIg4F,IAGJtgH,EAAK1pK,KAAO6+R,IAASn1H,EAAK1pK,GAAKoJ,EAAIpJ,GACzC,CAEFoJ,EAAMsgK,CACR,CACF,MAAO,GAAI40H,GAAoD,iBAAfD,GAAuC,mBAAZD,EACzEh1R,EAAMA,EAAIib,KAAKg6Q,GACXj1R,IAAKA,EAAM/N,KAAKyjS,kBAAkB11R,EAAK3B,EAAM/H,EAAS89R,QACrD,CACL,IAAIuB,GAAc,EACdnB,GAAU,EACd,MAAMoB,OAAwC71R,IAAlBzJ,EAAQsxE,OAAgD,iBAAlBtxE,EAAQsxE,MACpEiuN,EAAkB1C,GAAW0C,gBAAgBv/R,GAC7Cw/R,EAAqBF,EAAsB3jS,KAAK8jS,eAAeC,UAAUxW,EAAKlpR,EAAQsxE,MAAOtxE,GAAW,GACxG2/R,EAAoC3/R,EAAQ4/R,SAAWN,EAAsB3jS,KAAK8jS,eAAeC,UAAUxW,EAAKlpR,EAAQsxE,MAAO,CACnIsuN,SAAS,IACN,GACCC,EAAwBP,IAAwBt/R,EAAQ4/R,SAA6B,IAAlB5/R,EAAQsxE,OAAe31E,KAAK8jS,eAAeK,mBAC9G/1E,EAAe81E,GAAyB7/R,EAAQ,eAAerE,KAAKqE,QAAQ+/R,wBAA0B//R,EAAQ,eAAew/R,MAAyBx/R,EAAQ,eAAe2/R,MAAwC3/R,EAAQ+pN,cAC9NpuN,KAAKqkS,cAAct2R,IAAQ61R,IAC9BF,GAAc,EACd31R,EAAMqgN,GAEHpuN,KAAKqkS,cAAct2R,KACtBw0R,GAAU,EACVx0R,EAAMX,GAER,MACMk3R,GADiCjgS,EAAQkgS,gCAAkCvkS,KAAKqE,QAAQkgS,iCACtChC,OAAUz0R,EAAYC,EACxEy2R,EAAgBZ,GAAmBx1E,IAAiBrgN,GAAO/N,KAAKqE,QAAQmgS,cAC9E,GAAIjC,GAAWmB,GAAec,EAAe,CAE3C,GADAxkS,KAAKo9R,OAAOz+N,IAAI6lO,EAAgB,YAAc,aAAcjX,EAAKuB,EAAW1hR,EAAKo3R,EAAgBp2E,EAAergN,GAC5GuxR,EAAc,CAChB,MAAMmF,EAAKzkS,KAAKmuC,QAAQ/gC,EAAK,IACxB/I,EACHi7R,cAAc,IAEZmF,GAAMA,EAAG12R,KAAK/N,KAAKo9R,OAAO1+Q,KAAK,kLACrC,CACA,IAAIgmR,EAAO,GACX,MAAMC,EAAe3kS,KAAK4kS,cAAcC,iBAAiB7kS,KAAKqE,QAAQygS,YAAazgS,EAAQkpR,KAAOvtR,KAAKguD,UACvG,GAAmC,aAA/BhuD,KAAKqE,QAAQ0gS,eAAgCJ,GAAgBA,EAAa,GAC5E,IAAK,IAAIjkS,EAAI,EAAGA,EAAIikS,EAAa7jS,OAAQJ,IACvCgkS,EAAKp5R,KAAKq5R,EAAajkS,QAEe,QAA/BV,KAAKqE,QAAQ0gS,cACtBL,EAAO1kS,KAAK4kS,cAAcI,mBAAmB3gS,EAAQkpR,KAAOvtR,KAAKguD,UAEjE02O,EAAKp5R,KAAKjH,EAAQkpR,KAAOvtR,KAAKguD,UAEhC,MAAMwP,EAAO,CAACj7D,EAAG8C,EAAG4/R,KAClB,MAAMC,EAAoBtB,GAAmBqB,IAAyBl3R,EAAMk3R,EAAuBX,EAC/FtkS,KAAKqE,QAAQ8gS,kBACfnlS,KAAKqE,QAAQ8gS,kBAAkB5iS,EAAGusR,EAAWzpR,EAAG6/R,EAAmBV,EAAengS,GACzErE,KAAKolS,kBAAoBplS,KAAKolS,iBAAiBC,aACxDrlS,KAAKolS,iBAAiBC,YAAY9iS,EAAGusR,EAAWzpR,EAAG6/R,EAAmBV,EAAengS,GAEvFrE,KAAK8/L,KAAK,aAAcv9L,EAAGusR,EAAWzpR,EAAG0I,EAAI,EAE3C/N,KAAKqE,QAAQghS,cACXrlS,KAAKqE,QAAQihS,oBAAsB3B,EACrCe,EAAKn+R,SAAQynD,IACX,MAAMypJ,EAAWz3M,KAAK8jS,eAAeyB,YAAYv3O,EAAU3pD,GACvD6/R,GAAyB7/R,EAAQ,eAAerE,KAAKqE,QAAQ+/R,wBAA0B3sF,EAASr2M,QAAQ,GAAGpB,KAAKqE,QAAQ+/R,uBAAyB,GACnJ3sF,EAASnsM,KAAK,GAAGtL,KAAKqE,QAAQ+/R,uBAEhC3sF,EAASlxM,SAAQ07M,IACfzkJ,EAAK,CAACxP,GAAW5gD,EAAM60M,EAAQ59M,EAAQ,eAAe49M,MAAamM,EAAa,GAChF,IAGJ5wJ,EAAKknO,EAAMt3R,EAAKghN,GAGtB,CACArgN,EAAM/N,KAAKyjS,kBAAkB11R,EAAK3B,EAAM/H,EAASk9R,EAAUY,GACvDI,GAAWx0R,IAAQX,GAAOpN,KAAKqE,QAAQmhS,8BAA6Bz3R,EAAM,GAAG+gR,KAAa1hR,MACzFm1R,GAAWmB,IAAgB1jS,KAAKqE,QAAQohS,yBAEzC13R,EADoC,OAAlC/N,KAAKqE,QAAQo8R,iBACTzgS,KAAKqE,QAAQohS,uBAAuBzlS,KAAKqE,QAAQmhS,4BAA8B,GAAG1W,KAAa1hR,IAAQA,EAAKs2R,EAAc31R,OAAMD,GAEhI9N,KAAKqE,QAAQohS,uBAAuB13R,GAGhD,CACA,OAAIs0R,GACFd,EAASxzR,IAAMA,EACfwzR,EAASoB,WAAa3iS,KAAK4iS,qBAAqBv+R,GACzCk9R,GAEFxzR,CACT,CACA,iBAAA01R,CAAkB11R,EAAKX,EAAK/I,EAASk9R,EAAUY,GAC7C,IAAIpgQ,EAAQ/hC,KACZ,GAAIA,KAAKkjS,YAAcljS,KAAKkjS,WAAWjhN,MACrCl0E,EAAM/N,KAAKkjS,WAAWjhN,MAAMl0E,EAAK,IAC5B/N,KAAKqE,QAAQi9R,cAAcoE,oBAC3BrhS,GACFA,EAAQkpR,KAAOvtR,KAAKguD,UAAYuzO,EAASkB,QAASlB,EAASmB,OAAQnB,EAASgB,QAAS,CACtFhB,kBAEG,IAAKl9R,EAAQshS,kBAAmB,CACjCthS,EAAQi9R,eAAethS,KAAKiiS,aAAaz2R,KAAK,IAC7CnH,EAEDi9R,cAAe,IACVthS,KAAKqE,QAAQi9R,iBACbj9R,EAAQi9R,iBAIjB,MAAMsE,EAAiC,iBAAR73R,IAAqB1J,GAAWA,EAAQi9R,oBAA2DxzR,IAA1CzJ,EAAQi9R,cAAcsE,gBAAgCvhS,EAAQi9R,cAAcsE,gBAAkB5lS,KAAKqE,QAAQi9R,cAAcsE,iBACjN,IAAIC,EACJ,GAAID,EAAiB,CACnB,MAAMr0N,EAAKxjE,EAAIiQ,MAAMhe,KAAKiiS,aAAaC,eACvC2D,EAAUt0N,GAAMA,EAAGzwE,MACrB,CACA,IAAIusC,EAAOhpC,EAAQ6Z,SAAsC,iBAApB7Z,EAAQ6Z,QAAuB7Z,EAAQ6Z,QAAU7Z,EAMtF,GALIrE,KAAKqE,QAAQi9R,cAAcoE,mBAAkBr4P,EAAO,IACnDrtC,KAAKqE,QAAQi9R,cAAcoE,oBAC3Br4P,IAELt/B,EAAM/N,KAAKiiS,aAAa6D,YAAY/3R,EAAKs/B,EAAMhpC,EAAQkpR,KAAOvtR,KAAKguD,SAAU3pD,GACzEuhS,EAAiB,CACnB,MAAMpsQ,EAAKzrB,EAAIiQ,MAAMhe,KAAKiiS,aAAaC,eAEnC2D,GADYrsQ,GAAMA,EAAG14B,UACFuD,EAAQ0hS,MAAO,EACxC,EACK1hS,EAAQkpR,KAAyC,OAAlCvtR,KAAKqE,QAAQo8R,kBAA6Bc,GAAYA,EAASxzR,MAAK1J,EAAQkpR,IAAMgU,EAASkB,UAC1F,IAAjBp+R,EAAQ0hS,OAAgBh4R,EAAM/N,KAAKiiS,aAAa8D,KAAKh4R,GAAK,WAC5D,IAAK,IAAIm3B,EAAOrkC,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMq2B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQvkC,UAAUukC,GAEzB,OAAI+8P,GAAWA,EAAQ,KAAOh9P,EAAK,KAAO9gC,EAAQi7F,SAChDv9D,EAAMq7P,OAAO1+Q,KAAK,6CAA6CymB,EAAK,cAAc/3B,EAAI,MAC/E,MAEF20B,EAAM+oC,aAAa3lC,EAAM/3B,EAClC,GAAG/I,IACCA,EAAQi9R,eAAethS,KAAKiiS,aAAan0P,OAC/C,CACA,MAAMk4P,EAAc3hS,EAAQ2hS,aAAehmS,KAAKqE,QAAQ2hS,YAClDC,EAA4C,iBAAhBD,EAA2B,CAACA,GAAeA,EAU7E,OATIj4R,SAAqCk4R,GAAsBA,EAAmBnlS,SAAyC,IAA/BuD,EAAQ6hS,qBAClGn4R,EAAM6yR,GAAc1jF,OAAO+oF,EAAoBl4R,EAAKX,EAAKpN,KAAKqE,SAAWrE,KAAKqE,QAAQ8hS,wBAA0B,CAC9GC,aAAc,IACT7E,EACHoB,WAAY3iS,KAAK4iS,qBAAqBv+R,OAErCA,GACDA,EAASrE,OAER+N,CACT,CACA,OAAAogC,CAAQ/hC,GACN,IACIovI,EACA+mJ,EACAC,EACAC,EACAC,EALAr+R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAqEnF,MA/DoB,iBAATuL,IAAmBA,EAAO,CAACA,IACtCA,EAAK7F,SAAQlB,IACX,GAAIrF,KAAKqkS,cAAc7oJ,GAAQ,OAC/B,MAAM6qJ,EAAYrmS,KAAKwhS,eAAen8R,EAAGhB,GACnC+I,EAAMi5R,EAAUj5R,IACtBm1R,EAAUn1R,EACV,IAAIuhR,EAAa0X,EAAU1X,WACvB3uR,KAAKqE,QAAQiiS,aAAY3X,EAAaA,EAAW9sR,OAAO7B,KAAKqE,QAAQiiS,aACzE,MAAM3C,OAAwC71R,IAAlBzJ,EAAQsxE,OAAgD,iBAAlBtxE,EAAQsxE,MACpEuuN,EAAwBP,IAAwBt/R,EAAQ4/R,SAA6B,IAAlB5/R,EAAQsxE,OAAe31E,KAAK8jS,eAAeK,mBAC9GoC,OAA2Cz4R,IAApBzJ,EAAQi7F,UAAqD,iBAApBj7F,EAAQi7F,SAAmD,iBAApBj7F,EAAQi7F,UAA6C,KAApBj7F,EAAQi7F,QAChJ46J,EAAQ71P,EAAQqgS,KAAOrgS,EAAQqgS,KAAO1kS,KAAK4kS,cAAcI,mBAAmB3gS,EAAQkpR,KAAOvtR,KAAKguD,SAAU3pD,EAAQygS,aACxHnW,EAAWpoR,SAAQowL,IACb32L,KAAKqkS,cAAc7oJ,KACvBknJ,EAAS/rG,GACJsqG,GAAiB,GAAG/mC,EAAM,MAAMvjE,MAAS32L,KAAKwmS,OAASxmS,KAAKwmS,MAAMC,qBAAuBzmS,KAAKwmS,MAAMC,mBAAmB/D,KAC1HzB,GAAiB,GAAG/mC,EAAM,MAAMvjE,MAAQ,EACxC32L,KAAKo9R,OAAO1+Q,KAAK,QAAQ6jR,qBAA2BroC,EAAMlxO,KAAK,2CAA2C05Q,wBAA8B,6NAE1IxoC,EAAM3zP,SAAQ22B,IACZ,GAAIl9B,KAAKqkS,cAAc7oJ,GAAQ,OAC/BinJ,EAAUvlQ,EACV,MAAMwpQ,EAAY,CAACt5R,GACnB,GAAIpN,KAAKkjS,YAAcljS,KAAKkjS,WAAWyD,cACrC3mS,KAAKkjS,WAAWyD,cAAcD,EAAWt5R,EAAK8vB,EAAMy5J,EAAItyL,OACnD,CACL,IAAIuiS,EACAjD,IAAqBiD,EAAe5mS,KAAK8jS,eAAeC,UAAU7mQ,EAAM74B,EAAQsxE,MAAOtxE,IAC3F,MAAMwiS,EAAa,GAAG7mS,KAAKqE,QAAQ+/R,sBAC7B0C,EAAgB,GAAG9mS,KAAKqE,QAAQ+/R,yBAAyBpkS,KAAKqE,QAAQ+/R,kBAU5E,GATIT,IACF+C,EAAUp7R,KAAK8B,EAAMw5R,GACjBviS,EAAQ4/R,SAAmD,IAAxC2C,EAAaxlS,QAAQ0lS,IAC1CJ,EAAUp7R,KAAK8B,EAAMw5R,EAAa1oR,QAAQ4oR,EAAe9mS,KAAKqE,QAAQ+/R,kBAEpEF,GACFwC,EAAUp7R,KAAK8B,EAAMy5R,IAGrBN,EAAsB,CACxB,MAAMQ,EAAa,GAAG35R,IAAMpN,KAAKqE,QAAQ2iS,mBAAmB3iS,EAAQi7F,UACpEonM,EAAUp7R,KAAKy7R,GACXpD,IACF+C,EAAUp7R,KAAKy7R,EAAaH,GACxBviS,EAAQ4/R,SAAmD,IAAxC2C,EAAaxlS,QAAQ0lS,IAC1CJ,EAAUp7R,KAAKy7R,EAAaH,EAAa1oR,QAAQ4oR,EAAe9mS,KAAKqE,QAAQ+/R,kBAE3EF,GACFwC,EAAUp7R,KAAKy7R,EAAaF,GAGlC,CACF,CACA,IAAII,EACJ,KAAOA,EAAcP,EAAUr7R,OACxBrL,KAAKqkS,cAAc7oJ,KACtBgnJ,EAAeyE,EACfzrJ,EAAQx7I,KAAK8/R,YAAY5iQ,EAAMy5J,EAAIswG,EAAa5iS,GAEpD,IACA,GACF,IAEG,CACL0J,IAAKytI,EACL+mJ,UACAC,eACAC,UACAC,SAEJ,CACA,aAAA2B,CAAct2R,GACZ,aAAeD,IAARC,IAAwB/N,KAAKqE,QAAQ6iS,YAAsB,OAARn5R,IAAoB/N,KAAKqE,QAAQ8iS,mBAA6B,KAARp5R,EAClH,CACA,WAAA+xR,CAAY5iQ,EAAMy5J,EAAIvpL,GACpB,IAAI/I,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAIb,KAAKkjS,YAAcljS,KAAKkjS,WAAWpD,YAAoB9/R,KAAKkjS,WAAWpD,YAAY5iQ,EAAMy5J,EAAIvpL,EAAK/I,GAC/FrE,KAAKonS,cAActH,YAAY5iQ,EAAMy5J,EAAIvpL,EAAK/I,EACvD,CACA,oBAAAu+R,GACE,IAAIv+R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAMwmS,EAAc,CAAC,eAAgB,UAAW,UAAW,UAAW,MAAO,OAAQ,cAAe,KAAM,eAAgB,cAAe,gBAAiB,gBAAiB,aAAc,cAAe,iBAClMC,EAA2BjjS,EAAQ6Z,SAAsC,iBAApB7Z,EAAQ6Z,QACnE,IAAImvB,EAAOi6P,EAA2BjjS,EAAQ6Z,QAAU7Z,EAUxD,GATIijS,QAAqD,IAAlBjjS,EAAQsxE,QAC7CtoC,EAAKsoC,MAAQtxE,EAAQsxE,OAEnB31E,KAAKqE,QAAQi9R,cAAcoE,mBAC7Br4P,EAAO,IACFrtC,KAAKqE,QAAQi9R,cAAcoE,oBAC3Br4P,KAGFi6P,EAA0B,CAC7Bj6P,EAAO,IACFA,GAEL,IAAK,MAAMjgC,KAAOi6R,SACTh6P,EAAKjgC,EAEhB,CACA,OAAOigC,CACT,CACA,sBAAOu2P,CAAgBv/R,GAErB,IAAK,MAAM85O,KAAU95O,EACnB,GAAIlE,OAAOY,UAAUC,eAAeC,KAAKoD,EAAS85O,IAFrC,iBAE2DA,EAAOxiK,UAAU,EAAGmuD,UAAkBh8H,IAAczJ,EAAQ85O,GAClI,OAAO,EAGX,OAAO,CACT,EAGF,SAASopD,GAAW92O,GAClB,OAAOA,EAAOjU,OAAO,GAAGC,cAAgBgU,EAAO5gD,MAAM,EACvD,CACA,MAAM23R,GACJ,WAAA13R,CAAYzL,GACVrE,KAAKqE,QAAUA,EACfrE,KAAKynS,cAAgBznS,KAAKqE,QAAQojS,gBAAiB,EACnDznS,KAAKo9R,OAASS,GAAW9yR,OAAO,gBAClC,CACA,qBAAA28R,CAAsBxqQ,GAEpB,KADAA,EAAOsiQ,GAAetiQ,KACTA,EAAK97B,QAAQ,KAAO,EAAG,OAAO,KAC3C,MAAMuC,EAAIu5B,EAAK/K,MAAM,KACrB,OAAiB,IAAbxuB,EAAE7C,OAAqB,MAC3B6C,EAAE0H,MACoC,MAAlC1H,EAAEA,EAAE7C,OAAS,GAAGinC,cAA8B,KAC3C/nC,KAAK2nS,mBAAmBhkS,EAAEqlB,KAAK,MACxC,CACA,uBAAA4+Q,CAAwB1qQ,GAEtB,KADAA,EAAOsiQ,GAAetiQ,KACTA,EAAK97B,QAAQ,KAAO,EAAG,OAAO87B,EAC3C,MAAMv5B,EAAIu5B,EAAK/K,MAAM,KACrB,OAAOnyB,KAAK2nS,mBAAmBhkS,EAAE,GACnC,CACA,kBAAAgkS,CAAmBzqQ,GACjB,GAAoB,iBAATA,GAAqBA,EAAK97B,QAAQ,MAAQ,EAAG,CACtD,MAAMymS,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACtE,IAAIlkS,EAAIu5B,EAAK/K,MAAM,KAcnB,OAbInyB,KAAKqE,QAAQyjS,aACfnkS,EAAIA,EAAEiP,KAAIgrC,GAAQA,EAAK7V,gBACD,IAAbpkC,EAAE7C,QACX6C,EAAE,GAAKA,EAAE,GAAGokC,cACZpkC,EAAE,GAAKA,EAAE,GAAG84C,cACRorP,EAAazmS,QAAQuC,EAAE,GAAGokC,gBAAkB,IAAGpkC,EAAE,GAAK4jS,GAAW5jS,EAAE,GAAGokC,iBACpD,IAAbpkC,EAAE7C,SACX6C,EAAE,GAAKA,EAAE,GAAGokC,cACQ,IAAhBpkC,EAAE,GAAG7C,SAAc6C,EAAE,GAAKA,EAAE,GAAG84C,eACtB,QAAT94C,EAAE,IAAgC,IAAhBA,EAAE,GAAG7C,SAAc6C,EAAE,GAAKA,EAAE,GAAG84C,eACjDorP,EAAazmS,QAAQuC,EAAE,GAAGokC,gBAAkB,IAAGpkC,EAAE,GAAK4jS,GAAW5jS,EAAE,GAAGokC,gBACtE8/P,EAAazmS,QAAQuC,EAAE,GAAGokC,gBAAkB,IAAGpkC,EAAE,GAAK4jS,GAAW5jS,EAAE,GAAGokC,iBAErEpkC,EAAEqlB,KAAK,IAChB,CACA,OAAOhpB,KAAKqE,QAAQ0jS,WAAa/nS,KAAKqE,QAAQyjS,aAAe5qQ,EAAK6K,cAAgB7K,CACpF,CACA,eAAA8qQ,CAAgB9qQ,GAId,OAH0B,iBAAtBl9B,KAAKqE,QAAQknE,MAA2BvrE,KAAKqE,QAAQ4jS,4BACvD/qQ,EAAOl9B,KAAK4nS,wBAAwB1qQ,KAE9Bl9B,KAAKynS,gBAAkBznS,KAAKynS,cAAc3mS,QAAUd,KAAKynS,cAAcrmS,QAAQ87B,IAAS,CAClG,CACA,qBAAAgrQ,CAAsBhuC,GACpB,IAAKA,EAAO,OAAO,KACnB,IAAI1+G,EAoBJ,OAnBA0+G,EAAM3zP,SAAQ22B,IACZ,GAAIs+G,EAAO,OACX,MAAM2sJ,EAAanoS,KAAK2nS,mBAAmBzqQ,GACtCl9B,KAAKqE,QAAQojS,gBAAiBznS,KAAKgoS,gBAAgBG,KAAa3sJ,EAAQ2sJ,EAAU,KAEpF3sJ,GAASx7I,KAAKqE,QAAQojS,eACzBvtC,EAAM3zP,SAAQ22B,IACZ,GAAIs+G,EAAO,OACX,MAAM4sJ,EAAUpoS,KAAK4nS,wBAAwB1qQ,GAC7C,GAAIl9B,KAAKgoS,gBAAgBI,GAAU,OAAO5sJ,EAAQ4sJ,EAClD5sJ,EAAQx7I,KAAKqE,QAAQojS,cAAcv7R,MAAKm8R,GAClCA,IAAiBD,EAAgBC,EACjCA,EAAajnS,QAAQ,KAAO,GAAKgnS,EAAQhnS,QAAQ,KAAO,OAA5D,EACIinS,EAAajnS,QAAQ,KAAO,GAAKgnS,EAAQhnS,QAAQ,KAAO,GAAKinS,EAAa1sN,UAAU,EAAG0sN,EAAajnS,QAAQ,QAAUgnS,GACpF,IAAlCC,EAAajnS,QAAQgnS,IAAkBA,EAAQtnS,OAAS,EAD8EunS,OAC1I,GACA,IAGD7sJ,IAAOA,EAAQx7I,KAAK6kS,iBAAiB7kS,KAAKqE,QAAQygS,aAAa,IAC7DtpJ,CACT,CACA,gBAAAqpJ,CAAiByD,EAAWprQ,GAC1B,IAAKorQ,EAAW,MAAO,GAGvB,GAFyB,mBAAdA,IAA0BA,EAAYA,EAAUprQ,IAClC,iBAAdorQ,IAAwBA,EAAY,CAACA,IACG,mBAA/CnoS,OAAOY,UAAU6O,SAAS1O,MAAMonS,GAAiC,OAAOA,EAC5E,IAAKprQ,EAAM,OAAOorQ,EAAU7nS,SAAW,GACvC,IAAI+6I,EAAQ8sJ,EAAUprQ,GAKtB,OAJKs+G,IAAOA,EAAQ8sJ,EAAUtoS,KAAK0nS,sBAAsBxqQ,KACpDs+G,IAAOA,EAAQ8sJ,EAAUtoS,KAAK2nS,mBAAmBzqQ,KACjDs+G,IAAOA,EAAQ8sJ,EAAUtoS,KAAK4nS,wBAAwB1qQ,KACtDs+G,IAAOA,EAAQ8sJ,EAAU7nS,SACvB+6I,GAAS,EAClB,CACA,kBAAAwpJ,CAAmB9nQ,EAAMqrQ,GACvB,MAAMC,EAAgBxoS,KAAK6kS,iBAAiB0D,GAAgBvoS,KAAKqE,QAAQygS,aAAe,GAAI5nQ,GACtFg9N,EAAQ,GACRuuC,EAAUjnS,IACTA,IACDxB,KAAKgoS,gBAAgBxmS,GACvB04P,EAAM5uP,KAAK9J,GAEXxB,KAAKo9R,OAAO1+Q,KAAK,uDAAuDld,KAC1E,EAYF,MAVoB,iBAAT07B,IAAsBA,EAAK97B,QAAQ,MAAQ,GAAK87B,EAAK97B,QAAQ,MAAQ,IACpD,iBAAtBpB,KAAKqE,QAAQknE,MAAyBk9N,EAAQzoS,KAAK2nS,mBAAmBzqQ,IAChD,iBAAtBl9B,KAAKqE,QAAQknE,MAAiD,gBAAtBvrE,KAAKqE,QAAQknE,MAAwBk9N,EAAQzoS,KAAK0nS,sBAAsBxqQ,IAC1F,gBAAtBl9B,KAAKqE,QAAQknE,MAAwBk9N,EAAQzoS,KAAK4nS,wBAAwB1qQ,KACrD,iBAATA,GAChBurQ,EAAQzoS,KAAK2nS,mBAAmBzqQ,IAElCsrQ,EAAcjiS,SAAQsuE,IAChBqlL,EAAM94P,QAAQyzE,GAAM,GAAG4zN,EAAQzoS,KAAK2nS,mBAAmB9yN,GAAI,IAE1DqlL,CACT,EAGF,IAAIwuC,GAAO,CAAC,CACVhE,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MACjIrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzYrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACxIrkR,GAAI,CAAC,GACLw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAClDrkR,GAAI,CAAC,EAAG,EAAG,GACXw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,KACrBw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,KAAM,MACbrkR,GAAI,CAAC,EAAG,EAAG,GACXw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MAAO,MACdrkR,GAAI,CAAC,EAAG,EAAG,GACXw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,GACdw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,IACjBw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,IACdw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,GACdw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,IACXw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,GACXw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,OACPrkR,GAAI,CAAC,EAAG,EAAG,GACXw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,GAAI,IACfw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,GACRw0D,GAAI,GACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,IACXw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,MACPrkR,GAAI,CAAC,EAAG,EAAG,EAAG,GACdw0D,GAAI,IACH,CACD6vN,KAAM,CAAC,KAAM,MACbrkR,GAAI,CAAC,EAAG,EAAG,GAAI,IACfw0D,GAAI,KAEF8zN,GAAqB,CACvB,EAAG,SAAUnoS,GACX,OAAOyN,OAAOzN,EAAI,EACpB,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAY,GAALzN,EAChB,EACA,EAAG,SAAUA,GACX,OAAO,CACT,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAOzN,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACvH,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,EAC/G,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAY,GAALzN,EAAS,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,EACpD,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAY,GAALzN,EAAS,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACjG,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,GAAe,IAALA,EAAU,EAAI,EAClE,EACA,EAAG,SAAUA,GACX,OAAOyN,OAAOzN,GAAK,EACrB,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EACnE,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,GAAe,IAALA,EAAU,EAAS,GAALA,GAAe,IAALA,EAAU,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,EACtF,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAOzN,EAAI,IAAM,GAAKA,EAAI,KAAO,GAC1C,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAa,IAANzN,EAChB,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAI,EACvD,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAOzN,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACxG,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAOzN,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAU,IAANA,EAAU,EAAI,EACjE,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,GAAUA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,EAC7D,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,EAAI,EAC1C,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,EAC5G,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,EACzE,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAOzN,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,EACzF,EACA,GAAI,SAAUA,GACZ,OAAOyN,OAAY,GAALzN,EAAS,EAAS,GAALA,EAAS,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,EACjF,GAEF,MAAMooS,GAAkB,CAAC,KAAM,KAAM,MAC/BC,GAAe,CAAC,MAChBC,GAAgB,CACpBz5C,KAAM,EACN/xJ,IAAK,EACLyrM,IAAK,EACLC,IAAK,EACLC,KAAM,EACN1rM,MAAO,GAcT,MAAM2rM,GACJ,WAAAp5R,CAAY80R,GACV,IAAIvgS,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFb,KAAK4kS,cAAgBA,EACrB5kS,KAAKqE,QAAUA,EACfrE,KAAKo9R,OAASS,GAAW9yR,OAAO,kBAC1B/K,KAAKqE,QAAQ8kS,oBAAqBN,GAAatmR,SAASviB,KAAKqE,QAAQ8kS,oBAAwC,oBAATp7E,MAAyBA,KAAKq7E,cACtIppS,KAAKqE,QAAQ8kS,kBAAoB,KACjCnpS,KAAKo9R,OAAOxxR,MAAM,uJAEpB5L,KAAKqpS,MAtBT,WACE,MAAMA,EAAQ,CAAC,EASf,OARAX,GAAKniS,SAAQK,IACXA,EAAI89R,KAAKn+R,SAAQhE,IACf8mS,EAAM9mS,GAAK,CACT2zN,QAAStvN,EAAIyZ,GACbipR,QAASX,GAAmB/hS,EAAIiuE,IACjC,GACD,IAEGw0N,CACT,CAWiBE,EACf,CACA,OAAAC,CAAQjc,EAAK//Q,GACXxN,KAAKqpS,MAAM9b,GAAO//Q,CACpB,CACA,OAAAi8R,CAAQvsQ,GACN,IAAI74B,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,GAAIb,KAAKmkS,mBACP,IACE,OAAO,IAAIp2E,KAAKq7E,YAAY5J,GAAwB,QAATtiQ,EAAiB,KAAOA,GAAO,CACxEnoB,KAAM1Q,EAAQ4/R,QAAU,UAAY,YAExC,CAAE,MAAOz0R,GACP,MACF,CAEF,OAAOxP,KAAKqpS,MAAMnsQ,IAASl9B,KAAKqpS,MAAMrpS,KAAK4kS,cAAcgD,wBAAwB1qQ,GACnF,CACA,WAAAwsQ,CAAYxsQ,GACV,IAAI74B,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM0mK,EAAOvnK,KAAKypS,QAAQvsQ,EAAM74B,GAChC,OAAIrE,KAAKmkS,mBACA58H,GAAQA,EAAKoiI,kBAAkBC,iBAAiB9oS,OAAS,EAE3DymK,GAAQA,EAAK2uD,QAAQp1N,OAAS,CACvC,CACA,mBAAA+oS,CAAoB3sQ,EAAM9vB,GACxB,IAAI/I,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAOb,KAAKulS,YAAYroQ,EAAM74B,GAASuO,KAAIqvM,GAAU,GAAG70M,IAAM60M,KAChE,CACA,WAAAsjF,CAAYroQ,GACV,IAAI74B,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM0mK,EAAOvnK,KAAKypS,QAAQvsQ,EAAM74B,GAChC,OAAKkjK,EAGDvnK,KAAKmkS,mBACA58H,EAAKoiI,kBAAkBC,iBAAiBz5Q,MAAK,CAAC25Q,EAAiBC,IAAoBjB,GAAcgB,GAAmBhB,GAAciB,KAAkBn3R,KAAIo3R,GAAkB,GAAGhqS,KAAKqE,QAAQkxM,UAAUlxM,EAAQ4/R,QAAU,UAAUjkS,KAAKqE,QAAQkxM,UAAY,KAAKy0F,MAEhQziI,EAAK2uD,QAAQtjN,KAAIo5E,GAAUhsF,KAAK+jS,UAAU7mQ,EAAM8uD,EAAQ3nF,KALtD,EAMX,CACA,SAAA0/R,CAAU7mQ,EAAMy4C,GACd,IAAItxE,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM0mK,EAAOvnK,KAAKypS,QAAQvsQ,EAAM74B,GAChC,OAAIkjK,EACEvnK,KAAKmkS,mBACA,GAAGnkS,KAAKqE,QAAQkxM,UAAUlxM,EAAQ4/R,QAAU,UAAUjkS,KAAKqE,QAAQkxM,UAAY,KAAKhuC,EAAK0iI,OAAOt0N,KAElG31E,KAAKkqS,yBAAyB3iI,EAAM5xF,IAE7C31E,KAAKo9R,OAAO1+Q,KAAK,6BAA6Bwe,KACvC,GACT,CACA,wBAAAgtQ,CAAyB3iI,EAAM5xF,GAC7B,MAAMw0N,EAAM5iI,EAAK6iI,MAAQ7iI,EAAK+hI,QAAQ3zN,GAAS4xF,EAAK+hI,QAAQnnS,KAAKknC,IAAIssC,IACrE,IAAIssI,EAAS16C,EAAK2uD,QAAQi0E,GACtBnqS,KAAKqE,QAAQgmS,sBAAgD,IAAxB9iI,EAAK2uD,QAAQp1N,QAAoC,IAApBymK,EAAK2uD,QAAQ,KAClE,IAAXjU,EACFA,EAAS,SACW,IAAXA,IACTA,EAAS,KAGb,MAAMqoF,EAAe,IAAMtqS,KAAKqE,QAAQkxM,SAAW0M,EAAOryM,WAAa5P,KAAKqE,QAAQkxM,QAAU0M,EAAOryM,WAAaqyM,EAAOryM,WACzH,MAAuC,OAAnC5P,KAAKqE,QAAQ8kS,kBACA,IAAXlnF,EAAqB,GACH,iBAAXA,EAA4B,WAAWA,EAAOryM,aAClD06R,IACqC,OAAnCtqS,KAAKqE,QAAQ8kS,mBAEbnpS,KAAKqE,QAAQgmS,sBAAgD,IAAxB9iI,EAAK2uD,QAAQp1N,QAAoC,IAApBymK,EAAK2uD,QAAQ,GADjFo0E,IAIFtqS,KAAKqE,QAAQkxM,SAAW40F,EAAIv6R,WAAa5P,KAAKqE,QAAQkxM,QAAU40F,EAAIv6R,WAAau6R,EAAIv6R,UAC9F,CACA,gBAAAu0R,GACE,OAAQyE,GAAgBrmR,SAASviB,KAAKqE,QAAQ8kS,kBAChD,EAGF,SAASoB,GAAqBl9P,EAAM8pH,EAAa/pJ,GAC/C,IAAIkyR,EAAez+R,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,IACnF8+R,IAAsB9+R,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,KAAmBA,UAAU,GACrFkzE,EAviCN,SAA6B1mC,EAAM8pH,EAAa/pJ,GAC9C,MAAM/M,EAAQ6uH,GAAQ7hF,EAAMjgC,GAC5B,YAAcU,IAAVzN,EACKA,EAEF6uH,GAAQioC,EAAa/pJ,EAC9B,CAiiCao9R,CAAoBn9P,EAAM8pH,EAAa/pJ,GAKlD,OAJK2mE,GAAQ4rN,GAAsC,iBAARvyR,IACzC2mE,EAAOsrN,GAAShyP,EAAMjgC,EAAKkyR,QACdxxR,IAATimE,IAAoBA,EAAOsrN,GAASloI,EAAa/pJ,EAAKkyR,KAErDvrN,CACT,CACA,MAAM02N,GACJ,WAAA36R,GACE,IAAIzL,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFb,KAAKo9R,OAASS,GAAW9yR,OAAO,gBAChC/K,KAAKqE,QAAUA,EACfrE,KAAKiwB,OAAS5rB,EAAQi9R,eAAiBj9R,EAAQi9R,cAAcrxQ,QAAU,CAAC5vB,GAASA,GACjFL,KAAKwL,KAAKnH,EACZ,CACA,IAAAmH,GACE,IAAInH,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EwD,EAAQi9R,gBAAej9R,EAAQi9R,cAAgB,CAClDoJ,aAAa,IAEf,MACEC,OAAQC,EAAQ,YAChBF,EAAW,oBACXG,EAAmB,OACnB/gK,EAAM,cACNghK,EAAa,OACb7oF,EAAM,cACN8oF,EAAa,gBACbC,EAAe,eACfC,EAAc,eACdC,EAAc,cACdC,EAAa,qBACbC,EAAoB,cACpBC,EAAa,qBACbC,EAAoB,wBACpBC,EAAuB,YACvBC,EAAW,aACXC,GACEpnS,EAAQi9R,cACZthS,KAAK2qS,YAAsB78R,IAAb88R,EAAyBA,EAAW,GAClD5qS,KAAK0qS,iBAA8B58R,IAAhB48R,GAA4BA,EAC/C1qS,KAAK6qS,yBAA8C/8R,IAAxB+8R,GAAoCA,EAC/D7qS,KAAK8pI,OAASA,EAAS80J,GAAY90J,GAAUghK,GAAiB,KAC9D9qS,KAAKiiN,OAASA,EAAS28E,GAAY38E,GAAU8oF,GAAiB,KAC9D/qS,KAAKgrS,gBAAkBA,GAAmB,IAC1ChrS,KAAKkrS,eAAiBD,EAAiB,GAAKC,GAAkB,IAC9DlrS,KAAKirS,eAAiBjrS,KAAKkrS,eAAiB,GAAKD,GAAkB,GACnEjrS,KAAKmrS,cAAgBA,EAAgBvM,GAAYuM,GAAiBC,GAAwBxM,GAAY,OACtG5+R,KAAKqrS,cAAgBA,EAAgBzM,GAAYyM,GAAiBC,GAAwB1M,GAAY,KACtG5+R,KAAKurS,wBAA0BA,GAA2B,IAC1DvrS,KAAKwrS,YAAcA,GAAe,IAClCxrS,KAAKyrS,kBAAgC39R,IAAjB29R,GAA6BA,EACjDzrS,KAAK0rS,aACP,CACA,KAAA59P,GACM9tC,KAAKqE,SAASrE,KAAKwL,KAAKxL,KAAKqE,QACnC,CACA,WAAAqnS,GACE,MAAMC,EAAmB,CAACC,EAAgBtpM,IACpCspM,GAAkBA,EAAez+R,SAAWm1F,GAC9CspM,EAAe9xK,UAAY,EACpB8xK,GAEF,IAAIjuP,OAAO2kD,EAAS,KAE7BtiG,KAAK6rS,OAASF,EAAiB3rS,KAAK6rS,OAAQ,GAAG7rS,KAAK8pI,cAAc9pI,KAAKiiN,UACvEjiN,KAAK8rS,eAAiBH,EAAiB3rS,KAAK8rS,eAAgB,GAAG9rS,KAAK8pI,SAAS9pI,KAAKkrS,sBAAsBlrS,KAAKirS,iBAAiBjrS,KAAKiiN,UACnIjiN,KAAKkiS,cAAgByJ,EAAiB3rS,KAAKkiS,cAAe,GAAGliS,KAAKmrS,qBAAqBnrS,KAAKqrS,gBAC9F,CACA,WAAAvF,CAAYzgN,EAAKh4C,EAAMkgP,EAAKlpR,GAC1B,IAAI2Z,EACA3d,EACA0rS,EACJ,MAAM50I,EAAcn3J,KAAKqE,SAAWrE,KAAKqE,QAAQi9R,eAAiBthS,KAAKqE,QAAQi9R,cAAcoE,kBAAoB,CAAC,EAClH,SAASsG,EAAUj/O,GACjB,OAAOA,EAAI7uC,QAAQ,MAAO,OAC5B,CACA,MAAM+tR,EAAe7+R,IACnB,GAAIA,EAAIhM,QAAQpB,KAAKgrS,iBAAmB,EAAG,CACzC,MAAMj3N,EAAOw2N,GAAqBl9P,EAAM8pH,EAAa/pJ,EAAKpN,KAAKqE,QAAQi7R,aAAct/R,KAAKqE,QAAQs7R,qBAClG,OAAO3/R,KAAKyrS,aAAezrS,KAAKiwB,OAAO8jD,OAAMjmE,EAAWy/Q,EAAK,IACxDlpR,KACAgpC,EACH6+P,iBAAkB9+R,IACf2mE,CACP,CACA,MAAMpwE,EAAIyJ,EAAI+kB,MAAMnyB,KAAKgrS,iBACnB3lS,EAAI1B,EAAE2/B,QAAQq8B,OACdh9D,EAAIgB,EAAEqlB,KAAKhpB,KAAKgrS,iBAAiBrrO,OACvC,OAAO3/D,KAAKiwB,OAAOs6Q,GAAqBl9P,EAAM8pH,EAAa9xJ,EAAGrF,KAAKqE,QAAQi7R,aAAct/R,KAAKqE,QAAQs7R,qBAAsBh9R,EAAG4qR,EAAK,IAC/HlpR,KACAgpC,EACH6+P,iBAAkB7mS,GAClB,EAEJrF,KAAK0rS,cACL,MAAMS,EAA8B9nS,GAAWA,EAAQ8nS,6BAA+BnsS,KAAKqE,QAAQ8nS,4BAC7FvG,EAAkBvhS,GAAWA,EAAQi9R,oBAA2DxzR,IAA1CzJ,EAAQi9R,cAAcsE,gBAAgCvhS,EAAQi9R,cAAcsE,gBAAkB5lS,KAAKqE,QAAQi9R,cAAcsE,gBA2CrL,MA1Cc,CAAC,CACb93L,MAAO9tG,KAAK8rS,eACZM,UAAWr/O,GAAOi/O,EAAUj/O,IAC3B,CACD+gD,MAAO9tG,KAAK6rS,OACZO,UAAWr/O,GAAO/sD,KAAK0qS,YAAcsB,EAAUhsS,KAAK2qS,OAAO59O,IAAQi/O,EAAUj/O,KAEzExmD,SAAQ8lS,IAEZ,IADAN,EAAW,EACJ/tR,EAAQquR,EAAKv+L,MAAM98B,KAAKqU,IAAM,CACnC,MAAMinN,EAAatuR,EAAM,GAAG2hD,OAE5B,GADAt/D,EAAQ4rS,EAAaK,QACPx+R,IAAVzN,EACF,GAA2C,mBAAhC8rS,EAA4C,CACrD,MAAMI,EAAOJ,EAA4B9mN,EAAKrnE,EAAO3Z,GACrDhE,EAAwB,iBAATksS,EAAoBA,EAAO,EAC5C,MAAO,GAAIloS,GAAWlE,OAAOY,UAAUC,eAAeC,KAAKoD,EAASioS,GAClEjsS,EAAQ,OACH,IAAIulS,EAAiB,CAC1BvlS,EAAQ2d,EAAM,GACd,QACF,CACEhe,KAAKo9R,OAAO1+Q,KAAK,8BAA8B4tR,uBAAgCjnN,KAC/EhlF,EAAQ,EACV,KAC0B,iBAAVA,GAAuBL,KAAK6qS,sBAC5CxqS,EAAQ89R,GAAW99R,IAErB,MAAM+rS,EAAYC,EAAKD,UAAU/rS,GASjC,GARAglF,EAAMA,EAAInnE,QAAQF,EAAM,GAAIouR,GACxBxG,GACFyG,EAAKv+L,MAAMgsB,WAAaz5H,EAAMS,OAC9BurS,EAAKv+L,MAAMgsB,WAAa97G,EAAM,GAAGld,QAEjCurS,EAAKv+L,MAAMgsB,UAAY,EAEzBiyK,IACIA,GAAY/rS,KAAKwrS,YACnB,KAEJ,KAEKnmN,CACT,CACA,IAAA0gN,CAAK1gN,EAAKxQ,GACR,IACI72D,EACA3d,EACAmsS,EAHAnoS,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAInF,SAAS4rS,EAAiBr/R,EAAKs/R,GAC7B,MAAMC,EAAM3sS,KAAKurS,wBACjB,GAAIn+R,EAAIhM,QAAQurS,GAAO,EAAG,OAAOv/R,EACjC,MAAM5L,EAAI4L,EAAI+kB,MAAM,IAAIwrB,OAAO,GAAGgvP,WAClC,IAAIC,EAAgB,IAAIprS,EAAE,KAC1B4L,EAAM5L,EAAE,GACRorS,EAAgB5sS,KAAK8lS,YAAY8G,EAAeJ,GAChD,MAAMK,EAAsBD,EAAc5uR,MAAM,MAC1C8uR,EAAsBF,EAAc5uR,MAAM,OAC5C6uR,GAAuBA,EAAoB/rS,OAAS,GAAM,IAAMgsS,GAAuBA,EAAoBhsS,OAAS,GAAM,KAC5H8rS,EAAgBA,EAAc1uR,QAAQ,KAAM,MAE9C,IACEsuR,EAAgBxqN,KAAKC,MAAM2qN,GACvBF,IAAkBF,EAAgB,IACjCE,KACAF,GAEP,CAAE,MAAOlsS,GAEP,OADAN,KAAKo9R,OAAO1+Q,KAAK,oDAAoDtR,IAAO9M,GACrE,GAAG8M,IAAMu/R,IAAMC,GACxB,CAEA,OADIJ,EAAcp+E,cAAgBo+E,EAAcp+E,aAAahtN,QAAQpB,KAAK8pI,SAAW,UAAU0iK,EAAcp+E,aACtGhhN,CACT,CACA,KAAO4Q,EAAQhe,KAAKkiS,cAAclxN,KAAKqU,IAAM,CAC3C,IAAI0nN,EAAa,GACjBP,EAAgB,IACXnoS,GAELmoS,EAAgBA,EAActuR,SAA4C,iBAA1BsuR,EAActuR,QAAuBsuR,EAActuR,QAAUsuR,EAC7GA,EAActG,oBAAqB,SAC5BsG,EAAcp+E,aACrB,IAAI4+E,GAAW,EACf,IAAgD,IAA5ChvR,EAAM,GAAG5c,QAAQpB,KAAKgrS,mBAA4B,OAAOh7R,KAAKgO,EAAM,IAAK,CAC3E,MAAMrd,EAAIqd,EAAM,GAAGmU,MAAMnyB,KAAKgrS,iBAAiBp4R,KAAIq9G,GAAQA,EAAKtwD,SAChE3hD,EAAM,GAAKrd,EAAE2iC,QACbypQ,EAAapsS,EACbqsS,GAAW,CACb,CAEA,GADA3sS,EAAQw0E,EAAG43N,EAAiBxrS,KAAKjB,KAAMge,EAAM,GAAG2hD,OAAQ6sO,GAAgBA,GACpEnsS,GAAS2d,EAAM,KAAOqnE,GAAwB,iBAAVhlF,EAAoB,OAAOA,EAC9C,iBAAVA,IAAoBA,EAAQ89R,GAAW99R,IAC7CA,IACHL,KAAKo9R,OAAO1+Q,KAAK,qBAAqBV,EAAM,kBAAkBqnE,KAC9DhlF,EAAQ,IAEN2sS,IACF3sS,EAAQ0sS,EAAWv8Q,QAAO,CAACztB,EAAGJ,IAAM3C,KAAKiwB,OAAOltB,EAAGJ,EAAG0B,EAAQkpR,IAAK,IAC9DlpR,EACH6nS,iBAAkBluR,EAAM,GAAG2hD,UACzBt/D,EAAMs/D,SAEZ0lB,EAAMA,EAAInnE,QAAQF,EAAM,GAAI3d,GAC5BL,KAAK6rS,OAAO/xK,UAAY,CAC1B,CACA,OAAOz0C,CACT,EAgCF,SAAS4nN,GAAsBzpQ,GAC7B,MAAMm4D,EAAQ,CAAC,EACf,OAAO,SAAyB5uC,EAAKwgO,EAAKlpR,GACxC,MAAM+I,EAAMmgR,EAAMvrM,KAAK8hC,UAAUz/G,GACjC,IAAI8mG,EAAYxP,EAAMvuF,GAKtB,OAJK+9F,IACHA,EAAY3nE,EAAGg8P,GAAejS,GAAMlpR,GACpCs3F,EAAMvuF,GAAO+9F,GAERA,EAAUp+C,EACnB,CACF,CACA,MAAMmgP,GACJ,WAAAp9R,GACE,IAAIzL,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFb,KAAKo9R,OAASS,GAAW9yR,OAAO,aAChC/K,KAAKqE,QAAUA,EACfrE,KAAKy+F,QAAU,CACbzS,OAAQihN,IAAsB,CAAC1f,EAAKh2B,KAClC,MAAMpsJ,EAAY,IAAI4iH,KAAKo/E,aAAa5f,EAAK,IACxCh2B,IAEL,OAAOxqM,GAAOo+C,EAAUl7E,OAAO88B,EAAI,IAErCitO,SAAUiT,IAAsB,CAAC1f,EAAKh2B,KACpC,MAAMpsJ,EAAY,IAAI4iH,KAAKo/E,aAAa5f,EAAK,IACxCh2B,EACHrxP,MAAO,aAET,OAAO6mD,GAAOo+C,EAAUl7E,OAAO88B,EAAI,IAErCqgP,SAAUH,IAAsB,CAAC1f,EAAKh2B,KACpC,MAAMpsJ,EAAY,IAAI4iH,KAAKC,eAAeu/D,EAAK,IAC1Ch2B,IAEL,OAAOxqM,GAAOo+C,EAAUl7E,OAAO88B,EAAI,IAErCsgP,aAAcJ,IAAsB,CAAC1f,EAAKh2B,KACxC,MAAMpsJ,EAAY,IAAI4iH,KAAKu/E,mBAAmB/f,EAAK,IAC9Ch2B,IAEL,OAAOxqM,GAAOo+C,EAAUl7E,OAAO88B,EAAKwqM,EAAI+nB,OAAS,MAAM,IAEzDjwP,KAAM49Q,IAAsB,CAAC1f,EAAKh2B,KAChC,MAAMpsJ,EAAY,IAAI4iH,KAAKw/E,WAAWhgB,EAAK,IACtCh2B,IAEL,OAAOxqM,GAAOo+C,EAAUl7E,OAAO88B,EAAI,KAGvC/sD,KAAKwL,KAAKnH,EACZ,CACA,IAAAmH,CAAK21R,GAIH,MAAMqM,GAHQ3sS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAChFygS,cAAe,CAAC,IAEIA,cACtBthS,KAAKgrS,gBAAkBwC,EAAMxC,gBAAkBwC,EAAMxC,gBAAkBwC,EAAMxC,iBAAmB,GAClG,CACA,GAAA5/P,CAAIj/B,EAAM0oE,GACR70E,KAAKy+F,QAAQtyF,EAAK47B,cAAc43B,QAAUkV,CAC5C,CACA,SAAA44N,CAAUthS,EAAM0oE,GACd70E,KAAKy+F,QAAQtyF,EAAK47B,cAAc43B,QAAUstO,GAAsBp4N,EAClE,CACA,MAAA5kD,CAAO5vB,EAAO4vB,EAAQs9P,GACpB,IAAIlpR,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA0BnF,OAzBgBovB,EAAOkC,MAAMnyB,KAAKgrS,iBACXx6Q,QAAO,CAACk9Q,EAAK/qS,KAClC,MAAM,WACJgrS,EAAU,cACVC,GApGR,SAAwBjjM,GACtB,IAAIgjM,EAAahjM,EAAU5iE,cAAc43B,OACzC,MAAMiuO,EAAgB,CAAC,EACvB,GAAIjjM,EAAUvpG,QAAQ,MAAQ,EAAG,CAC/B,MAAMuC,EAAIgnG,EAAUx4E,MAAM,KAC1Bw7Q,EAAahqS,EAAE,GAAGokC,cAAc43B,OAChC,MAAMkuO,EAASlqS,EAAE,GAAGg4E,UAAU,EAAGh4E,EAAE,GAAG7C,OAAS,GAC5B,aAAf6sS,GAA6BE,EAAOzsS,QAAQ,KAAO,EAChDwsS,EAAc5T,WAAU4T,EAAc5T,SAAW6T,EAAOluO,QACrC,iBAAfguO,GAAiCE,EAAOzsS,QAAQ,KAAO,EAC3DwsS,EAActuB,QAAOsuB,EAActuB,MAAQuuB,EAAOluO,QAE1CkuO,EAAO17Q,MAAM,KACrB5rB,SAAQgxP,IACX,IAAKA,EAAK,OACV,MAAOnqP,KAAQqE,GAAQ8lP,EAAIplO,MAAM,KAC3B46B,EAAMt7C,EAAKuX,KAAK,KAAK22C,OAAOzhD,QAAQ,WAAY,IACjD0vR,EAAcxgS,EAAIuyD,UAASiuO,EAAcxgS,EAAIuyD,QAAU5S,GAChD,UAARA,IAAiB6gP,EAAcxgS,EAAIuyD,SAAU,GACrC,SAAR5S,IAAgB6gP,EAAcxgS,EAAIuyD,SAAU,GAC3ChqD,MAAMo3C,KAAM6gP,EAAcxgS,EAAIuyD,QAAUr5C,SAASymC,EAAK,IAAG,GAGpE,CACA,MAAO,CACL4gP,aACAC,gBAEJ,CAyEUE,CAAenrS,GACnB,GAAI3C,KAAKy+F,QAAQkvM,GAAa,CAC5B,IAAIjzE,EAAYgzE,EAChB,IACE,MAAMK,EAAa1pS,GAAWA,EAAQ2pS,cAAgB3pS,EAAQ2pS,aAAa3pS,EAAQ6nS,mBAAqB,CAAC,EACnG3pS,EAAIwrS,EAAWnvR,QAAUmvR,EAAWxgB,KAAOlpR,EAAQua,QAAUva,EAAQkpR,KAAOA,EAClF7yD,EAAY16N,KAAKy+F,QAAQkvM,GAAYD,EAAKnrS,EAAG,IACxCqrS,KACAvpS,KACA0pS,GAEP,CAAE,MAAOniS,GACP5L,KAAKo9R,OAAO1+Q,KAAK9S,EACnB,CACA,OAAO8uN,CACT,CAGA,OAFE16N,KAAKo9R,OAAO1+Q,KAAK,oCAAoCivR,KAEhDD,CAAG,GACTrtS,EAEL,EASF,MAAM4tS,WAAkBnQ,GACtB,WAAAhuR,CAAYo+R,EAASC,EAAOhN,GAC1B,IAAI98R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF+4E,QACA55E,KAAKkuS,QAAUA,EACfluS,KAAKmuS,MAAQA,EACbnuS,KAAKmhS,SAAWA,EAChBnhS,KAAK4kS,cAAgBzD,EAASyD,cAC9B5kS,KAAKqE,QAAUA,EACfrE,KAAKo9R,OAASS,GAAW9yR,OAAO,oBAChC/K,KAAKouS,aAAe,GACpBpuS,KAAKquS,iBAAmBhqS,EAAQgqS,kBAAoB,GACpDruS,KAAKsuS,aAAe,EACpBtuS,KAAKuuS,WAAalqS,EAAQkqS,YAAc,EAAIlqS,EAAQkqS,WAAa,EACjEvuS,KAAKwuS,aAAenqS,EAAQmqS,cAAgB,EAAInqS,EAAQmqS,aAAe,IACvExuS,KAAKsjB,MAAQ,CAAC,EACdtjB,KAAKmvF,MAAQ,GACTnvF,KAAKkuS,SAAWluS,KAAKkuS,QAAQ1iS,MAC/BxL,KAAKkuS,QAAQ1iS,KAAK21R,EAAU98R,EAAQ6pS,QAAS7pS,EAEjD,CACA,SAAAoqS,CAAUn1N,EAAWq1M,EAAYtqR,EAAS6zD,GACxC,MAAMw2O,EAAS,CAAC,EACVtiQ,EAAU,CAAC,EACXuiQ,EAAkB,CAAC,EACnBC,EAAmB,CAAC,EA4B1B,OA3BAt1N,EAAU/yE,SAAQgnR,IAChB,IAAIshB,GAAmB,EACvBlgB,EAAWpoR,SAAQowL,IACjB,MAAMxqL,EAAO,GAAGohR,KAAO52F,KAClBtyL,EAAQyqS,QAAU9uS,KAAKmuS,MAAM5N,kBAAkBhT,EAAK52F,GACvD32L,KAAKsjB,MAAMnX,GAAQ,EACVnM,KAAKsjB,MAAMnX,GAAQ,IAAmC,IAArBnM,KAAKsjB,MAAMnX,QAC/B2B,IAAlBs+B,EAAQjgC,KAAqBigC,EAAQjgC,IAAQ,IAEjDnM,KAAKsjB,MAAMnX,GAAQ,EACnB0iS,GAAmB,OACG/gS,IAAlBs+B,EAAQjgC,KAAqBigC,EAAQjgC,IAAQ,QAC5B2B,IAAjB4gS,EAAOviS,KAAqBuiS,EAAOviS,IAAQ,QAClB2B,IAAzB8gS,EAAiBj4G,KAAmBi4G,EAAiBj4G,IAAM,IACjE,IAEGk4G,IAAkBF,EAAgBphB,IAAO,EAAI,KAEhDptR,OAAOiM,KAAKsiS,GAAQ5tS,QAAUX,OAAOiM,KAAKggC,GAAStrC,SACrDd,KAAKmvF,MAAM7jF,KAAK,CACd8gC,UACA2iQ,aAAc5uS,OAAOiM,KAAKggC,GAAStrC,OACnCwqE,OAAQ,CAAC,EACT0jO,OAAQ,GACR92O,aAGG,CACLw2O,OAAQvuS,OAAOiM,KAAKsiS,GACpBtiQ,QAASjsC,OAAOiM,KAAKggC,GACrBuiQ,gBAAiBxuS,OAAOiM,KAAKuiS,GAC7BC,iBAAkBzuS,OAAOiM,KAAKwiS,GAElC,CACA,MAAAtjO,CAAOn/D,EAAMqD,EAAK69B,GAChB,MAAM9rC,EAAI4K,EAAKgmB,MAAM,KACfo7P,EAAMhsR,EAAE,GACRo1L,EAAKp1L,EAAE,GACTiO,GAAKxP,KAAK8/L,KAAK,gBAAiBytF,EAAK52F,EAAInnL,GACzC69B,GACFrtC,KAAKmuS,MAAMjO,kBAAkB3S,EAAK52F,EAAItpJ,OAAMv/B,OAAWA,EAAW,CAChEsyR,UAAU,IAGdpgS,KAAKsjB,MAAMnX,GAAQqD,GAAO,EAAI,EAC9B,MAAM87D,EAAS,CAAC,EAChBtrE,KAAKmvF,MAAM5oF,SAAQyQ,KAl9CvB,SAAkBpK,EAAQmnE,EAAMslD,GAC9B,MAAM,IACJ7rH,EAAG,EACHnI,GACEg5R,GAAczxR,EAAQmnE,EAAM5zE,QAChCqN,EAAInI,GAAKmI,EAAInI,IAAM,GAENmI,EAAInI,GAAGiG,KAAK+tH,EAC3B,CA28CM41K,CAASj4R,EAAEs0D,OAAQ,CAACiiN,GAAM52F,GA/EhC,SAAuB3/K,EAAG7K,QACA2B,IAApBkJ,EAAEo1B,QAAQjgC,YACL6K,EAAEo1B,QAAQjgC,GACjB6K,EAAE+3R,eAEN,CA2EMG,CAAcl4R,EAAG7K,GACbqD,GAAKwH,EAAEg4R,OAAO1jS,KAAKkE,GACA,IAAnBwH,EAAE+3R,cAAuB/3R,EAAEvM,OAC7BtK,OAAOiM,KAAK4K,EAAEs0D,QAAQ/kE,SAAQhE,IACvB+oE,EAAO/oE,KAAI+oE,EAAO/oE,GAAK,CAAC,GAC7B,MAAM4sS,EAAan4R,EAAEs0D,OAAO/oE,GACxB4sS,EAAWruS,QACbquS,EAAW5oS,SAAQ/F,SACIsN,IAAjBw9D,EAAO/oE,GAAG/B,KAAkB8qE,EAAO/oE,GAAG/B,IAAK,EAAI,GAEvD,IAEFwW,EAAEvM,MAAO,EACLuM,EAAEg4R,OAAOluS,OACXkW,EAAEkhD,SAASlhD,EAAEg4R,QAEbh4R,EAAEkhD,WAEN,IAEFl4D,KAAK8/L,KAAK,SAAUx0H,GACpBtrE,KAAKmvF,MAAQnvF,KAAKmvF,MAAMpiF,QAAOiK,IAAMA,EAAEvM,MACzC,CACA,IAAAynE,CAAKq7M,EAAK52F,EAAIy4G,GACZ,IAAIC,EAAQxuS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,EAC5E63G,EAAO73G,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAKb,KAAKwuS,aAChFt2O,EAAWr3D,UAAUC,OAAS,EAAID,UAAU,QAAKiN,EACrD,IAAKy/Q,EAAIzsR,OAAQ,OAAOo3D,EAAS,KAAM,CAAC,GACxC,GAAIl4D,KAAKsuS,cAAgBtuS,KAAKquS,iBAS5B,YARAruS,KAAKouS,aAAa9iS,KAAK,CACrBiiR,MACA52F,KACAy4G,SACAC,QACA32L,OACAxgD,aAIJl4D,KAAKsuS,eACL,MAAMgB,EAAW,CAAC9/R,EAAK69B,KAErB,GADArtC,KAAKsuS,eACDtuS,KAAKouS,aAAattS,OAAS,EAAG,CAChC,MAAMyJ,EAAOvK,KAAKouS,aAAa9qQ,QAC/BtjC,KAAKkyE,KAAK3nE,EAAKgjR,IAAKhjR,EAAKosL,GAAIpsL,EAAK6kS,OAAQ7kS,EAAK8kS,MAAO9kS,EAAKmuG,KAAMnuG,EAAK2tD,SACxE,CACI1oD,GAAO69B,GAAQgiQ,EAAQrvS,KAAKuuS,WAC9B9qS,YAAW,KACTzD,KAAKkyE,KAAKjxE,KAAKjB,KAAMutR,EAAK52F,EAAIy4G,EAAQC,EAAQ,EAAU,EAAP32L,EAAUxgD,EAAS,GACnEwgD,GAGLxgD,EAAS1oD,EAAK69B,EAAK,EAEfwnC,EAAK70E,KAAKkuS,QAAQkB,GAAQ1yR,KAAK1c,KAAKkuS,SAC1C,GAAkB,IAAdr5N,EAAG/zE,OAaP,OAAO+zE,EAAG04M,EAAK52F,EAAI24G,GAZjB,IACE,MAAM3uS,EAAIk0E,EAAG04M,EAAK52F,GACdh2L,GAAuB,mBAAXA,EAAE+J,KAChB/J,EAAE+J,MAAK2iC,GAAQiiQ,EAAS,KAAMjiQ,KAAOsb,MAAM2mP,GAE3CA,EAAS,KAAM3uS,EAEnB,CAAE,MAAO6O,GACP8/R,EAAS9/R,EACX,CAIJ,CACA,cAAA+/R,CAAej2N,EAAWq1M,GACxB,IAAItqR,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eq3D,EAAWr3D,UAAUC,OAAS,EAAID,UAAU,QAAKiN,EACrD,IAAK9N,KAAKkuS,QAER,OADAluS,KAAKo9R,OAAO1+Q,KAAK,kEACVw5C,GAAYA,IAEI,iBAAdohB,IAAwBA,EAAYt5E,KAAK4kS,cAAcI,mBAAmB1rN,IAC3D,iBAAfq1M,IAAyBA,EAAa,CAACA,IAClD,MAAM+f,EAAS1uS,KAAKyuS,UAAUn1N,EAAWq1M,EAAYtqR,EAAS6zD,GAC9D,IAAKw2O,EAAOA,OAAO5tS,OAEjB,OADK4tS,EAAOtiQ,QAAQtrC,QAAQo3D,IACrB,KAETw2O,EAAOA,OAAOnoS,SAAQ4F,IACpBnM,KAAKwvS,QAAQrjS,EAAK,GAEtB,CACA,IAAAo/D,CAAK+N,EAAWq1M,EAAYz2N,GAC1Bl4D,KAAKuvS,eAAej2N,EAAWq1M,EAAY,CAAC,EAAGz2N,EACjD,CACA,MAAA42O,CAAOx1N,EAAWq1M,EAAYz2N,GAC5Bl4D,KAAKuvS,eAAej2N,EAAWq1M,EAAY,CACzCmgB,QAAQ,GACP52O,EACL,CACA,OAAAs3O,CAAQrjS,GACN,IAAI29H,EAASjpI,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAMU,EAAI4K,EAAKgmB,MAAM,KACfo7P,EAAMhsR,EAAE,GACRo1L,EAAKp1L,EAAE,GACbvB,KAAKkyE,KAAKq7M,EAAK52F,EAAI,YAAQ7oL,OAAWA,GAAW,CAAC0B,EAAK69B,KACjD79B,GAAKxP,KAAKo9R,OAAO1+Q,KAAK,GAAGorH,sBAA2B6sD,kBAAmB42F,WAAc/9Q,IACpFA,GAAO69B,GAAMrtC,KAAKo9R,OAAOz+N,IAAI,GAAGmrE,qBAA0B6sD,kBAAmB42F,IAAOlgP,GACzFrtC,KAAKsrE,OAAOn/D,EAAMqD,EAAK69B,EAAK,GAEhC,CACA,WAAAg4P,CAAY/rN,EAAWw1M,EAAW1hR,EAAK05Q,EAAe2oB,GACpD,IAAIprS,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E6uS,EAAM7uS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,OAC9E,GAAIb,KAAKmhS,SAASqF,OAASxmS,KAAKmhS,SAASqF,MAAMC,qBAAuBzmS,KAAKmhS,SAASqF,MAAMC,mBAAmB3X,GAC3G9uR,KAAKo9R,OAAO1+Q,KAAK,qBAAqBtR,wBAA0B0hR,wBAAiC,iOAGnG,GAAI1hR,SAA6C,KAARA,EAAzC,CACA,GAAIpN,KAAKkuS,SAAWluS,KAAKkuS,QAAQnjS,OAAQ,CACvC,MAAMsvP,EAAO,IACRh2P,EACHorS,YAEI56N,EAAK70E,KAAKkuS,QAAQnjS,OAAO2R,KAAK1c,KAAKkuS,SACzC,GAAIr5N,EAAG/zE,OAAS,EACd,IACE,IAAIH,EAEFA,EADgB,IAAdk0E,EAAG/zE,OACD+zE,EAAGyE,EAAWw1M,EAAW1hR,EAAK05Q,EAAezsB,GAE7CxlL,EAAGyE,EAAWw1M,EAAW1hR,EAAK05Q,GAEhCnmR,GAAuB,mBAAXA,EAAE+J,KAChB/J,EAAE+J,MAAK2iC,GAAQqiQ,EAAI,KAAMriQ,KAAOsb,MAAM+mP,GAEtCA,EAAI,KAAM/uS,EAEd,CAAE,MAAO6O,GACPkgS,EAAIlgS,EACN,MAEAqlE,EAAGyE,EAAWw1M,EAAW1hR,EAAK05Q,EAAe4oB,EAAKr1C,EAEtD,CACK/gL,GAAcA,EAAU,IAC7Bt5E,KAAKmuS,MAAMpO,YAAYzmN,EAAU,GAAIw1M,EAAW1hR,EAAK05Q,EA5BM,CA6B7D,EAGF,SAAStgR,KACP,MAAO,CACLgkF,OAAO,EACPmlN,eAAe,EACfh5G,GAAI,CAAC,eACL+oG,UAAW,CAAC,eACZoF,YAAa,CAAC,OACdwB,YAAY,EACZmB,eAAe,EACfQ,0BAA0B,EAC1B18N,KAAM,MACNqkO,SAAS,EACTvF,sBAAsB,EACtB/K,aAAc,IACdmC,YAAa,IACb2C,gBAAiB,IACjB4C,iBAAkB,IAClB6I,yBAAyB,EACzBxK,aAAa,EACbb,eAAe,EACfO,cAAe,WACfO,oBAAoB,EACpBH,mBAAmB,EACnBgH,6BAA6B,EAC7BnG,aAAa,EACbG,yBAAyB,EACzBe,YAAY,EACZC,mBAAmB,EACnB/D,eAAe,EACfJ,YAAY,EACZK,uBAAuB,EACvBoC,wBAAwB,EACxBD,6BAA6B,EAC7BlD,yBAAyB,EACzBF,iCAAkC,SAAgBj9P,GAChD,IAAIi5I,EAAM,CAAC,EAIX,GAHuB,iBAAZj5I,EAAK,KAAiBi5I,EAAMj5I,EAAK,IACrB,iBAAZA,EAAK,KAAiBi5I,EAAIgwC,aAAejpL,EAAK,IAClC,iBAAZA,EAAK,KAAiBi5I,EAAI0xH,aAAe3qQ,EAAK,IAClC,iBAAZA,EAAK,IAAsC,iBAAZA,EAAK,GAAiB,CAC9D,MAAM9gC,EAAU8gC,EAAK,IAAMA,EAAK,GAChChlC,OAAOiM,KAAK/H,GAASkC,SAAQ6G,IAC3BgxK,EAAIhxK,GAAO/I,EAAQ+I,EAAI,GAE3B,CACA,OAAOgxK,CACT,EACAkjH,cAAe,CACboJ,aAAa,EACbz6Q,OAAQ5vB,GAASA,EACjBypI,OAAQ,KACRm4E,OAAQ,KACR+oF,gBAAiB,IACjBE,eAAgB,IAChBC,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACb5F,iBAAiB,GAGvB,CACA,SAASmK,GAAiB1rS,GAOxB,MAN0B,iBAAfA,EAAQsyL,KAAiBtyL,EAAQsyL,GAAK,CAACtyL,EAAQsyL,KACvB,iBAAxBtyL,EAAQygS,cAA0BzgS,EAAQygS,YAAc,CAACzgS,EAAQygS,cAC1C,iBAAvBzgS,EAAQiiS,aAAyBjiS,EAAQiiS,WAAa,CAACjiS,EAAQiiS,aACtEjiS,EAAQojS,eAAiBpjS,EAAQojS,cAAcrmS,QAAQ,UAAY,IACrEiD,EAAQojS,cAAgBpjS,EAAQojS,cAAc5lS,OAAO,CAAC,YAEjDwC,CACT,CAEA,SAASo+B,KAAQ,CASjB,MAAMutQ,WAAalS,GACjB,WAAAhuR,GACE,IAAIzL,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eq3D,EAAWr3D,UAAUC,OAAS,EAAID,UAAU,QAAKiN,EAXzD,IAA6BmiS,EAoBzB,GARAr2N,QACA55E,KAAKqE,QAAU0rS,GAAiB1rS,GAChCrE,KAAKmhS,SAAW,CAAC,EACjBnhS,KAAKo9R,OAASS,GACd79R,KAAKi5M,QAAU,CACbi3F,SAAU,IAjBaD,EAmBLjwS,KAlBTG,OAAO05F,oBAAoB15F,OAAO4c,eAAekzR,IACzD1pS,SAAQmnS,IACc,mBAAduC,EAAKvC,KACduC,EAAKvC,GAAOuC,EAAKvC,GAAKhxR,KAAKuzR,GAC7B,IAeI/3O,IAAal4D,KAAKotR,gBAAkB/oR,EAAQ8rS,QAAS,CACvD,IAAKnwS,KAAKqE,QAAQsrS,cAEhB,OADA3vS,KAAKwL,KAAKnH,EAAS6zD,GACZl4D,KAETyD,YAAW,KACTzD,KAAKwL,KAAKnH,EAAS6zD,EAAS,GAC3B,EACL,CACF,CACA,IAAA1sD,GACE,IAAIu2B,EAAQ/hC,KACZ,IAAIqE,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eq3D,EAAWr3D,UAAUC,OAAS,EAAID,UAAU,QAAKiN,EACrD9N,KAAKowS,gBAAiB,EACC,mBAAZ/rS,IACT6zD,EAAW7zD,EACXA,EAAU,CAAC,IAERA,EAAQq7R,YAAmC,IAAtBr7R,EAAQq7R,WAAuBr7R,EAAQsyL,KACrC,iBAAftyL,EAAQsyL,GACjBtyL,EAAQq7R,UAAYr7R,EAAQsyL,GACnBtyL,EAAQsyL,GAAGv1L,QAAQ,eAAiB,IAC7CiD,EAAQq7R,UAAYr7R,EAAQsyL,GAAG,KAGnC,MAAM05G,EAAU7pS,KAkBhB,SAAS8pS,EAAoBC,GAC3B,OAAKA,EACwB,mBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,IAG7B,CACA,GAtBAvwS,KAAKqE,QAAU,IACVgsS,KACArwS,KAAKqE,WACL0rS,GAAiB1rS,IAEgB,OAAlCrE,KAAKqE,QAAQo8R,mBACfzgS,KAAKqE,QAAQi9R,cAAgB,IACxB+O,EAAQ/O,iBACRthS,KAAKqE,QAAQi9R,qBAGSxzR,IAAzBzJ,EAAQi7R,eACVt/R,KAAKqE,QAAQu9R,wBAA0Bv9R,EAAQi7R,mBAErBxxR,IAAxBzJ,EAAQo9R,cACVzhS,KAAKqE,QAAQw9R,uBAAyBx9R,EAAQo9R,cAO3CzhS,KAAKqE,QAAQ8rS,QAAS,CAMzB,IAAIhlM,EALAnrG,KAAKi5M,QAAQmkF,OACfS,GAAWryR,KAAK8kS,EAAoBtwS,KAAKi5M,QAAQmkF,QAASp9R,KAAKqE,SAE/Dw5R,GAAWryR,KAAK,KAAMxL,KAAKqE,SAGzBrE,KAAKi5M,QAAQ9tG,UACfA,EAAYnrG,KAAKi5M,QAAQ9tG,UACA,oBAAT4iH,OAChB5iH,EAAY+hM,IAEd,MAAMsD,EAAK,IAAIhJ,GAAaxnS,KAAKqE,SACjCrE,KAAKmuS,MAAQ,IAAI1O,GAAcz/R,KAAKqE,QAAQmmQ,UAAWxqQ,KAAKqE,SAC5D,MAAM9C,EAAIvB,KAAKmhS,SACf5/R,EAAE67R,OAASS,GACXt8R,EAAE6lS,cAAgBpnS,KAAKmuS,MACvB5sS,EAAEqjS,cAAgB4L,EAClBjvS,EAAEuiS,eAAiB,IAAIoF,GAAesH,EAAI,CACxCj7F,QAASv1M,KAAKqE,QAAQ+/R,gBACtB+E,kBAAmBnpS,KAAKqE,QAAQ8kS,kBAChCkB,qBAAsBrqS,KAAKqE,QAAQgmS,wBAEjCl/L,GAAenrG,KAAKqE,QAAQi9R,cAAcrxQ,QAAUjwB,KAAKqE,QAAQi9R,cAAcrxQ,SAAWogR,EAAQ/O,cAAcrxQ,SAClH1uB,EAAE4pG,UAAYmlM,EAAoBnlM,GAClC5pG,EAAE4pG,UAAU3/F,KAAKjK,EAAGvB,KAAKqE,SACzBrE,KAAKqE,QAAQi9R,cAAcrxQ,OAAS1uB,EAAE4pG,UAAUl7E,OAAOvT,KAAKnb,EAAE4pG,YAEhE5pG,EAAE0gS,aAAe,IAAIwI,GAAazqS,KAAKqE,SACvC9C,EAAEilS,MAAQ,CACRC,mBAAoBzmS,KAAKymS,mBAAmB/pR,KAAK1c,OAEnDuB,EAAE6jS,iBAAmB,IAAI6I,GAAUqC,EAAoBtwS,KAAKi5M,QAAQi1F,SAAU3sS,EAAE6lS,cAAe7lS,EAAGvB,KAAKqE,SACvG9C,EAAE6jS,iBAAiBh9R,GAAG,KAAK,SAAU65B,GACnC,IAAK,IAAIiD,EAAOrkC,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMq2B,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKvkC,UAAUukC,GAE7BrD,EAAM+9J,KAAK79J,KAAUkD,EACvB,IACInlC,KAAKi5M,QAAQw3F,mBACflvS,EAAEkvS,iBAAmBH,EAAoBtwS,KAAKi5M,QAAQw3F,kBAClDlvS,EAAEkvS,iBAAiBjlS,MAAMjK,EAAEkvS,iBAAiBjlS,KAAKjK,EAAGvB,KAAKqE,QAAQqsS,UAAW1wS,KAAKqE,UAEnFrE,KAAKi5M,QAAQiqF,aACf3hS,EAAE2hS,WAAaoN,EAAoBtwS,KAAKi5M,QAAQiqF,YAC5C3hS,EAAE2hS,WAAW13R,MAAMjK,EAAE2hS,WAAW13R,KAAKxL,OAE3CA,KAAK+gS,WAAa,IAAIG,GAAWlhS,KAAKmhS,SAAUnhS,KAAKqE,SACrDrE,KAAK+gS,WAAW34R,GAAG,KAAK,SAAU65B,GAChC,IAAK,IAAI+qP,EAAQnsR,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAMm+Q,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG9nP,EAAK8nP,EAAQ,GAAKpsR,UAAUosR,GAE9BlrP,EAAM+9J,KAAK79J,KAAUkD,EACvB,IACAnlC,KAAKi5M,QAAQi3F,SAAS3pS,SAAQ5B,IACxBA,EAAE6G,MAAM7G,EAAE6G,KAAKxL,KAAK,GAE5B,CAGA,GAFAA,KAAKiwB,OAASjwB,KAAKqE,QAAQi9R,cAAcrxQ,OACpCioC,IAAUA,EAAWz1B,IACtBziC,KAAKqE,QAAQygS,cAAgB9kS,KAAKmhS,SAASsP,mBAAqBzwS,KAAKqE,QAAQkpR,IAAK,CACpF,MAAMrzB,EAAQl6P,KAAKmhS,SAASyD,cAAcC,iBAAiB7kS,KAAKqE,QAAQygS,aACpE5qC,EAAMp5P,OAAS,GAAkB,QAAbo5P,EAAM,KAAcl6P,KAAKqE,QAAQkpR,IAAMrzB,EAAM,GACvE,CACKl6P,KAAKmhS,SAASsP,kBAAqBzwS,KAAKqE,QAAQkpR,KACnDvtR,KAAKo9R,OAAO1+Q,KAAK,2DAEF,CAAC,cAAe,oBAAqB,oBAAqB,qBAClEnY,SAAQ6oS,IACfpvS,KAAKovS,GAAU,WACb,OAAOrtQ,EAAMosQ,MAAMiB,MAAWvuS,UAChC,CAAC,IAEqB,CAAC,cAAe,eAAgB,oBAAqB,wBAC7D0F,SAAQ6oS,IACtBpvS,KAAKovS,GAAU,WAEb,OADArtQ,EAAMosQ,MAAMiB,MAAWvuS,WAChBkhC,CACT,CAAC,IAEH,MAAM4uQ,EAAW1S,KACX1yN,EAAO,KACX,MAAMqlO,EAAS,CAACphS,EAAKjP,KACnBP,KAAKowS,gBAAiB,EAClBpwS,KAAKotR,gBAAkBptR,KAAK6wS,sBAAsB7wS,KAAKo9R,OAAO1+Q,KAAK,yEACvE1e,KAAKotR,eAAgB,EAChBptR,KAAKqE,QAAQ8rS,SAASnwS,KAAKo9R,OAAOz+N,IAAI,cAAe3+D,KAAKqE,SAC/DrE,KAAK8/L,KAAK,cAAe9/L,KAAKqE,SAC9BssS,EAASxiQ,QAAQ5tC,GACjB23D,EAAS1oD,EAAKjP,EAAE,EAElB,GAAIP,KAAKs5E,WAA+C,OAAlCt5E,KAAKqE,QAAQo8R,mBAA8BzgS,KAAKotR,cAAe,OAAOwjB,EAAO,KAAM5wS,KAAKO,EAAEmc,KAAK1c,OACrHA,KAAKohS,eAAephS,KAAKqE,QAAQkpR,IAAKqjB,EAAO,EAO/C,OALI5wS,KAAKqE,QAAQmmQ,YAAcxqQ,KAAKqE,QAAQsrS,cAC1CpkO,IAEA9nE,WAAW8nE,EAAM,GAEZolO,CACT,CACA,aAAAG,CAAc9iP,GACZ,IACI+iP,EADWlwS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK4hC,GAEnF,MAAMggQ,EAA8B,iBAAbz0O,EAAwBA,EAAWhuD,KAAKguD,SAE/D,GADwB,mBAAbA,IAAyB+iP,EAAe/iP,IAC9ChuD,KAAKqE,QAAQmmQ,WAAaxqQ,KAAKqE,QAAQwrS,wBAAyB,CACnE,GAAIpN,GAAqC,WAA1BA,EAAQ16P,iBAAgC/nC,KAAKqE,QAAQurS,SAA2C,IAAhC5vS,KAAKqE,QAAQurS,QAAQ9uS,QAAe,OAAOiwS,IAC1H,MAAMrC,EAAS,GACT90M,EAAS2zL,IACRA,GACO,WAARA,GACSvtR,KAAKmhS,SAASyD,cAAcI,mBAAmBzX,GACvDhnR,SAAQhE,IACD,WAANA,GACAmsS,EAAOttS,QAAQmB,GAAK,GAAGmsS,EAAOpjS,KAAK/I,EAAE,GACzC,EAECkgS,EAIH7oM,EAAO6oM,GAHWziS,KAAKmhS,SAASyD,cAAcC,iBAAiB7kS,KAAKqE,QAAQygS,aAClEv+R,SAAQhE,GAAKq3F,EAAOr3F,KAI5BvC,KAAKqE,QAAQurS,SACf5vS,KAAKqE,QAAQurS,QAAQrpS,SAAQhE,GAAKq3F,EAAOr3F,KAE3CvC,KAAKmhS,SAASiE,iBAAiB75N,KAAKmjO,EAAQ1uS,KAAKqE,QAAQsyL,IAAIr2L,IACtDA,GAAMN,KAAKgxS,mBAAoBhxS,KAAKguD,UAAUhuD,KAAKixS,oBAAoBjxS,KAAKguD,UACjF+iP,EAAazwS,EAAE,GAEnB,MACEywS,EAAa,KAEjB,CACA,eAAAG,CAAgBxM,EAAM/tG,EAAIz+H,GACxB,MAAMy4O,EAAW1S,KAQjB,OAPKyG,IAAMA,EAAO1kS,KAAKs5E,WAClBq9G,IAAIA,EAAK32L,KAAKqE,QAAQsyL,IACtBz+H,IAAUA,EAAWz1B,IAC1BziC,KAAKmhS,SAASiE,iBAAiB0J,OAAOpK,EAAM/tG,GAAInnL,IAC9CmhS,EAASxiQ,UACT+pB,EAAS1oD,EAAI,IAERmhS,CACT,CACA,GAAA51F,CAAIn7M,GACF,IAAKA,EAAQ,MAAM,IAAIkiB,MAAM,iGAC7B,IAAKliB,EAAOmV,KAAM,MAAM,IAAI+M,MAAM,4FAsBlC,MArBoB,YAAhBliB,EAAOmV,OACT/U,KAAKi5M,QAAQi1F,QAAUtuS,IAEL,WAAhBA,EAAOmV,MAAqBnV,EAAO++D,KAAO/+D,EAAO8e,MAAQ9e,EAAOgM,SAClE5L,KAAKi5M,QAAQmkF,OAASx9R,GAEJ,qBAAhBA,EAAOmV,OACT/U,KAAKi5M,QAAQw3F,iBAAmB7wS,GAEd,eAAhBA,EAAOmV,OACT/U,KAAKi5M,QAAQiqF,WAAatjS,GAER,kBAAhBA,EAAOmV,MACT6rR,GAAcE,iBAAiBlhS,GAEb,cAAhBA,EAAOmV,OACT/U,KAAKi5M,QAAQ9tG,UAAYvrG,GAEP,aAAhBA,EAAOmV,MACT/U,KAAKi5M,QAAQi3F,SAAS5kS,KAAK1L,GAEtBI,IACT,CACA,mBAAAixS,CAAoB1uS,GAClB,GAAKA,GAAMvC,KAAKs5E,aACZ,CAAC,SAAU,OAAOl4E,QAAQmB,IAAM,GACpC,IAAK,IAAI4uS,EAAK,EAAGA,EAAKnxS,KAAKs5E,UAAUx4E,OAAQqwS,IAAM,CACjD,MAAMC,EAAYpxS,KAAKs5E,UAAU63N,GACjC,KAAI,CAAC,SAAU,OAAO/vS,QAAQgwS,IAAc,IACxCpxS,KAAKmuS,MAAMxN,4BAA4ByQ,GAAY,CACrDpxS,KAAKgxS,iBAAmBI,EACxB,KACF,CACF,CACF,CACA,cAAAhQ,CAAe7T,EAAKr1N,GAClB,IAAI44C,EAAS9wG,KACbA,KAAKqxS,qBAAuB9jB,EAC5B,MAAMojB,EAAW1S,KACjBj+R,KAAK8/L,KAAK,mBAAoBytF,GAC9B,MAAM+jB,EAAc/uS,IAClBvC,KAAKguD,SAAWzrD,EAChBvC,KAAKs5E,UAAYt5E,KAAKmhS,SAASyD,cAAcI,mBAAmBziS,GAChEvC,KAAKgxS,sBAAmBljS,EACxB9N,KAAKixS,oBAAoB1uS,EAAE,EAEvBkI,EAAO,CAAC+E,EAAKjN,KACbA,GACF+uS,EAAY/uS,GACZvC,KAAK+gS,WAAWK,eAAe7+R,GAC/BvC,KAAKqxS,0BAAuBvjS,EAC5B9N,KAAK8/L,KAAK,kBAAmBv9L,GAC7BvC,KAAKo9R,OAAOz+N,IAAI,kBAAmBp8D,IAEnCvC,KAAKqxS,0BAAuBvjS,EAE9B6iS,EAASxiQ,SAAQ,WACf,OAAO2iE,EAAOvwG,KAAKM,UACrB,IACIq3D,GAAUA,EAAS1oD,GAAK,WAC1B,OAAOshG,EAAOvwG,KAAKM,UACrB,GAAE,EAEE0wS,EAAS7M,IACRnX,GAAQmX,IAAQ1kS,KAAKmhS,SAASsP,mBAAkB/L,EAAO,IAC5D,MAAMniS,EAAoB,iBAATmiS,EAAoBA,EAAO1kS,KAAKmhS,SAASyD,cAAcsD,sBAAsBxD,GAC1FniS,IACGvC,KAAKguD,UACRsjP,EAAY/uS,GAETvC,KAAK+gS,WAAW/yO,UAAUhuD,KAAK+gS,WAAWK,eAAe7+R,GAC1DvC,KAAKmhS,SAASsP,kBAAoBzwS,KAAKmhS,SAASsP,iBAAiBe,mBAAmBxxS,KAAKmhS,SAASsP,iBAAiBe,kBAAkBjvS,IAE3IvC,KAAK8wS,cAAcvuS,GAAGiN,IACpB/E,EAAK+E,EAAKjN,EAAE,GACZ,EAaJ,OAXKgrR,IAAOvtR,KAAKmhS,SAASsP,kBAAqBzwS,KAAKmhS,SAASsP,iBAAiBlpP,OAElEgmO,GAAOvtR,KAAKmhS,SAASsP,kBAAoBzwS,KAAKmhS,SAASsP,iBAAiBlpP,MAC7B,IAAjDvnD,KAAKmhS,SAASsP,iBAAiBgB,OAAO3wS,OACxCd,KAAKmhS,SAASsP,iBAAiBgB,SAAS/mS,KAAK6mS,GAE7CvxS,KAAKmhS,SAASsP,iBAAiBgB,OAAOF,GAGxCA,EAAOhkB,GARPgkB,EAAOvxS,KAAKmhS,SAASsP,iBAAiBgB,UAUjCd,CACT,CACA,SAAA3hB,CAAUzB,EAAK52F,EAAIo4F,GACjB,IAAI1d,EAASrxQ,KACb,MAAM0xS,EAAS,SAAUtkS,EAAKitP,GAC5B,IAAIh2P,EACJ,GAAoB,iBAATg2P,EAAmB,CAC5B,IAAK,IAAIijC,EAAQz8R,UAAUC,OAAQ2Q,EAAO,IAAI5C,MAAMyuR,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG9rR,EAAK8rR,EAAQ,GAAK18R,UAAU08R,GAE9Bl5R,EAAUgtQ,EAAOhtQ,QAAQ+9R,iCAAiC,CAACh1R,EAAKitP,GAAMx4P,OAAO4P,GAC/E,MACEpN,EAAU,IACLg2P,GAGPh2P,EAAQkpR,IAAMlpR,EAAQkpR,KAAOmkB,EAAOnkB,IACpClpR,EAAQqgS,KAAOrgS,EAAQqgS,MAAQgN,EAAOhN,KACtCrgS,EAAQsyL,GAAKtyL,EAAQsyL,IAAM+6G,EAAO/6G,GAClCtyL,EAAQ0qR,UAAY1qR,EAAQ0qR,WAAaA,GAAa2iB,EAAO3iB,UAC7D,MAAMuQ,EAAejuB,EAAOhtQ,QAAQi7R,cAAgB,IACpD,IAAIqS,EAMJ,OAJEA,EADEttS,EAAQ0qR,WAAalgR,MAAMC,QAAQ1B,GACzBA,EAAIwF,KAAIvN,GAAK,GAAGhB,EAAQ0qR,YAAYuQ,IAAej6R,MAEnDhB,EAAQ0qR,UAAY,GAAG1qR,EAAQ0qR,YAAYuQ,IAAelyR,IAAQA,EAEzEikQ,EAAO9wQ,EAAEoxS,EAAWttS,EAC7B,EAQA,MAPmB,iBAARkpR,EACTmkB,EAAOnkB,IAAMA,EAEbmkB,EAAOhN,KAAOnX,EAEhBmkB,EAAO/6G,GAAKA,EACZ+6G,EAAO3iB,UAAYA,EACZ2iB,CACT,CACA,CAAAnxS,GACE,OAAOP,KAAK+gS,YAAc/gS,KAAK+gS,WAAWj2N,aAAajqE,UACzD,CACA,MAAAwgS,GACE,OAAOrhS,KAAK+gS,YAAc/gS,KAAK+gS,WAAWM,UAAUxgS,UACtD,CACA,mBAAA+wS,CAAoBj7G,GAClB32L,KAAKqE,QAAQq7R,UAAY/oG,CAC3B,CACA,kBAAA8vG,CAAmB9vG,GACjB,IAAItyL,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,IAAKb,KAAKotR,cAER,OADAptR,KAAKo9R,OAAO1+Q,KAAK,kDAAmD1e,KAAKs5E,YAClE,EAET,IAAKt5E,KAAKs5E,YAAct5E,KAAKs5E,UAAUx4E,OAErC,OADAd,KAAKo9R,OAAO1+Q,KAAK,6DAA8D1e,KAAKs5E,YAC7E,EAET,MAAMi0M,EAAMlpR,EAAQkpR,KAAOvtR,KAAKgxS,kBAAoBhxS,KAAKs5E,UAAU,GAC7DwrN,IAAc9kS,KAAKqE,SAAUrE,KAAKqE,QAAQygS,YAC1C+M,EAAU7xS,KAAKs5E,UAAUt5E,KAAKs5E,UAAUx4E,OAAS,GACvD,GAA0B,WAAtBysR,EAAIxlP,cAA4B,OAAO,EAC3C,MAAM+pQ,EAAiB,CAACvvS,EAAG/B,KACzB,MAAMuxS,EAAY/xS,KAAKmhS,SAASiE,iBAAiB9hR,MAAM,GAAG/gB,KAAK/B,KAC/D,OAAsB,IAAfuxS,GAAkC,IAAdA,CAAe,EAE5C,GAAI1tS,EAAQ2tS,SAAU,CACpB,MAAMC,EAAY5tS,EAAQ2tS,SAAShyS,KAAM8xS,GACzC,QAAkBhkS,IAAdmkS,EAAyB,OAAOA,CACtC,CACA,SAAIjyS,KAAKugS,kBAAkBhT,EAAK52F,IAC3B32L,KAAKmhS,SAASiE,iBAAiB8I,WAAWluS,KAAKqE,QAAQmmQ,WAAcxqQ,KAAKqE,QAAQwrS,4BACnFiC,EAAevkB,EAAK52F,IAASmuG,IAAegN,EAAeD,EAASl7G,IAE1E,CACA,cAAA02F,CAAe12F,EAAIz+H,GACjB,MAAMy4O,EAAW1S,KACjB,OAAKj+R,KAAKqE,QAAQsyL,IAIA,iBAAPA,IAAiBA,EAAK,CAACA,IAClCA,EAAGpwL,SAAQ/F,IACLR,KAAKqE,QAAQsyL,GAAGv1L,QAAQZ,GAAK,GAAGR,KAAKqE,QAAQsyL,GAAGrrL,KAAK9K,EAAE,IAE7DR,KAAK8wS,eAActhS,IACjBmhS,EAASxiQ,UACL+pB,GAAUA,EAAS1oD,EAAI,IAEtBmhS,IAXDz4O,GAAUA,IACP5tD,QAAQ6jC,UAWnB,CACA,aAAAm/O,CAAcoX,EAAMxsO,GAClB,MAAMy4O,EAAW1S,KACG,iBAATyG,IAAmBA,EAAO,CAACA,IACtC,MAAMwN,EAAYlyS,KAAKqE,QAAQurS,SAAW,GACpCuC,EAAUzN,EAAK33R,QAAOwgR,GAAO2kB,EAAU9wS,QAAQmsR,GAAO,GAAKvtR,KAAKmhS,SAASyD,cAAcoD,gBAAgBza,KAC7G,OAAK4kB,EAAQrxS,QAIbd,KAAKqE,QAAQurS,QAAUsC,EAAUrwS,OAAOswS,GACxCnyS,KAAK8wS,eAActhS,IACjBmhS,EAASxiQ,UACL+pB,GAAUA,EAAS1oD,EAAI,IAEtBmhS,IARDz4O,GAAUA,IACP5tD,QAAQ6jC,UAQnB,CACA,GAAA6kC,CAAIu6M,GAEF,GADKA,IAAKA,EAAMvtR,KAAKgxS,mBAAqBhxS,KAAKs5E,WAAat5E,KAAKs5E,UAAUx4E,OAAS,EAAId,KAAKs5E,UAAU,GAAKt5E,KAAKguD,YAC5Gu/N,EAAK,MAAO,MACjB,MACMqX,EAAgB5kS,KAAKmhS,UAAYnhS,KAAKmhS,SAASyD,eAAiB,IAAI4C,GAAahhS,MACvF,MAFgB,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,OAEnapF,QAAQwjS,EAAcgD,wBAAwBra,KAAS,GAAKA,EAAIxlP,cAAc3mC,QAAQ,SAAW,EAAI,MAAQ,KAC9H,CACA,qBAAOgxS,GAGL,OAAO,IAAIpC,GAFGnvS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpEA,UAAUC,OAAS,EAAID,UAAU,QAAKiN,EAEvD,CACA,aAAAukS,GACE,IAAIhuS,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eq3D,EAAWr3D,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK4hC,GACnF,MAAM6vQ,EAAoBjuS,EAAQiuS,kBAC9BA,UAA0BjuS,EAAQiuS,kBACtC,MAAMC,EAAgB,IACjBvyS,KAAKqE,WACLA,EAED8rS,SAAS,GAGPn5N,EAAQ,IAAIg5N,GAAKuC,GA8BvB,YA7BsBzkS,IAAlBzJ,EAAQmmF,YAA0C18E,IAAnBzJ,EAAQylI,SACzC9yD,EAAMomN,OAASpmN,EAAMomN,OAAOpmN,MAAM3yE,IAEd,CAAC,QAAS,WAAY,YAC9BkC,SAAQ5B,IACpBqyE,EAAMryE,GAAK3E,KAAK2E,EAAE,IAEpBqyE,EAAMmqN,SAAW,IACZnhS,KAAKmhS,UAEVnqN,EAAMmqN,SAASqF,MAAQ,CACrBC,mBAAoBzvN,EAAMyvN,mBAAmB/pR,KAAKs6D,IAEhDs7N,IACFt7N,EAAMm3N,MAAQ,IAAI1O,GAAcz/R,KAAKmuS,MAAM9gQ,KAAMklQ,GACjDv7N,EAAMmqN,SAASiG,cAAgBpwN,EAAMm3N,OAEvCn3N,EAAM+pN,WAAa,IAAIG,GAAWlqN,EAAMmqN,SAAUoR,GAClDv7N,EAAM+pN,WAAW34R,GAAG,KAAK,SAAU65B,GACjC,IAAK,IAAIw7P,EAAQ58R,UAAUC,OAAQqkC,EAAO,IAAIt2B,MAAM4uR,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGv4P,EAAKu4P,EAAQ,GAAK78R,UAAU68R,GAE9B1mN,EAAM8oH,KAAK79J,KAAUkD,EACvB,IACA6xC,EAAMxrE,KAAK+mS,EAAer6O,GAC1B8e,EAAM+pN,WAAW18R,QAAUkuS,EAC3Bv7N,EAAM+pN,WAAWqE,iBAAiBjE,SAASqF,MAAQ,CACjDC,mBAAoBzvN,EAAMyvN,mBAAmB/pR,KAAKs6D,IAE7CA,CACT,CACA,MAAA6yG,GACE,MAAO,CACLxlL,QAASrE,KAAKqE,QACd8pS,MAAOnuS,KAAKmuS,MACZngP,SAAUhuD,KAAKguD,SACfsrB,UAAWt5E,KAAKs5E,UAChB03N,iBAAkBhxS,KAAKgxS,iBAE3B,EAEF,MAAM7vQ,GAAW6uQ,GAAKoC,iBCv0EtB,SAASl1H,GAAQ/7K,GAAgC,OAAO+7K,GAAU,mBAAqBhyK,QAAU,iBAAmBA,OAAOC,SAAW,SAAUhK,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB+J,QAAU/J,EAAE2O,cAAgB5E,QAAU/J,IAAM+J,OAAOnK,UAAY,gBAAkBI,CAAG,EAAG+7K,GAAQ/7K,EAAI,CActT,SAASqxS,KACd,MAAiC,mBAAnBt1O,gBAAqH,YAAzD,oBAAnBA,eAAiC,YAAcggH,GAAQhgH,gBAChH,CDwzEA/7B,GAASixQ,eAAiBpC,GAAKoC,eAERjxQ,GAASixQ,eACpBjxQ,GAAS6xC,IACR7xC,GAAS31B,KACA21B,GAAS2vQ,cACP3vQ,GAAS+vQ,gBACrB/vQ,GAAS45K,IACE55K,GAASigQ,eACdjgQ,GAAS6tP,UACjB7tP,GAAS5gC,EACJ4gC,GAASkgQ,OACIlgQ,GAASywQ,oBACVzwQ,GAASslQ,mBACbtlQ,GAASksP,eACVlsP,GAASmsP,kBE/0E3B9kG,GAUAiqH,GAQAC,+DA1BJ,SAAS/lS,GAAQrM,EAAGK,GAAK,IAAIJ,EAAIJ,OAAOiM,KAAK9L,GAAI,GAAIH,OAAOkB,sBAAuB,CAAE,IAAIF,EAAIhB,OAAOkB,sBAAsBf,GAAIK,IAAMQ,EAAIA,EAAE4L,QAAO,SAAUpM,GAAK,OAAOR,OAAO8M,yBAAyB3M,EAAGK,GAAG0L,UAAY,KAAK9L,EAAE+K,KAAKpK,MAAMX,EAAGY,EAAI,CAAE,OAAOZ,CAAG,CAC9P,SAASoyS,GAAcryS,GAAK,IAAK,IAAIK,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIJ,EAAI,MAAQM,UAAUF,GAAKE,UAAUF,GAAK,CAAC,EAAGA,EAAI,EAAIgM,GAAQxM,OAAOI,IAAI,GAAIgG,SAAQ,SAAU5F,GAC5K,IAAyB6M,EAAKJ,EAAK/M,EAAVmN,EADwKlN,EACnK8M,EADsKzM,EACjKN,EADoKE,EAAEI,GAC7JyM,EAC5C,SAAwB7M,GAAK,IAAIG,EACjC,SAAsBH,GAAQ,GAAI,UAAY,GAAQA,KAAOA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE2K,OAAO2C,aAAc,QAAI,IAAWvN,EAAG,CAAE,IAAII,EAAIJ,EAAEW,KAAKV,EAAGI,UAAiB,GAAI,UAAY,GAAQD,GAAI,OAAOA,EAAG,MAAM,IAAI0K,UAAU,+CAAiD,CAAE,OAAyB4C,OAAiBzN,EAAI,CADtR2N,CAAa3N,GAAc,MAAO,UAAY,GAAQG,GAAKA,EAAIA,EAAI,EAAI,CAD1DyN,CAAef,GAAUA,KAAOI,EAAOrN,OAAOC,eAAeoN,EAAKJ,EAAK,CAAE/M,MAAOA,EAAOgM,YAAY,EAAM+B,cAAc,EAAMC,UAAU,IAAkBb,EAAIJ,GAAO/M,CADR,IAAKF,OAAOmN,0BAA4BnN,OAAOoN,iBAAiBjN,EAAGH,OAAOmN,0BAA0B/M,IAAMoM,GAAQxM,OAAOI,IAAIgG,SAAQ,SAAU5F,GAAKR,OAAOC,eAAeE,EAAGK,EAAGR,OAAO8M,yBAAyB1M,EAAGI,GAAK,GAAI,CAAE,OAAOL,CAAG,CAItb,SAAS,GAAQa,GAAgC,OAAO,GAAU,mBAAqB+J,QAAU,iBAAmBA,OAAOC,SAAW,SAAUhK,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB+J,QAAU/J,EAAE2O,cAAgB5E,QAAU/J,IAAM+J,OAAOnK,UAAY,gBAAkBI,CAAG,EAAG,GAAQA,EAAI,CAIxS,mBAAV2mD,QAEP0gI,GADoB,oBAAXpvF,QAA0BA,OAAOtxC,MAC/BsxC,OAAOtxC,MACS,oBAAXnmD,QAA0BA,OAAOmmD,MACtCnmD,OAAOmmD,MAEPA,OAIX0qP,OACoB,oBAAXp5M,QAA0BA,OAAOl8B,eAC1Cu1O,GAAoBr5M,OAAOl8B,eACA,oBAAXv7D,QAA0BA,OAAOu7D,iBACjDu1O,GAAoB9wS,OAAOu7D,iBAIF,mBAAlB01O,gBACa,oBAAXx5M,QAA0BA,OAAOw5M,cAC1CF,GAAmBt5M,OAAOw5M,cACC,oBAAXjxS,QAA0BA,OAAOixS,gBACjDF,GAAmB/wS,OAAOixS,gBAGzBpqH,KAAY,IAAciqH,IAAsBC,KAAkBlqH,GAAW,IAAqB,IAC/E,mBAAbA,KAAyBA,QAAW16K,GAC/C,IAAI+kS,GAAiB,SAAwBlyP,EAAKinC,GAChD,GAAIA,GAA8B,WAApB,GAAQA,GAAsB,CAC1C,IAAI6iD,EAAc,GAClB,IAAK,IAAItmF,KAAayjC,EACpB6iD,GAAe,IAAMonI,mBAAmB1tN,GAAa,IAAM0tN,mBAAmBjqL,EAAOzjC,IAEvF,IAAKsmF,EAAa,OAAO9pF,EACzBA,EAAMA,IAA6B,IAAtBA,EAAIv/C,QAAQ,KAAc,IAAM,KAAOqpI,EAAY56H,MAAM,EACxE,CACA,OAAO8wC,CACT,EACImyP,GAAU,SAAiBnyP,EAAKoyP,EAAc76O,EAAU86O,GAC1D,IAAI1D,EAAW,SAAkBznP,GAC/B,IAAKA,EAASE,GAAI,OAAOmQ,EAASrQ,EAASuP,YAAc,QAAS,CAChErrD,OAAQ87C,EAAS97C,SAEnB87C,EAASrK,OAAO9yC,MAAK,SAAU2iC,GAC7B6qB,EAAS,KAAM,CACbnsD,OAAQ87C,EAAS97C,OACjBshC,KAAMA,GAEV,IAAGsb,MAAMuP,EACX,EACA,GAAI86O,EAAU,CACZ,IAAIC,EAAcD,EAASryP,EAAKoyP,GAChC,GAAIE,aAAuB3oS,QAEzB,YADA2oS,EAAYvoS,KAAK4kS,GAAU3mP,MAAMuP,EAGrC,CACqB,mBAAVpQ,MACTA,MAAMnH,EAAKoyP,GAAcroS,KAAK4kS,GAAU3mP,MAAMuP,GAE9CswH,GAAS7nI,EAAKoyP,GAAcroS,KAAK4kS,GAAU3mP,MAAMuP,EAErD,EACIg7O,IAAmB,EA2FvB,SAdc,SAAiB7uS,EAASs8C,EAAKqlE,EAAS9tD,GAMpD,MALuB,mBAAZ8tD,IACT9tD,EAAW8tD,EACXA,OAAUl4G,GAEZoqD,EAAWA,GAAY,WAAa,EAChCswH,IAAqC,IAAzB7nI,EAAIv/C,QAAQ,SAlFP,SAA0BiD,EAASs8C,EAAKqlE,EAAS9tD,GAClE7zD,EAAQ8uS,oBACVxyP,EAAMkyP,GAAelyP,EAAKt8C,EAAQ8uS,oBAEpC,IAAI9yP,EAAUsyP,GAAc,CAAC,EAAoC,mBAA1BtuS,EAAQ+uS,cAA+B/uS,EAAQ+uS,gBAAkB/uS,EAAQ+uS,eAC1F,oBAAXzxS,QAA4C,oBAAXy3F,aAAoD,IAAnBA,OAAO/J,SAA2B+J,OAAO/J,QAAQgkN,UAAYj6M,OAAO/J,QAAQgkN,SAASvuQ,OAChKub,EAAQ,cAAgB,8BAA8Bx+C,OAAOu3F,OAAO/J,QAAQ3oD,QAAS,MAAM7kC,OAAOu3F,OAAO/J,QAAQ6oH,SAAU,KAAKr2M,OAAOu3F,OAAO/J,QAAQikN,KAAM,MAE1JttL,IAAS3lE,EAAQ,gBAAkB,oBACvC,IAAIkzP,EAA+C,mBAA3BlvS,EAAQ87C,eAAgC97C,EAAQ87C,eAAe6lE,GAAW3hH,EAAQ87C,eACtG4yP,EAAeJ,GAAc,CAC/BvyP,OAAQ4lE,EAAU,OAAS,MAC3B18F,KAAM08F,EAAU3hH,EAAQy/G,UAAUkC,QAAWl4G,EAC7CuyC,QAASA,GACR6yP,GAAmB,CAAC,EAAIK,GACvBP,EAA6C,mBAA3B3uS,EAAQmvS,gBAAiCnvS,EAAQmvS,eAAe1yS,QAAU,EAAIuD,EAAQmvS,oBAAiB1lS,EAC7H,IACEglS,GAAQnyP,EAAKoyP,EAAc76O,EAAU86O,EACvC,CAAE,MAAO1yS,GACP,IAAKizS,GAAiD,IAAnCpzS,OAAOiM,KAAKmnS,GAAYzyS,SAAiBR,EAAE8nD,SAAW9nD,EAAE8nD,QAAQhnD,QAAQ,mBAAqB,EAC9G,OAAO82D,EAAS53D,GAElB,IACEH,OAAOiM,KAAKmnS,GAAYhtS,SAAQ,SAAUgxP,UACjCw7C,EAAax7C,EACtB,IACAu7C,GAAQnyP,EAAKoyP,EAAc76O,EAAU86O,GACrCE,IAAmB,CACrB,CAAE,MAAO1jS,GACP0oD,EAAS1oD,EACX,CACF,CACF,CAmDWikS,CAAiBpvS,EAASs8C,EAAKqlE,EAAS9tD,GAE7Cs6O,MAAgD,mBAAlBI,cApDJ,SAAmCvuS,EAASs8C,EAAKqlE,EAAS9tD,GACpF8tD,GAAgC,WAArB,GAAQA,KACrBA,EAAU6sL,GAAe,GAAI7sL,GAASn2G,MAAM,IAE1CxL,EAAQ8uS,oBACVxyP,EAAMkyP,GAAelyP,EAAKt8C,EAAQ8uS,oBAEpC,IACE,IAAInuS,GAEFA,EADEytS,GACE,IAAIA,GAEJ,IAAIC,GAAiB,uBAEzB93Q,KAAKorF,EAAU,OAAS,MAAOrlE,EAAK,GACjCt8C,EAAQqvS,aACX1uS,EAAEg4F,iBAAiB,mBAAoB,kBAEzCh4F,EAAE+3F,kBAAoB14F,EAAQ04F,gBAC1BipB,GACFhhH,EAAEg4F,iBAAiB,eAAgB,qCAEjCh4F,EAAE2uS,kBACJ3uS,EAAE2uS,iBAAiB,oBAErB,IAAI3wS,EAAIqB,EAAQ+uS,cAEhB,GADApwS,EAAiB,mBAANA,EAAmBA,IAAMA,EAElC,IAAK,IAAItC,KAAKsC,EACZgC,EAAEg4F,iBAAiBt8F,EAAGsC,EAAEtC,IAG5BsE,EAAEo4D,mBAAqB,WACrBp4D,EAAEq4D,WAAa,GAAKnF,EAASlzD,EAAE+G,QAAU,IAAM/G,EAAEoyD,WAAa,KAAM,CAClErrD,OAAQ/G,EAAE+G,OACVshC,KAAMroC,EAAE23F,cAEZ,EACA33F,EAAEw4D,KAAKwoD,EACT,CAAE,MAAO1lH,GACPqL,SAAWA,QAAQgzD,IAAIr+D,EACzB,CACF,CAWWszS,CAA0BvvS,EAASs8C,EAAKqlE,EAAS9tD,QAE1DA,EAAS,IAAIp2C,MAAM,6CACrB,EClKA,SAAS,GAAQ3gB,GAAgC,OAAO,GAAU,mBAAqB+J,QAAU,iBAAmBA,OAAOC,SAAW,SAAUhK,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB+J,QAAU/J,EAAE2O,cAAgB5E,QAAU/J,IAAM+J,OAAOnK,UAAY,gBAAkBI,CAAG,EAAG,GAAQA,EAAI,CAC7T,SAAS,GAAQb,EAAGK,GAAK,IAAIJ,EAAIJ,OAAOiM,KAAK9L,GAAI,GAAIH,OAAOkB,sBAAuB,CAAE,IAAIF,EAAIhB,OAAOkB,sBAAsBf,GAAIK,IAAMQ,EAAIA,EAAE4L,QAAO,SAAUpM,GAAK,OAAOR,OAAO8M,yBAAyB3M,EAAGK,GAAG0L,UAAY,KAAK9L,EAAE+K,KAAKpK,MAAMX,EAAGY,EAAI,CAAE,OAAOZ,CAAG,CAC9P,SAAS,GAAcD,GAAK,IAAK,IAAIK,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIJ,EAAI,MAAQM,UAAUF,GAAKE,UAAUF,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQR,OAAOI,IAAI,GAAIgG,SAAQ,SAAU5F,GAAK,GAAgBL,EAAGK,EAAGJ,EAAEI,GAAK,IAAKR,OAAOmN,0BAA4BnN,OAAOoN,iBAAiBjN,EAAGH,OAAOmN,0BAA0B/M,IAAM,GAAQJ,OAAOI,IAAIgG,SAAQ,SAAU5F,GAAKR,OAAOC,eAAeE,EAAGK,EAAGR,OAAO8M,yBAAyB1M,EAAGI,GAAK,GAAI,CAAE,OAAOL,CAAG,CAEtb,SAAS,GAAkBmG,EAAQ8J,GAAS,IAAK,IAAI7P,EAAI,EAAGA,EAAI6P,EAAMzP,OAAQJ,IAAK,CAAE,IAAI0wD,EAAa7gD,EAAM7P,GAAI0wD,EAAW/kD,WAAa+kD,EAAW/kD,aAAc,EAAO+kD,EAAWhjD,cAAe,EAAU,UAAWgjD,IAAYA,EAAW/iD,UAAW,GAAMlO,OAAOC,eAAeqG,EAAQ,GAAe2qD,EAAWhkD,KAAMgkD,EAAa,CAAE,CAE5U,SAAS,GAAgB5jD,EAAKJ,EAAK/M,GAA4L,OAAnL+M,EAAM,GAAeA,MAAiBI,EAAOrN,OAAOC,eAAeoN,EAAKJ,EAAK,CAAE/M,MAAOA,EAAOgM,YAAY,EAAM+B,cAAc,EAAMC,UAAU,IAAkBb,EAAIJ,GAAO/M,EAAgBmN,CAAK,CAC3O,SAAS,GAAejN,GAAK,IAAIG,EACjC,SAAsBH,GAAQ,GAAI,UAAY,GAAQA,KAAOA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE2K,OAAO2C,aAAc,QAAI,IAAWvN,EAAG,CAAE,IAAII,EAAIJ,EAAEW,KAAKV,EAAGI,UAAiB,GAAI,UAAY,GAAQD,GAAI,OAAOA,EAAG,MAAM,IAAI0K,UAAU,+CAAiD,CAAE,OAAyB4C,OAAiBzN,EAAI,CADtR,CAAaA,GAAc,MAAO,UAAY,GAAQG,GAAKA,EAAIA,EAAI,EAAI,CAI5G,IANsB81N,GAAaC,GAkC/Bo9E,IAlCkBr9E,GAmCpB,SAASq9E,EAAQ1S,GACf,IAAI98R,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EizS,EAAajzS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAvC1F,SAAyBsgC,EAAUq1L,GAAe,KAAMr1L,aAAoBq1L,GAAgB,MAAM,IAAIprN,UAAU,oCAAwC,CAwCpJ,CAAgBpL,KAAM6zS,GACtB7zS,KAAKmhS,SAAWA,EAChBnhS,KAAKqE,QAAUA,EACfrE,KAAK8zS,WAAaA,EAClB9zS,KAAK+U,KAAO,UACZ/U,KAAKwL,KAAK21R,EAAU98R,EAASyvS,EAC/B,EA5CiCr9E,GA6CJ,CAAC,CAC5BrpN,IAAK,OACL/M,MAAO,SAAc8gS,GACnB,IAAIp/P,EAAQ/hC,KACRqE,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EizS,EAAajzS,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAItF,GAHAb,KAAKmhS,SAAWA,EAChBnhS,KAAKqE,QAAU,GAAc,GAAc,GAAc,CAAC,EA7CvD,CACL0vS,SAAU,+BACV7tO,QAAS,8BACT+b,MAAO,SAAe50C,GACpB,OAAO20C,KAAKC,MAAM50C,EACpB,EACAy2E,UAAW9hC,KAAK8hC,UAChBkwL,aAAc,SAAsBllB,EAAW1hR,EAAK05Q,GAClD,OAAO,GAAgB,CAAC,EAAG15Q,EAAK05Q,GAAiB,GACnD,EACAmtB,iBAAkB,SAA0B36N,EAAWq1M,GAEvD,EACAxyL,QAAS,GACT+3M,eAAkC,oBAAXvyS,QAAiC,KACxDyxS,cAAe,CAAC,EAChBD,kBAAmB,CAAC,EACpBO,aAAa,EACb32M,iBAAiB,EACjB42M,kBAAkB,EAClBxzP,eAAgB,CACdjsC,KAAM,OACNw6D,YAAa,cACbitB,MAAO,aAsBsE37F,KAAKqE,SAAW,CAAC,GAAIA,GAClGrE,KAAK8zS,WAAaA,EACd9zS,KAAKmhS,UAAYnhS,KAAKqE,QAAQ6vS,eAAgB,CAChD,IAAIC,EAAQ7sL,aAAY,WACtB,OAAOvlF,EAAM+sQ,QACf,GAAG9uS,KAAKqE,QAAQ6vS,gBACO,WAAnB,GAAQC,IAA8C,mBAAhBA,EAAMC,OAAsBD,EAAMC,OAC9E,CACF,GACC,CACDhnS,IAAK,YACL/M,MAAO,SAAmBi5E,EAAWq1M,EAAYz2N,GAC/Cl4D,KAAKq0S,SAAS/6N,EAAWA,EAAWq1M,EAAYA,EAAYz2N,EAC9D,GACC,CACD9qD,IAAK,OACL/M,MAAO,SAAc2tD,EAAU8gO,EAAW52N,GACxCl4D,KAAKq0S,SAAS,CAACrmP,GAAWA,EAAU,CAAC8gO,GAAYA,EAAW52N,EAC9D,GACC,CACD9qD,IAAK,WACL/M,MAAO,SAAkBi5E,EAAWg7N,EAAkB3lB,EAAY4lB,EAAmBr8O,GACnF,IF3DsBs8O,EE2DlB1jM,EAAS9wG,KACT+zS,EAAW/zS,KAAKqE,QAAQ0vS,SACS,mBAA1B/zS,KAAKqE,QAAQ0vS,WACtBA,EAAW/zS,KAAKqE,QAAQ0vS,SAASz6N,EAAWq1M,KAE9ColB,EFnEN,SAAmBS,GACjB,QAASA,GAA6C,mBAAtBA,EAAa9pS,IAC/C,CAEM+pS,CADsBD,EEgECT,GF9DlBS,EAEFlqS,QAAQ6jC,QAAQqmQ,IE6DV9pS,MAAK,SAAUgqS,GACtB,IAAKA,EAAkB,OAAOx8O,EAAS,KAAM,CAAC,GAC9C,IAAIvX,EAAMmwD,EAAOqwL,SAASc,aAAa6D,YAAY4O,EAAkB,CACnEnnB,IAAKj0M,EAAUtwD,KAAK,KACpB2tK,GAAIg4F,EAAW3lQ,KAAK,OAEtB8nF,EAAO6jM,QAAQh0P,EAAKuX,EAAUo8O,EAAkBC,EAClD,GACF,GACC,CACDnnS,IAAK,UACL/M,MAAO,SAAiBsgD,EAAKuX,EAAUohB,EAAWq1M,GAChD,IAAItd,EAASrxQ,KACTutR,EAA2B,iBAAdj0M,EAAyB,CAACA,GAAaA,EACpDq9G,EAA2B,iBAAfg4F,EAA0B,CAACA,GAAcA,EACrD3oK,EAAUhmH,KAAKqE,QAAQ4vS,iBAAiB1mB,EAAK52F,GACjD32L,KAAKqE,QAAQ83F,QAAQn8F,KAAKqE,QAASs8C,EAAKqlE,GAAS,SAAUx2G,EAAKzB,GAC9D,GAAIA,IAAQA,EAAIhC,QAAU,KAAOgC,EAAIhC,OAAS,MAAQgC,EAAIhC,QAAS,OAAOmsD,EAAS,kBAAoBvX,EAAM,kBAAoB5yC,EAAIhC,QAAQ,GAC7I,GAAIgC,GAAOA,EAAIhC,QAAU,KAAOgC,EAAIhC,OAAS,IAAK,OAAOmsD,EAAS,kBAAoBvX,EAAM,kBAAoB5yC,EAAIhC,QAAQ,GAC5H,IAAKgC,GAAOyB,GAAOA,EAAI44C,SAAW54C,EAAI44C,QAAQhnD,QAAQ,oBAAsB,EAAG,OAAO82D,EAAS,kBAAoBvX,EAAM,KAAOnxC,EAAI44C,SAAS,GAC7I,GAAI54C,EAAK,OAAO0oD,EAAS1oD,GAAK,GAC9B,IAAI4uK,EAAKw2H,EACT,IAEIx2H,EADsB,iBAAbrwK,EAAIs/B,KACPgkO,EAAOhtQ,QAAQ49E,MAAMl0E,EAAIs/B,KAAMisC,EAAWq1M,GAE1C5gR,EAAIs/B,IAEd,CAAE,MAAO/sC,GACPs0S,EAAW,kBAAoBj0P,EAAM,UACvC,CACA,GAAIi0P,EAAU,OAAO18O,EAAS08O,GAAU,GACxC18O,EAAS,KAAMkmH,EACjB,GACF,GACC,CACDhxK,IAAK,SACL/M,MAAO,SAAgBi5E,EAAWw1M,EAAW1hR,EAAK05Q,EAAe5uN,GAC/D,IAAIs6M,EAASxyQ,KACb,GAAKA,KAAKqE,QAAQ6hE,QAAlB,CACyB,iBAAdoT,IAAwBA,EAAY,CAACA,IAChD,IAAI0sC,EAAUhmH,KAAKqE,QAAQ2vS,aAAallB,EAAW1hR,EAAK05Q,GACpD+tB,EAAW,EACXC,EAAY,GACZC,EAAW,GACfz7N,EAAU/yE,SAAQ,SAAUgnR,GAC1B,IAAIrnN,EAAUssM,EAAOnuQ,QAAQ6hE,QACS,mBAA3BssM,EAAOnuQ,QAAQ6hE,UACxBA,EAAUssM,EAAOnuQ,QAAQ6hE,QAAQqnN,EAAKuB,IAExC,IAAInuO,EAAM6xN,EAAO2uB,SAASc,aAAa6D,YAAY5/N,EAAS,CAC1DqnN,IAAKA,EACL52F,GAAIm4F,IAENtc,EAAOnuQ,QAAQ83F,QAAQq2K,EAAOnuQ,QAASs8C,EAAKqlE,GAAS,SAAU34E,EAAMt/B,GACnE8mS,GAAY,EACZC,EAAUxpS,KAAK+hC,GACf0nQ,EAASzpS,KAAKyC,GACV8mS,IAAav7N,EAAUx4E,QACD,mBAAbo3D,GAAyBA,EAAS48O,EAAWC,EAE5D,GACF,GAvBiC,CAwBnC,GACC,CACD3nS,IAAK,SACL/M,MAAO,WACL,IAAI20S,EAASh1S,KACTi1S,EAAiBj1S,KAAKmhS,SACxBiE,EAAmB6P,EAAe7P,iBAClCR,EAAgBqQ,EAAerQ,cAC/BxH,EAAS6X,EAAe7X,OACtB8X,EAAkB9P,EAAiBp3O,SACvC,IAAIknP,GAAqD,WAAlCA,EAAgBntQ,cAAvC,CACA,IAAI2mQ,EAAS,GACT90M,EAAS,SAAgB2zL,GAChBqX,EAAcI,mBAAmBzX,GACvChnR,SAAQ,SAAUhE,GACjBmsS,EAAOttS,QAAQmB,GAAK,GAAGmsS,EAAOpjS,KAAK/I,EACzC,GACF,EACAq3F,EAAOs7M,GACHl1S,KAAK8zS,WAAWlE,SAAS5vS,KAAK8zS,WAAWlE,QAAQrpS,SAAQ,SAAUhE,GACrE,OAAOq3F,EAAOr3F,EAChB,IACAmsS,EAAOnoS,SAAQ,SAAUgnR,GACvBynB,EAAOlB,WAAWn9G,GAAGpwL,SAAQ,SAAUowL,GACrCyuG,EAAiBlzN,KAAKq7M,EAAK52F,EAAI,OAAQ,KAAM,MAAM,SAAUnnL,EAAK69B,GAC5D79B,GAAK4tR,EAAO1+Q,KAAK,qBAAqB7c,OAAO80L,EAAI,kBAAkB90L,OAAO0rR,EAAK,WAAY/9Q,IAC1FA,GAAO69B,GAAM+vP,EAAOz+N,IAAI,oBAAoB98D,OAAO80L,EAAI,kBAAkB90L,OAAO0rR,GAAMlgP,GAC3F+3P,EAAiB95N,OAAO,GAAGzpE,OAAO0rR,EAAK,KAAK1rR,OAAO80L,GAAKnnL,EAAK69B,EAC/D,GACF,GACF,GApByE,CAqB3E,IA9K8DopL,IAAY,GAAkBD,GAAYz1N,UAAW01N,IAA2Et2N,OAAOC,eAAeo2N,GAAa,YAAa,CAAEnoN,UAAU,IAAiBmoN,IAiL/Qq9E,GAAQ9+R,KAAO,UACf,YCvLaogS,GAAyB,CAClC,QAAS,CACLnnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,KACVonP,iBAAiB,GAErB,QAAS,CACLpnP,SAAU,MAEd,QAAS,CACLA,SAAU,MAEd,QAAS,CACLA,SAAU,SAEd,QAAS,CACLA,SAAU,MAEd,QAAS,CACLA,SAAU,MAEd,QAAS,CACLA,SAAU,MAEd,QAAS,CACLA,SAAU,OC/CLqnP,GAAiB9tP,MAAO2lK,IACjC,MAAM4mE,EAFe,CAAC5mE,GAAY/sN,OAAOolC,QAAQ4vQ,IAAwBjpS,MAAK,EAAEmwO,KAAiBA,IAAgBnvB,MAAW,GAEtGooF,CAAiBpoF,GACjCW,EAAOimE,GAAe9lO,SACtBunP,EAAsBzhB,GAAeshB,kBAAmB,QACxD,OACG,IACJr6F,IAAIqzE,IACJ5iR,KAAK,CACN+hR,IAAK1/D,EACLi3E,aAAa,EACbxD,cAAe,CACXoJ,aAAa,GAEjBlgN,OAAO,EACP0jN,QAAS,CACL,QAAA6F,GACI,IAAIwB,EAGJ,MAAO,8BACX,IAEN,EAEN,GAAsB,oBAAX5zS,OAAwB,CAC/B,MAAM06O,EAAc3zO,SAASC,gBAAgBsuL,aAAa,cAAWnpL,EACrEunS,GAAeh5D,GAAa1zL,OAAOroD,IAC/B,MAAM,IAAIwhB,MAAMxhB,EAAE,GAE1B,CChCO,MAAMk1S,GACT,WAAA1lS,CAAY0sR,GAQR,OAPAx8R,KAAKktN,QAAUsvE,EAAYtvE,QAC3BltN,KAAKi0R,oBAAsBuI,EAAYvI,oBACvCj0R,KAAKk0R,uBAAyBsI,EAAYtI,uBAC1Cl0R,KAAKy1S,2BAA6BjZ,EAAYiZ,2BAC9Cz1S,KAAK47R,oBAAsBY,EAAYZ,oBACvC57R,KAAK+7R,mBAAqB/7R,KAAK+7R,mBAAmBr/Q,KAAK1c,MACvDA,KAAK8zR,cAAgB,GAAoC9zR,KAAKktN,QAASltN,KAAKy1S,4BACvEz1S,KAAK8zR,cAKLqhB,GAAuBn1S,KAAKktN,cAKjCltN,KAAK00R,sBAAwB,GAAuC10R,KAAKi0R,oBAAqBj0R,KAAKk0R,uBAAwBl0R,KAAK8zR,iBAJ5HnoR,QAAQ6oR,KAAK,iDACbx0R,KAAK00R,2BAAwB5mR,KAN7BnC,QAAQ6oR,KAAK,oEACbx0R,KAAK00R,2BAAwB5mR,GASrC,CACA,kBAAAiuR,CAAmBvL,EAAWD,GAC1B,OAAKvwR,KAAK00R,sBAGH,GAAyB,CAAElE,YAAWD,gBAAemE,sBAAuB10R,KAAK00R,sBAAuBkH,oBAAqB57R,KAAK47R,sBAF9HrL,CAGf,EC3BG,MAAMmlB,GAA6BC,IACtC,MAAMC,EAAe,IAAMv3R,KAAKulB,OACzB,CAAEiyQ,IAAkB,IAAAp0S,WAAS,IAAMm0S,MAO1C,OAHA,IAAAl0S,YAAU,KACNi0S,GAAc,IAEX,CACHG,eAPmB,KACnBD,EAAeD,IAAe,EAOjC,ECXCG,GAA4B,CAC9B,EAAG,WACH,EAAG,YACH,EAAG,OACH,EAAG,eAEMC,GAA4B,CACrC,CACIzjB,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,SAC/CuE,yBAA0B,CACtBmf,MAAO,CAAC,EAAG,EAAG,GACdC,QAAS,CAAC,EAAG,EAAG,GAChBC,OAAQ,CAAC,EAAG,EAAG,GACfC,OAAQ,CAAC,EAAG,EAAG,GACf,gBAAiB,CAAC,EAAG,EAAG,GACxB,kBAAmB,CAAC,EAAG,EAAG,GAC1B,aAAc,CAAC,EAAG,EAAG,GACrBC,QAAS,CAAC,EAAG,GACbC,OAAQ,CAAC,EAAG,EAAG,KAGvB,CACI/jB,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACrGuE,yBAA0B,CACtBmf,MAAO,CAAC,EAAG,EAAG,GACdC,QAAS,CAAC,EAAG,EAAG,GAChBC,OAAQ,CAAC,EAAG,EAAG,GACfC,OAAQ,CAAC,EAAG,EAAG,GACf,gBAAiB,CAAC,EAAG,EAAG,GACxB,kBAAmB,CAAC,EAAG,EAAG,GAC1B,aAAc,CAAC,EAAG,EAAG,GACrBC,QAAS,CAAC,EAAG,GACbC,OAAQ,CAAC,EAAG,EAAG,KAGvB,CACI/jB,SAAU,CAAC,QAAS,SACpBuE,yBAA0B,CACtBmf,MAAO,CAAC,GACRC,QAAS,CAAC,GACVC,OAAQ,CAAC,GACTC,OAAQ,CAAC,GACT,gBAAiB,CAAC,GAClB,kBAAmB,CAAC,GACpB,aAAc,CAAC,GACfC,QAAS,CAAC,GACVC,OAAQ,CAAC,MAIfC,GAA0B,CAC5BN,MAAO,QACPC,QAAS,UACTC,OAAQ,SACRC,OAAQ,SACR,gBAAiB,WACjB,kBAAmB,WACnB,aAAc,MACdC,QAAS,UACTC,OAAQ,UAECE,GAAuB,CAChC,CACIrqS,KAAM,eACNqmR,aAAc,GACdD,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAC5FG,YAAa,CACTjsR,OAAQ,kBACRysR,4BAA6B,CAAC,OAAQ,UACtCC,iBAAkB,+BAG1B,CACIhnR,KAAM,KACNqmR,aAAc,OACdD,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACjEG,YAAa,CACTjsR,OAAQ,UACRksR,oBAAqB,CAAC,UAE1B8jB,sBAAkB3oS,IAGb4oS,GAA0BxpF,GAAY,CAC/C,CACIqlE,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAC3J+B,uBAAwB,CACpB2hB,MAAO,CACHxhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BrP,kBAAmB,CAAE7iR,QAAS,CAAC,MAAO,QAAS,QAAS,UAAWkyR,eAAgB,qBACnFlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,QAAS8oF,GAA2BD,IAA4Bxf,eAAgB,gBAClIhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1BjL,yBAA0B,QAC1BG,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B4E,gBAAiB,QACjB3N,YAAa,WACbE,aAAc,YAGtB+pB,QAAS,CACLzhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,UAAW8oF,GAA2BD,IAA4Bxf,eAAgB,gBACpIhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,WAElBsD,qBAAsB,CAAC,iBAE3B0mB,OAAQ,CACJ1hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,SAAU8oF,GAA2BD,IAA4Bxf,eAAgB,gBACnIjP,mBAAoB,CAAEjjR,QAAS,CAAC,SAAU,UAAWkyR,eAAgB,sBACrEhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBC,2BAA4B,SAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbF,kBAAmB,SACnBI,aAAc,WAElBsD,qBAAsB,CAAC,iBAE3B,gBAAiB,CACbgF,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,gBAAiB8oF,GAA2BD,IAA4Bxf,eAAgB,gBAC1IpP,UAAW,CAAE9iR,QAAS,CAAC,KAAM,KAAM,MAAOkyR,eAAgB,aAC1DnP,WAAY,CAAE/iR,QAAS,CAAC,MAAO,MAAO,OAAQkyR,eAAgB,cAC9DhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBC,2BAA4B,gBAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B8E,QAAS,GACTE,SAAU,GACV/N,YAAa,WACbF,kBAAmB,gBACnBI,aAAc,YAGtB,kBAAmB,CACfsI,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,kBAAmB8oF,GAA2BD,IAA4Bxf,eAAgB,gBAC5IpP,UAAW,CAAE9iR,QAAS,CAAC,KAAM,KAAM,KAAM,MAAOkyR,eAAgB,aAChEnP,WAAY,CAAE/iR,QAAS,CAAC,MAAO,MAAO,MAAO,OAAQkyR,eAAgB,cACrEjP,mBAAoB,CAAEjjR,QAAS,CAAC,kBAAmB,cAAekyR,eAAgB,kBAClFhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBC,2BAA4B,kBAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B8E,QAAS,GACTE,SAAU,GACV/N,YAAa,WACbF,kBAAmB,kBACnBI,aAAc,YAGtBkqB,QAAS,CACL5hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,UAAW8oF,GAA2BD,IAA4Bxf,eAAgB,gBACpIhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,WAElBsD,qBAAsB,CAAC,eAE3B6mB,OAAQ,CACJ7hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,SAAU8oF,GAA2BD,IAA4Bxf,eAAgB,gBACnIhP,cAAeyP,GAAuB9pE,EAASspF,IAAwB,CAAEnyS,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,sBAAoBzoR,IAEtJinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,aAI1BwJ,WAAY4gB,GACZrhB,eAAgB6gB,GAChBhkB,uBAAwB,CACpB6kB,OAAQ,CAAC,4BACTC,aAAc,CAAC,2BAEnB7kB,mBAAoBwkB,IAExB,CACIjkB,SAAU,CAAC,SACX+B,uBAAwB,CACpB2hB,MAAO,CACHxhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BrP,kBAAmB,CAAE7iR,QAAS,CAAC,MAAO,QAAS,QAAS,UAAWkyR,eAAgB,qBACnFlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,QAAS8oF,GAA2BD,IAA4Bxf,eAAgB,gBAClIhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1BjL,yBAA0B,QAC1BG,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B4E,gBAAiB,QACjB3N,YAAa,WACbE,aAAc,YAGtB+pB,QAAS,CACLzhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,UAAW8oF,GAA2BD,IAA4Bxf,eAAgB,gBACpIhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,YAGtBgqB,OAAQ,CACJ1hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,SAAU8oF,GAA2BD,IAA4Bxf,eAAgB,gBACnIjP,mBAAoB,CAAEjjR,QAAS,CAAC,SAAU,UAAWkyR,eAAgB,sBACrEhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B9K,qBAAsB,cACtBC,2BAA4B,SAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbF,kBAAmB,SACnBI,aAAc,YAGtB,gBAAiB,CACbsI,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,gBAAiB8oF,GAA2BD,IAA4Bxf,eAAgB,gBAC1IpP,UAAW,CAAE9iR,QAAS,CAAC,KAAM,KAAM,MAAOkyR,eAAgB,aAC1DnP,WAAY,CAAE/iR,QAAS,CAAC,MAAO,MAAO,OAAQkyR,eAAgB,cAC9DhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBC,2BAA4B,gBAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B8E,QAAS,GACTE,SAAU,GACV/N,YAAa,WACbF,kBAAmB,gBACnBI,aAAc,YAGtB,kBAAmB,CACfsI,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,kBAAmB8oF,GAA2BD,IAA4Bxf,eAAgB,gBAC5IpP,UAAW,CAAE9iR,QAAS,CAAC,KAAM,KAAM,KAAM,MAAOkyR,eAAgB,aAChEnP,WAAY,CAAE/iR,QAAS,CAAC,MAAO,MAAO,MAAO,OAAQkyR,eAAgB,cACrEhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,iBACtEjP,mBAAoB,CAAEjjR,QAAS,CAAC,kBAAmB,cAAekyR,eAAgB,oBAEtFxB,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBC,2BAA4B,kBAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B8E,QAAS,GACTE,SAAU,GACV/N,YAAa,WACbF,kBAAmB,kBACnBI,aAAc,YAGtBkqB,QAAS,CACL5hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,aAAc,CAAEhjR,QAASqyR,GAAgBxpE,EAAS,UAAW8oF,GAA2BD,IAA4Bxf,eAAgB,gBACpIhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,YAGtBmqB,OAAQ,CACJ7hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BlP,kBAAcv5Q,EACdy5Q,mBAAez5Q,IAEnBinR,uBAAwB,KAAM,CAC1B9K,qBAAsB,WACtBE,sBAAuB,iBAE3B6K,wBAAyB,KAAM,CAC3B/I,YAAa,WACbE,aAAc,mBAI1BwJ,WAAY4gB,GACZrhB,eAAgB6gB,GAChBhkB,uBAAwB,CACpB6kB,OAAQ,CAAC,4BACTC,aAAc,CAAC,2BAEnB7kB,mBAAoBwkB,KCpXfM,GAA6B,CACtC,CACIvkB,SAAU,CAAC,QAAS,QAAS,QAAS,QAAS,SAC/CiJ,oBAAqB,CACjB2a,OAAQ,CACJ,CACI3lB,UAAW,eACX4L,aAAc,MACd7F,eAAgB,gBAEpB,CACI/F,UAAW,eACX4L,aAAc,MACd7F,eAAgB,iBAGxB8f,QAAS,CACL,CACI7lB,UAAW,iBACX4L,aAAc,UACd7F,eAAgB,mBAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,0EACd7F,eAAgB,+DAEpB,CACI/F,UAAW,iBACX4L,aAAc,iGACd7F,eAAgB,iFAEpB,CACI/F,UAAW,iBACX4L,aAAc,uCACd7F,eAAgB,2CAKhC,CACIhE,SAAU,CAAC,SACXiJ,oBAAqB,CACjB0a,QAAS,CACL,CACI1lB,UAAW,WACX4L,aAAc,MACd7F,eAAgB,kBAEpB,CACI/F,UAAW,WACX4L,aAAc,MACd7F,eAAgB,mBAGxB8f,QAAS,CACL,CACI7lB,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,UACd7F,eAAgB,mBAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,uCACd7F,eAAgB,yCAEpB,CACI/F,UAAW,iBACX4L,aAAc,iGACd7F,eAAgB,iFAEpB,CACI/F,UAAW,iBACX4L,aAAc,0EACd7F,eAAgB,kEAKhC,CACIhE,SAAU,CAAC,SACXiJ,oBAAqB,CACjB0a,QAAS,CACL,CACI1lB,UAAW,aACX4L,kBAActuR,EACdyoR,oBAAgBzoR,EAChBuuR,mBAAoB,kBACpBC,mBAAoB,4BAG5B6Z,OAAQ,CACJ,CACI3lB,UAAW,aACX4L,kBAActuR,EACdyoR,oBAAgBzoR,EAChBuuR,mBAAoB,kBACpBC,mBAAoB,+BAExB,CACI9L,UAAW,aACX4L,aAAc,MACd7F,eAAgB,gBAEpB,CACI/F,UAAW,eACX4L,aAAc,MACd7F,eAAgB,gBAEpB,CACI/F,UAAW,eACX4L,aAAc,MACd7F,eAAgB,iBAGxB,kBAAmB,CAAC,CACZ/F,UAAW,aACX4L,kBAActuR,EACdyoR,oBAAgBzoR,EAChBuuR,mBAAoB,kBACpBC,mBAAoB,2BAG5Bga,OAAQ,CACJ,CACI9lB,UAAW,aACX4L,kBAActuR,EACdyoR,oBAAgBzoR,EAChBuuR,mBAAoB,kBACpBC,mBAAoB,2BAG5B+Z,QAAS,CACL,CACI7lB,UAAW,aACX4L,kBAActuR,EACdyoR,oBAAgBzoR,EAChBuuR,mBAAoB,kBACpBC,mBAAoB,2BAExB,CACI9L,UAAW,iBACX4L,aAAc,UACd7F,eAAgB,mBAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,MACd7F,eAAgB,cAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,sBACd7F,eAAgB,8BAEpB,CACI/F,UAAW,iBACX4L,aAAc,0EACd7F,eAAgB,+DAEpB,CACI/F,UAAW,iBACX4L,aAAc,iGACd7F,eAAgB,iFAEpB,CACI/F,UAAW,iBACX4L,aAAc,uCACd7F,eAAgB,4CCxPvBzD,GAA+B,CACxCmjB,MAAO,CAAC,SACRC,QAAS,CAAC,WACVa,YAAa,CAAC,cAAe,SAAU,UACvCC,KAAM,CAAC,OAAQ,iBACfC,OAAQ,CAAC,SAAU,kBAAmB,cACtCZ,QAAS,CAAC,WACVC,OAAQ,CAAC,WAEAY,GAAsB,CAC/B,QAAS,CACL,CACIhgB,gBAAiB,QACjBQ,gBAAiB,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACzEr9G,aAAc,kBACdhhD,SAAU,WCdT89K,GAAmB,EAAG35P,OAAMhzB,QAAOvjB,eAAiB,kBAAoB,MAAO,CAAEA,UAAW,wBAAuBA,EAAY,IAAIA,IAAc,KAC1J,kBAAoB,MAAO,CAAEA,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,gCACpCujB,GAAS,kBAAoB,KAAM,CAAEvjB,UAAW,6BAA8Bm+C,wBAAyB,CAC/FC,OAAQ76B,KAEhB,kBAAoB,MAAO,CAAEvjB,UAAW,4BAA6Bm+C,wBAAyB,CACtFC,OAAQ7H,QCNf45P,GAAgB,EAAG55P,OAAM65P,yBAAwB,EAAMpwS,eAC5Du2C,GAAQ65P,EACD,kBAAoBF,GAAkB,CAAE35P,KAAMA,EAAMv2C,UAAW,oCAAmCA,EAAY,IAAIA,IAAc,MAEpI,KCKEqwS,GAAmB,EAAGjhK,QAAOkhK,WAAU1jB,aAAY2jB,wBAAuBnqQ,OAAM6/K,UAASuqF,aAAY3hB,kBAAiB4hB,gBAAettB,wBAAuBI,qBAAoBpC,sBAAqBsH,0BAC9M,MAAMioB,GAAuB,IAAAp7P,UAAQ,KAAM,CACvC2wK,UACA+mE,oBAAqB59I,EACrB69I,uBAAwBqjB,EACxBzkB,6BAA4B,GAC5Be,gBACA,CAAC3mE,EAAS72E,EAAOw9I,EAAY0jB,KAC3B,EAAEh3S,GtBHL,SAAwBo2L,GAC7B,IAAIpmL,EAAQ1P,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,MACEssR,KAAMyqB,GACJrnS,GAEF48Q,KAAM0qB,EACNnY,UAAWoY,IACT,IAAAC,YAAW,KAAgB,CAAC,EAC1B5qB,EAAOyqB,GAAiBC,GHpBvBlqB,GGsBP,GADIR,IAASA,EAAK6qB,mBAAkB7qB,EAAK6qB,iBAAmB,IAAIxpB,KAC3DrB,EAAM,CACT,GAAS,0EACT,MAAM8qB,EAAY,CAAC5yS,EAAG6yS,IACc,iBAAvBA,EAAwCA,EAC/CA,GAAoD,iBAAvBA,GAA8E,iBAApCA,EAAmB9pF,aAAkC8pF,EAAmB9pF,aAC5Iv/M,MAAMC,QAAQzJ,GAAKA,EAAEA,EAAEvE,OAAS,GAAKuE,EAExC8yS,EAAc,CAACF,EAAW,CAAC,GAAG,GAIpC,OAHAE,EAAY53S,EAAI03S,EAChBE,EAAYhrB,KAAO,CAAC,EACpBgrB,EAAYv8O,OAAQ,EACbu8O,CACT,CACIhrB,EAAK9oR,QAAQiqR,YAAqCxgR,IAA5Bq/Q,EAAK9oR,QAAQiqR,MAAM51K,MAAoB,GAAS,uGAC1E,MAAM0/L,EAAc,IJtBblsQ,MIwBFihP,EAAK9oR,QAAQiqR,SACb/9Q,IAEC,YACJ29Q,EAAW,UACXa,GACEqpB,EACJ,IAAIzpB,EAAah4F,GAAMmhH,GAAwB3qB,EAAK9oR,SAAW8oR,EAAK9oR,QAAQq7R,UAC5E/Q,EAAmC,iBAAfA,EAA0B,CAACA,GAAcA,GAAc,CAAC,eACxExB,EAAK6qB,iBAAiBtpB,mBAAmBvB,EAAK6qB,iBAAiBtpB,kBAAkBC,GACrF,MAAM/yN,GAASuxN,EAAKC,eAAiBD,EAAK0jB,uBAAyBliB,EAAW3sQ,OAAMxhB,GNI/E,SAA4Bm2L,EAAIw2F,GACrC,IAAI9oR,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAKssR,EAAK7zM,WAAc6zM,EAAK7zM,UAAUx4E,YAIqBgN,IAArCq/Q,EAAK9oR,QAAQs7R,oBAI7BxS,EAAKsZ,mBAAmB9vG,EAAI,CACjC42F,IAAKlpR,EAAQkpR,IACbykB,SAAU,CAACrkB,EAAcmkB,KACvB,GAAIztS,EAAQupR,UAAYvpR,EAAQupR,SAASxsR,QAAQ,qBAAuB,GAAKusR,EAAawT,SAASiE,iBAAiB8I,SAAWvgB,EAAa0jB,uBAAyBS,EAAenkB,EAAa0jB,qBAAsB16G,GAAK,OAAO,CAAK,IA7B9O,SAAsCA,EAAIw2F,GACxC,IAAI9oR,EAAUxD,UAAUC,OAAS,QAAsBgN,IAAjBjN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM0sR,EAAMJ,EAAK7zM,UAAU,GACrBwrN,IAAc3X,EAAK9oR,SAAU8oR,EAAK9oR,QAAQygS,YAC1C+M,EAAU1kB,EAAK7zM,UAAU6zM,EAAK7zM,UAAUx4E,OAAS,GACvD,GAA0B,WAAtBysR,EAAIxlP,cAA4B,OAAO,EAC3C,MAAM+pQ,EAAiB,CAACvvS,EAAG/B,KACzB,MAAMuxS,EAAY5kB,EAAKgU,SAASiE,iBAAiB9hR,MAAM,GAAG/gB,KAAK/B,KAC/D,OAAsB,IAAfuxS,GAAkC,IAAdA,CAAe,EAE5C,QAAI1tS,EAAQupR,UAAYvpR,EAAQupR,SAASxsR,QAAQ,qBAAuB,GAAK+rR,EAAKgU,SAASiE,iBAAiB8I,SAAW/gB,EAAKkkB,uBAAyBS,EAAe3kB,EAAKkkB,qBAAsB16G,KAC3Lw2F,EAAKoT,kBAAkBhT,EAAK52F,IAC3Bw2F,EAAKgU,SAASiE,iBAAiB8I,WAAW/gB,EAAK9oR,QAAQmmQ,WAAc2iB,EAAK9oR,QAAQwrS,4BACnFiC,EAAevkB,EAAK52F,IAASmuG,IAAegN,EAAeD,EAASl7G,IAE1E,CASW0hH,CAA6B1hH,EAAIw2F,EAAM9oR,IAL9C,GAAS,yCAA0C8oR,EAAK7zM,YACjD,EAYX,CMpB2FmtN,CAAmBjmS,EAAG2sR,EAAMirB,KAC/GE,EAzCR,SAAsBnrB,EAAMn/N,EAAU8gO,EAAWC,GAC/C,OAAO,IAAAhpR,aAAY8oR,GAAW1B,EAAMn/N,EAAU8gO,EAAWC,GAAY,CAAC5B,EAAMn/N,EAAU8gO,EAAWC,GACnG,CAuCmBwpB,CAAaprB,EAAM58Q,EAAMg9Q,KAAO,KAA6B,aAAvB6qB,EAAYI,OAAwB7pB,EAAaA,EAAW,GAAII,GACjH0pB,EAAO,IAAMH,EACbI,EAAU,IAAM7pB,GAAW1B,EAAM58Q,EAAMg9Q,KAAO,KAA6B,aAAvB6qB,EAAYI,OAAwB7pB,EAAaA,EAAW,GAAII,IACnHxuR,EAAGo4S,IAAQ,IAAAl3S,UAASg3S,GAC3B,IAAIG,EAAWjqB,EAAW3lQ,OACtBzY,EAAMg9Q,MAAKqrB,EAAW,GAAGroS,EAAMg9Q,MAAMqrB,KACzC,MAAMC,EAzDY,EAACx4S,EAAOy4S,KAC1B,MAAM1xS,GAAM,IAAA9D,UAIZ,OAHA,IAAA5B,YAAU,KACR0F,EAAI1D,QAAiCrD,CAAK,GACzC,CAACA,EAAOy4S,IACJ1xS,EAAI1D,OAAO,EAoDOq1S,CAAYH,GAC/BI,GAAY,IAAA11S,SAAO,IACzB,IAAA5B,YAAU,KACR,MAAM,SACJksR,EAAQ,cACRC,GACEuqB,EAgBJ,SAASa,IACHD,EAAUt1S,SAASi1S,EAAKD,EAC9B,CAGA,OApBAM,EAAUt1S,SAAU,EACfk4D,GAAUsyN,IACT39Q,EAAMg9Q,IACRD,GAAcH,EAAM58Q,EAAMg9Q,IAAKoB,GAAY,KACrCqqB,EAAUt1S,SAASi1S,EAAKD,EAAQ,IAGtCrrB,GAAeF,EAAMwB,GAAY,KAC3BqqB,EAAUt1S,SAASi1S,EAAKD,EAAQ,KAItC98O,GAASi9O,GAAoBA,IAAqBD,GAAYI,EAAUt1S,SAC1Ei1S,EAAKD,GAKH9qB,GAAYT,GAAMA,EAAK/kR,GAAGwlR,EAAUqrB,GACpCprB,GAAiBV,GAAMA,EAAKghB,MAAM/lS,GAAGylR,EAAeorB,GACjD,KACLD,EAAUt1S,SAAU,EAChBkqR,GAAYT,GAAMS,EAASz7P,MAAM,KAAK5rB,SAAQjG,GAAK6sR,EAAKr7L,IAAIxxF,EAAG24S,KAC/DprB,GAAiBV,GAAMU,EAAc17P,MAAM,KAAK5rB,SAAQjG,GAAK6sR,EAAKghB,MAAMr8M,IAAIxxF,EAAG24S,IAAY,CAChG,GACA,CAAC9rB,EAAMyrB,KACV,IAAAl3S,YAAU,KACJs3S,EAAUt1S,SAAWk4D,GACvB+8O,EAAKF,EACP,GACC,CAACtrB,EAAM4B,EAAWnzN,IACrB,MAAMwiH,EAAM,CAAC79K,EAAG4sR,EAAMvxN,GAItB,GAHAwiH,EAAI79K,EAAIA,EACR69K,EAAI+uG,KAAOA,EACX/uG,EAAIxiH,MAAQA,EACRA,EAAO,OAAOwiH,EAClB,IAAKxiH,IAAUsyN,EAAa,OAAO9vG,EACnC,MAAM,IAAI9zK,SAAQ6jC,IACZ59B,EAAMg9Q,IACRD,GAAcH,EAAM58Q,EAAMg9Q,IAAKoB,GAAY,IAAMxgP,MAEjDk/O,GAAeF,EAAMwB,GAAY,IAAMxgP,KACzC,GAEJ,CsB5FkB,GACR+qQ,GAAY,IAAA38P,UAAQ,IAAM,IAAIggP,GAAoBob,IAAuB,CAACA,IAC1EwB,GAAc,IAAA58P,UAAQ,IAAM28P,EAAUvhB,eAAetqP,EAAM6pQ,KAAsB,CAACgC,EAAW7rQ,IAC7FktK,GAAU,IAAAj3M,SAAO,IAChB89C,EAAaoQ,IAAkB,IAAA/vD,UAAS,GACzC81D,EAAe,GACf6hP,GAAa,IAAA91S,QAAO,IACrBi3M,EAAQ72M,UACT01S,EAAW11S,QAAUw1S,EAAUzkB,gBAAgB0kB,IAEnD,MAAME,EAAkBH,EAAUtc,aAC5B0c,EAA8BJ,EAAUnkB,yBACxCwkB,EAA6BL,EAAUpc,0BAA0B1U,IAChE7lO,EAAYi3P,IAAoB,IAAA/3S,UAASU,KAAK+S,KAAKkkS,EAAW11S,QAAQ5C,OAASy2D,IAChFkiP,GAAe,IAAAn2S,QAAO81S,EAAW11S,SACjCgtJ,EAAcyoJ,EACfpsS,QAAQy5B,GAASA,EAAKkqP,iBAAiB3oP,gBACxCwvQ,GAAUxvQ,eACVvB,EAAKkqP,iBAAiB3oP,gBAClBsuG,EAAMtuG,gBACTl4B,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,GACrD8yM,EAAYotC,EAAW1qS,QAAOy5B,GAAQA,EAAKkqP,iBAAiB3oP,gBAAkBwvQ,GAAUxvQ,eAAiBvB,EAAKkqP,iBAAiB3oP,gBAAkBsuG,EAAMtuG,iBACtJ2xQ,EAAcC,IAAmB,IAAAl4S,UAASivJ,IAC1CkpJ,EAAmBC,IAAwB,IAAAp4S,UAAS4oQ,IAUpDyvC,EAAcC,IAAmB,IAAAt4S,UATZ,CACxB46Q,WAAY,GACZ4P,YAAa,GACbF,kBAAmB,GACnBI,aAAc,SACdyN,gBAAiB,GACjBE,QAAS,GACTE,SAAU,KAGRggB,EAAqB,CAAC9jB,EAAY+jB,KACpCF,GAAiB1hF,IAAc,IACxBA,EACH,CAAC69D,GAAa+jB,KACf,GAEA1vB,EAA4B2vB,IAAiC,IAAAz4S,WAAS,IACtE04S,EAAsBC,IAA0B,IAAA34S,WAAS,IAAM+1S,EAAsBhnR,QAAO,CAAC4lQ,EAAmBikB,KACnH,MAAMC,EAAUrkB,GAAoBokB,GACpC,MAAO,IACAjkB,EACH,CAACkkB,GAAUhB,EAA4BgB,IAAY,GACrD,GACH,CAAC,KACEC,EAAyB,CAC3BtuB,YAAa6tB,EAAa7tB,YAC1BF,kBAAmB+tB,EAAa/tB,kBAChCI,aAAc2tB,EAAa3tB,aAC3ByN,gBAAiBkgB,EAAalgB,gBAC9BE,QAASggB,EAAahgB,QACtBE,SAAU8f,EAAa9f,UAErBwgB,EAA2B,CAACtkB,EAAYukB,KAC1CL,GAAwBM,IAAe,IAChCA,EACH,CAACxkB,GAAaukB,KACf,EAEDE,GAAsB,IAAA50S,cAAY,CAACkmR,EAAa2N,EAAiB7N,EAAmB+N,EAASE,EAAUxU,KACzG,MAAMo1B,EAAqBjgB,GAAsB,CAAEnV,eAAcyG,cAAayE,gBAAiBr6I,EAAOujJ,kBAAiB7N,oBAAmB+N,UAASE,WAAU9sE,WAAWksF,EAAW11S,SACnL+1S,EAAa/1S,QAAUk3S,EACvBjB,EAAgBiB,EAAmB/qS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,GAAc,GACxG,CAAC21J,EAAS9rK,EAAai1F,IACpBwkK,GAAyB,IAAA90S,cAAY,CAACkmR,EAAaF,EAAmBI,KACxE0tB,EAAqBpC,EAAW1qS,QAAQy5B,IAAUA,EAAKkqP,kBAAoBr6I,GAAS7vG,EAAKkqP,kBAAoB3E,GAAqBvlP,EAAKkqP,kBAAoB,GAAGr6I,KAAS01I,MAChKmtB,EAAU7jB,gCAAgC7uP,EAAKylP,YAAaA,IAC5DitB,EAAUpnB,6BAA6BtrP,EAAKspP,eAAgB3D,KAAe,GACnF,CAAC+sB,EAAW7iK,EAAOohK,IAChBqD,GAAsB,IAAA/0S,cAAY,KACpC80S,EAAuBf,EAAa7tB,YAAa6tB,EAAa/tB,kBAAmB+tB,EAAa3tB,aAAa,GAC5G,CAAC2tB,EAAa7tB,YAAa4uB,EAAwBf,EAAa3tB,aAAc2tB,EAAa/tB,oBACxFgvB,GAAqB,IAAAh1S,cAAa0iD,IACpC+I,EAAe,GACf,MAAMwpP,EAAkB/gB,GAAiBmf,EAAW11S,QAAS+kD,GAC7DgxP,EAAa/1S,QAAUs3S,EACvBrB,EAAgBqB,EAAgBnrS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACtFiiP,EAAiBr3S,KAAK+S,KAAK8lS,EAAgBl6S,OAASy2D,IACpDyiP,EAAmB,aAAcvxP,GACjCivP,GAAe,GAChB,CAACt2P,EAAas2P,IACXuD,GAA8B,IAAAl1S,cAAY,CAAC1F,EAAO66S,GAAiB,KAErE,GADA1pP,EAAe,GACD,QAAVnxD,EAAiB,CACjB,MAAMu6S,EAAqBjgB,GAAsB,CAAE1O,YAAa6tB,EAAa7tB,YAAayE,gBAAiBr6I,EAAOujJ,gBAAiBv5R,EAAO0rR,kBAAmB+tB,EAAa/tB,kBAAmB+N,QAASggB,EAAahgB,QAASE,SAAU8f,EAAa9f,SAAU9sE,WAAWksF,EAAW11S,SACnR+1S,EAAa/1S,QAAUk3S,EACvBjB,EAAgBiB,EAAmB/qS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACzFiiP,EAAiBr3S,KAAK+S,KAAK0lS,EAAmB95S,OAASy2D,GAC3D,KACK,CACD,MAAMyjP,EAAkB5B,EAAW11S,QAAQqJ,QAAQy5B,GAASA,EAAKozP,kBAAoBv5R,IAC/Eu6S,EAAqBjgB,GAAsB,CAAE1O,YAAa6tB,EAAa7tB,YAAayE,gBAAiBr6I,EAAOujJ,gBAAiBv5R,EAAO0rR,kBAAmB+tB,EAAa/tB,kBAAmB+N,QAASggB,EAAahgB,QAASE,SAAU8f,EAAa9f,SAAU9sE,WAAW8tF,GACxQvB,EAAa/1S,QAAUk3S,EACvBjB,EAAgBiB,EAAmB/qS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACzFiiP,EAAiBr3S,KAAK+S,KAAK0lS,EAAmB95S,OAASy2D,GAC3D,CACAyiP,EAAmB,kBAAmB35S,GACtC66S,GAAkBV,EAAyB,kBAAmBn6S,GAC9Dy6S,IACApD,GAAe,GAChB,CAACoD,EAAqBpD,EAAeoC,EAAa7tB,YAAa6tB,EAAa/tB,kBAAmB+tB,EAAahgB,QAASggB,EAAa9f,SAAU3jJ,EAAO62E,EAAS9rK,IACzJ+5P,GAAsB,IAAAp1S,cAAY,CAAC+zR,EAASohB,GAAiB,KAC/D1pP,EAAe,GACf,MAAMwpP,EAAkBlhB,EAAUsf,EAAW11S,QAAQqJ,QAAQy5B,GAASA,EAAKszP,UAAYA,IAAWsf,EAAW11S,QAC7G+1S,EAAa/1S,QAAUs3S,EACvBrB,EAAgBqB,EAAgBnrS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACtFiiP,EAAiBr3S,KAAK+S,KAAK8lS,EAAgBl6S,OAASy2D,IACpDyiP,EAAmB,UAAWlgB,GAC9BohB,GAAkBV,EAAyB,UAAW1gB,GACtDghB,IACApD,GAAe,GAChB,CAACt2P,EAAa05P,EAAqBpD,IAChC0D,GAAuB,IAAAr1S,cAAY,CAACi0R,EAAUkhB,GAAiB,KACjE1pP,EAAe,GACf,MAAMwpP,EAAkBhhB,EAAWof,EAAW11S,QAAQqJ,QAAQy5B,GAASA,EAAKwzP,WAAaA,IAAYof,EAAW11S,QAChH+1S,EAAa/1S,QAAUs3S,EACvBrB,EAAgBqB,EAAgBnrS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACtFiiP,EAAiBr3S,KAAK+S,KAAK8lS,EAAgBl6S,OAASy2D,IACpDyiP,EAAmB,WAAYhgB,GAC/BkhB,GAAkBV,EAAyB,WAAYxgB,GACvD8gB,IACApD,GAAe,GAChB,CAACt2P,EAAa05P,EAAqBpD,IAChC2D,IAA0B,IAAAt1S,cAAY,CAACkmR,EAAaivB,GAAiB,KACvElB,EAAmB,cAAe/tB,GAClCivB,GAAkBV,EAAyB,cAAevuB,GAC1D4uB,EAAuB5uB,EAAa6tB,EAAa/tB,kBAAmB+tB,EAAa3tB,cACjFwuB,EAAoB1uB,EAAa6tB,EAAalgB,gBAAiBkgB,EAAa/tB,kBAAmB+tB,EAAahgB,QAASggB,EAAa9f,SAAU8f,EAAaz9B,YACzJq7B,GAAe,GAChB,CAACoC,EAAahgB,QAASggB,EAAa9f,SAAU8f,EAAalgB,gBAAiBkgB,EAAaz9B,WAAYy9B,EAAa/tB,kBAAmB8uB,EAAwBF,EAAqBb,EAAa3tB,aAAcurB,IAC1M4D,IAA2B,IAAAv1S,cAAY,CAAComR,EAAc+uB,GAAiB,KACzElB,EAAmB,eAAgB7tB,GACnC+uB,GAAkBV,EAAyB,eAAgBruB,GAC3D0uB,EAAuBf,EAAa7tB,YAAa6tB,EAAa/tB,kBAAmBI,GACjFurB,GAAe,GAChB,CAACoC,EAAa7tB,YAAa6tB,EAAa/tB,kBAAmB8uB,EAAwBnD,IAChF6D,IAA0B,IAAAx1S,cAAY,CAACgmR,EAAmBmvB,GAAiB,KAC7E1pP,EAAe,GACf,IAAIwpP,EAAkB,GAElBA,EADU,gBAAV3kK,EACkB8iK,EAAYpsS,QAAQy5B,GAAQA,EAAKkqP,iBAAiBnuQ,SAASwpQ,KAG3DotB,EAAYpsS,QAAQy5B,GAAQA,EAAKkqP,iBAAiBnuQ,SAASwpQ,IAAsBvlP,EAAKkqP,iBAAiBnuQ,SAAS8zH,KAEtI6iK,EAAUxc,SAAS,CACfD,mBAAoB1Q,IAExB,MAAMyvB,EAAuBtC,EAAUzkB,gBAAgBumB,GACjDJ,EAAqBjgB,GAAsB,CAAE1O,YAAa6tB,EAAa7tB,YAAayE,gBAAiBr6I,EAAOujJ,gBAAiBkgB,EAAalgB,gBAAiB7N,oBAAmB+N,QAASggB,EAAahgB,QAASE,SAAU8f,EAAa9f,SAAU9sE,WAAWsuF,GAC/PpC,EAAW11S,QAAU83S,EACrB/B,EAAa/1S,QAAUk3S,EACvBjB,EAAgBiB,EAAmB/qS,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IACzFiiP,EAAiBr3S,KAAK+S,KAAK0lS,EAAmB95S,OAASy2D,IACvDyiP,EAAmB,oBAAqBjuB,GACxCmvB,GAAkBV,EAAyB,oBAAqBzuB,GAChE8uB,EAAuBf,EAAa7tB,YAAaF,EAAmB+tB,EAAa3tB,cACjFurB,GAAe,GAChB,CAACrhK,EAAO6iK,EAAWY,EAAa7tB,YAAa6tB,EAAalgB,gBAAiBkgB,EAAahgB,QAASggB,EAAa9f,SAAU8f,EAAa3tB,aAAcj/D,EAAS9rK,EAAay5P,EAAwBnD,EAAeyB,IAC7MsC,IAAmB,IAAAl/P,UAAQ,KAAM,CACnCq9O,gBAAiBqhB,EACjBnhB,QAASqhB,EACTnhB,SAAUohB,EACVnvB,YAAaovB,GACblvB,aAAcmvB,GACdvvB,kBAAmBwvB,MACnB,CAACF,GAAyBF,EAAqBC,EAAsBE,GAA0BL,EAA6BM,KAC1HG,IAA8B,IAAA31S,cAAY,KAC5C,MAAM41S,EAAoBzC,EAAUlkB,0BACpC70R,OAAOolC,QAAQo2Q,IAAoBp1S,SAAQ,EAAEq1S,EAAYC,WACzB,IAAjBA,GAGXJ,GAAiBG,KAAcC,GAAc,EAAK,GACpD,GACH,CAAC3C,EAAWuC,KACTK,IAAwB,IAAA/1S,cAAY,KACtC21S,KACAxB,GAA8B,EAAK,GACpC,CAACwB,MACJ,IAAAh6S,YAAU,KACF6oR,GACA2vB,GAA8B,EAClC,GACD,CAAC3vB,IACJ,MAAMwxB,IAAgB,IAAAz4S,QAAO,MACvB,IAAwB,IAAAyC,cAAY,KACtC,MAAMi2S,EAAuBD,GAAcr4S,SAAS8E,wBAAwBC,IACtEwzS,EAAWvzS,SAAS4gB,KAAKwT,cAAc,gBAAahvB,EACpDouS,EAAeD,GAAUzzS,wBAAwBtF,OACvD,QAAoC,IAAzB84S,QAAgE,IAAjBE,EAA8B,CACpF,MAAMC,EAAYx6S,OAAOy6S,QAAUJ,EAAuBE,EAC1Dv6S,OAAOqnC,OAAO,EAAGmzQ,EACrB,IACD,KAWH,IAAAz6S,YAAU,KACNi4S,EAAgBF,EAAa/1S,QAAQmM,MAAMuxC,EAAcmW,GAAenW,EAAc,GAAKmW,IAC3FmgP,GAAe,GAChB,CAACt2P,EAAas2P,KACjB,IAAAh2S,YAAU,KACF64M,EAAQ72M,QACR,KAGA62M,EAAQ72M,SAAU,CACtB,GACD,CAAC09C,EAAa,KACjB,MAAMi7P,IAA+B,IAAA/4S,SAAO,IAC5C,IAAA5B,YAAU,KACF26S,GAA6B34S,UAGjCg4S,KACAW,GAA6B34S,SAAU,EAAI,GAC5C,CAACg4S,MACJ,IAAAh6S,YAAU,KACNm5S,EAAuBf,EAAa7tB,YAAa6tB,EAAa/tB,kBAAmB+tB,EAAa3tB,cAC9FwuB,EAAoBb,EAAa7tB,YAAa6tB,EAAalgB,gBAAiBkgB,EAAa/tB,kBAAmB+tB,EAAahgB,QAASggB,EAAa9f,SAAU8f,EAAaz9B,WAAW,GAClL,CAACy9B,EAAa7tB,YAAa6tB,EAAahgB,QAASggB,EAAa9f,SAAU6gB,EAAwBF,EAAqBb,EAAa3tB,aAAc2tB,EAAalgB,gBAAiBkgB,EAAaz9B,WAAYy9B,EAAa/tB,qBACvN,IAAArqR,YAAU,KACN83S,EAAiBr3S,KAAK+S,KAAKukS,EAAa/1S,QAAQ5C,OAASy2D,GAAc,GACxE,CAACkiP,EAAa/1S,QAAQ5C,SACzB,MAAMw7S,GAAmBrjB,GAAkB2gB,GAErC/c,GAAiBqc,EAAUtjB,iBADHkkB,EAAa/tB,mBAAqBwrB,GAAYlhK,EACPy/I,GAC/DymB,GAAuB,IAAI/G,GAA2B,CAAEtoF,UAAS+mE,oBAAqB59I,EAAO69I,uBAAwBqjB,EAAU9B,2BAA4BqB,GAA4Blb,oBAAqBr7R,KAC5M,eAAEu1S,IAAmBJ,IAA0B,KACjDgC,GAAe,IAEb8E,GAA0B,iBAAkB,KAC9C1G,IAAgB,GACjB,CAACA,KACEprB,GAAoBoN,GAAqBuhB,GACzChC,IAAyB3sB,IAAmBgO,aAAan2Q,SAAS,iBACxE,OAAQ,kBAAoB,MAAO,CAAEnb,IAAK20S,GAAe90S,UAAW,sBAChE,kBAAoB,KAAW,KAC3B,kBAAoBmwS,GAAe,CAAEC,sBAAuBA,GAAuB75P,KAAMq/O,IAAgB4f,cAAex1S,UAAW,uCACnI,kBAAoB4iR,GAAsB,IAAKwvB,KAAoBC,EAA6B5uB,kBAAmBA,GAAmBnpO,eAAgBw5P,EAAoBjzB,wBAAyBmzB,EAA6BlzB,gBAAiBozB,EAAqBnzB,iBAAkBozB,EAAsBnzB,oBAAqBozB,GAAyBlzB,qBAAsBmzB,GAA0BpzB,0BAA2BqzB,GAAyBnxB,sBAAuBA,EAAuBC,uBAAwBmyB,GAAyBlyB,kBAAmBwxB,GAAuBvxB,2BAA4BA,EAA4BC,mBAAoBA,EAAoBC,wBApD7oB,MAChC,IAAK,MAAMyL,KAAcikB,EACrB,GAAIh6S,OAAOY,UAAUC,eAAeC,KAAKk5S,EAAsBjkB,IACvDikB,EAAqBjkB,KAAgBqkB,EAAuBrkB,GAC5D,OAAO,EAInB,OAAO,CAAI,EA4C2rBwmB,GAA+Bt0B,oBAAqBmxB,IACtvBh3P,EAAa,EACT,kBAAoB,MAAO,CAAEt7C,UAAW,kCACpC,kBAAoBsoR,GAAoB,CAAEliP,KAAMqsQ,EAAclqB,WAAY0pB,EAAU1lB,qBAAqB8oB,GAAkBxC,EAAa3tB,cAAellR,UAAW,yBAAyBovI,IAASo5I,qBAAsBypB,EAAU9jB,0BAA2B1F,oBAAqBA,EAAqBC,uBAAwB4sB,GAAqBxgB,sBAA0B,kBAAoB,MAAO,CAAE90R,UAAW,2EAC5Z,KACA,kBAAoB,OAAQ,KAAM,qBACtCs7C,EAAa,GAAK,kBAAoB,MAAO,CAAEt7C,UAAW,wBACtD,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAaA,EAAamB,WAAYA,EAAYiP,eAAgBA,EAAgBhP,eAAe,MACnJq6O,IAAkB,kBAAoB5N,GAAuB,IAAK4N,KAAmB,EC3QvF2a,GAAwB,CAAC,kBAAmB,UAAW,WAAY,cAAe,eAAgB,qBAC3FmF,GAAqBpsS,IAC9B,MAAMu3M,EAAY,YACVnwJ,UAAWjW,IAAS,WACtBk7P,EAAqB,eAAmBh/G,IAC1CkqB,EAAUpkN,QAAUk6L,CAAM,GAC3B,IACGi/G,EAA2B,eAAkB,KAC/C/0F,EAAUpkN,SAASgqC,QAAQ,GAC5B,IASH,aAAgB,KACZo6K,EAAUpkN,SAAS4lM,QAAQ/4L,EAAMusS,eAAe,GACjD,CAACvsS,EAAMusS,iBACV,aAAgB,KACZn7S,OAAOG,iBAAiB,OAAQ+6S,GACzB,KACHl7S,OAAOK,oBAAoB,OAAQ66S,EAAyB,IAEjE,CAACA,IACJ,MAAME,EAAiBxsS,EAAMsjR,YAAc6iB,GAAuBnmS,EAAM28M,SACxE,OAAK0mE,GAAqBrjR,EAAM28M,QAAS6vF,GAKjC,gBAAoB,KAAa,KACrC,gBAAoB,MAAO,CAAE91S,UAAW,wCACpC,gBAAoB,MAAO,CAAEA,UAAW,gCACpC,gBAAoB,MAAO,CAAEA,UAAW,wBACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,yCAChD,gBAAoB,EAAA+1S,SAAU,CAAEC,SAAU,gBAAoB,MAAO,CAAEh2S,UAAW,mBAC1E,gBAAoB2iD,GAAA,EAAgB,QACxC,gBAAoB,GAAQ,CAAEszP,aAAcN,EAAoBpvQ,OAAiB,UAATkU,EAAmB,YAAS5zC,EAAWgyM,WAAY,CACnHxnL,GAAI,sCACJynL,WAAW,EACXM,aAlCK,CAACtyK,EAAO9mC,KACjC,MAAM,MAAEujB,EAAK,QAAE+tK,EAAO,cAAE4kH,GAAkB5sS,EAAMm4C,MAAM3a,GAGtD,MAAO,kEAAkE9mC,kCADtBsxL,8BADrB4kH,GAAiB5kH,GAAW,uCAGpC/tK,MAAUA,wBACzB,GA6BYyuL,QAAS,CAAC6L,GAAY7E,IAAah5M,UAAW,2BAA4BmgM,YAAY,EAAM+G,gBAAgB,GAAShuM,OAAO+wD,OAAO3gD,EAAMm4C,OAAO91C,KAAI,CAAC09B,EAAOvC,IAAW,gBAAoBm9K,GAAa,CAAE99M,IAAK2gC,GAClN,gBAAoBupQ,GAAkB,CAAEE,sBAAuBA,GAAuBhtR,MAAO8lB,EAAM9lB,MAAO6rH,MAAO/lG,EAAM+lG,MAAOkhK,SAAUjnQ,EAAMinQ,SAAU6F,uBAAwB9sQ,EAAM8sQ,uBAAwB/vQ,KAAM98B,EAAM88B,KAAM6/K,QAAS38M,EAAM28M,QAAS2mE,WAAYkpB,EAAgBtF,WAAYlnS,EAAM85P,UAAWyrB,gBAAiBvlR,EAAMssR,eAAgB6a,cAAemF,EAA0BryB,oBAAoB,EAAOpC,oBAAqB73Q,EAAM63Q,oBAAqBsH,oBAAqBn/Q,EAAMm/Q,8BAjB/e,gBAAoB,KAAa,KACrC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEzoR,UAAW,8BAAgC,2EAesc,ECrDjhBo2S,GAAsB,EAAG7yR,QAAOk+B,QAAO6gN,gBAAeC,mBAAkBtiQ,WAAUo2S,sBAC3F,MAAO7zC,EAAmBC,IAAwB,IAAAjoQ,UAASinD,EAAMmK,WAAWnyD,GAAMA,EAAE8pB,QAAUg/O,MACvF9nN,EAAMC,IAAW,IAAAlgD,UAAS,gBAC3BogD,EAAgBH,IAClBC,EAAQD,EAAK,GAEjB,IAAAhgD,YAAU,KACN,eAAwBmgD,GACjB,KACH,iBAA0BA,EAAa,IAE5C,CAACH,IACJ,MAAMioN,GAAoB,IAAA5jQ,cAAak8B,IACnC,GAAa,UAATyf,EAAkB,CAClBzf,EAAMvb,iBACN,MAAMqnB,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtEyyE,EAAqB37N,GACrBw7N,EAAc7gN,EAAM3a,GAAOm9N,OAC/B,IACD,IACGtB,GAAqB,IAAA7jQ,cAAak8B,IACpC,GAAIA,EAAMshD,QAAQziF,OAAS,EAAG,CAC1B,MAAMitC,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtEyyE,EAAqB37N,EACzB,CACA,GAAa,UAAT2T,GAAoBzf,EAAMshD,QAAQziF,QAAU,EAAG,CAC/C,MAAMitC,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtEyyE,EAAqB37N,GACrBw7N,EAAc7gN,EAAM3a,GAAOm9N,OAC/B,IACD,IACGqyC,GAAoB,IAAAx3S,cAAak8B,IACnCynO,GAAsB,EAAE,GACzB,IACH,OAAQ,kBAAoB,MAAO,CAAEziQ,UAAW,0BAC5CujB,GAAU,kBAAoB,KAAM,CAAEvjB,UAAW,gCAAiCm+C,wBAAyB,CAAEC,OAAQ76B,KACrH,kBAAoB,MAAO,CAAEvjB,UAAW,iCAAmCyhD,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,+BAA+B1M,IAAKuG,UAAW,iCAAiCwiQ,IAAsB/oQ,GACnO,wCAAyC,UAAWA,EAAG8iB,QAASmmP,EAAmB/9D,aAAcg+D,EAAoBp7D,YAAa+uG,GACtI,kBAAoB,MAAO,CAAEt2S,UAAW,sCAC7B,IAANvG,GAAW48S,GAAoB,kBAAoB,MAAO,CAAEr2S,UAAW,8BAA+B,WACvGu/B,EAAKhc,WACbtjB,EAAU,ECtCLs2S,GAA8B,EAAGnzC,YAAWC,kBAAiBC,cAAaE,aAAYlL,UAASD,QAAOoL,eAAc+yC,iBAAgBC,gBAAeC,kBAAiBC,4BAA2BC,yBAAwBC,kBAAiB5wF,UAAS6wF,cAAa,EAAOvtF,sBAAqB,MACnS,MAAOr2B,EAAa8kE,IAAkB,IAAAx9P,UAAS,KACxCopQ,EAAqBC,IAA0B,IAAArpQ,UAAS,KACxD+nQ,EAAkByB,IAAuB,IAAAxpQ,UAASipQ,GACnDxL,GAAgB,IAAA57P,QAAO,IAAI+C,KAC3B84P,GAAgB,IAAA77P,QAAO,IAAI+C,KACjC,SAAS23S,EAAc3wQ,EAAMjgC,GACzB,IAAK,MAAM6/M,KAAY5/K,EACnB,GAAI4/K,EAAS7/M,GACT,OAAO6/M,EAAS7/M,GAGxB,MAAO,EACX,CACA,MAAM6oS,EAAQ+H,EAAcF,EAAiB,SACvC5H,EAAU8H,EAAcF,EAAiB,WACzC/G,EAAciH,EAAcF,EAAiB,eAC7C9G,EAAOgH,EAAcF,EAAiB,QACtCzH,EAAU2H,EAAcF,EAAiB,WACzCG,EAASD,EAAcF,EAAiB,UACxCxH,EAAS0H,EAAcF,EAAiB,UACxCI,EAAUF,EAAcF,EAAiB,YAAYlrS,KAAI4zB,GAAQA,IAASo3Q,EAA4BC,EAAyBr3Q,IAC/HqjO,EAAiB,CACnB,GAAI,GACJC,MAAOmsC,EACP1zO,QAAS2zO,EACTnsC,YAAagtC,EACb/sC,KAAMgtC,EACN/sC,QAASosC,EACTnsC,OAAQ+zC,EACR/sO,OAAQolO,EACRnsC,QAAS+zC,IAEb,IAAAx8S,YAAU,KACN,IAAI09P,EACAxyJ,EACJ,MAAMuxM,EAAiB,KACnB/+C,EAAY,IAAIC,UAAU,GAAGC,gBAAoBC,KACjDH,EAAUI,WAAa,cACvB,MAAMC,GAAc,IAAIrJ,aAAcC,OAAO,QAC7C+I,EAAUM,OAAS,KACf9yJ,EAAW0a,aAAY,KACnB83I,EAAU5hM,KAAKiiM,EAAY,GAC5B,IAAK,EAEZL,EAAU/8I,UAAapgF,IACnB,MAAMoL,EAAOpL,EAAMoL,KACb+a,EAAU22M,GAAK1B,QAAQhwN,EAAM,CAAE+sF,GAAI,WACrChyE,GACAg2P,EAAkCh2P,EACtC,CACH,EAQL,OANA+1P,IACA16S,YAAW,KACF27P,EAAUi/C,MACXF,GACJ,GACD,KACI,KACH5+N,cAAcqtB,GACdwyJ,EAAU14L,OAAO,CACpB,GACF,CAAC8iM,KACJ,IAAA9nQ,YAAU,KACNopQ,EAAuB3wE,EAAYptL,QAAQy5B,GAASA,EAAK85N,YAAckJ,IAAkB,GAC1F,CAACA,EAAkBrvE,IACtB,MAAMikH,EAAqCh2P,IACvC,MAAMsvM,EAAO11K,KAAKC,MAAM75B,GAClB+xI,EAAc,GACpB,IAAK,MAAM/sL,KAAOsqP,EACd,GAAItqP,EAAImV,SAAS,SAAU,CACvB,MAAM8zH,EAAQjpI,EAAI+kB,MAAM,KAAK,GACvBytO,EAAe59K,KAAKC,MAAMy1K,EAAKtqP,IACrC,GAAIy8P,EAAexzH,EAAMtuG,gBAAgBxlB,SAASq9O,EAAaI,MAAO,CAClE,MAAMF,EAAcC,EAAgB1pH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GAC5FyI,EAAUhB,EAAcz7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DI,EAAUlB,EAAcx7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DK,EAAa,CACfnjO,KAAM0iO,EAAaI,KACnBM,UAAWjqH,EACXkqH,IAAKX,EAAaK,IAClBO,SAAUC,EAAYb,EAAaK,IAAKE,GACxCO,QAASyK,EAAWvL,EAAaK,IAAKE,GACtCQ,IAAKf,EAAaM,IAClBU,SAAUH,EAAYb,EAAaM,IAAKE,GACxCS,QAASsK,EAAWvL,EAAaM,IAAKE,GACtCU,OAAQC,EAAW1qH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GACjFoI,YAAa,GAAGA,KAChBkB,iBAAkBA,GAAkBlB,GACpCmB,gBAAiBA,GAAiBnB,IAEtCZ,EAAcx7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaM,KAC1Df,EAAcz7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaK,KAC1D9lE,EAAY7uL,KAAK+0P,EACrB,CACJ,CAEJpB,EAAe9kE,GACf2wE,EAAuB3wE,EAAYptL,QAAQy5B,GAASA,EAAK85N,YAAckJ,IAAkB,EAEvFzI,EAAa,CAAC1qH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KACvC,MAAM0J,EAAap/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBn5G,MAC1D,IAAImkO,EAAmB,EACnBC,EAAW,EACf,GAAI5J,EAAK,GAAGrhH,oBAAwBn5G,KAAS,CACzC,MAAMqkO,EAAiBv/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,oBAAwBn5G,MAClEmkO,EACIE,EAAeC,kBAAoBJ,EAAWI,iBAClDF,EAAWC,EAAeE,UAAYL,EAAWK,QACrD,MAEIJ,EAAmBD,EAAWI,iBAC9BF,EAAWF,EAAWK,SAE1B,IAAIC,EAAUJ,GAAY,EAAM,EAAID,EAGpC,OAFAK,EAAUA,EAAU,EAAIA,EAAU,EAAIA,IACrBf,EAAMJ,GAAOp+P,KAAKkkG,IAAI,GAAIq7J,IAAUlmM,QAAQ,EAChD,EAEXukM,EAAkB,CAAC1pH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KAC5C,MACM9wO,GADM,IAAIvI,MACA8mF,aAAe,EAC/B,GAAIuyJ,EAAK,GAAGrhH,uBAA2Bn5G,KAAQtW,KAAQ,CACnD,MACM+6O,EADe3/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,uBAA2Bn5G,KAAQtW,MAC5Cg7O,WAAa,EAI5C,MAAO,MAHsBjB,EAAMJ,GAAO,EACDoB,GACLA,EAAa,KAAKnmM,QAAQ,IAElE,CACA,MAAO,KAAK,EAEVilM,EAAc,CAACoB,EAAcC,IAC3BD,GAAgBC,EACT,uBAGA,uBAGTd,EAAoB3gQ,GAClBA,GAAS,EACF,uBAGA,uBAGT8qQ,EAAa,CAACtJ,EAAcC,IAC1BD,GAAgBC,GACT,WAGA,UAGTb,EAAmB5gQ,GACjBA,GAAS,GACF,WAGA,UAGTspQ,GAAoB,IAAA5jQ,cAAamlQ,IACnCD,EAAoBC,EAAO,GAC5B,IACH,OAAQ,kBAAoB,MAAO,CAAEjkQ,UAAW,qBAC5C,kBAAoBo2S,GAAqB,CAAE30P,MAAO6hN,EAAaf,iBAAkBkB,EAAcnB,cAAeI,EAAmB2zC,iBAAiB,IAClJ,kBAAoB,MAAO,CAAEr2S,UAAW,kCACpC,kBAAoB,QAAS,CAAEA,UAAW,0BACtC,kBAAoB,QAAS,KACzB,kBAAoB,KAAM,CAAEA,UAAW,sBACnCojQ,EAAUz3P,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,KAAM,CAAE0M,IAAK,0BAA0B1M,IAAKuG,UAAW,0BAA4Bu/B,EAAKhc,SACxIuzR,GAAc,kBAAoB,KAAM,CAAE92S,UAAW,mDACzD,kBAAoB,KAAM,KACtBojQ,EAAUz3P,KAAI,CAAC8D,EAAGhW,IAAO,kBAAoB,KAAM,CAAE0M,IAAK,0BAA0B1M,IAAKuG,UAAW,+BACpG82S,GAAc,kBAAoB,KAAM,CAAE92S,UAAW,sDAC7D,kBAAoB,QAAS,CAAEA,UAAW,oBAAsB4jQ,EAAoBh7P,MAAM,EAAG,GAAG+C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,KAAM,CAAE0M,IAAK,mBAAmB1M,IAAKuG,UAAW,oCAAoCvG,KACtN,kBAAoB,KAAM,CAAEuG,UAAW,mEACnC,kBAAoB,KAAK,CAAEA,UAAW,iCAAkC4C,IAAKygQ,EAAgBv9P,QAAQurB,GAAOA,EAAG9N,QAAUgc,EAAKtJ,OAAM,IAAIguB,UAAY,GAAIH,IAAKu/M,EAAgBv9P,QAAQurB,GAAOA,EAAG9N,QAAUgc,EAAKtJ,OAAM,IAAIw7J,UAAY,KACpO,kBAAoB,IAAK,CAAEx7I,KAAM,IAAIgwK,UAAwDp/M,IAA7C6vS,EAAgBn3Q,EAAKtJ,KAAK6K,eAA+B41Q,EAAgBn3Q,EAAKtJ,KAAK6K,eAAiB,6BAA+BvB,EAAKtJ,OAC5L,kBAAoB,KAAM,CAAEj2B,UAAW,6BAA6Bu/B,EAAKo6N,YAAcp6N,EAAKm6N,KAC5F,kBAAoB,KAAM,CAAE15P,UAAW,6BAA+Bu/B,EAAKs6N,QAC3E,kBAAoB,KAAM,CAAE75P,UAAW,wFAAwFu/B,EAAKw6N,oBAChIx6N,EAAKs5N,YACLt5N,EAAKy6N,iBACT88C,GAAc,kBAAoB,KAAM,CAAE92S,UAAW,oDACjD,kBAAoB,KAAU,CAAEw3C,OAAQ,uBAAwBvB,KAAMwgQ,EAAe9+P,aAAc4xK,GAAsBitF,UACzIM,GAAc,kBAAoB,MAAO,CAAE92S,UAAW,qCAClD,kBAAoB,KAAU,CAAEw3C,OAAQ,uBAAwBvB,KAAMwgQ,EAAe9+P,aAAc4xK,GAAsBitF,IAC7HhzC,GAAc,kBAAoB,MAAO,CAAExjQ,UAAW,0BAA4BwjQ,GAAa,ECnM1F6zC,GAAe,EAAG9zR,QAAOy1B,cAAaoqN,YAAWC,kBAAiBC,cAAaC,YAAWC,aAAYlL,UAASD,QAAO74M,SAAQikN,eAAc6zC,sBAAqBC,qBAAoBl7B,oBAAmBm6B,iBAAgBC,gBAAeC,kBAAiBC,4BAA2BC,yBAAwBC,kBAAiB5wF,UAAS6wF,cAAa,EAAOvtF,sBAAqB,KAC/W,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEvpN,UAAW,6BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,MAAO,CAAEvjB,UAAW,qBAAsBm+C,wBAAyB,CAAEC,OAAQpF,MACrG,kBAAoBu9P,GAA6B,CAAEhzR,MAAOA,EAAOy1B,YAAaA,EAAaoqN,UAAWA,EAAWC,gBAAiBA,EAAiBC,YAAaA,EAAaC,UAAWA,EAAWC,WAAYA,EAAYlL,QAASA,EAASD,MAAOA,EAAO74M,OAAQA,EAAQikN,aAAcA,EAAc6zC,oBAAqBA,EAAqBC,mBAAoBA,EAAoBl7B,kBAAmBA,EAAmBm6B,eAAgBA,EAAgBC,cAAeA,EAAeC,gBAAiBA,EAAiBC,0BAA2BA,EAA2BC,uBAAwBA,EAAwBC,gBAAiBA,EAAiB5wF,QAASA,EAAS6wF,WAAYA,EAAYvtF,mBAAoBA,QCT5sBiuF,GAAqB,EAAGj0R,QAAOy1B,cAAaoqN,YAAWC,kBAAiBC,cAAaC,YAAWC,aAAYlL,UAASD,QAAO74M,SAAQikN,eAAc6zC,sBAAqBC,qBAAoBl7B,oBAAmBm6B,iBAAgBC,gBAAeC,kBAAiBC,4BAA2BC,yBAAwBC,kBAAiB5wF,UAAS6wF,cAAa,EAAOvtF,sBAAqB,KAAc,kBAAoB,MAAO,CAAEvpN,UAAW,6BACnb,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,MAAO,CAAEvjB,UAAW,qBAAsBm+C,wBAAyB,CAAEC,OAAQpF,MACrG,kBAAoBu9P,GAA6B,CAAEhzR,MAAOA,EAAOy1B,YAAaA,EAAaoqN,UAAWA,EAAWC,gBAAiBA,EAAiBC,YAAaA,EAAaC,UAAWA,EAAWC,WAAYA,EAAYlL,QAASA,EAASD,MAAOA,EAAO74M,OAAQA,EAAQikN,aAAcA,EAAc6zC,oBAAqBA,EAAqBC,mBAAoBA,EAAoBl7B,kBAAmBA,EAAmBm6B,eAAgBA,EAAgBC,cAAeA,EAAeC,gBAAiBA,EAAiBC,0BAA2BA,EAA2BC,uBAAwBA,EAAwBC,gBAAiBA,EAAiB5wF,QAASA,EAAS6wF,WAAYA,EAAYvtF,mBAAoBA,MCJhsBkuF,GAA+B,EAAGl0R,QAAO2oM,eAAcoiB,YAChE,MAAM,QAAEruL,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACvD,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEhhD,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,oCACjE,kBAAoB,MAAO,CAAEA,UAAW,gBAAkBujB,GAC1D,kBAAoB,MAAO,CAAEvjB,UAAW,gDAAkDsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,IAAK,CAAE0M,IAAK,oCAAoC1M,IAAKw8C,KAAMs4L,EAAKnpL,KAAMplD,UAAW,oDAClN,kBAAoB,MAAO,CAAEA,UAAW,0DACpC,kBAAoB,MAAO,CAAEA,UAAW,+CAAgD4C,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAK98C,YAC1H,kBAAoB,MAAO,CAAEzxL,UAAW,oDACpC,kBAAoB,KAAM,CAAEA,UAAW,gBAAkBuuO,EAAKh4L,aAAa,mCCN5F,MAAMmhQ,GAA+B,EAAGC,UAASC,SAAQC,iBAAgB3rF,mBACvEA,IACDA,EAAe,CACXC,YAAa,UACbr1K,gBAAiB,UAGzB,MAAMghQ,GAAgB,IAAAh5S,cAAY,CAAC2iD,EAAO46J,GAAmB,IAAW,kBAAoB,GAAQ,CAAE9hB,aAAc,GAAIe,cAAe,EAAG9xL,MAAM,EAAMvG,SAAU,CACxJylF,MAAO,EACPyzH,sBAAsB,EACtBE,oBACD9gB,YAAa,CACZ,KAAM,CACFD,cAAe,EACff,aAAc,KAElB,IAAK,CACDe,cAAe,EACff,aAAc,MAEnBxuL,MAAO,IAAMimM,QAAS,CAAC+J,IAAW/7M,UAAW,4CAA8C,IAAIyhD,KAC/FA,KACAA,GAAO37C,QAAOy5B,GAAQA,EAAKg8B,QAAO5vD,KAAI,CAAC4zB,EAAMuH,IAAW,kBAAoBm9K,GAAa,CAAE99M,IAAK2gC,GACnG,kBAAoB,MAAO,CAAE9mC,UAAW,qFACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAK28B,EAAKg8B,MAAOzX,IAAKvkB,EAAKukB,IAAKgF,QAAS,gBAAkB,KAC1F,QAAE7I,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACvD,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,oCACjE,kBAAoB,MAAO,CAAEA,UAAW,0FACpC,kBAAoB,MAAO,CAAEA,UAAW,+EACpC,kBAAoB,IAAK,CAAEA,UAAW,gBAAkB23S,EAAQI,mBAChE,kBAAoB,KAAS,CAAEvgQ,OAAQ00K,GAAcC,YAAcD,GAAcC,YAAc,WAAawrF,EAAQK,eACxH,kBAAoB,MAAO,CAAEh4S,UAAW,sBACpC,kBAAoB0nN,GAAO,CAAE1nN,UAAW,kEAAmE2nN,SAAUgwF,GAASM,eAAgBpwF,SAAU8vF,GAASO,eAAgBp0P,IAAK6zP,GAAShuF,iBACvM,kBAAoB,MAAO,CAAE3pN,UAAW,yFACpC,kBAAoB,MAAO,CAAEA,UAAW,+EACpC,kBAAoB,IAAK,CAAEA,UAAW,gBAAkB43S,EAAOO,kBAC/D,kBAAoB,KAAS,CAAE3gQ,OAAQ00K,GAAcC,YAAcD,GAAcC,YAAc,WAAayrF,EAAOQ,cACvH,kBAAoB,MAAO,CAAEp4S,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,0DACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKg1S,EAAOS,UAAWv0P,IAAK8zP,EAAOU,QAASt4S,UAAW,oDAChG,kBAAoB,MAAO,CAAEA,UAAW,0FACpC,kBAAoB,MAAO,CAAEA,UAAW,+EACpC,kBAAoB,IAAK,CAAEA,UAAW,gBAAkB63S,EAAeU,mBACvE,kBAAoB,KAAS,CAAE/gQ,OAAQ00K,GAAcC,aAAe0rF,EAAeW,eACvFV,EAAcD,EAAeY,uBAC7BX,EAAcD,EAAea,uBAAuB,MAAU,ECpDrEC,GAAmB,EAAGp1R,QAAOk2B,UAASm/P,gBAAeC,gBAC9D,MAAOnhN,EAAMohN,IAAW,IAAAt+S,WAAS,GAC3Bu+S,GAAkB,IAAAj6S,cAAY,KAChCg6S,GAAQ,EAAK,GACd,IACGE,GAAmB,IAAAl6S,cAAY,KACjCg6S,GAAQ,EAAM,GACf,IACGG,GAAkB,IAAA3jQ,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,8BAAgCy5C,EAAQ9tC,KAAK4zB,GAAS,kBAAoB,MAAO,CAAEp5B,IAAKo5B,EAAKgX,KAAOhX,EAAKhc,OACpL,kBAAoB,MAAO,CAAEvjB,UAAW,8BACpC,kBAAoB,OAAQ,CAAEm+C,wBAAyB,CAAEC,OAAQ7e,EAAKhc,UAC1E,kBAAoB,KAAM,CAAEvjB,UAAW,mCACnC,kBAAoB,OAAQ,CAAEm+C,wBAAyB,CAAEC,OAAQ7e,EAAKgX,cAAgB,CAACkD,IACzFy/P,GAAgB,IAAA5jQ,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,sCACzE,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,qEACpC,kBAAoB,MAAO,CAAEuc,QAASw8R,EAAiB/4S,UAAW,6DAA4D03F,EAAO,sDAAwD,KAAQkhN,EAAcO,aAAaC,WAChO,kBAAoB,MAAO,CAAE78R,QAASy8R,EAAkBh5S,UAAW,6DAA6D03F,EAA+D,GAAxD,wDAAgEkhN,EAAcS,cAAcD,aAC3O,kBAAoB,MAAO,CAAEp5S,UAAW,sBACpC03F,GAAQ,kBAAoB,IAAK,CAAEv5C,wBAAyB,CAAEC,OAAQw6P,EAAcO,aAAa51R,UAChGm0E,GAAQ,kBAAoB,IAAK,CAAEv5C,wBAAyB,CAAEC,OAAQw6P,EAAcS,cAAc91R,YAAe,CAACm0E,IACrH4hN,GAAiB,IAAAx6S,cAAasvE,GAAQ,kBAAoB,MAAO,KACnE,kBAAoB,MAAO,CAAEpuE,UAAW,+BACpC,kBAAoB,OAAQ,CAAEA,UAAW,gBAAkBouE,EAAG7qD,OAC9D,kBAAoB,MAAO,CAAEvjB,UAAW,uDACpC,kBAAoB,MAAO,CAAEm+C,wBAAyB,CAAEC,OAAQgwB,EAAGmrO,mBAAsB,CAAC7hN,EAAMmhN,IACtGW,GAAoB,IAAAlkQ,UAAQ,IAAO,kBAAoB,MAAO,KAChEoiD,GAAQ,kBAAoB,MAAO,CAAE13F,UAAW,wCAC5Cs5S,EAAeT,EAAUM,aAAaM,WACtCH,EAAeT,EAAUM,aAAaO,aACzChiN,GAAQ,kBAAoB,MAAO,CAAE13F,UAAW,wCAC7Cs5S,EAAeT,EAAUQ,cAAcI,WACvCH,EAAeT,EAAUQ,cAAcK,cAAe,CAAChiN,EAAMmhN,IACrE,OAAQ,kBAAoB,KAAa,CAAE/hQ,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,+CACpC,kBAAoB,KAAM,KAAMujB,IACpC,kBAAoB,MAAO,CAAEvjB,UAAW,wDACpC,kBAAoB,MAAO,CAAEA,UAAW,wCAA0Ci5S,GAClF,kBAAoB,MAAO,KACvB,kBAAoB,MAAO,CAAEj5S,UAAW,qCAAuCk5S,GAC/E,kBAAoB,MAAO,CAAEl5S,UAAW,gCAAkCw5S,MAAuB,ECxCxGG,GAA2B,EAAGp2R,QAAOu2B,WAAU8/P,eACxD,MAAOC,EAAcC,IAAmB,IAAAt/S,UAAS,GAC3Cu/S,GAAmB,IAAAj7S,cAAak8B,IAClC,MAAM8L,EAAQznB,SAAS2b,EAAM0xB,cAAcoiL,QAAQhoM,MAAO,IAC1DgzQ,EAAgBhzQ,EAAM,GACvB,CAACgzQ,IACEE,GAAsB,IAAAl7S,cAAak8B,IACrC8+Q,EAAgBF,EAAShuP,WAAWquP,GAAYA,EAAQrB,cAAcr1R,QAAUyX,IAAO,GACxF,CAAC8+Q,EAAiBF,IACfM,GAAoB,IAAA5kQ,UAAQ,KAC9B,MAAM,QAAEmE,GAAYmgQ,EAASC,GAC7B,OAAOpgQ,CAAO,GACf,CAACogQ,EAAcD,IACZX,GAAkB,IAAA3jQ,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,uCAAyCk6S,EAAkBvuS,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoB,MAAO,CAAE0M,IAAK1M,GACzL,kBAAoB,MAAO,CAAEuG,UAAW,8BACpC,kBAAoB,OAAQ,CAAEm+C,wBAAyB,CAAEC,OAAQ7e,EAAKhc,UAC1E,kBAAoB,KAAM,CAAEvjB,UAAW,mCACnC,kBAAoB,OAAQ,CAAEm+C,wBAAyB,CAAEC,OAAQ7e,EAAKgX,cAAgB,CAAC2jQ,IACzFC,GAAmB,IAAA7kQ,UAAQ,IAAO,kBAAoBowN,GAAU,CAAEvnP,SAAU67R,EAAqBviQ,QAAS,iCAAkCr6C,QAASw8S,EAASjuS,KAAKtS,GAAMA,EAAEu/S,cAAcr1R,WAAY,CAACq2R,EAAUI,IAChNd,GAAgB,IAAA5jQ,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,+CACzE,kBAAoB,MAAO,CAAEA,UAAW,2EACpC,kBAAoB,MAAO,CAAEA,UAAW,2FAA6F45S,EAASjuS,KAAI,CAACsuS,EAASxgT,IAAM,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAG8iB,QAASw9R,EAAkB,aAActgT,EAAGuG,UAAW,6DAA4DvG,IAAMogT,EAAe,sDAAwD,KAAQI,EAAQrB,cAAcr1R,WACza,kBAAoB,MAAO,CAAEvjB,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,0CAA2Cm+C,wBAAyB,CAAEC,OAAQw7P,EAASC,IAAejB,cAAcQ,gBAAmB,CAACS,EAAcD,EAAUG,IAC1MK,GAAkB,IAAA9kQ,UAAQ,IAAO,kBAAoB,MAAO,KAC9D,kBAAoB,MAAO,KACvB,kBAAoB,MAAO,CAAEt1C,UAAW,iDAAmD45S,EAASC,GAAchB,UAAUltS,KAAI,CAAC0uS,EAAU5gT,IAAM,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,wCAC7L,kBAAoB,OAAQ,CAAEA,UAAW,gBACrC,IACAq6S,EAAS92R,OACb,kBAAoB,MAAO,CAAEvjB,UAAW,gEACpC,kBAAoB,MAAO,CAAEA,UAAW,gDACpCq6S,EAASC,cAAgB,kBAAoB,MAAO,CAAEn8P,wBAAyB,CAAEC,OAAQi8P,EAASC,gBAClGD,EAASE,cAAgB,kBAAoB,MAAO,CAAEp8P,wBAAyB,CAAEC,OAAQi8P,EAASE,iBACtG,kBAAoB,MAAO,CAAEp8P,wBAAyB,CAAEC,OAAQi8P,EAASG,wBAA0B,CAACX,EAAcD,IAClI,OAAQ,kBAAoB,KAAa,CAAE9iQ,gBAAiB,QACxD,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,wDACpC,kBAAoB,KAAM,KAAMujB,GAChCu2B,GAAY,kBAAoB,KAAM,CAAE95C,UAAW,gBAAkB85C,IACzE,kBAAoB,MAAO,CAAE95C,UAAW,iEACpC,kBAAoB,MAAO,CAAEA,UAAW,kFAAoFm6S,GAC5H,kBAAoB,MAAO,CAAEn6S,UAAW,iDAAmDi5S,GAC3F,kBAAoB,MAAO,CAAEj5S,UAAW,mDACpC,kBAAoB,MAAO,CAAEA,UAAW,8CAAgDk5S,GACxF,kBAAoB,MAAO,CAAEl5S,UAAW,yCAA2Co6S,MAAqB,mCC9CrH,MAAMK,GAAkBnxS,IAC3B,MAAMoxS,EAAW,IAAItjS,KAAK9N,EAAM4rN,WAAa,MAAMrO,eAAev9M,EAAMqxS,kBAAmB,CAAEl8R,MAAO,UAG9Fm8R,EAAW,GAFF,IAAIxjS,KAAK9N,EAAM4rN,WAAa,MAAM7rM,aAEnBqxR,KADd,IAAItjS,KAAK9N,EAAM4rN,WAAa,QAAQ/rM,gBAEpD,OAAQ,kBAAoB,MAAO,CAAEnpB,UAAW,mBAC5C,kBAAoB,KAAM,CAAEA,UAAW,0BAA4BsJ,EAAMia,OACzE,kBAAoB,MAAO,CAAEvjB,UAAW,4BACpC,UACA,IACA46S,GAAY,kBAAoB,MAAO,CAAE56S,UAAW,yBAA2B46S,IACnF,kBAAoB,MAAO,CAAE56S,UAAW,0BAA2Bm+C,wBAAyB,CACpFC,OAAQ90C,EAAMusC,WAEtB,kBAAoB,MAAO,KACvB,kBAAoB,MAAO,CAAE71C,UAAW,2BACpCsJ,EAAM07K,OACN,MACA17K,EAAMupR,UAAW,EClBpBgoB,GAAuB,EAAGC,iBAAgBC,SAAQC,aAAYC,qBAAuB,kBAAoB,MAAO,CAAEj7S,UAAW,wBACtI,kBAAoB,KAAM,CAAEA,UAAW,wCAA0C86S,GACjF,kBAAoB,KAAK,CAAE96S,UAAW,mCAAoC4C,IAAKo4S,EAAYl3P,IAAK,eAChG,kBAAoB,IAAK,CAAE9jD,UAAW,gCAAkC+6S,GACxE,kBAAoB,KAAK,CAAE/6S,UAAW,wCAAyC4C,IAAKq4S,EAAiBn3P,IAAK,qBCCjGo3P,GAAoB5xS,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,6BAChF,kBAAoB,KAAa,CAAE82C,gBAAiB,QAChD,kBAAoB,MAAO,CAAE92C,UAAW,qBACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,IAAK,CAAEA,UAAW,+CAAiDsJ,EAAMia,OAC7F,kBAAoB,GAAQ,CAAE+3K,cAAe,OAAQC,YAAa,CAC1D,IAAK,CACDD,cAAe,IACff,aAAc,IAElB,CAAC,EAAA5pI,UAAA,eAA0B,CACvB2qI,cAAe,KAElBhyL,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,oBAAoB1M,KAAO,kBAAoBghT,GAAgB,IAAKlsE,WAC9JjlO,EAAMwxS,gBAAkB,kBAAoBD,GAAsB,CAAEC,eAAgBxxS,EAAMwxS,eAAgBC,OAAQzxS,EAAMyxS,OAAQC,WAAY1xS,EAAM0xS,WAAYC,gBAAiB3xS,EAAM2xS,kBACrL3xS,EAAM6xS,YAAc,kBAAoB,MAAO,CAAEn7S,UAAW,8BACxD,kBAAoB0nN,GAAO,CAAE9kN,IAAK0G,EAAM8xS,eAAgBt3P,IAAKx6C,EAAM6xS,WAAYn7S,UAAW,gCAC1FsJ,EAAM6xS,aClBDE,GAA0B/xS,IACnC,MAAO88B,EAAMqP,IAAW,IAAAj7C,aACjB27C,EAAau/N,IAAkB,IAAAl7Q,UAAS,IACzC8gT,EAAKhyS,EAAMwtC,gBAAkBxtC,EAAMwtC,gBAAkB,UAa3D,OAZA,IAAAr8C,YAAU,KACN,MAIMkrR,EAAgBxvO,EAAYsgO,WAAW,IAAK,IAAIx/P,QAAQ,kBAAmB,IAC/D,KAAlB0uQ,GAAwBlwO,EAAQ,CAAEI,QAAS,KACzB,KAAlB8vO,GAAwB9kO,MAAM,IAAIv3C,EAAM28M,oCAAoC38M,EAAM+3C,eAAelL,IAN1E,CACnBgD,OAAQ,OACRC,QAAS,CAAE,eAAgB,sBAK1B31C,MAAMm9C,GAAaA,EAASK,SAC5Bx9C,MAAM46Q,GAAiB5oO,EAAQ,IAAKrP,EAAMyP,QAASwoO,MACnD38N,OAAMn5C,GAAO7D,QAAQ+S,KAAKlP,IAAK,GACrC,CAAC4tC,IACI,kBAAoB,MAAO,CAAEn2C,UAAW,4BAC5C,kBAAoBwlR,GAAc,CAAExpO,OAAQ05N,EAAgBN,WAAY9rQ,EAAM8rQ,WAAYqQ,eAAgB61B,IAC1GnlQ,EACI/P,GAAQ,kBAAoBi1O,GAAiB,CAAEC,gBAAiBhyQ,EAAMgyQ,gBAAiBjlO,cAAe/sC,EAAM+sC,cAAeD,kBAAmB9sC,EAAM8sC,kBAAmBD,YAAaA,EAAa/tB,KAAMge,EAAM2/K,WAAYz8M,EAAMiyS,kBAE3N,kBAAoB,aAAgB,KAChC,kBAAoBrtF,GAAK,CAAEM,WAAY,OAAQH,UAAW,OAAQI,SAAU6sF,IAC5E,kBAAoBvgC,GAAiB,IAAKzxQ,EAAMgyQ,gBAAiBL,YAAY,IAC7E,kBAAoB/sD,GAAK,CAAEM,WAAY,OAAQH,UAAW,OAAQI,SAAU6sF,IAC5E,kBAAoBpgC,GAAuB,IAAK5xQ,EAAMiyS,gBAAiBtgC,YAAY,KAAW,EC1BrGugC,GAAiBlyS,IAC1B,MAAOm4C,EAAOg6P,GAAY,WAAe,KAClCtlQ,EAAau/N,GAAkB,WAAe,IAC/CgmC,EAAa,cACnB,aAAgB,KACZ,MAAMxiQ,EAAiB,CACnBC,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3B/2B,KAAM04D,KAAK8hC,UAAU,CAAEopG,QAASxkN,SAASshD,qBAAqB,QAAQ,GAAGitI,aAAa,WAE1E,KAAhB75I,EAAqB0K,MAAM,IAAIv3C,EAAM28M,gCAAgC38M,EAAM+3C,eAAelL,IAAe+C,GACpGz1C,MAAMm9C,GAAaA,EAASK,SAC5Bx9C,MAAM46Q,GAAiBo9B,EAASp9B,KAChC38N,OAAMn5C,GAAO7D,QAAQ+S,KAAKlP,KAAQkzS,EAAS,GAAG,GACpD,CAACtlQ,IACJ,aAAgB,KAWpB,IAA8BvW,EAAS4hB,EAV/Bk6P,EAAWj/S,UAUWmjC,EAVqBn+B,SAASo0B,cAAc,iCAUnC2rB,EAVqErL,EAWxGvW,EAAQ1N,iBAAiB,KAAK5yB,SAASsgC,IACnC,MAAMinE,EAAQ,IAAInwD,OAAO8K,EAAO,MAClB5hB,EAAQ68I,WAChBn9K,SAASu+B,IACX,GAAIA,EAAKq4J,WAAaylH,KAAKC,UAAW,CAClC,MAAMrlQ,EAAO1Y,EAAKmb,YACZ6iQ,EAAetlQ,EAAKt/B,QAAQ4vF,GAAQ9vF,GAAU,2BAA2BA,aAC/E,GAAI8kS,IAAiBtlQ,EAAM,CACvB,MAAMulQ,EAAcr6S,SAASvB,cAAc,OAE3C,IADA47S,EAAY/iQ,UAAY8iQ,EACjBC,EAAYC,YACfn8Q,EAAQ03H,aAAawkJ,EAAYC,WAAYl+Q,GAEjD+B,EAAQhO,YAAYiM,EACxB,CACJ,IACF,IA3B8G,GACjH,CAACsY,EAAaulQ,IACjB,MAAM97P,EAAU,gBAAoB,MAAO,CAAEz/C,IAAKu7S,EAAY17S,UAAW,6BAA+ByhD,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoB,MAAO,CAAEuG,UAAW,uBAAwBmG,IAAK,OAAO1M,IAAK0kD,wBAAyB,CAAEC,OAAQ,OAAO7e,EAAKwlO,mBAAmBxlO,EAAKylO,mBACvR,OAAQ,gBAAoB,WAAgB,KACxC17P,EAAM0yC,QAAU,gBAAoBgrK,GAAc,IAAK19M,EAAM0yC,OAAQA,OAAQ05N,EAAgBl0N,MAAOrL,IACpG7sC,EAAM0yS,kBAAqB,gBAAoB,WAAgB,KAC3D,gBAAoB9tF,GAAK,CAAEM,WAAY,OAAQH,UAAW,SAC1D,gBAAoBqmD,GAAkB,IAAKprQ,EAAM0yS,kBAAoBv6P,EAAM5nD,OAAS+lD,EAAU,KAClGt2C,EAAM2yS,gBAAkB,gBAAoBzoC,GAAgB,IAAKlqQ,EAAM2yS,gBAAkBx6P,EAAM5nD,OAAS+lD,EAAU,IAAK,kCC1BxH,MAAMs8P,GAAY5yS,IACrB,MAAM6yS,EAAW,YAAY7yS,EAAM8yS,cAAgB,sBAAwB,KAAK9yS,EAAMtJ,UAAY,IAAIsJ,EAAMtJ,YAAc,KAC1H,OAAQ,gBAAoB,MAAO,CAAEA,UAAWm8S,EAAUl9S,MAAO,CAAE63C,gBAAiBxtC,EAAMwtC,gBAAkBxtC,EAAMwtC,gBAAkB,SAChI,gBAAoB,KAAa,KAC7B,gBAAoB,KAAW,CAAE92C,UAA+B,WAApBsJ,EAAM+yS,UAAyB,mBAAqB,IAC5F/yS,EAAMqsH,SAAW,gBAAoBz3E,GAAA,EAAS,CAAE1G,OAAQ,aAAcv4C,MAAO,CAAE,oBAAqBqK,EAAM+2P,iBAAoB/2P,EAAMqsH,SACpI,gBAAoB,MAAO,CAAE31H,UAAW,qBAAsBm+C,wBAAyB,CAAEC,OAAQ90C,EAAMusC,aAAgB,ECJ1HymQ,GAA4B,EAAG/gP,QAAOk2H,WAAUygF,uBAAsBh0O,MAC/E,MAAM,QAAE+hB,EAAO,UAAEoS,IAAc,SAAUn0B,EAAK4Y,iBAAmB,UAC1DylQ,EAAYC,IAAiB,IAAAhiT,UAAS,KACtCuxN,EAAUC,IAAe,IAAAxxN,UAAS,KACzC,IAAAC,YAAU,KACN+hT,EAAcjhP,GACdywJ,EAAYv6B,EAAS,GACtB,CAACl2H,EAAOk2H,IACX,MAAM2gF,GAAyB,SAA6BF,GACtDG,GAAsB,SAA0BD,GACtD,OAAQ,kBAAoB,KAAa,CAAEt7N,gBAAiBmJ,EAASjgD,UAAWqyQ,GAC5E,kBAAoB,KAAW,CAAEryQ,UAAWqyQ,GACxC,kBAAoB,MAAO,CAAEpzQ,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,iCACjE,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB6xQ,GAAkB,IAAK3zO,IAC3C,kBAAoB,MAAO,CAAEl+B,UAAW,oGACpC,kBAAoB0nN,GAAO,CAAEG,SAAU00F,EAAYz0F,cAAc,EAAMhkK,IAAKioK,QAAiB,ECpBxG0wF,GAAkB,KAC3B,MAAMt/S,GAAe,IAAAd,QAAO,OAC5B,IAAA5B,YAAU,KACN,MAAMq1L,EAASruL,SAASvB,cAAc,UACtC4vL,EAAOltL,IAAM,2FACbktL,EAAOxvI,OAAQ,EACfwvI,EAAOhiL,KAAO,kBACV3Q,EAAaV,SACbU,EAAaV,QAAQk1B,YAAYm+J,EACrC,GACD,IACH,MAAM+4C,GAAiB,IAAA/pO,cAAY,IAAO,wLAE5B,IACd,OAAQ,kBAAoB,MAAO,CAAEqB,IAAKhD,EAAcghD,wBAAyB,CACzEC,OAAQyqL,MACP,ECfA6zE,GAAoB,EAAGl+P,cAAai3K,aAAYxxK,WAAUxG,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,kEAAmEmG,IAAK,SAASod,KACnN,kBAAoB,KAAM,CAAEvjB,UAAW,wEAA0EujB,GACjHk6B,GAAY,kBAAoB,IAAK,CAAEz9C,UAAW,8EAAgFy9C,GAClIe,GAAe,kBAAoByqK,GAAc,CAAEvlN,MAAO86C,EAAavI,KAAMw/K,IAC7E,kBAAoB,MAAO,CAAEz1N,UAAW,qCAAsCf,MAAO,CAAE,yBAA0B,OAAOglD,SCH/G04P,GAAa,EAAGn+P,cAAai3K,aAAYhkC,WAAUxtI,WAAUxG,WAAUl6B,QAAOq5R,iBAAgBC,0BAA4B,kBAAoB,MAAO,CAAE78S,UAAW,+CAAgDf,MAAO,CAAE63C,gBAAiB8lQ,GAAkB,WAAaz2S,IAAK,SAASod,KAClS,kBAAoB,KAAK,CAAEvjB,UAAW,sDAAuD4C,IAAKqhD,EAAUH,IAAK2tI,IACjH,kBAAoB,KAAM,CAAEzxL,UAAW,uDAAyDujB,GAChG,kBAAoB,MAAO,CAAEvjB,UAAW,yDAA0Dm+C,wBAAyB,CACnHC,OAAQX,KAEfe,IAAgBq+P,GAAyB,kBAAoB5zF,GAAc,CAAEvlN,MAAO86C,EAAavI,KAAMw/K,KCH/FqnF,GAAgB,EAAGrzF,eAAcjsK,YAAWmH,eAAco4P,YAAWhpH,YAAWv1I,cAAaw+P,sBACtG,MAAMC,GAAsB,IAAAn+S,cAAY,IAChCi1L,GAAav1I,EACN,kBAAoB,MAAO,CAAEx+C,UAAW,sCAC3C,kBAAoB,KAAU,CAAEw3C,OAAQ,gBAAiBvB,KAAM89I,GAAav1I,IAE7E,kBAAoB,aAAgB,OAC5C,CAACA,EAAau1I,IAGjB,OAAQ,kBAAoB,KAAa,CAAEj9I,gBAAiB,QACxD,kBAAoB,MAAO,CAAE92C,UAAW,4BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAc+8S,GAAWx5R,MAAQ,mCAAqC,uBAL/Ei6B,GAAa,kBAAoB,KAAM,CAAEx9C,UAAW,kCAAoCw9C,GACrFisK,GAAgB,kBAAoB,KAAM,CAAEzpN,UAAW,qCAAuCypN,GAOjH,kBAAoB,MAAO,CAAEzpN,UAAW,uCACpC2kD,EAAa9qD,OAAS,GAAK8qD,EAAah5C,KAAKvP,GAAO,kBAAoBugT,GAAY,CAAEx2S,IAAK,SAAS/J,EAAEmnB,QAASs5R,qBAAsBE,GAAWx5R,SAAUnnB,MAC1J2gT,GAAWx5R,OAAS,kBAAoBm5R,GAAmB,IAAKK,IAChEC,GAAmB,kBAAoBP,GAAiB,OAC5DQ,OAA0B,ECvBjCC,GAAgB,EAAGz+P,aAAYD,cAAa6mK,WAAUgE,YAAWkC,qBAAoBlD,uBAC9F,MAAMC,GAAiB,SAAiBD,GACxC,OAAQ,kBAAoB,MAAO,CAAEroN,UAAW,oCAC5Cw+C,GAAe,kBAAoB,KAAU,CAAEhH,OAAQ,gBAAiBvB,KAAMwI,EAAY9G,aAAc4zK,GACpG,IACA/sK,GACJ6qK,GAAc,kBAAoB,OAAQ,CAAErpN,UAAW,gDACnD,kBAAoB,IAAK,CAAEi2C,KAAMovK,EAAU7lN,OAAQ8oN,GAAkBe,IAAc,ECqBlF8zF,GAAoC,EAAG3/P,YAAWgrN,UAAS40C,eAAcz4P,eAAclG,aAAYD,cAAa6qK,YAAWhE,WAAUvuK,kBAAiBu9I,cAAak3B,qBAAoBlD,mBAAkB6pD,oBAAmBmrC,gBAAeC,mBAAkBC,qBAAoBC,aAAY1vF,gBAAe2vF,kBAAiBC,oBAAmB,EAAOC,2BAA0B,EAAOC,qBACjY,MAAMC,EAzBiB,CAAC/mQ,GAAwC,SAApBA,EAA6B,UAAY,OAyB5DgnQ,CAAmBhnQ,GACtCinQ,EAzBsB,GAAGt/P,aAAYD,cAAa6mK,WAAUgE,eAAiB5qK,GAAcD,GAAiB6mK,GAAYgE,EAyB5G20F,CAAwB,CAAEv/P,aAAYD,cAAa6mK,WAAUgE,cACzErpN,EAzBW,EAAC82C,EAAiB4mQ,EAAkBC,EAAyBM,KAC9E,IAAIj+S,EAAgC,SAApB82C,EAA6B,yCAA2C,oCAOxF,OANI4mQ,IACA19S,GAAa,0DAEb29S,GAA2BM,EAAW,GAAM,IAC5Cj+S,GAAa,uDAEVA,CAAS,EAiBE4oD,CAAa9R,EAAiB4mQ,EAAkBC,EAAyBh5P,EAAa9qD,QAClGuyM,EAAeznJ,EAAa9qD,QAAU,EAAI,oCAAsC,4CAChFw4Q,EATqB,CAACH,IAC5B,MAAME,EAAyBF,IAAqB,SAA6BA,GACjF,OAAOE,EAAyB,IAAIA,IAA2B,EAAE,EAOrC8rC,CAAuBhsC,GACnD,OAAQ,kBAAoB,KAAa,CAAEp7N,gBAAiB+mQ,EAAkB79S,UAAWqyQ,GACrF,kBAAoB,MAAO,CAAEryQ,UAAWA,EAAWf,MAAO,CAAE,gBAAiBu+S,EAAY,mBAAoB1vF,EAAe,sBAAuB2vF,EAAiB,mBAAoBJ,EAAe,sBAAuBC,EAAkB,yBAA0BC,IACtQlpH,GAAe,kBAAoB,MAAO,CAAEr0L,UAAW,0BACnD,kBAAoBo0L,EAAa,CAAEC,YAAaA,KACpD,kBAAoB,KAAW,CAAEr0L,UAAWqyQ,GAtBvC,EAAC9uP,EAAO46R,EAASP,IAC1Br6R,EACQ46R,EAAkL,kBAAoB,KAAM,CAAEn+S,UAAW,+BAAgCm+C,wBAAyB,CAAEC,OAAQ76B,GAAStkB,MAAO,CAAE,qBAAsB2+S,KAA1T,kBAAoB,KAAM,CAAE59S,UAAW,+BAAgCm+C,wBAAyB,CAAEC,OAAQ76B,GAAStkB,MAAO,CAAE,qBAAsB2+S,KAG7J,GAkBCp6R,CAASg6B,EAAWgrN,EAASo1C,GAC7BR,GAAgB,kBAAoB,IAAK,CAAEp9S,UAAW,+BAAiCo9S,GACvF,kBAAoB,MAAO,CAAEp9S,UAAWosM,GAAgBznJ,EAAa9qD,OAAS,GAAK8qD,GAAch5C,KAAI,CAACvP,EAAG3C,IAAO,kBAAoB,OAAQ,CAAE0M,IAAK1M,EAAGuG,UAAW,8CAC7J,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE6nD,SAAUjkD,UAAW,oDAAqD8jD,IAAK1nD,EAAEq1L,WACnH,kBAAoBvzI,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBp7C,EAAEmnB,OAC3D,kBAAoB,MAAO,CAAEvjB,UAAW,uDAAwDm+C,wBAAyB,CAAEC,OAAQhiD,EAAEqhD,gBACzIsgQ,GAAa,kBAAoBb,GAAe,CAAEz+P,WAAYA,EAAYD,YAAaA,EAAa6mK,SAAUA,EAAUgE,UAAWA,EAAWkC,mBAAoBA,EAAoBlD,iBAAkBA,MAAuB,EC7ClO+1F,GAA2B,EAAG5gQ,YAAWC,WAAUkH,mBAC5D,MAAM05P,EAAyB9+Q,GAAU,kBAAoB,MAAO,CAAEv/B,UAAW,SAC7Eu/B,EAAK++Q,iBAAoB,kBAAoB,IAAK,CAAE9+S,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM1W,EAAKg/Q,wBACzG,kBAAoB,KAAK,CAAE37S,IAAK28B,EAAK++Q,gBAAiBt+S,UAAW,8CAA+C8jD,IAAKvkB,EAAKkyJ,YAC9HlyJ,EAAKi/Q,iBAAoB,kBAAoB,IAAK,CAAEh/S,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM1W,EAAKk/Q,wBACzG,kBAAoB,KAAK,CAAE77S,IAAK28B,EAAKi/Q,gBAAiBx+S,UAAW,8CAA+C8jD,IAAKvkB,EAAKkyJ,YAC9HlyJ,EAAKm/Q,iBAAoB,kBAAoB,IAAK,CAAEl/S,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM1W,EAAKo/Q,wBACzG,kBAAoB,KAAK,CAAE/7S,IAAK28B,EAAKm/Q,gBAAiB1+S,UAAW,8CAA+C8jD,IAAKvkB,EAAKkyJ,aAC5HmtH,EAA+B,CAACr/Q,EAAMs/Q,IAAkB,kBAAoB,aAAgB,KAC9F,kBAAoB,MAAO,CAAE7+S,UAAW,+CAA+C6+S,KACnF,kBAAoB,KAAK,CAAEj8S,IAAK28B,EAAK0kB,SAAUH,IAAKvkB,EAAKkyJ,YAC7D,kBAAoB,MAAO,CAAEzxL,UAAW,iEAAiE6+S,KACrG,kBAAoB,KAAM,CAAE7+S,UAAW,8BAAgCu/B,EAAKhc,SAapF,OAAQ,kBAAoB,KAAa,CAAEuzB,gBAAiB,QACxD,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,gCACpCw9C,GAAa,kBAAoB,aAAgB,KAC7C,kBAAoB,KAAM,CAAEx9C,UAAW,qGAAuGw9C,GAC9I,kBAAoB,KAAM,CAAEx9C,UAAW,0GAA4Gw9C,IACvJC,GACI,kBAAoB,IAAK,CAAEz9C,UAAW,sBAAwBy9C,GAClE,kBAAoB,MAAO,CAAEz9C,UAAW,2CAA6C2kD,EAAa9qD,OAAS,GACvG8qD,EAAah5C,KAAI,CAAC4zB,EAAMuH,IArBd,EAACvH,EAAMuH,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,yCAC5F,kBAAoB,MAAO,CAAEA,UAAW,uCACpC4+S,EAA6Br/Q,EAAM,IACnC,kBAAoB,MAAO,CAAEv/B,UAAW,kDACpC,kBAAoB,KAAM,CAAEA,UAAW,8BAAgCu/B,EAAKhc,OAC5E,kBAAoB,MAAO,CAAEvjB,UAAW,gBAAiBm+C,wBAAyB,CAAEC,OAAQ7e,EAAKke,YACjGle,EAAK++Q,iBAAmBD,EAAsB9+Q,KACtD,kBAAoB,MAAO,CAAEv/B,UAAW,mBACpC4+S,EAA6Br/Q,EAAM,gDACnC,kBAAoB,MAAO,CAAEv/B,UAAW,6GACpC,kBAAoB,MAAO,CAAEm+C,wBAAyB,CAAEC,OAAQ7e,EAAKke,aACzEle,EAAK++Q,iBAAoB,kBAAoB,MAAO,CAAEt+S,UAAW,2CAA6Cq+S,EAAsB9+Q,MAU1Fu/Q,CAAkBv/Q,EAAMuH,QAAY,ECpC7Ei4Q,GAAW,kBAAoB,MAAO,CAAE/iT,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACvH,kBAAoB,IAAK,CAAEu9B,SAAU,yBACjC,kBAAoB,OAAQ,CAAE1wD,EAAG,UAAWP,EAAG,UAAWxB,MAAO,OAAQC,OAAQ,SAAU+6C,KAAM,YACjG,kBAAoB,OAAQ,CAAEn7C,EAAG,wmCAAymCm7C,KAAM,aACppC,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,mBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,sBCClF67Q,GAAqB,EAAG/6P,WAAUwtI,WAAU+2E,UAAS1xN,kBAAiBmoQ,mBAAkBx1F,eAAcjsK,YAAWgB,cAAa0gQ,iBAAgBzgQ,aAAY2sK,gBAAgB,OAAQ7B,qBAAoB41F,gBAAeC,eAAcC,kBAC5O,MAAM,QAAEp/P,IAAY,SAAUnJ,GACxBwoQ,GAAe,IAAAxgT,cAAY,KAC7B,MAAMygT,GAAkD,IAAvBh2F,EACjC,OAAI/qK,GAAe0gQ,EACR,kBAAoB,MAAO,CAAEjgT,MAAO,CAAE67L,UAAW,SACpD,kBAAoB,IAAK,CAAE7kJ,KAAMwI,EAAYz+C,UAAW,kDAAmDw/S,UAAU,GACjHT,GACAvgQ,IAEHA,EACE6gQ,EAAc,kBAAoB,KAAU,CAAEppQ,KAAMwI,EAAYjH,OAAQ,gBAAiBG,aAAc4nQ,GAA2B/gQ,GAAe,kBAAoByqK,GAAc,CAAEvlN,MAAO86C,EAAavI,KAAMwI,EAAYumK,aAAcu6F,EAAwB52S,aAGjQ,EACX,GACD,CAACu2S,EAAgB1gQ,EAAaC,EAAY8qK,EAAoB81F,IAC3D77R,GAAW,IAAA1kB,cAAY,IACrB0+C,EACOgrN,EAAU,kBAAoBtqN,GAAA,EAAS,CAAE1G,OAA0B,qBAAlB2nQ,EAAuC,mBAAqB,cAAgB3hQ,GAAa,kBAAoBU,GAAA,EAAS,CAAE1G,OAAQ,cAAgBgG,GAGjM,IAEZ,CAACA,EAAWgrN,EAAS22C,IACxB,OAAQ,kBAAoB,KAAa,CAAEroQ,gBAAiBA,EAAkBmJ,EAAU,QACpF,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,GAAqB,SAAlBorN,EAA2B,4BAA8B,oCAAqD,UAAjBg0F,EAA2B,QAAU,MACzK57R,IACA,kBAAoB,IAAK,CAAExjB,UAAW,0CAA2Cm+C,wBAAyB,CAClGC,OAAQqrK,GAA8B,MAE9C,kBAAoB,KAAK,CAAE7mN,IAAKqhD,EAAUjkD,UAAW,mCAAoC8jD,IAAK2tI,IAC9FwtH,EAAiBplT,OAAS,GAAK,kBAAoB,MAAO,CAAEmG,UAAW,6CAA+Ci/S,EAAiBtzS,KAAI,CAACvP,EAAG0qC,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,sDAC1M,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE40B,KAAM8yB,IAAK1nD,EAAEm1L,QAASvxL,UAAW,8DACnE,kBAAoB,OAAQ,CAAEA,UAAW,oEACrC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAap7C,EAAEmnB,OACtDnnB,EAAEqhD,UAAY,kBAAoB,IAAK,CAAEz9C,UAAW,6EAA8Em+C,wBAAyB,CAAEC,OAAQhiD,EAAEqhD,iBAC/K6hQ,MAAkB,EChCrBG,GAAqB,EAAGx7P,WAAUwtI,WAAUwtH,mBAAkBx1F,eAAcjsK,YAAWgB,cAAaC,aAAY2sK,gBAAgB,WACzI,MAAM,QAAE3kK,EAAO,SAAEE,IAAa,WACxB+4P,EAXU,GAAGj5P,UAASE,cACxBF,EACO,KAEPE,EACO,KAEJ,KAIUg5P,CAAY,CAAEl5P,UAASE,aAClC+sI,EAAmB,iBAAkB,KACvCh5L,OAAOqnC,OAAO,CAAEvgC,IAAKk+S,EAAU99S,KAAM,EAAG8gD,SAAU,UAAW,GAC9D,CAACg9P,IACJ,OAAQ,kBAAoB,KAAa,CAAE5oQ,gBAAiB,QACxD,kBAAoB,MAAO,CAAE92C,UAAW,2BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,WAAgC,SAAlBorN,EAA2B,4BAA8B,kCAA5D,KACpC,kBAAoB,KAAM,CAAEprN,UAAW,wCAA0Cw9C,GACjF,kBAAoB,IAAK,CAAEx9C,UAAW,0CAA2Cm+C,wBAAyB,CAAEC,OAAQqrK,KACpH,kBAAoB,KAAK,CAAE7mN,IAAKqhD,EAAUjkD,UAAW,mCAAoC8jD,IAAK2tI,IAC9F,kBAAoB,MAAO,CAAEzxL,UAAW,6CAA+Ci/S,EAAiBplT,OAAS,GAAKolT,EAAiBtzS,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmnB,QAASvjB,UAAW,sDAChN,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE40B,KAAM8yB,IAAK1nD,EAAEm1L,QAASvxL,UAAW,8DACnE,kBAAoB,MAAO,CAAEA,UAAW,oEACpC,kBAAoB,KAAM,CAAEA,UAAW,0EAA2Em+C,wBAAyB,CAAEC,OAAQhiD,EAAEmnB,SACvJ,kBAAoB,MAAO,CAAEvjB,UAAW,6EAA8Em+C,wBAAyB,CAAEC,OAAQhiD,EAAEqhD,iBACnKe,GAAe,kBAAoB,MAAO,CAAEx+C,UAAW,+CACnD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBC,QAAS,2CAA4CxB,KAAMwI,EAAYliC,QAASkiC,OAAa53C,EAAY6sL,GAAoBl1I,OAAkB,EC3BnNohQ,GAAuB,EAAGpxE,kBAAiBE,iBAAgBuwE,mBAAkBxtH,WAAUluK,QAAOk6B,WAAUe,cAAaC,aAAYytK,eAAci1C,sBAAqB0+C,oBAC7K,MAAM,QAAE5/P,IAAY,SAAUisK,GAAcp1K,iBACtCgpQ,EAAuC,SAAlBD,EAA2B,uBAAyB,wBAC/E,OAAQ,kBAAoB,KAAa,CAAE/oQ,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAE63C,gBAAiBqqN,GAA4C,WAAanhQ,UAAW,2BAA2B8/S,KAClJ,kBAAoB,MAAO,CAAE9/S,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,mDACpC,kBAAoB,MAAO,KACvB,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,GACpE,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,SAAWiG,IACtD,kBAAoB,MAAO,CAAEz9C,UAAW,4CAA8Ci/S,EAAiBtzS,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,iCACrK,kBAAoB,MAAO,CAAE4C,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKgyJ,UAC1D,kBAAoB,MAAO,CAAEvxL,UAAW,yCAAyC8/S,IAAsB3hQ,wBAAyB,CACxHC,OAAQ7e,EAAKwgR,gBAEzB,kBAAoB,MAAO,CAAE//S,UAAW,6CACpC,kBAAoB,KAAU,CAAEi2C,KAAMwI,EAAYjH,OAAQ00K,GAAcE,cAAgB5tK,KAChG,kBAAoB,MAAO,CAAEx+C,UAAW,6DACpC,kBAAoB0nN,GAAO,CAAEC,SAAU+mB,EAAgB7mB,SAAU2mB,EAAiB1qL,IAAK2tI,QAAiB,mCCvBzH,MAAMuuH,GAAwB12S,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,0BACpF,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoB,KAAM,CAAEA,UAAW,kDAAoDsJ,EAAMia,OACjG,kBAAoB,IAAK,CAAEvjB,UAAW,gDAAkDsJ,EAAM46C,cAClG,kBAAoB,KAAK,CAAElkD,UAAW,8BAA+B4C,IAAK0G,EAAM0nB,KAAM8yB,IAAKx6C,EAAMia,SACrG,kBAAoB,MAAO,CAAEvjB,UAAW,kCACpC,kBAAoB,IAAK,CAAEi2C,KAAM,+BAAgCz2C,OAAQ,SAAUy1I,IAAK,aAAcj1I,UAAW,iCAAiCsJ,EAAMu0O,gBAAkBv0O,EAAMy0O,QAChL,kBAAoB,IAAK,CAAE9nM,KAAM,+BAAgCz2C,OAAQ,SAAUy1I,IAAK,aAAcj1I,UAAW,iCAAiCsJ,EAAM20O,gBAAkB30O,EAAM40O,UCH3K+hE,GAAuB,EAAG58C,kBAAiBE,YAAWjL,UAASD,QAAOoL,eAAcy8C,sBAC7F,MAAOhtH,EAAa8kE,IAAkB,IAAAx9P,UAAS,KACxCspQ,EAAyBC,IAA8B,IAAAvpQ,UAAS,KAChEigD,EAAMC,IAAW,IAAAlgD,UAASmgD,EAAc,cAAd,WAC3Bs9M,GAAgB,IAAA57P,QAAO,IAAI+C,KAC3B84P,GAAgB,IAAA77P,QAAO,IAAI+C,MACjC,IAAA3E,YAAU,MACLggD,GAAQC,EAAQC,EAAc,cAAd,WACjB,MAAMw9M,EAAY,IAAIC,UAAU,GAAGC,gBAAoBC,KACvDH,EAAUI,WAAa,cACvB,MAAMC,GAAc,IAAIrJ,aAAcC,OAAO,QAC7C,IAAIzpJ,EAYJ,OAXAwyJ,EAAUM,OAAS,KACf9yJ,EAAW0a,aAAY,KACnB83I,EAAU5hM,KAAKiiM,EAAY,GAC5B,IAAK,EAEZL,EAAU/8I,UAAapgF,IACnB,MAAMoL,EAAOpL,EAAMoL,KACb+a,EAAU22M,GAAK1B,QAAQhwN,EAAM,CAAE+sF,GAAI,WACzCulI,EAAgBv3M,EAAQ,EAE5B4iN,EAA2BV,EAAgBv9P,QAAQy5B,GAASA,EAAK0kO,SAAWR,IAAc93P,KAAI4zB,GAAQA,EAAKhc,OAAUgc,EAAKhc,MAAQ,IAAKgc,EAAM4gR,UAAW5gR,EAAKhc,MAAMtM,QAAQ,IAAK,KAAQsoB,KACjL,KACH+4C,cAAcqtB,GACdwyJ,EAAU14L,OAAO,CACpB,GACF,IACH,MAAMi5L,EAAmBv3M,IACrB,MAAMsvM,EAAO11K,KAAKC,MAAM75B,GAClB+xI,EAAc,GACpB,IAAK,MAAM/sL,KAAOsqP,EACd,GAAItqP,EAAImV,SAAS,SAAU,CACvB,MAAM8zH,EAAQjpI,EAAI+kB,MAAM,KAAK,GACvBytO,EAAe59K,KAAKC,MAAMy1K,EAAKtqP,IAC/B5M,EAAIwhF,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBjpI,EAAI+kB,MAAM,KAAK,OAAO0tO,KACvE,GAAIgK,GAAexzH,EAAMtuG,eAAexlB,SAASq9O,EAAaI,MAAO,CACjE,MAAMF,EAAcC,EAAgB1pH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GAC5FyI,EAAUhB,EAAcz7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DI,EAAUlB,EAAcx7P,QAAQ8C,IAAIo5P,EAAaI,OAAS,EAC1DK,EAAa,CACfl0P,KAAM3L,EACN08B,KAAM0iO,EAAaI,KACnBM,UAAWjqH,EACXkqH,IAAKX,EAAaK,IAClBO,SAAUC,EAAYb,EAAaK,IAAKE,GACxCO,QAASyK,EAAWvL,EAAaK,IAAKE,GACtCQ,IAAKf,EAAaM,IAClBU,SAAUH,EAAYb,EAAaM,IAAKE,GACxCS,QAASsK,EAAWvL,EAAaM,IAAKE,GACtCU,OAAQC,EAAW1qH,EAAOupH,EAAaI,KAAMJ,EAAaK,IAAKL,EAAaM,IAAKxI,GACjFoI,cACAkB,iBAAkBA,GAAkBlB,GACpCmB,gBAAiBA,GAAiBnB,IAEtCZ,EAAcx7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaM,KAC1Df,EAAcz7P,QAAQkD,IAAIg5P,EAAaI,KAAMJ,EAAaK,KAC1D9lE,EAAY7uL,KAAK+0P,EACrB,CACJ,CAEJpB,EAAe9kE,EAAYptL,QAAOszP,GAAcA,EAAWC,YAAcoK,IAAc,EAErF3J,EAAa,CAAC1qH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KACvC,MAAM0J,EAAap/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,gBAAoBn5G,MAC1D,IAAImkO,EAAmB,EACnBC,EAAW,EACf,GAAI5J,EAAK,GAAGrhH,oBAAwBn5G,KAAS,CACzC,MAAMqkO,EAAiBv/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,oBAAwBn5G,MAClEmkO,EACIE,EAAeC,kBAAoBJ,EAAWI,iBAClDF,EAAWC,EAAeE,UAAYL,EAAWK,QACrD,MAEIJ,EAAmBD,EAAWI,iBAC9BF,EAAWF,EAAWK,SAE1B,IAAIC,EAAUJ,GAAY,EAAM,EAAID,EAGpC,OAFAK,EAAUA,EAAU,EAAIA,EAAU,EAAIA,IACrBf,EAAMJ,GAAOp+P,KAAKkkG,IAAI,GAAIq7J,IAAUlmM,QAAQ,EAChD,EAEXukM,EAAkB,CAAC1pH,EAAOn5G,EAAMqjO,EAAKI,EAAKjJ,KAC5C,GAAIA,EAAK,GAAGrhH,uBAA2Bn5G,KAAS,CAC5C,MACMykO,EADe3/K,KAAKC,MAAMy1K,EAAK,GAAGrhH,uBAA2Bn5G,MACpC0kO,WAAa,EAI5C,MAAO,MAHsBjB,EAAMJ,GAAO,EACDoB,GACLA,EAAa,KAAKnmM,QAAQ,KAElE,CACA,MAAO,KAAK,EAEVilM,EAAc,CAACoB,EAAcC,IAC3BD,GAAgBC,EACT,uBAGA,uBAGTd,EAAoB3gQ,GAClBA,GAAS,EACF,uBAGA,uBAGT8qQ,EAAa,CAACtJ,EAAcC,IAC1BD,GAAgBC,EACT0I,EAAU,GAGVA,EAAU,GAGnBvJ,EAAmB5gQ,GACjBA,GAAS,EACFmqQ,EAAU,GAGVA,EAAU,GAGnB68C,EAAuBC,GAAkBz4S,MAA6B,EAAvBy4S,EAAcxmT,QAAYm9C,KAAKqpQ,GAAeC,OAC7FxI,EAAgB,iBAAkB,CAACr2P,EAAO46J,GAAmB,IAAU,kBAAoB,GAAQ,CAAE9hB,aAAc,GAAIe,cAAe,OAAQ9xL,MAAM,EAAMvG,SAAU,CAClKylF,MAAO,EACPyzH,sBAAsB,EACtBE,oBACDtwM,MAAO,IAAMimM,QAAS,CAAC+J,IAAW/7M,UAAW,6BAA+B,IAAIyhD,KAChFA,KACAA,GAAO91C,KAAI,CAAC4zB,EAAMuH,IAAW,kBAAoBm9K,GAAa,CAAE99M,IAAK,mBAAmB2gC,KAC3F,kBAAoBk5Q,GAAsB,CAAEz8R,MAAOugP,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc5gR,EAAKtJ,OAAM,IAAI1S,OAAS,GAAI2gC,YAAa3kB,EAAKr6B,KAAM8rB,KAAM8yO,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc5gR,EAAKtJ,OAAM,IAAIguB,UAAY,GAAI85L,OAAQ,GAAGx+M,EAAK+5N,MAAOpb,OAAQ,GAAG3+M,EAAKm6N,MAAO7b,aAAct+M,EAAKg6N,SAAUtb,aAAc1+M,EAAKo6N,gBAAiB,CAACmK,IAChX,OAAQ,kBAAoB,MAAO,KAC/B,kBAAoB,MAAO,CAAE9jQ,UAAW,0BAA4BkzL,EAAYr5L,OAAU,kBAAoB,aAAgB,KAAe,UAAT4gD,EAChI,kBAAoB,MAAO,CAAEz6C,UAAW,iBACpC83S,EAAcsI,EAAoBltH,EAAYptL,QAAO,CAACurB,EAAI53B,IAAMA,EAAI,GAAM,MAC1E,kBAAoB,KAAM,MAC1Bq+S,EAAcsI,EAAoBltH,EAAYptL,QAAO,CAACurB,EAAI53B,IAAMA,EAAI,GAAM,MAAK,IAAS,kBAAoB,aAAgB,KAChI,kBAAoB,GAAQ,CAAE8gM,aAAc,GAAInuL,UAAW,WAAY5C,MAAM,EAAM8xL,cAAe,OAAQt7L,UAAW,4BAA6B+L,MAAO,IAAMmuL,mBAAoB,GAAIj3L,SAAU,CACzLylF,MAAO,EACPyzH,sBAAsB,IACrBikG,EAAoBltH,EAAYptL,QAAO,CAACurB,EAAI53B,IAAMA,EAAI,GAAM,KAAIkS,KAAI,CAACytP,EAAYtyN,IAAU,kBAAoBm9K,GAAa,CAAE99M,IAAK,mBAAmB2gC,KAC3J,kBAAoBk5Q,GAAsB,CAAEz8R,MAAOugP,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc/mD,EAAWnjO,OAAM,IAAI1S,OAAS,GAAI2gC,YAAak1M,EAAWl0P,KAAM8rB,KAAM8yO,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc/mD,EAAWnjO,OAAM,IAAIguB,UAAY,GAAI85L,OAAQ,GAAGqb,EAAWE,MAAOpb,OAAQ,GAAGkb,EAAWM,MAAO7b,aAAcub,EAAWG,SAAUtb,aAAcmb,EAAWO,eACxY,kBAAoB,GAAQ,CAAEp/D,aAAc,GAAInuL,UAAW,WAAY5C,MAAM,EAAM8xL,cAAe,OAAQt7L,UAAW,4BAA6B+L,MAAO,IAAM9I,SAAU,CACjKylF,MAAO,EACPyzH,sBAAsB,EACtBE,kBAAkB,IACjB+jG,EAAoBltH,EAAYptL,QAAO,CAACurB,EAAI53B,IAAMA,EAAI,GAAM,KAAIkS,KAAI,CAACytP,EAAYtyN,IAAU,kBAAoBm9K,GAAa,CAAE99M,IAAK,oBAAoB2gC,KAC5J,kBAAoBk5Q,GAAsB,CAAEz8R,MAAOugP,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc/mD,EAAWnjO,OAAM,IAAI1S,OAAS,GAAI2gC,YAAak1M,EAAWl0P,KAAM8rB,KAAM8yO,EAAwBh+P,QAAQurB,GAAOA,EAAG8uR,YAAc/mD,EAAWnjO,OAAM,IAAIguB,UAAY,GAAI85L,OAAQ,GAAGqb,EAAWE,MAAOpb,OAAQ,GAAGkb,EAAWM,MAAO7b,aAAcub,EAAWG,SAAUtb,aAAcmb,EAAWO,iBAAoB,IAChaumD,GAAmB,kBAAoB,MAAO,CAAElgT,UAAW,uDACvD,kBAAoB,OAAQ,CAAEA,UAAW,6CAA+CkgT,IAAmB,EC1J1GK,GAA6Bj3S,GAAW,gBAAoB,KAAa,KAClF,gBAAoB,MAAO,CAAEtJ,UAAW,2BACpC,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,kCACpC,gBAAoB,MAAO,CAAEA,UAAW,iCACpC,gBAAoB,KAAM,CAAEA,UAAW,0CAA4CsJ,EAAMia,OACzF,gBAAoB,MAAO,CAAEvjB,UAAW,mCAAoCm+C,wBAAyB,CAAEC,OAAQ90C,EAAMitC,QACrHjtC,EAAM6pL,UAAa,gBAAoB,KAAU,CAAE37I,OAAQ,gBAAiBvB,KAAM3sC,EAAMu6C,QAASlM,aAAcruC,EAAM++M,kBAAoB/+M,EAAM6pL,WACnJ7pL,EAAMiyD,MAAQ,gBAAoB,KAAK,CAAE34D,IAAK0G,EAAMiyD,MAAOv7D,UAAW,mCAAsC,gBAAoBigT,GAAsB,IAAK32S,EAAMk3S,gBCTpKC,GAAiB,EAAGC,eAAcC,YAAW9+C,eAAc++C,eAAcxjD,YAAWyjD,kBAAiBC,mBAAkBC,WAAUC,WAAUC,UAAS,EAAOC,kBAAiBnvE,SAAQovE,gBAAe,EAAOC,mBAAkBC,mBAAqB,kBAAoB,MAAO,CAAEl7S,IAAK4rO,EAAQ/xO,WAAyB,IAAXihT,EAAmB,8BAAgC,yBACrW,kBAAoB,MAAO,CAAEjhT,UAAW,wCACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoB,MAAO,KACvB,kBAAoB,KAAK,CAAE4C,IAAK+9S,EAAW78P,IAAK+9M,EAAc7hQ,UAAW,6DACzE,kBAAoB,KAAM,CAAEA,UAAW,gEAAkEo9P,IAC7G,kBAAoB,OAAQ,CAAEp9P,UAAW,kEAAmEuc,QAAS2kS,GAAmBA,EAAgBnvE,KAAsB,IAAXkvE,EAAmB,GAAQ,CAAC,GAAK,GAAU,CAAC,KACnN,kBAAoB,IAAK,CAAEjhT,UAAW,sDAAwD4gT,IAClG,kBAAoB,MAAO,CAAE5gT,UAAW,mCACpC,kBAAoB,IAAK,CAAEA,UAAW,iDAAmD0gT,GACzF,kBAAoB,IAAK,CAAE1gT,UAAW,6CAA+C+gT,GACrF,kBAAoB,IAAK,CAAE/gT,UAAW,6CAA+CghT,GACrF,kBAAoB,IAAK,CAAEhhT,UAAW,oDAAsD6gT,GAC5F,kBAAoB,MAAO,CAAE7gT,UAAW,gEACpC,kBAAoB,IAAK,CAAEA,UAAW,kFAClC8gT,EACAK,GAAgB,kBAAoB,OAAQ,CAAEnhT,UAAW,yEAA0Euc,QAAS6kS,GAAoBA,EAAiBrvE,IAAWsvE,OCnB/LC,GAAkB,EAAG9jQ,YAAWC,cAAgB,kBAAoB,MAAO,CAAEz9C,UAAW,mBACjG,kBAAoB,KAAM,CAAEA,UAAW,8BAAgCw9C,GACvE,kBAAoB,IAAK,CAAEx9C,UAAW,6BAA+By9C,ICC5D8jQ,GAA2B,EAAGC,qBAAoBC,yBAAwBnzE,YACnF,MAAOozE,EAAYC,IAAiB,IAAAnnT,UAAS,KACvC,QAAEksD,IAAY,WACdk7P,GAAsB,IAAA9iT,cAAau4B,GAAO,KAC5C,MAAM4M,EAASy9Q,EAAW/1S,KAAKvP,GACvBA,EAAE21O,SAAW16M,EACN,IAAKj7B,EAAG6kT,QAAQ,GAEpB,IAAK7kT,EAAG6kT,QAAS7kT,EAAE6kT,UAE9BU,EAAc19Q,EAAO,GACtB,CAACy9Q,KACJ,IAAAjnT,YAAU,KACN,GAAI6zO,EAAMz0O,OAAS,EAAG,CAClB,MAAMT,EAAQk1O,EAAM3iO,KAAKvP,GACjBsqD,EACO,IAAKtqD,EAAG+kT,cAAc,GAE1B,IAAM/kT,EAAG+kT,aAAe/kT,EAAE0kT,iBAAiBjnT,OAAS,MAE/D8nT,EAAcvoT,EAClB,IACD,CAACk1O,EAAO5nL,IACX,MAAMm7P,GAAuB,IAAA/iT,cAAau4B,IACtC,MAAMj+B,EAAQsoT,EAAW57S,QAAQ1J,GAAMA,EAAE21O,SAAW16M,IAAI,GACxD,OAA2B,IAAvBj+B,EAAM+nT,aACC/nT,EAAM0nT,iBAAiBl4S,MAAM,EAAG,IAAI8vD,OAAO99D,OAAO,OAEtDxB,EAAM0nT,gBAAgB,GAC9B,CAACY,IACEI,GAAyB,IAAAhjT,cAAau4B,GAAO,KAC/C,MAAM4M,EAASy9Q,EAAW/1S,KAAKvP,GACvBA,EAAE21O,SAAW16M,EACN,IAAKj7B,EAAG+kT,cAAc,GAE1B/kT,IAEXulT,EAAc19Q,EAAO,GACtB,CAACy9Q,IACEK,GAAqB,IAAAjjT,cAAa1F,GACrBA,EAAM6d,QAAQ,IAAK,QAEnC,IACH,OAAQ,kBAAoB,MAAO,CAAEjX,UAAW,4BAC5C,kBAAoBshT,GAAiB,CAAE9jQ,UAAWgkQ,EAAoB/jQ,SAAUgkQ,IAChF,kBAAoB,MAAO,CAAEzhT,UAAW,0CAA4C0hT,EAAW7nT,OAAS,GACpG6nT,EAAW/1S,KAAKvP,GAAO,kBAAoBqkT,GAAgB,CAAE1uE,OAAQ31O,EAAE21O,OAAQ5rO,IAAK/J,EAAE21O,OAAQ2uE,aAActkT,EAAEskT,aAAcC,UAAWvkT,EAAEukT,UAAW9+C,aAAczlQ,EAAEylQ,aAAc++C,aAAcmB,EAAmB3lT,EAAEwkT,cAAexjD,UAAWhhQ,EAAEghQ,UAAW2jD,SAAU3kT,EAAE2kT,SAAUC,SAAU5kT,EAAE4kT,SAAUH,gBAAiBzkT,EAAEykT,gBAAiBI,OAAQ7kT,EAAE6kT,OAAQE,aAAc/kT,EAAE+kT,aAAcL,iBAAkBe,EAAqBzlT,EAAE21O,QAASmvE,gBAAiBU,EAAqBR,iBAAkBU,EAAwBT,cAAejlT,EAAEilT,mBAAqB,EC5CniBW,GAAqB,EAAGz+R,QAAO0+R,gBAAe9lD,gBAAeC,iBAAgBlpE,cAAagvH,qBAAoBC,eAAcC,sBADxG,MAE7B,MAAOC,EAAmBC,IAAwB,IAAA9nT,WAAS,GAUrD+nT,GAAW,IAAAzjT,cAAazF,IAC1BA,EAAEomB,iBACF6iS,GAAqB,KAAM,GAAK,GACjC,IACH,OAAQ,kBAAoB,KAAa,CAAExrQ,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,uBACpC,kBAAoB,MAAO,CAAEA,UAAW,yCAAwCiiT,EAAgB,qBAAuB,KACnH,kBAAoB,KAAM,KAAM1+R,IACpC,kBAAoB,MAAO,CAAEvjB,UAAW,8BAA6BmiT,EAAe,wCAA0C,KAAQjvH,GAAavnL,KAAI,CAACytP,EAAY3/P,KAAM+oT,OAlB5JxZ,EAkB6K5vC,EAlBvKtyN,EAkBmLrtC,EAlBxK,kBAAoB,MAAO,CAAE0M,IAAK6iS,EAAK9jS,KAAO8jS,EAAKnlP,QAAS7jD,WAAgB8mC,EAAQs7Q,GAAwBC,EAAqB,GAAK,kBAA/D,mCAC9G,kBAAoB,IAAK,CAAEpsQ,KAAM+yP,EAAKnlP,QAAS5kD,MAAO,CAAEqwO,eAAgB,OAAQhhL,MAAO,UAAWh+B,QAAS,UACvG,kBAAoB,MAAO,CAAEtwB,UAAW,6CACpC,kBAAoB,MAAO,CAAEA,UAAW,gDACpC,kBAAoB,KAAK,CAAE4C,IAAKomS,EAAKyZ,QAAS3+P,IAAKklP,EAAKz3G,QAASzoI,QAAS,WAC9E,kBAAoB,MAAO,CAAE9oD,UAAW,iDACpC,kBAAoB,KAAM,CAAEA,UAAW,gBAAkBgpS,EAAK9jS,OAClE,kBAAoB,IAAK,CAAElF,UAAW,4CAA8CgpS,EAAK9kP,aACzF,kBAAoB,MAAO,CAAElkD,UAAW,2CCfvB,kBAAoB,MAAO,CAAEhE,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAChI,kBAAoB,OAAQ,CAAEr1B,EAAG,sOAAuOm7C,KAAM,sBDMrP,IAACgyP,EAAMliQ,CAkBqL,KACzM,kBAAoB,MAAO,CAAE9mC,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,mCAAqCqiT,GAAqB,kBAAoB9qQ,GAAA,EAAU,CAAEC,OAAQ,mBAAoBj7B,QAASgmS,GAAYL,IACnL9lD,GAAkB,kBAAoB,IAAK,CAAEp8P,UAAW,sDAAuDi2C,KAAMkmN,GACjH,kBAAoB,IAAK,KAAMC,OAAqB,EE7B/DsmD,GAAkB,EAAGllQ,YAAWmlQ,qBAAuB,kBAAoB,MAAO,CAAE3iT,UAAW,mBACxG,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAAEC,OAAQZ,KAC/D,kBAAoB,IAAK,CAAEW,wBAAyB,CAAEC,OAAQukQ,MCDrDC,GAA8B,EAAGC,WAAU5+P,WAAUwtI,cAAgB,kBAAoB,MAAO,CAAEzxL,UAAW,+BACtH,kBAAoB,KAAK,CAAE4C,IAAKqhD,EAAUH,IAAK2tI,EAAUzxL,UAAW,qCAAsC8oD,QAAS,UACnH,kBAAoB,OAAQ,CAAE9oD,UAAW,4CACrC,kBAAoB,KAAM,CAAEA,UAAW,kDAAmDm+C,wBAAyB,CAAEC,OAAQykQ,EAASt/R,SACtI,kBAAoB,IAAK,CAAEvjB,UAAW,wDAAyDm+C,wBAAyB,CAChHC,OAAQykQ,EAAS3+P,iBCCpB4+P,GAA0B,EAAGtlQ,YAAWmlQ,kBAAiBI,uBAAsBz0E,QAAOx3L,sBAC/F,MAAO21G,EAAcu2J,IAAmB,IAAAxoT,UAAS,IAC3C,QAAEylD,IAAY,SAAUnJ,GACxBmsQ,GAAqB,IAAAnkT,cAAa63L,IACpCqsH,EAAgBrsH,EAAO2K,UAAU,GAClC,IACH,OAAQ,kBAAoB,KAAa,CAAExqJ,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,sCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,2BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBACpC,kBAAoB0iT,GAAiB,CAAEllQ,UAAWA,EAAWmlQ,gBAAiBA,IAC9E,kBAAoB,OAAQ,CAAE3iT,UAAW,0CACrC,kBAAoB,IAAK,CAAEA,UAAW,wBAAyB,QAAgB,CAAC,IAChF,kBAAoB,IAAK,CAAEA,UAAW,uDAClCysJ,EAAe,EACf,IACA,IAAIs2J,KACJ,IACAz0E,EAAMz0O,QACV,kBAAoB,IAAK,CAAEmG,UAAW,wBAAyB,QAAgB,CAAC,MACxF,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,KAAW,KAC3B,kBAAoB,GAAQ,CAAEuqM,WAAY,CAClCC,OAAQ,uBACRC,OAAQ,wBACTuH,QAAS,CAACkD,IAAaguG,kBAAmBD,EAAoBz5S,MAAM,EAAM2rM,YAAY,EAAM5Z,YAAa,CACxG,IAAO,CACHD,cAAe,EACff,aAAc,GAElB,KAAQ,CACJe,cAAgBgzC,EAAMz0O,OAAS,EAAK,EAAI,EACxC0gM,aAAe+zC,EAAMz0O,OAAS,GAAM,IAAM,KAE7Cy0O,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,gBAAgB1M,KAAO,kBAAoBmpT,GAA6B,IAAKr0E,aAAiB,ECpCrL40E,GAA2B,EAAG5/R,QAAOu2B,WAAUspQ,aAAYC,aAAYv/P,MAAKw/P,aAAYC,aAAYzsQ,kBAAiBg3K,gBAAgB,SAAUa,mBAAmB,SAAUt6B,cAAamvH,yBAAyB,OAAQ/kQ,aAAYD,cAAagqN,cAC5P,MAAM,QAAEvoN,EAAO,UAAEoS,IAAc,SAAUvb,GACnC2sQ,EAAiB,+CACI,WAAlB31F,EAA6B,uDAAuDA,IAAkB,KACjF,WAArBa,EAAgC,0DAA0DA,IAAqB,IAClH+0F,GAAW,IAAApuQ,UAAQ,IAAOiuQ,EAC5B,kBAAoB,QAAS,CAAEvjT,UAAW,qCAAsC63N,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,GAClI,kBAAoB,SAAU,CAAEn1N,IAAK2gT,GAAcD,EAAYx1S,KAAM,cACrE,kBAAoB,KAAK,CAAE9N,UAAW,qCAAsC4C,IAAKygT,GAAcD,EAAYt/P,IAAKA,KACpH,kBAAoB,KAAK,CAAE9jD,UAAW,qCAAsC4C,IAAKygT,GAAcD,EAAYt/P,IAAKA,KAAS,CAACA,EAAKu/P,EAAYD,EAAYG,EAAYD,IACjKK,GAAW,IAAAruQ,UAAQ,IAAOguQ,EAC5B,kBAAoB,QAAS,CAAEtjT,UAAW,qCAAsC63N,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,GAClI,kBAAoB,SAAU,CAAEn1N,IAAK0gT,GAAcC,EAAYz1S,KAAM,cACrE,kBAAoB,KAAK,CAAE9N,UAAW,qCAAsC4C,IAAKwgT,GAAcC,EAAYv/P,IAAKA,KACpH,kBAAoB,KAAK,CAAE9jD,UAAW,qCAAsC4C,IAAKwgT,GAAcC,EAAYv/P,IAAKA,KAAS,CAACA,EAAKu/P,EAAYD,EAAYG,EAAYD,IAEvK,OAAQ,kBAAoB,KAAa,CAAExsQ,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3Bo0I,GAAe,kBAAoBD,EAAa,CAAEC,YAAaA,EAAaC,UAA+B,UAApBx9I,IACvF,kBAAoB,MAAO,CAAE73C,MAAO,CAAEqvD,MAAO+D,EAAWyoI,UAAW0oH,GAA0BxjT,UAAW,+BACpG,kBAAoB,MAAO,CAAEA,UAAWyjT,GACpC,kBAAoB,MAAO,CAAEzjT,UAAW,sCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAPvBgxN,EAAU,aAAe,cAOyBjlP,IAC9D,kBAAoB,MAAO,CAAEvjB,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,wDAAyDm+C,wBAAyB,CAAEC,OAAQtE,MACxI4pQ,GACI,kBAAoB,MAAO,CAAE1jT,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,2DAA6D0jT,GACrG,kBAAoB,MAAO,CAAE1jT,UAAW,uEAAyE2jT,KAC7HnlQ,GAAe,kBAAoB,MAAO,CAAEx+C,UAAW,+CACnD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBvB,KAAMwI,GAAcD,MAAiB,EC/BrGolQ,GAAqB,EAAGC,cAAarmQ,YAAWsmQ,iBAAgBC,kBAAiBC,kBAAiB70F,mBAAkB80F,mBAAkB30F,oBAAmB40F,mBAAkBC,oBAAmB/3F,eAAe,gBAAiBg4F,kBAAiBC,qBAAoBC,WAAU/4F,qBAAoBg5F,oBAAmBC,qBAAoBC,eAAcC,WAAUC,cACzW,MAaMC,GAAsB,SAAiBL,GACvCM,GAAuB,SAAiBL,GAC9C,OAAQ,kBAAoB,MAAO,CAAExkT,UAAW,iCAAgCskT,EAAW,qCAAuC,KAC9H,kBAAoB,MAAO,CAAEtkT,UAAW,2CACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBgG,IAC3D,kBAAoB,MAAO,CAAEx9C,UAAW,gDAAkD6jT,EAAYhqT,OAAS,GAAKgqT,EAAYl4S,KAAI,CAACvP,EAAG0qC,IAAW,kBAAoB,EAAA+P,SAAU,CAAE1wC,IAAK,QAAQ2gC,KAC5L,kBAAoB,MAAO,CAAE9mC,UAAW,iDACpC,kBAAoB,KAAK,CAAEA,UAAW,8CAA+C4C,IAAKxG,EAAE6nD,SAAUH,IAAK1nD,EAAEq1L,YACjH,kBAAoB,MAAO,CAAEzxL,UAAW,gDACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQhiD,EAAEmnB,SAElB,kBAAoB,MAAO,CAAEvjB,UAAW,yCAA0Cm+C,wBAAyB,CACnGC,OAAQhiD,EAAE0xP,iBApBO3+B,GAAoBG,IAAsB,kBAAoB,MAAO,CAAEtvN,UAAW,2DACnHmvN,GAAoB,kBAAoB,OAAQ,CAAEnvN,UAAW,+EACzD,kBAAoB,KAAK,CAAE4C,IAAKshT,IAChC,kBAAoB,IAAK,CAAEjuQ,KAAM+tQ,EAAiBxkT,OAAQolT,GAAuBz1F,IACrFG,GAAqB,kBAAoB,OAAQ,CAAEtvN,UAAW,gFAC1D,kBAAoB,KAAK,CAAE4C,IAAKuhT,IAChC,kBAAoB,IAAK,CAAEluQ,KAAMguQ,EAAkBzkT,OAAQqlT,GAAwBv1F,KAiBvFq1F,GAASpuQ,MAAQ,kBAAoB25P,GAAkB,CAAE35P,KAAMouQ,EAAQpuQ,KAAMhzB,MAAOohS,EAAQphS,QAxBzDwgS,GAAmB,kBAAoB,KAAU,CAAEvsQ,OAAQ40K,EAAcn2K,KAAM6tQ,EAAgBnsQ,aAAc4zK,EAAoBnzK,eAAgB,6CAA+C2rQ,GA0BnO,kBAAoB,MAAO,CAAE/jT,UAAW,kEA/BPokT,GAAmB,kBAAoB,MAAO,CAAEpkT,UAAW,kEAAmEm+C,wBAAyB,CAAEC,OAAQgmQ,KAC9JC,GAAsB,kBAAoB,IAAK,CAAErkT,UAAW,sEAAwEqkT,GACtIK,GAAY,kBAAoB,MAAO,CAAE1kT,UAAW,sEACtF,kBAAoB,KAAK,CAAE4C,IAAK6hT,IAChC,kBAAoB,IAAK,KAAMC,KA8BA,ECpC1BI,GAA2B,EAAGvhS,QAAOk+B,QAAOg0K,aAAYzhC,aAAYr8I,kBAAoB,kBAAoB,KAAa,CAAEb,gBAAiB,QACrJ,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoB,MAAO,CAAEA,UAAW,oEACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,IACxD,kBAAoB,MAAO,CAAEvjB,UAAW,+CAAiDyhD,GAASA,EAAM91C,KAAI,CAACvP,EAAG0qC,IAAW,kBAAoB,MAAO,CAAE9mC,UAAW,qCAAsCmG,IAAK,QAAQ2gC,KAClN,kBAAoB,MAAO,CAAE9mC,UAAW,iDACpC,kBAAoB0nN,GAAO,CAAE1nN,UAAW,8CAA+C4C,IAAKxG,EAAE6nD,SAAUH,IAAK1nD,EAAEq1L,YACnH,kBAAoB,MAAO,CAAEzxL,UAAW,gDACpC,kBAAoB,KAAM,CAAEA,UAAW,UAAWm+C,wBAAyB,CACnEC,OAAQhiD,EAAEmnB,SAElB,kBAAoB,IAAK,CAAEvjB,UAAW,YAAam+C,wBAAyB,CACpEC,OAAQhiD,EAAEm6C,aAE1Bk/K,GAAc,kBAAoB,MAAO,CAAEz1N,UAAW,iDAClD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,+BAAgCvB,KAAMw/K,EAAY99K,aAAcA,EAAcE,gBAAgB,GAAQm8I,OClBjJ+wH,GAAuB,EAAGxhS,QAAO2gC,cAAa1F,cAAaC,aAAYumQ,eAAiB,kBAAoB,MAAO,CAAEhlT,UAAW,+BACzI,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,KAAK,CAAE4C,IAAKoiT,EAAWlhQ,IAAK,SAASvgC,OAC7D,kBAAoB,MAAO,CAAEvjB,UAAW,yDACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ8F,KAC9D,kBAAoB+kK,GAAc,CAAEvlN,MAAO86C,EAAavI,KAAMwI,MCNzDwmQ,GAAmB,EAAGznQ,YAAWC,WAAU6wL,QAAO42E,kBAAkB,gBAAoB,kBAAoB,KAAa,CAAEpuQ,gBAAiB,QACrJ,kBAAoB,MAAO,CAAE92C,UAAW,yBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,oBACpC,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,IAAK,KAAMC,IACnC,kBAAoB,MAAO,CAAEz9C,UAAkC,eAApBklT,EAAmC,iCAAmC,0CAA8C52E,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAKvP,GAAO,kBAAoB2oT,GAAsB,CAAE5+S,IAAK,SAAS/J,EAAEmnB,QAASA,MAAOnnB,EAAEmnB,MAAO2gC,YAAa9nD,EAAE8nD,YAAa1F,YAAapiD,EAAEoiD,YAAaC,WAAYriD,EAAEqiD,WAAYumQ,UAAW5oT,EAAE4oT,UAAWG,UAAW/oT,EAAE+oT,UAAWC,WAAYhpT,EAAEgpT,oBCJ7aC,GAAoB,EAAG/2E,QAAOx3L,kBAAkB,QAASvzB,QAAO+hS,aAAa,EAAGvxH,YAAWC,aAAYu3B,yBAChH,MAAM,QAAEtrK,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,GAAuB,SAApB82C,EAA6B,iCAAmC,0DAA0DwuQ,UACjK,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEtlT,UAAW,2CACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,GACtE,kBAAoB,MAAO,CAAEvjB,UAAW,uDAAyDsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmnB,QAASvjB,UAAW,sEACpM,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE6nD,SAAUH,IAAK1nD,EAAEq1L,WACnD,kBAAoB,OAAQ,CAAEzxL,UAAW,6EACrC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBp7C,EAAEmnB,OAC/D,kBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQhiD,EAAE0xP,gBAE1B95D,GAAc,kBAAoB,MAAO,CAAEh0L,UAAW,6CAClD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBvB,KAAM89I,EAAWp8I,aAAc4zK,GAAsBv3B,OAAiB,ECpB1IuxH,GAAkB,kBAAoB,MAAO,CAAEvpT,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC9H,kBAAoB,OAAQ,CAAEr1B,EAAG,ojBAAqjBm7C,KAAM,WCDnlBwuQ,GAAkB,kBAAoB,MAAO,CAAExpT,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC9H,kBAAoB,OAAQ,CAAEr1B,EAAG,olBAAqlBm7C,KAAM,WCMnnByuQ,GAAsB,EAAGliS,QAAOgzB,OAAMmvQ,QAAOzhQ,WAAUwtI,WAAU0B,WAAUtvI,UAAS8hQ,YAAWC,aAAY7sE,WAAU8sE,cAAaC,cAAav8F,sBAAqB,MAC7K,MAAOw8F,EAAeC,GAAkB,YAAe,GACjDjhG,GAA2C,IAAvBwE,EACpB08F,EAAsB,eAAmB5sT,IAC3CA,EAAEomB,iBACFumS,GAAgBD,EAAc,GAC/B,CAACA,IACEG,EAAqB,eAAmB7sT,IAC1CA,EAAEomB,iBACFumS,GAAe,EAAM,GACtB,IAKGG,EAAmB,eAAkB,IAAO,gBAAoB,WAAgB,KAClFR,GAAc,gBAAoB,IAAK,CAAEppS,QAAS0pS,EAAqBhwQ,KAAM,IAAKj2C,UAAW,gDACzFwlT,GACA,gBAAoB,OAAQ,KAAMG,IACtCC,GAAe,gBAAoB,IAAK,CAAErpS,QAAS0pS,EAAqBhwQ,KAAM,IAAKj2C,UAAW,wDAC1FwlT,GACA,gBAAoB,OAAQ,KAAMI,MAAiB,CAACD,EAAWC,EAAYK,IACnF,OAAQ,gBAAoB,KAAa,CAAEnvQ,gBAAiB,QACxD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAE92C,UAAW,uBACpC6lT,GAAe,gBAAoBn+F,GAAO,CAAE1nN,UAAW,uCAAwC4C,IAAKijT,EAAa/hQ,IAAKgiQ,IACtH,gBAAoB,KAAM,CAAE9lT,UAAW,sBAAwBujB,GAC/DgzB,GAAQ,gBAAoB,KAAM,CAAEv2C,UAAW,oEAAsEu2C,GACrHmvQ,GAAS,gBAAoB,KAAM,CAAE1lT,UAAW,+DAAiE0lT,GACjH,gBAAoB9gG,GAAQ,CAAElhN,MAAOyvL,EAAUl9I,KAAM4N,EAASmhK,aAAcD,EAAkBp8M,WAAY1J,MAAO,CAAEqvD,MAAO,WAAau2J,SAAS,IAChJ5gK,GAAY,gBAAoB,KAAK,CAAErhD,IAAKqhD,EAAUH,IAAK2tI,IAC3D00H,MACR,iBArBsB,EAAGlF,SAAQj1C,UAAS/rQ,cAAgB,gBAAoB,MAAO,CAAED,UAAW,uBAAsBihT,EAAS,OAAS,KAC1I,gBAAoB,MAAO,CAAEjhT,UAAW,+BACpC,gBAAoB,OAAQ,CAAEuc,QAASyvP,EAAShsQ,UAAW,6BAA+BulT,IAC1FtlT,KAkBmC,CAAEghT,OAAQ8E,EAAe/5C,QAASk6C,GACrE,gBAAoB,SAAU,CAAElqT,MAAO,OAAQC,OAAQ,OAAQ2G,IAAKm2O,EAAUx1N,MAAO,wBAAyB6iS,YAAa,IAAKjtE,MAAO,sGAAuGC,iBAAiB,KAAU,ECxCxQitE,GAAwB,EAAGC,SAAQ7uQ,UAAS8uQ,WAAW,EAAG/jM,WAAW,IAAMriC,OAAO,MAC3F,MAAOqmO,EAAeC,IAAoB,IAAAjsT,UAAS+rT,GAC7CG,EAAYxrT,KAAKE,IAAI,EAAGF,KAAKowD,MAAM60B,GAAQ,IAsBjD,OArBA,IAAA1lF,YAAU,KACN,IAAIs3S,GAAY,EAChB,MAAM4U,EAAgBnkM,EAAWtnH,KAAK+S,MAAMq4S,EAASC,GAAYG,GAC3D/gN,EAAW0a,aAAY,KACrB0xL,GACA0U,GAAkBG,GACVA,EAAaN,EACNM,EAAaF,GAGpBpuO,cAAcqtB,GACPihN,IAGnB,GACDD,GACH,MAAO,KACH5U,GAAY,EACZz5N,cAAcqtB,EAAS,CAC1B,GACF,CAAC4gN,EAAUD,EAAQ9jM,EAAUkkM,IACxB,kBAAoB,MAAO,CAAEznT,MAAO,CAAE27L,YAAa,SAAW56L,UAAW,2BAC7E,kBAAoB,MAAO,CAAEA,UAAWy3C,EAASx4C,MAAO,CAAE8uN,UAAW,SAAYy4F,GACjF,kBAAoB,MAAO,CAAExmT,UAAWy3C,EAASx4C,MAAO,CAAE4O,WAAY,SAAU5R,OAAQ,EAAG2+L,YAAa,SAAY0rH,GAAS,ECrBxHO,GAAwC,EAAGtjS,QAAOgzB,OAAMy9I,aAAYD,YAAWq4B,eAAe,gBAAiBt1K,kBAAiBiiM,WAAU+tE,mBACnJ,MAAM,UAAEz0P,IAAc,SAAUvb,GAChC,OAAQ,gBAAoB,MAAO,CAAE92C,UAAW,+CAC5C,gBAAoB,KAAa,KAC7B,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,8CAA+Cf,MAAO,CAAEqvD,MAAO+D,IACnG,gBAAoB,KAAM,KAAM9uC,GAChC,gBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQ7H,KAEhB,gBAAoB,KAAU,CAAEkB,QAAS,sDAAuDxB,KAAM89I,EAAWv8I,OAAQ40K,GACrHp4B,EACA,KACJ,gBAAoB,MAAO,CAAEh0L,UAAW,wEAA0E8mT,EAAan7S,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,6DAC7L,gBAAoB,MAAO,CAAEA,UAAW,2FACpC,gBAAoBqmT,GAAuB,CAAE5uQ,QAAS,UAAW6uQ,OAAQ/mR,EAAKwnR,YAAa5mO,KAAM5gD,EAAKwnR,YAAc,IAAM,EAAI,IAC9H,gBAAoB,KAAM,KAAMxnR,EAAKynR,eACrC,gBAAoB,KAAK,CAAEljQ,IAAKvkB,EAAKgyJ,QAAS3uL,IAAK28B,EAAK+xJ,QAASryL,MAAO,CAAEjD,MAAO,OAAQ6+L,aAAc,UAC3G,gBAAoB,MAAO,CAAE57L,MAAO,CAAE8uN,UAAW,QAAU/tN,UAAW,yBAA2Bu/B,EAAK2kB,oBACtH,gBAAoB,MAAO,CAAElkD,UAAW,gEACpC,gBAAoB,MAAO,CAAEA,UAAW,4DACxC,gBAAoB,QAAS,CAAEA,UAAW,qDAAsD63N,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,GAClJ,gBAAoB,SAAU,CAAEn1N,IAAKm2O,EAAUjrO,KAAM,gBAAkB,ECrB1Em5S,GAAiC,EAAG34E,QAAOx3L,kBAAiB0G,YAAW0pQ,eAAcC,oBAAmBpzH,YAAWv1I,cAAa4oQ,sBAAqBzC,cAC9J,MAAM,QAAE1kQ,EAAO,UAAEoS,IAAc,SAAUvb,GAMzC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,0CACpC,kBAAoB,KAAW,KAPX,kBAAoB,MAAO,CAAEA,UAAW,0DAA+E,SAAtBmnT,EAA+B,2BAAoD,UAAtBA,EAAgC,4BAA8B,KACpP,kBAAoBjpQ,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBgG,GAC7D,kBAAoB,IAAK,KAAM0pQ,IAOvB,kBAAoB,MAAO,CAAEjoT,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,wDAA0DsuO,EAAMz0O,OAAS,GAC1Iy0O,EAAM3iO,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmnB,QAASvjB,UAAW,sEAAuEf,MAAO,CACzJ8uN,eAAuClnN,IAA5BzK,EAAEyzO,sBAAsC,SAAWzzO,EAAEyzO,sBAAsB/uM,cACtFumR,kBAAkCxgT,IAApBzK,EAAEgvN,cAA8B,SAAWhvN,EAAEgvN,cAActqL,gBAE7E,kBAAoB4mL,GAAO,CAAE9kN,IAAKxG,EAAE6nD,SAAUH,IAAK1nD,EAAEq1L,SAAU3oI,QAAS,UACxE,kBAAoB,OAAQ,CAAE9oD,UAAW,8EACrC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAap7C,EAAEmnB,OACtD,kBAAoB,IAAK,CAAEvjB,UAAW,yCAA0Cm+C,wBAAyB,CACjGC,OAAQhiD,EAAE0xP,gBAfb/5D,GAAa,kBAAoB,MAAO,CAAE/zL,UAAW,0DAC9E,kBAAoB,KAAU,CAAEi2C,KAAM89I,EAAWp8I,aAAcyvQ,EAAqB5vQ,OAAQ,iBAAmBgH,IAiBvGmmQ,GAASpuQ,MAAQ,kBAAoB25P,GAAkB,CAAE35P,KAAMouQ,EAAQpuQ,KAAMhzB,MAAOohS,EAAQphS,UAAY,EC1B3G+jS,GAAmB,EAAG/jS,QAAOu2B,WAAUvD,OAAMvlB,OAAMugK,UAAS4B,WAAUtvI,UAAS05M,eAAiB,gBAAoB,KAAa,CAAEzmN,gBAAiB,QAC7J,gBAAoB,KAAW,KAC3B,gBAAoB,KAAM,CAAE92C,UAAW,2BAA6BujB,GACpE,gBAAoB,MAAO,CAAEvjB,UAAW,8BACpC,gBAAoB,KAAK,CAAE4C,IAAKouB,EAAM8yB,IAAKytI,IAC3C,gBAAoB,KAAM,KAAMz3I,IACpC,gBAAoB,MAAO,CAAE95C,UAAW,oBACpC,gBAAoB,MAAO,CAAEA,UAAW,gBAAiBm+C,wBAAyB,CAAEC,OAAQ7H,KAC5F,gBAAoB,MAAO,CAAEv2C,UAAW,oCACpC,gBAAoB,IAAK,CAAEi2C,KAAM4N,EAAS7jD,UAAW,mDACjD++S,GACA5rH,IACR,gBAAoB,KAAM,CAAEnzL,UAAW,0BAA4Bu9P,EAAU5xP,KAAI,CAAC4zB,EAAM9lC,IAAM,gBAAoB,KAAM,CAAE0M,IAAK,yBAAyB1M,KACpJA,EAAI,EACJ,KACA8lC,EAAKgX,YClBRgxQ,GAAe,kBAAoB,MAAO,CAAEvrT,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC3H,kBAAoB,OAAQ,CAAEiuC,SAAU,UAAWg1H,SAAU,UAAWt4L,EAAG,sgFAAugFm7C,KAAM,WCE/kFwwQ,GAAqB,EAAGC,wBAAuBC,wBAAuBnkS,YAC/E,MAAMgrN,EAAO,iBAAmBo5E,GAA+B,kBAAoB,MAAO,KACtF,kBAAoB,MAAO,CAAE3nT,UAAW,iEACpC,kBAAoB,KAAM,CAAEA,UAAW,sBAAwB2nT,GAA2B7tQ,WAC9F,kBAAoB,MAAO,CAAE95C,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,kDAAmDm+C,wBAAyB,CAC5GC,OAAQupQ,GAA2BpxQ,MAAMrrB,MAAM,SAAS,IAAM,MAEtE,kBAAoB,KAAM,CAAElrB,UAAW,gCAAkC2nT,GAA2BpqD,WAAW5xP,KAAI,CAAC4zB,EAAM9lC,IAAM8lC,EAAQ,kBAAoB,KAAM,CAAEp5B,IAAK,+BAA+B1M,KACpM,kBAAoB,MAAO,CAAEuG,UAAW,0CACpCu/B,EAAK+xJ,SAAY,kBAAoBo2B,GAAO,CAAE9kN,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKgyJ,SAAW,SACtF,kBAAoB,MAAO,CAAEvxL,UAAW,kDAAoDu/B,GAAMgX,QAAW,kBAAoB,aAAgB,SACzJ,kBAAoB,MAAO,CAAEv2C,UAAW,kDAAmDm+C,wBAAyB,CAC5GC,OAAQupQ,GAA2BpxQ,MAAMrrB,MAAM,SAAS,IAAM,MAEtEy8R,GAA2B9jQ,SAAW8jQ,GAA2Bx0H,UAAa,kBAAoB,MAAO,CAAEnzL,UAAW,0CAClH,kBAAoB,IAAK,CAAEi2C,KAAM0xQ,EAA0B9jQ,QAAS7jD,UAAW,yDAC3E,kBAAoB,MAAO,CAAEA,UAAW,2EACpCunT,GACAI,EAA0Bx0H,eAAiB,IAC/D,OAAQ,kBAAoB,aAAgB,KACxC,kBAAoB,KAAa,CAAEr8I,gBAAiB,QAChD,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAE92C,UAAW,oDAAsDujB,GAC7F,kBAAoB,MAAO,CAAEvjB,UAAW,0CACpCuuO,EAAKk5E,GACLl5E,EAAKm5E,MAA2B,EC3BvCE,GAAkB,EAAG3I,mBAAkBx1F,eAAcjsK,eAAiB,kBAAoB,KAAa,CAAE1G,gBAAiB,QACnI,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,6CACpC,kBAAoB,MAAO,CAAEA,UAAW,IACpC,kBAAoB,KAAM,CAAEA,UAAW,wCAA0Cw9C,GACjF,kBAAoB,IAAK,CAAEx9C,UAAW,0CAA2Cm+C,wBAAyB,CAClGC,OAAQqrK,GAA8B,OAElD,kBAAoB,MAAO,CAAEzpN,UAAW,6CAA+Ci/S,EAAiBplT,OAAS,GAAKolT,EAAiBtzS,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmnB,QAASvjB,UAAW,sDAChN,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE40B,KAAMhxB,UAAW,4DAA6D8jD,IAAK1nD,EAAEm1L,UACvH,kBAAoB,OAAQ,CAAEvxL,UAAW,oEACrC,kBAAoB,KAAM,CAAEA,UAAW,2EAA6E5D,EAAEmnB,OACtH,kBAAoB,IAAK,CAAEvjB,UAAW,8EAAgF5D,EAAEqhD,kBCd/HoqQ,GAAiB,IAAO,kBAAoB,MAAO,CAAE7rT,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACpI,kBAAoB,OAAQ,CAAEr1B,EAAG,0LAA2Lm7C,KAAM,aCGzN8wQ,GAA0Bx+S,IACnC,MAAOy+S,EAAeC,IAAoB,IAAAxtT,WAAS,IAC5CytT,EAAsBC,IAA2B,IAAA1tT,WAAS,GAC3D2tT,GAAiB,IAAArpT,cAAY,WAC/BkpT,GAAkBD,EACtB,GAAG,CAACA,IACEK,GAAwB,IAAAtpT,cAAY,WACtCopT,GAAyBD,EAC7B,GAAG,CAACA,IASJ,OAAQ,kBAAoB,MAAO,CAAEjoT,UAAW,4BAA6Bq3B,GAAI,aAC7E,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEr3B,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,gDACpC,kBAAoB,MAAO,CAAEA,UAAW,sDACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM++S,aAAcvkQ,IAAKx6C,EAAMqgN,gBACnE,kBAAoB,MAAO,CAAE3pN,UAAW,qDACpC,kBAAoB,MAAO,CAAEA,UAAW,sDACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,kBAAoB,MAAO,CAAEvjB,UAAW,4DACpC,kBAAoB,IAAK,KAAMsJ,EAAM46C,cACzC,kBAAoB,MAAO,CAAElkD,UAAW,wDACpC,kBAAoB,MAAO,CAAEA,UAAW,yDACpC,kBAAoB,KAAM,CAAEA,UAAW,eAAgBuc,QAAS4rS,GAC5D,kBAAoB,KAAK,CAAEvlT,IAAK0G,EAAMg/S,cAAexkQ,IAAKx6C,EAAMi/S,mBAChEj/S,EAAMk/S,mBAlBvB1hR,EAmB2BihR,EAnBhB,kBAAoB,OAAQ,CAAE/nT,UAAW8mC,EAAQ,0CAA4C,oCAAsC+gR,QANxI,CAAC/gR,GAAW,kBAAoB,MAAO,CAAE9mC,UAAW8mC,EAAQ,oDAAsD,gDAAkDA,EAAQ,kBAAoB,MAAO,CAAE9mC,UAAW,+DACzO,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMm/S,aAAc3kQ,IAAKx6C,EAAMo/S,kBAC/D,kBAAoB,IAAK,KAAMp/S,EAAMq/S,mBAAqB,IAwB9BC,CAAiBb,IACrB,kBAAoB,MAAO,CAAE/nT,UAAW,yDACpC,kBAAoB,IAAK,CAAER,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMu/S,eACjF,kBAAoB,KAAM,CAAE7oT,UAAW,gBACnC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMw/S,eAAgBhlQ,IAAKx6C,EAAMy/S,oBACjEz/S,EAAM0/S,cACN,kBAAoB,OAAQ,KAAMjjD,SAC9Cz8P,EAAM2/S,mBAAqB,kBAAoB,MAAO,CAAEjpT,UAAW,yDAC/D,kBAAoB,KAAM,CAAEA,UAAW,eAAgBuc,QAAS6rS,GAC5D,kBAAoB,KAAK,CAAExlT,IAAK0G,EAAM4/S,eAAgBplQ,IAAKx6C,EAAM6/S,oBACjE7/S,EAAM2/S,kBA7BjB,CAACniR,GAAW,kBAAoB,OAAQ,CAAE9mC,UAAW8mC,EAAQ,4CAA8C,sCAAwC+gR,MA8BxIuB,CAAiBnB,IAlC3B,CAACnhR,GAAW,kBAAoB,MAAO,CAAE9mC,UAAW8mC,EAAQ,sDAAwD,kDAAoDA,EAAQ,kBAAoB,MAAO,CAAE9mC,UAAW,yEAC9O,kBAAoB,IAAK,CAAEi1I,IAAK,WAAYh/F,KAAM3sC,EAAM+/S,0BAA4B//S,EAAMggT,0BAC1F,kBAAoB,IAAK,CAAEr0K,IAAK,WAAYh/F,KAAM3sC,EAAMigT,sBAAwBjgT,EAAMkgT,uBAAyB,IAiCnFC,CAAkBxB,QACtC,kBAAoB,MAAO,CAAEjoT,UAAW,qCACpC,kBAAoB,MAAO,CAAEA,UAAW,+CACpC,kBAAoB,MAAO,CAAEA,UAAW,oDACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,kBAAoB,IAAK,KAAMja,EAAM46C,cACzC,kBAAoB,MAAO,CAAElkD,UAAW,qDACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM++S,aAAcvkQ,IAAKx6C,EAAMqgN,gBACnE,kBAAoB,MAAO,CAAE3pN,UAAW,uDACpC,kBAAoB,MAAO,CAAEA,UAAW,wDACpC,kBAAoB,MAAO,CAAEA,UAAW,2DACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMg/S,cAAexkQ,IAAKx6C,EAAMi/S,mBAChE,kBAAoB,KAAM,KAAMj/S,EAAMk/S,oBAC1C,kBAAoB,MAAO,CAAExoT,UAAW,4DACpC,kBAAoB,IAAK,CAAER,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMogT,eACjF,kBAAoB,KAAK,CAAE9mT,IAAK0G,EAAMqgT,mBAAoB7lQ,IAAKx6C,EAAMsgT,sBACzE,kBAAoB,IAAK,CAAEpqT,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMugT,aACjF,kBAAoB,KAAK,CAAEjnT,IAAK0G,EAAMwgT,iBAAkBhmQ,IAAKx6C,EAAMygT,sBAC/E,kBAAoB,MAAO,CAAE/pT,UAAW,wDACpC,kBAAoB,KAAM,KACtB,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMw/S,eAAgBhlQ,IAAKx6C,EAAMy/S,oBACjEz/S,EAAM0/S,cACN,kBAAoB,MAAO,CAAE/pT,MAAO,CAAE+qT,UAAW,WAC7C,IACAjkD,OACRz8P,EAAM2gT,4BAA8B,kBAAoB,IAAK,KAAM3gT,EAAM2gT,6BAC7E3gT,EAAM2/S,mBAAqB,kBAAoB,MAAO,CAAEjpT,UAAW,wDAC/D,kBAAoB,KAAM,KACtB,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM4/S,eAAgBplQ,IAAKx6C,EAAM6/S,oBACjE7/S,EAAM2/S,mBACV,kBAAoB,IAAK,KAAM3/S,EAAM4gT,uCA9D/C,IAACpjR,CA8DqF,EChF/FqjR,GAAc,EAAGC,cAAgB/B,eAAc1+F,eAAc0gG,kBAAiBC,mBAAoBC,2BAC3G,MAAOC,EAAgBC,IAAqB,IAAAjwT,eAASqM,GAC/C6jT,GAAsB,IAAA5rT,cAAY,KACpC2rT,GAAkB,EAAM,GACzB,IACGE,GAAyB,IAAA7rT,cAAY,KACvC2rT,GAAkB,EAAK,GACxB,IACH,OAAQ,kBAAoB,MAAO,CAAEzqT,UAAW,yCAAyCwqT,EAAiB,wBAA0B,WAAyB3jT,IAAnB2jT,EAA+B,oCAAsC,MAC3M,kBAAoB,MAAO,CAAExqT,UAAW,iCAAiCuqT,KACrE,kBAAoB,MAAO,CAAEvqT,UAAW,4BACpC,kBAAoB,KAAK,CAAE4C,IAAKylT,EAAcvkQ,IAAK6lK,KACvD,kBAAoB,MAAO,CAAE3pN,UAAW,+BACpC,kBAAoB,KAAK,CAAE4C,IAAKynT,EAAiBvmQ,IAAKwmQ,MAC9D,kBAAoB,MAAO,CAAEtqT,UAAW,0BAAyBwqT,EAAiB,kCAAoC,KAClH,kBAAoB,MAAO,CAAExqT,UAAW,kEAAmEuc,QAASmuS,IACpH,kBAAoB,MAAO,CAAE1qT,UAAW,qEAAsEuc,QAASouS,KAA4B,ECZlJC,GAAmCthT,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,kEAC/F,kBAAoB,KAAa,KAC7B,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,+CACpC,kBAAoB,MAAO,CAAEA,UAAW,2DACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBluC,EAAMia,OAC7D,kBAAoB,IAAK,KAAMja,EAAM46C,aACrC,kBAAoB,MAAO,CAAElkD,UAAW,iDACpC,kBAAoB,MAAO,CAAEA,UAAW,2JACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,KAAK,CAAE50C,IAAK0G,EAAMg/S,cAAexkQ,IAAKx6C,EAAMi/S,mBAChEj/S,EAAMk/S,mBACV,kBAAoB,IAAK,KAAMl/S,EAAMq/S,mBACzC,kBAAoB,MAAO,CAAE3oT,UAAW,sDACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMm/S,aAAc3kQ,IAAKx6C,EAAMo/S,gBAAiB1oT,UAAW,oDACnG,kBAAoB,MAAO,CAAEA,UAAW,0JACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,KAAK,CAAE50C,IAAK0G,EAAMg/S,cAAexkQ,IAAKx6C,EAAMi/S,mBAChEj/S,EAAMk/S,oBACd,kBAAoB,MAAO,CAAExoT,UAAW,sDACpC,kBAAoB,IAAK,CAAER,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMogT,eACjF,kBAAoB,KAAK,CAAE9mT,IAAK0G,EAAMqgT,mBAAoB7lQ,IAAKx6C,EAAMsgT,sBACzE,kBAAoB,IAAK,CAAEpqT,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMugT,aACjF,kBAAoB,KAAK,CAAEjnT,IAAK0G,EAAMwgT,iBAAkBhmQ,IAAKx6C,EAAMygT,sBAC/E,kBAAoB,MAAO,CAAE/pT,UAAW,oJACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoB,IAAK,CAAER,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMu/S,eACjF,kBAAoB3qQ,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,KAAK,CAAE50C,IAAK0G,EAAMw/S,eAAgBhlQ,IAAKx6C,EAAMy/S,oBACjEz/S,EAAM0/S,iBAClB,kBAAoB,IAAK,CAAExpT,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM3sC,EAAMu/S,eAAiB9iD,OAC1G,kBAAoB,MAAO,CAAE/lQ,UAAW,mJACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,KAAK,CAAE50C,IAAK0G,EAAMw/S,eAAgBhlQ,IAAKx6C,EAAMy/S,oBACjEz/S,EAAM0/S,gBACd,kBAAoB,MAAO,CAAEhpT,UAAW,sDACpCsJ,EAAM2gT,2BACN,IACAlkD,OACRz8P,EAAM2/S,mBAAqB,kBAAoB,MAAO,CAAEjpT,UAAW,yGAC/D,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,KAAK,CAAE50C,IAAK0G,EAAM4/S,eAAgBplQ,IAAKx6C,EAAM6/S,oBACjE7/S,EAAM2/S,oBACd,kBAAoB,MAAO,CAAEjpT,UAAW,sDACpC,kBAAoB,IAAK,CAAEi1I,IAAK,WAAYh/F,KAAM3sC,EAAM+/S,0BAA4B//S,EAAMggT,0BAC1F,kBAAoB,IAAK,CAAEr0K,IAAK,WAAYh/F,KAAM3sC,EAAMigT,sBAAwBjgT,EAAMkgT,0BACtG,kBAAoB,MAAO,CAAExpT,UAAW,mDACpC,kBAAoBmqT,GAAa,CAAEC,aAAc,CACzC/B,aAAc/+S,EAAM++S,aACpB1+F,aAAcrgN,EAAMqgN,aACpB0gG,gBAAiB/gT,EAAM+gT,gBACvBC,gBAAiBhhT,EAAMghT,iBACxBC,qBAAsB,6DCzDpCM,GAAuC,EAAGtnS,QAAO2gC,cAAa8I,UAASk/J,mBAChF,MAAM,QAAEjsK,EAAO,UAAEoS,IAAc,SAAU65J,EAAap1K,iBACtD,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEhhD,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,iCACjE,kBAAoB,MAAO,CAAEA,UAAW,uDACpC,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,EAAaC,aAAe5oM,IACvE,kBAAoB,MAAO,CAAEvjB,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,gBACpC,IACAkkD,KACZ,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,CAAElkD,UAAW,yDAA2DgtD,EAAQrhD,KAAI,CAAC5O,EAAGtD,IAAM,kBAAoB,MAAO,CAAE0M,IAAK1M,GACvJ,kBAAoBusQ,GAAY,CAAE/mQ,MAAO,CAAEjD,MAAO,QAAUi6C,KAAMl5C,EAAE28C,KAChE,kBAAoB,OAAQ,CAAE15C,UAAW,gBAAkBjD,EAAEwmB,cAAc,EClBtFunS,GAA2B,EAAG7mQ,WAAUwtI,WAAUq8D,UAASvqO,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,4BACzH,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,KAAK,CAAE8oD,QAAS,QAASlmD,IAAKqhD,EAAUH,IAAK2tI,KACrE,kBAAoB,KAAM,KAAMluK,GAChC,kBAAoB,IAAK,KAAMuqO,ICJtBi9D,GAAgC,EAAGzgG,SAAQgkB,WAAa,kBAAoB,MAAO,CAAEtuO,UAAW,0CAAyCsqN,EAAS,kDAAoD,KAAQgkB,EAAM3iO,KAAK4iO,GAAU,kBAAoBu8E,GAA0B,CAAE3kT,IAAK,yBAAyBooO,EAAKhrN,WAAYgrN,OCElUy8E,GAAiC,EAAG18E,WAAa,kBAAoB,MAAO,CAAEtuO,UAAW,yCAClG,kBAAoB,GAAQ,CAAEgyM,QAAS,CAACkD,IAAaC,YAAY,EAAM5a,aAAc,GAAIgB,YAAa,CAC9F,IAAO,CACHD,cAAe,OACff,cAAe,IAEnB,IAAO,CACHe,cAAe,IACff,aAAc,MAEjB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,yBAAyB1M,KAAO,kBAAoBqxT,GAA0B,IAAKv8E,SCRlJ08E,GAAmB,EAAG38E,QAAO9wL,YAAWC,WAAU29B,gBAC3D,MAAM,QAAE30B,IAAY,YACbykQ,EAAsBC,IAA2B,IAAA3wT,UAAS,kBAAoB,aAAgB,QAC/F,IAAE2F,EAAG,OAAEmqN,GAAWG,GAAU,CAC9B76D,UAAW,EACX86D,aAAa,IAEX0gG,GAA0B,IAAAtsT,cAAY,KACnC2nD,GAAW20B,EACL,kBAAoB4vO,GAAgC,CAAE18E,MAAOA,IAG7D,kBAAoBy8E,GAA+B,CAAEz8E,MAAOA,EAAOhkB,OAAQA,KAEvF,CAAClvI,EAAWkzJ,EAAOhkB,EAAQ7jK,IAI9B,OAHA,IAAAhsD,YAAU,KACN0wT,EAAwBC,IAA0B,GACnD,CAACA,IACI,kBAAoB,KAAa,CAAEt0Q,gBAAiB,QACxD,kBAAoB,MAAO,CAAE92C,UAAW,0BAA2BG,IAAKA,GACpE,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEH,UAAW,sCAAwCw9C,GAC/E,kBAAoB,IAAK,CAAEx9C,UAAW,qCAAuCy9C,GAC7EytQ,IAAwB,ECrB3BG,GAA0B,EAAG5hG,eAAcjsK,YAAW8tQ,kBAAiBC,aAAYC,eAAcC,UAASj9E,kBAAiBE,iBAAgBj9C,eACpJ,MAAOi6H,EAAiBC,IAAsB,IAAAnxT,aACvCoxT,EAAWC,IAAgB,IAAArxT,aAC3BigD,EAAMC,IAAW,IAAAlgD,UAASmgD,EAAc,cAAd,YAC3B,IAAEx6C,EAAG,OAAEmqN,GAAWG,GAAU,CAC9B76D,UAAW,IAETk8J,GAAqB,IAAAhtT,cAAai6O,GAAa,KACjD4yE,EAAmB5yE,GACnB8yE,GAAalrQ,IAASA,GAAK,GAC5B,IACGorQ,GAAmB,IAAAjtT,cAAY,IAAO+sT,GAAalrQ,IAASA,KAAQ,IAU1E,OAHA,IAAAlmD,YAAU,MACLggD,GAAQC,EAAQC,EAAc,cAAd,UAAwB,GAC1C,CAACF,IACI,kBAAoB,KAAa,CAAE3D,gBAAiB,QACxD,kBAAoB,MAAO,CAAE92C,UAAW,+BAAgCG,IAAKA,GACzE,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEH,UAAW,mCAAkCsqN,EAAS,2CAA6C,KAC5H,kBAAoB,MAAO,CAAEtqN,UAAW,gDACpC,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,KAAM,KAAMisK,IACpC,kBAAoB,MAAO,CAAEzpN,UAAW,iDACpC,kBAAoB,OAAQ,CAAEA,UAAW,gEAAiEuc,QAASuvS,EAAmBL,IAClIjG,GACA,kBAAoB,OAAQ,KAAMgG,IACtC,kBAAoB,OAAQ,CAAExrT,UAAW,mEAAoEuc,QAASuvS,EAAmBP,IACrI/F,GACA,kBAAoB,OAAQ,KAAM8F,KArBzC,UAAT7wQ,EACO,kBAAoB,KAAK,CAAE73C,IAAK8rO,EAAgB5qL,IAAK2tI,IAEzD,kBAAoB,KAAK,CAAE7uL,IAAK4rO,EAAiB1qL,IAAK2tI,IAoBhDm6H,GAAaF,GACV,kBAAoB,MAAO,CAAE1rT,UAAW,yCAA2C0rT,GAAmB,kBAAoB,MAAO,CAAE1rT,UAAW,uDAC1I,kBAAoB,OAAQ,CAAEuc,QAASwvS,EAAkB/rT,UAAW,gBAAiB,WACrF,kBAAoB84O,GAAmB,CAAEC,SAAU2yE,SAAyB,EC1C3FM,GAAwB,EAAGzoS,QAAOgzB,OAAM0N,WAAUwtI,WAAU0B,WAAUtvI,UAAS/M,kBAAiBiiM,eACzG,MAAM,UAAE1mL,IAAc,SAAUvb,GAChC,OAAQ,gBAAoB,MAAO,CAAE92C,UAAW,oCAC5C,gBAAoB,KAAa,KAC7B,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEA,UAAW,wBAAyBf,MAAO,CAAEqvD,MAAO+D,IAC7E,gBAAoB,KAAM,KAAM9uC,GAChC,gBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQ7H,KAEhB48I,GAAY,gBAAoByxB,GAAQ,CAAElhN,MAAOyvL,EAAUl9I,KAAM4N,EAAS5kD,MAAO,CAAEqvD,MAAO,WAAau2J,SAAS,IAChH,gBAAoB,KAAK,CAAEjiN,IAAKqhD,EAAUH,IAAK2tI,OAC3D,gBAAoB,MAAO,CAAEzxL,UAAW,0CACpC,gBAAoB,MAAO,CAAEA,UAAW,sCACxC,gBAAoB,QAAS,CAAEA,UAAW,+BAAgC63N,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,GACzG,gBAAoB,SAAU,CAAEl1N,IAAKm2O,EAAUjrO,KAAM,gBAAkB,EChB1Em+S,GAA0B3iT,IACnC,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBAC9BwxK,GAAiB,SAAiBh/M,EAAM++M,kBACxC6jG,GAAoB,SAAiB5iT,EAAMigN,oBACjD,OAAQ,kBAAoB,MAAO,CAAEvpN,UAAW,0BAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,GAChD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,OACtCja,EAAM46C,aAAe,kBAAoB,MAAO,CAAE/F,wBAAyB,CAAEC,OAAQ90C,EAAM46C,iBAC9F56C,EAAMk1C,aAAel1C,EAAM+/M,YAAc,kBAAoB,MAAO,CAAErpN,UAAW,6CAC9EsJ,EAAMk1C,aAAe,kBAAoB,IAAK,CAAEx+C,UAAW,sCAAuCi2C,KAAM3sC,EAAMk1P,UAAWh/P,OAAQ0sT,GAAqB5iT,EAAMk1C,aAC5Jl1C,EAAM+/M,WAAc,kBAAoB,IAAK,CAAErpN,UAAW,uEAAwEi2C,KAAM3sC,EAAMgiN,QAAS9rN,OAAQ8oN,GAAkBh/M,EAAM+/M,eAAiB,ECfnN8iG,GAAsB,EAAG3uQ,YAAWC,WAAU2uQ,aAAYC,qBACnE,MAAOC,EAAmBC,IAAwB,IAAA/xT,UAAS,GAY3D,OAXA,IAAAC,YAAU,KACN,MAAMkrG,EAAW0a,aAAY,KACrBisM,EAAoBD,EAAexyT,OAAS,EAC5C0yT,EAAqBD,EAAoB,GAGzCC,EAAqB,EACzB,GACD,KACH,MAAO,IAAMj0O,cAAcqtB,EAAS,GACrC,CAAC2mN,EAAmBD,EAAexyT,SAC9B,kBAAoB,MAAO,CAAEmG,UAAW,8BAC5C,kBAAoB,IAAK,CAAEA,UAAW,0CAA4CosT,GAClF,kBAAoB,KAAM,CAAEpsT,UAAW,yCAA2Cw9C,GAClF,kBAAoB,IAAK,CAAEx9C,UAAW,4CAA8Cy9C,GACpF,kBAAoB,MAAO,CAAEz9C,UAAW,kDAAoDqsT,EAAexyT,OAAS,GAAKwyT,EAAe1gT,KAAI,CAACvP,EAAG0qC,IAAW,kBAAoB,KAAK,CAAE3gC,IAAK,SAAS/J,IAAKwG,IAAKypT,EAAevlR,GAAQgd,IAAKtG,EAAWx9C,UAAcssT,IAAsBxlR,EAAQ,kBAAoB,wBAA4B,ECjB5U0lR,GAAsB,EAAGhvQ,YAAWC,WAAUgvQ,eAAiB,kBAAoB,MAAO,CAAEzsT,UAAW,8BAChH,kBAAoB,KAAM,CAAEA,UAAW,yCAA2Cw9C,GAClF,kBAAoB,KAAM,CAAEx9C,UAAW,wCAA0Cy9C,GACjF,kBAAoB,MAAO,CAAEz9C,UAAW,kDACpC,kBAAoB,KAAK,CAAE4C,IAAK6pT,EAAW3oQ,IAAKtG,MCJ3CkvQ,GAAmB,EAAGlvQ,YAAWC,WAAUwG,WAAU+qC,iBAAmB,kBAAoB,MAAO,CAAE7oF,IAAK,SAASq3C,IAAax9C,UAAW,6EACpJ,kBAAoB,MAAO,CAAEA,UAAW,6FACpC,kBAAoB,KAAK,CAAE4C,IAAKqhD,EAAUH,IAAKtG,KACnD,kBAAoB,MAAO,CAAEx9C,UAAW,iGACpC,kBAAoB,MAAO,CAAEA,UAAW,gHACpC,kBAAoB,IAAK,CAAEA,UAAW,wIAA0Iw9C,GAChL,kBAAoB,IAAK,CAAEx9C,UAAW,0IAA4IgvF,IACtL,kBAAoB,IAAK,CAAEhvF,UAAW,wHAA0Hy9C,KCL3JkvQ,GAA6B,EAAGnvQ,YAAWC,WAAUmvQ,gBAAe3oQ,cAAgB,kBAAoB,MAAO,CAAEjkD,UAAW,qCACrI,kBAAoB,MAAO,CAAEA,UAAW,mDACpC,kBAAoB,KAAM,CAAEA,UAAW,8DAAgEw9C,GACvG,kBAAoB,KAAM,CAAEx9C,UAAW,6DAA+Dy9C,IAC1G,kBAAoB,MAAO,CAAEz9C,UAAW,2DACpC,kBAAoB,GAAQ,CAAEmgM,YAAY,EAAM7E,cAAe,OAAQ9xL,MAAM,EAAM2rM,YAAY,EAAMlyM,SAAU,CACvGylF,MAAO,IACPyzH,sBAAsB,GACvBpwM,MAAO,IAAMimM,QAAS,CAAC+J,GAAU7G,IAAa9oM,UAAW,YAAc,IAAIwgT,KAAkBA,GAAejhT,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,gBAAgB1M,KAAO,kBAAoBizT,GAAkB,CAAEvmT,IAAK,SAASooO,EAAK/wL,YAAY/jD,IAAKwqD,SAAUA,KAAasqL,UCPjSs+E,GAAkB,EAAGrvQ,YAAWC,WAAUqvQ,mBAAkBC,mBAAkBC,8BAAiC,kBAAoB,KAAa,CAAEl2Q,gBAAiB,QAC5K,kBAAoB,MAAO,CAAE92C,UAAW,0BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,OAAQ,CAAEA,UAAW,yCACrC,kBAAoB,KAAM,CAAEA,UAAW,oDAAsDw9C,GAC7F,kBAAoB,KAAM,CAAEx9C,UAAW,uDAAyDy9C,IACpG,kBAAoB,MAAO,CAAEz9C,UAAW,4CACpC,kBAAoBmsT,GAAqB,CAAE3uQ,UAAWsvQ,EAAiBtvQ,UAAWC,SAAUqvQ,EAAiBrvQ,SAAU2uQ,WAAYU,EAAiBV,WAAYC,eAAgBS,EAAiBT,kBACrM,kBAAoB,MAAO,CAAErsT,UAAW,6CACpC,kBAAoBwsT,GAAqB,CAAEhvQ,UAAWuvQ,EAAiBvvQ,UAAWC,SAAUsvQ,EAAiBtvQ,SAAUgvQ,UAAWM,EAAiBN,aACvJ,kBAAoB,MAAO,CAAEzsT,UAAW,oDACpC,kBAAoB2sT,GAA4B,CAAEnvQ,UAAWwvQ,EAAyBxvQ,UAAWC,SAAUuvQ,EAAyBvvQ,SAAUwG,SAAU+oQ,EAAyB/oQ,SAAU2oQ,cAAeI,EAAyBJ,oBCftOK,GAAqB,EAAGC,cAAa1uQ,cAAaqzI,WAAUt1K,cACrE,MAAM4wS,GAAoB,IAAAruT,cAAak8B,IACnCze,EAAQye,EAAOkyR,EAAY,GAC5B,CAACA,EAAa3wS,IACjB,OAAO,kBAAoB,SAAU,CAAEvc,UAAW6xL,EAAW,SAAW,GAAIt1K,QAAS4wS,GAAqB3uQ,EAAY,ECCpH4uQ,GAAyB9iG,IAC3B,IAAItqN,EAAY,6CAIhB,OAHIsqN,IACAtqN,GAAa,yDAEVA,CAAS,EAEPqtT,GAAyB/jT,IAClC,MAAMgkT,MATcC,EASajkT,EAAMkkT,UATUD,EAAW1zT,QAAzC,IAAC0zT,EAUpB,MAAME,EAAgBnkT,EAAMmkT,eAAiB,OACvCC,EAAoBJ,EAAY,OAAIzmT,GACnC8mT,EAAYC,IAAiB,IAAApzT,UAASkzT,IACtCG,EAAgBC,IAAqB,IAAAtzT,UAAS,SAC/C,IAAE2F,EAAG,OAAEmqN,GAAWG,GAAU,CAC9B76D,UAAW,EACX86D,aAAa,IAEXqjG,GAAa,IAAA1xT,QAAO,MACpB2xT,GAAgB,IAAA3xT,SAAO,GACvB4xT,OAA6BpnT,IAAf8mT,EAA2BrkT,EAAMkkT,OAAOG,QAAc9mT,EAQpEqnT,GAAoB,IAAApvT,cAAY,CAAC0kM,EAAU2qH,OAAwBtnT,KAErE,GADoB8mT,IAAenqH,EAClB,CACb,GAAuB,YAAnBqqH,QAA0DhnT,IAA1BsnT,EAChC,OAGJL,EADkBK,GAAyB,UAE/C,MAEIJ,GAAYtxT,SAAS6nE,OACrBspP,EAAcpqH,GACV,CAAC,OAAQ,WAAWloL,SAASuyS,IAC7BC,EAAkB,UAE1B,GACD,CAACD,EAAgBF,IACdS,GAA2B,IAAAtvT,cAAY,KACzCkvT,EAAcvxT,SAAU,OACLoK,IAAf8mT,GAGJO,EAAkBP,EAAY,UAAU,GACzC,CAACO,EAAmBP,IACjBR,GAAoB,IAAAruT,cAAY,CAACuvT,EAAQvnR,KAC3ConR,EAAkBpnR,EAAM,GACzB,CAAConR,KACJ,IAAAzzT,YAAU,UACaoM,IAAf8mT,GAA+C,YAAnBE,GAAgCG,EAAcvxT,SAnChE6jD,iBACRytQ,GAAYtxT,SAAS6F,OACtBmB,MAAK,KACNqqT,EAAkB,UAAU,IAE3BpsQ,MAAMh9C,QAAQC,OAAM,EA+BhB2pT,EACT,KAEJ,IAAA7zT,YAAU,KACN,MAAM8zT,EAAoB,KACtBT,EAAkB,OAAO,EAEvBvpD,EAAUwpD,GAAYtxT,QAE5B,OADA8nQ,GAAS1pQ,iBAAiB,QAAS0zT,GAC5B,IAAMhqD,GAASxpQ,oBAAoB,QAASwzT,EAAkB,GACtE,IACH,MAAMC,EAAeP,GAAarrT,IAClC,OAAQ,kBAAoB,KAAa,CAAE5C,UAAW,uCAClD,kBAAoB,MAAO,CAAEA,UAAW,8DAA8DytT,KAClG,kBAAoB,SAAU,KAC1B,kBAAoB,KAAM,KAAMnkT,EAAMia,OACtC,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQ90C,EAAMitC,SACxE+2Q,GAAc,kBAAoB,aAAgB,KAC9C,kBAAoB,KAAM,CAAEttT,UAAW,yCAA2CsJ,EAAMkkT,OAAO7hT,KAAI,CAAC8iT,EAAW3nR,IAAW,kBAAoB,KAAM,CAAE3gC,IAAK2gC,GACvJ,kBAAoBmmR,GAAoB,CAAEC,YAAapmR,EAAO0X,YAAaiwQ,EAAUlrS,MAAOhH,QAAS4wS,EAAmBt7H,SAAU/qJ,IAAU6mR,QAChJ,kBAAoB,MAAO,CAAExtT,IAAKA,EAAKH,UAAWotT,GAAsB9iG,GAAS0oB,eAAgBo7E,GAA4BI,GAAgB,kBAAoB,QAAS,CAAEruT,IAAK4tT,EAAYj2F,OAAO,EAAMqqC,OAAQ8rD,EAAYS,WAC1N,kBAAoB,SAAU,CAAE9rT,IAAK4rT,EAAc1gT,MAAM,SAAa0gT,SAAuB,ECzEpGG,GAAerlT,GAAW,kBAAoB,aAAgB,KACvE,kBAAoB4kN,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoB7B,GAAgB,IAAKtjN,EAAMslT,iBAC/C,kBAAoB1gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoB48F,GAAyB,IAAK/hT,EAAMulT,0BACxD,kBAAoB3gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoB4+F,GAAuB,IAAK/jT,EAAMwlT,wBACtD,kBAAoB5gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBw8F,GAAkB,IAAK3hT,EAAMylT,kBACjD,kBAAoB7gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBP,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBzD,GAAsB,IAAK1hN,EAAM0lT,uBACrD,kBAAoB9gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBP,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBo+F,GAAiB,IAAKvjT,EAAM2lT,kBAChD,kBAAoB/gG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBstB,GAAwB,IAAKzyO,EAAM4lT,yBACvD,kBAAoBhhG,GAAK,CAAEG,UAAW,OAAQG,WAAY,OAAQC,SAAU,SAC5E,kBAAoBq5F,GAAwB,IAAKx+S,EAAM6lT,0BCzB9CC,GAAiB,EAAGn5Q,OAAMvyC,QAAOzE,WAAa,kBAAoB,IAAK,CAAEg3C,KAAMA,EAAMj2C,UAAW,0BAA2Bf,MAAOA,EAAOO,OAAQ,SAAUy1I,IAAK,cACzK8pK,GACA,IACAr7S,EACA,KACA,QAAqB,CAAC,ICLb2rT,GAAqB,EAAG9rS,QAAOypC,aAAe,kBAAoB,KAAa,CAAElW,gBAAiB,QAC3G,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,wBACpC,kBAAoB,KAAM,CAAEA,UAAW,WAAaujB,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,mCAAqCgtD,EAAQrhD,KAAI6nL,GAAU,kBAAoB47H,GAAgB,CAAEjpT,IAAK,GAAGqtL,EAAO9vL,MAAMuT,QAAQ,OAAQ,SAAUu8K,UCJvL87H,GAAW,EAAGC,YAAW7Y,qBAAuB,kBAAoB,MAAO,CAAE12S,UAAW,iCACjGuvT,GAAa,kBAAoB,IAAK,CAAEvvT,UAAW,4CAA8CuvT,GACjG,kBAAoB,MAAO,CAAEvvT,UAAW,8CAAgD02S,EAAgB78S,OAAS,GAAK68S,EAAgB/qS,KAAKvP,GAAO,kBAAoB,IAAK,CAAE+J,IAAK,SAAS/J,EAAE8I,OAAQ+wC,KAAM75C,EAAEynD,QAAS7jD,UAAW,iDAC7N,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAEqmT,QAAS3+P,IAAK1nD,EAAEm1L,SAAWn1L,EAAE8I,OAC/D,kBAAoB,OAAQ,CAAElF,UAAW,gEACrC,kBAAoB,OAAQ,KACxB,kBAAoB,KAAM,CAAEA,UAAW,sEAAwE5D,EAAE8I,MACjH,kBAAoB,IAAK,CAAElF,UAAW,6EAA+E5D,EAAE8nD,eAC3H,QAAgB,CAAC,SCPhBsrQ,GAA6B,EAAGjsS,QAAO2vK,cAAam2B,YAAWxlK,UAAS/M,sBACjF,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,sCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,KAAM,CAAEA,UAAW,6CAA+CujB,GACtF,kBAAoB,MAAO,CAAEvjB,UAAW,uDAAyDkzL,EAAYr5L,OAAS,GAAKq5L,EAAYvnL,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmzT,YAAavvT,UAAW,iEACpN,kBAAoBsvT,GAAU,CAAEC,UAAWnzT,EAAEmzT,UAAW7Y,gBAAiBt6S,EAAEs6S,sBAC/E,kBAAoB,IAAK,CAAE12S,UAAW,2CAA4Ci2C,KAAM4N,GAAWwlK,KAAc,ECRpHomG,GAAenmT,IACxB,MAAM,QAAEo9C,EAAO,QAAED,EAAO,SAAEE,IAAa,YAChCwoL,EAAcC,IAAmB,IAAA50O,WAAS,IAC1CywO,EAAeC,IAAoB,IAAA1wO,WAAS,IAC5C2wO,EAAcC,IAAmB,IAAA5wO,WAAS,IACjD,IAAAC,YAAU,KACN20O,EAAgB1oL,GAChBwkL,EAAiBvkL,GACjBykL,EAAgB3kL,EAAQ,GACzB,CAACC,EAASC,EAAUF,IACvB,MAAM8nL,EAAO,CAAC90O,EAAGuG,IAAe,kBAAoB,MAAO,CAAEA,UAAWA,GACpEmrO,GAAgB,kBAAoB,KAAK,CAAEvoO,IAAK0G,EAAMglO,MAAM70O,GAAGk8N,aAAc7xK,IAAKx6C,EAAMglO,MAAM70O,GAAGg4L,WACjGw5C,GAAiB,kBAAoB,KAAK,CAAEroO,IAAK0G,EAAMglO,MAAM70O,GAAGi2T,YAAa5rQ,IAAKx6C,EAAMglO,MAAM70O,GAAGg4L,WACjG09C,GAAgB,kBAAoB,KAAK,CAAEvsO,IAAK0G,EAAMglO,MAAM70O,GAAGk2T,WAAY7rQ,IAAKx6C,EAAMglO,MAAM70O,GAAGg4L,YACnG,OAAQ,kBAAoB,KAAa,CAAE36I,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,iBACpC,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,kBAAoB,MAAO,CAAEvjB,UAAW,kCACpC,kBAAoB,MAAO,CAAEA,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,+BACpC,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,KAAM,KAAMsJ,EAAMglO,MAAM,GAAG/qN,QACnD,kBAAoB,MAAO,CAAEvjB,UAAW,gDACpC,kBAAoB,IAAK,KAAMsJ,EAAMglO,MAAM,GAAGpqL,eACtDqqL,EAAK,EAAG,oCACZ,kBAAoB,MAAO,CAAEvuO,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,iDACpC,kBAAoB,KAAM,KAAMsJ,EAAMglO,MAAM,GAAG/qN,QACnD,kBAAoB,MAAO,CAAEvjB,UAAW,uDACpC,kBAAoB,IAAK,KAAMsJ,EAAMglO,MAAM,GAAGpqL,eACtDqqL,EAAK,EAAG,2CACZ,kBAAoB,MAAO,CAAEvuO,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,4CACpC,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoB,KAAM,KAAMsJ,EAAMglO,MAAM,GAAG/qN,QACnD,kBAAoB,MAAO,CAAEvjB,UAAW,wDACpC,kBAAoB,IAAK,KAAMsJ,EAAMglO,MAAM,GAAGpqL,eACtDqqL,EAAK,EAAG,8CACpB,kBAAoB,MAAO,CAAEvuO,UAAW,kCACpC,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,KAAM,KAAMsJ,EAAMglO,MAAM,GAAG/qN,QACnD,kBAAoB,MAAO,CAAEvjB,UAAW,mDACpC,kBAAoB,IAAK,KAAMsJ,EAAMglO,MAAM,GAAGpqL,eACtDqqL,EAAK,EAAG,0CAA2C,ECnD9DqhF,GAAoB,EAAGrsS,QAAOssS,cAAgB,kBAAoB,MAAO,CAAE7vT,UAAW,2BAC/F,kBAAoB,IAAK,CAAEA,UAAW,yCAA2CujB,GACjF,kBAAoB,MAAO,CAAEvjB,UAAW,6CAA+C6vT,EAASh2T,OAAS,GAAKg2T,EAASlkT,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAE0wR,cAAe9sR,UAAW,0DACtM,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE0zT,YAAahsQ,IAAK1nD,EAAE2zT,iBACtD,kBAAoB,OAAQ,CAAE/vT,UAAW,uEAAyE5D,EAAE0wR,kBCF/GkjC,GAA6B,EAAGzsS,QAAOklC,SAAQ0oN,SAAQr6N,kBAAiBw0O,cAAgB,kBAAoB,KAAa,CAAEx0O,gBAAiBA,GACrJ,kBAAoB,MAAO,CAAE92C,UAAW,uCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,uDACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,MAAO,CAAEvjB,UAAW,uEACpC,kBAAoB,KAAK,CAAE4C,IAAK6lD,EAAQ3E,IAAKqtN,KACjD,kBAAoB,MAAO,CAAEnxQ,UAAW,wEAA0EsrR,EAASzxR,OAAS,GAAKyxR,EAAS3/Q,KAAKvP,GAAO,kBAAoBwzT,GAAmB,CAAEzpT,IAAK,SAAS/J,EAAEmnB,QAASA,MAAOnnB,EAAEmnB,MAAOssS,SAAUzzT,EAAEyzT,kBCR/PI,GAA0B,EAAG1sS,QAAOk+B,QAAOyuQ,cAAgB,kBAAoB,MAAO,CAAElwT,UAAW,oCAC5G,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,MAAO,CAAEvjB,UAAW,oDAAsDyhD,GAASA,EAAM91C,KAAI,CAACvP,EAAG3C,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,SAAS1M,IAAKuG,UAAW,6DACtK,UAAbkwT,EAAuB,kBAAoB,aAAgB,KCLjD,GAAGj0T,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEA,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BAC1J,kBAAoB,IAAK,CAAEmG,GAAI,QAASo3B,SAAU,0BAC9C,kBAAoB,IAAK,CAAEp3B,GAAI,cAC3B,kBAAoB,OAAQ,CAAEA,GAAI,SAAUx7B,EAAG,gNAAiNm7C,KAAM,YACtQ,kBAAoB,OAAQ,CAAE3f,GAAI,WAAY8nC,SAAU,UAAWg1H,SAAU,UAAWt4L,EAAG,u6BAAw6Bm7C,KAAM,cACjhC,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,oBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,2BDFtB,CAAU,CAAC,IAAoB,UAAb+sR,EAAuB,kBAAoB,aAAgB,KEL7H,kBAAoB,MAAO,CAAEl0T,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACxH,kBAAoB,OAAQ,CAAEnzB,EAAG,KAAMP,EAAG,UAAWxB,MAAO,UAAWC,OAAQ,OAAQ+6C,KAAM,YAC7F,kBAAoB,OAAQ,CAAEn7C,EAAG,4wBAA6wBm7C,KAAM,cFG7oB,GACnK,kBAAoB,KAAM,KAAM56C,QGH3B+zT,GAAsB,EAAG3yQ,YAAWisK,eAAc2mG,kBAAiBC,mBAAkBpwQ,cAC9F,MAAQA,QAASnJ,IAAoB,SAAUmJ,GAC/C,OAAQ,kBAAoB,KAAa,CAAEnJ,gBAAiBA,GACxD,kBAAoB,MAAO,CAAE92C,UAAW,+BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,wCACpC,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,KAAM,KAAMisK,IACpC,kBAAoB,MAAO,CAAEzpN,UAAW,wCACpC,kBAAoBiwT,GAAyB,CAAE1sS,MAAO6sS,EAAgB7sS,MAAOk+B,MAAO2uQ,EAAgB3uQ,MAAOyuQ,SAAU,UACrH,kBAAoBD,GAAyB,CAAE1sS,MAAO8sS,EAAiB9sS,MAAOk+B,MAAO4uQ,EAAiB5uQ,MAAOyuQ,SAAU,cAAgB,ECZlJI,GAAe,EAAGl1O,YAAWp7E,YAAWwJ,QAAO,EAAM+mT,mBAC9D,MAAOh1P,EAAOi1P,IAAY,IAAAh2T,YAW1B,OAVA,IAAAC,YAAU,KACN2gF,EAAU9/D,SAAS,QAAUulC,MAAMu6B,GAC9B33E,MAAKm9C,GAAYA,EAASK,SAC1Bx9C,MAAMy6P,IACPsyD,EAAStyD,EAAS,IAEjBx8M,OAAO/8C,IACRD,QAAQC,MAAMA,EAAM,IACnB6rT,EAASp1O,EAAU,GACzB,CAACA,IACI,kBAAoB,MAAO,CAAEp7E,UAAWA,GAAgC,iBAAZ,EAAuB,kBAAoB,KAAQ,CAAEuJ,cAAegyD,EAAO/xD,KAAMA,IAAU,kBAAoB,KAAK,CAAE5G,IAAKw4E,EAAWt3B,IAAKysQ,IAAiB,ECXvNE,GAA8B,EAAGltS,QAAO+/O,cAAaG,eAAcL,YAAWstD,eAAct1O,gBACrG,MAAOsoL,EAAgBC,IAAqB,IAAAnpQ,WAAU,IAC/C+nQ,EAAkByB,IAAuB,IAAAxpQ,aACzCopQ,EAAqBC,IAA0B,IAAArpQ,YAChDkoQ,GAAoB,IAAA5jQ,cAAamlQ,IACnCD,EAAoBC,EAAO,GAC5B,IACGE,GAAiB,IAAArlQ,cAAak8B,IAChCA,EAAMvb,iBACN,MAAMqnB,EAAQznB,SAAS2b,EAAM0xB,cAAcsjI,aAAa,YAAc,KACtE2zE,EAAkB78N,EAAM,GACzB,IAYH,OAXA,IAAArsC,YAAU,KACN,QAAyBoM,IAArB07P,GAKJ,GAAImuD,EAAa72T,OAAS,QAAoCgN,IAA/B6pT,EAAa,GAAGC,WAA0B,CACrE,MAAMC,EAAeF,EAAa5qT,QAAQ1J,GAAOA,EAAEy0T,aAAeptD,IAClEI,EAAuB+sD,EAAa,GACxC,MARA,CACI,MAAMA,EAAeF,EAAa5qT,QAAQ1J,GAAOA,EAAEy0T,aAAetuD,IAClEsB,EAAuB+sD,EAAa,GAExC,CAIA,GACD,CAACntD,EAAclB,EAAkBmuD,IAC5B,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAE1wT,UAAW,uCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,2DACpC,kBAAoBswT,GAAc,CAAEl1O,UAAWA,KACnD,kBAAoB,MAAO,CAAEp7E,UAAW,4BACpC,kBAAoB,KAAM,CAAEA,UAAW,qBAAuBujB,GAC9D,kBAAoB6yR,GAAqB,CAAE30P,MAAO6hN,EAAaf,iBAAkBkB,EAAcnB,cAAeI,IAC9G,kBAAoB,MAAO,CAAE1iQ,UAAW,qBACpC,kBAAoB,MAAO,CAAEA,UAAW,sBAAwBojQ,EAAUz3P,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,0BAA0B1M,IAAKuG,UAAW,0BAA4Bu/B,EAAKhc,MAAMiyB,kBAC/MouN,GAAqB+sD,WAAWhlT,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,mBAAmB1M,IAAKuG,UAAW,mBAAmB0jQ,IAAmBjqQ,GAAK,8CAA8CA,IAAK,UAAWA,EAAG8iB,QAAS4nP,EAAgBoN,WAAYpN,GACpQ,kBAAoB,MAAO,CAAEnkQ,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBAA2Bu/B,EAAKuxR,WAC5E,kBAAoB,MAAO,CAAE9wT,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBAAyBu/B,EAAKwxR,mBAAqBxxR,EAAKyxR,oBACpG,kBAAoB,MAAO,CAAEhxT,UAAW,6BACpC,kBAAoB,OAAQ,KAAMu/B,EAAKwxR,yBAA0B,ECpCpFE,GAAkB3nT,GAAW,kBAAoB,KAAa,CAAEwtC,gBAAiBxtC,EAAMwtC,gBAAkBxtC,EAAMwtC,gBAAkB,WAC1I,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,mBACpC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1Cja,EAAM4nT,WAAWr3T,QACb,kBAAoB,MAAO,CAAEmG,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBACpC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoBw5O,GAAgB,CAAEx5O,UAAW,qCAC7C,kBAAoB84O,GAAmB,CAAEC,SAAUzvO,EAAM4nT,WAAW,GAAG/zE,SAAUnE,eAAgB1vO,EAAM4nT,WAAW,GAAG/zE,aAC7H,kBAAoB,MAAO,CAAEn9O,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,KAAM,GAAU,CAAC,IAC7CsJ,EAAM4nT,WAAW,GAAG7zE,kBAC5B,kBAAoB,MAAO,CAAEr9O,UAAW,iCACpC,kBAAoB,KAAM,KAAMsJ,EAAM4nT,WAAW,GAAG9zE,eAChE,kBAAoB,MAAO,CAAEp9O,UAAW,yBAA2BsJ,EAAM4nT,WAAWtoT,MAAM,GAAG+C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,8BAA8BvG,KACzL,kBAAoB,MAAO,CAAEuG,UAAW,kCACpC,kBAAoBw5O,GAAgB,CAAEx5O,UAAW,0CAA0CvG,KACvF,kBAAoBq/O,GAAmB,CAAEC,SAAUx5M,EAAK49M,SAAUnE,eAAgBz5M,EAAK49M,aAC/F,kBAAoB,MAAO,CAAEn9O,UAAW,mCACpC,kBAAoB,MAAO,CAAEA,UAAW,qCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,KAAM,GAAU,CAAC,IAC7Cu/B,EAAK89M,kBACb,kBAAoB,MAAO,CAAEr9O,UAAW,+BACpC,kBAAoB,KAAM,KAAMu/B,EAAK69M,mBACzD9zO,EAAMyqL,WAAa,kBAAoB,KAAU,CAAEv8I,OAAQ,mBAAoBvB,KAAM3sC,EAAMyqL,WAAazqL,EAAM0qL,eC5B1H,GAPsB,EAAG/3L,SAAS,KAAMD,QAAQ,QAAY,kBAAoB,MAAO,CAAEk1B,MAAO,6BAA8Bl1B,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAM,QACpL,kBAAoB,IAAK,CAAEyX,SAAU,0BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,gIAAiIm7C,KAAM,YACxK,kBAAoB,OAAQ,CAAEn7C,EAAG,+VAAgWm7C,KAAM,aAC3Y,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE3f,GAAI,oBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,wBCAlFguR,GAAoB7nT,GAAW,kBAAoB,KAAa,CAAEwtC,gBAAiBxtC,EAAMwtC,gBAAkBxtC,EAAMwtC,gBAAkB,WAC5I,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,6BACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1Cja,EAAM4nT,YAAc5nT,EAAM4nT,WAAWr3T,OAAS,GAC1C,kBAAoB,MAAO,CAAEmG,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,4BACpCsJ,EAAM4nT,WAAW,GAAG5lG,SAChB,kBAAoB,IAAK,CAAEtrN,UAAW,+BAAgCR,OAAQ,SAAUy2C,KAAM3sC,EAAM4nT,WAAW,GAAG5lG,QAASr2E,IAAK,cAC5H,kBAAoByyE,GAAO,CAAE1nN,UAAW,mCAAoC4C,IAAK0G,EAAM4nT,WAAW,GAAGngI,YAC7G,kBAAoB,MAAO,CAAE/wL,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,mCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,KAAM,GAAc,CAAC,IACjDsJ,EAAM4nT,WAAW,GAAG7zE,kBAC5B,kBAAoB,MAAO,CAAEr9O,UAAW,oCACpC,kBAAoB,IAAK,CAAEA,UAAW,+BAAgCi2C,KAAM3sC,EAAM4nT,WAAW,GAAG5lG,SAC5F,kBAAoB,KAAM,KAAMhiN,EAAM4nT,WAAW,GAAG9zE,gBACpE,kBAAoB,MAAO,CAAEp9O,UAAW,4BAA8BsJ,EAAM4nT,WAAWtoT,MAAM,GAAG+C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,iCAAiCvG,mCAAmC8lC,EAAK+rL,SAAW,qEAClP,kBAAoB,MAAO,CAAEtrN,UAAW,qCACpCu/B,EAAK+rL,SACD,kBAAoB,aAAgB,KAChC,kBAAoB,IAAK,CAAEtrN,UAAW,8CAA+Ci2C,KAAM1W,EAAK+rL,SAC5F,kBAAoB5D,GAAO,CAAE1nN,UAAW,wCAAyC4C,IAAK28B,EAAKwxJ,cACtGxxJ,EAAK+rL,SACF,kBAAoB,aAAgB,KAChC,kBAAoB,MAAO,CAAEtrN,UAAW,+CCjClD,kBAAoB,MAAO,CAAEhE,MAAO,MAAOC,OAAQ,MAAOk1B,QAAS,cAAe6lB,KAAM,OAAQ9lB,MAAO,8BAC7H,kBAAoB,OAAQ,CAAEl1B,MAAO,MAAOC,OAAQ,MAAOkyD,GAAI,KAAMnX,KAAM,YAC3E,kBAAoB,OAAQ,CAAEn7C,EAAG,6lBAA8lBm7C,KAAM,gBDgCjnB,kBAAoB,MAAO,CAAEh3C,UAAW,2CAA6Cu/B,EAAK+rL,QAAW,kBAAoB,IAAK,CAAEr1K,KAAM1W,EAAK+rL,SACvI,kBAAoB,MAAO,CAAEtrN,UAAW,wCACpC,kBAAoB,IAAK,KACrB,kBAAoB,OAAQ,KAAM,GAAc,CAAC,IACjDu/B,EAAK89M,kBACb,kBAAoB,MAAO,CAAEr9O,UAAW,kCACpC,kBAAoB,KAAM,KAAMu/B,EAAK69M,cAAkB,kBAAoB,aAAgB,KAC/F,kBAAoB,MAAO,CAAEp9O,UAAW,wCACpC,kBAAoB,IAAK,CAAEA,UAAW,wBAA0Bu/B,EAAK89M,kBACzE,kBAAoB,MAAO,CAAEr9O,UAAW,kCACpC,kBAAoB,KAAM,KAAMu/B,EAAK69M,oBACzD9zO,EAAMyqL,WAAa,kBAAoB,KAAU,CAAEv8I,OAAQ,mBAAoBvB,KAAM3sC,EAAMyqL,WAAazqL,EAAM0qL,eExC7Go9H,GAAyC,EAAG7tS,QAAOu2B,WAAUk6I,aAAYD,YAAW9vI,WAAUwtI,WAAUy6B,eAAcX,yBAC/H,MAAM,UAAEl5J,EAAS,QAAEpS,IAAY,SAAUisK,GAAcp1K,iBACvD,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEjgD,UAAW,+CAAgDf,MAAO,CAAEqvD,MAAO+D,IACpG,gBAAoB,MAAO,CAAEryD,UAAW,2DACpC,gBAAoB,MAAO,CAAEA,UAAW,oEACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,EAAaC,aAAe5oM,GACnE,gBAAoB,KAAM,CAAEvjB,UAAW,8BAAgC85C,GACvE,gBAAoB,KAAU,CAAE7D,KAAM89I,EAAWv8I,OAAQ00K,EAAaE,aAAcz0K,aAAc4zK,GAC9Fv3B,EACA,MACR,gBAAoB,MAAO,CAAEh0L,UAAW,uDACpC,gBAAoB,IAAK,CAAEi2C,KAAM89I,EAAWv0L,OAAQ,SAAUP,MAAO,CAAEjD,MAAO,QAAUi5I,IAAK,uBACzF,gBAAoB,KAAK,CAAEryI,IAAKqhD,EAAUH,IAAK2tI,EAAUxyL,MAAO,CAAEjD,MAAO,OAAQC,OAAQ,OAAQo1T,UAAW,kBAAqB,mCCnBtJ,MAAMC,GAA2B,kBAAoB,MAAO,CAAEt1T,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACvI,kBAAoB,OAAQ,CAAEr1B,EAAG,gUAAiUm7C,KAAM,aCI/Vu6Q,GAAyB,EAAG9zQ,WAAUl6B,QAAOgI,cAAak3R,UAAS+O,oBAAmBC,4BAA2B36Q,kBAAiBu9I,kBAC3I,MAAO//J,EAAYmkB,IAAiB,IAAAj+C,UAAS,IACvCk3T,GAAuB,IAAA5yT,cAAak8B,IACtCyd,EAAczd,EAAMx7B,OAAOpG,MAAM,GAClC,IACGu4T,GAAiB,IAAA7yT,cAAak8B,IACd,UAAdA,EAAM70B,KACNsyC,EAAc,GAClB,GACD,IACGm5Q,GAAgB,IAAA9yT,cAAak8B,IAC/BA,EAAMvb,gBAAgB,GACvB,KACG,QAAEwgC,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,kCACpCq0L,GAAe,kBAAoB,MAAO,KACtC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEr0L,UAAW,+CACpC,kBAAoB,IAAK,CAAEi2C,KAAM,KAAO,MACxCo+I,EAAY1oL,KAAI,CAAC4zB,EAAMuH,IACfA,EAAQ,IAAMutJ,GAAax6L,OACnB,kBAAoB,OAAQ,CAAEsM,IAAK2gC,EAAO9mC,UAAW,8CACzDsxT,GACA,IACA/xR,EAAKm1J,gBAGD,kBAAoB,IAAK,CAAEvuL,IAAK2gC,EAAO9mC,UAAW,6CAA8Ci2C,KAAM1W,EAAKo1J,gBAC/G28H,GACA,IACA/xR,EAAKm1J,qBAG7B,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE10L,UAAW,iDACpCujB,GAAS,kBAAoB,KAAM,KAAMA,GACzCk6B,GAAY,kBAAoB,KAAM,KAAMA,IAChD,kBAAoB,MAAO,CAAEz9C,UAAW,iDACpC,kBAAoBq4C,GAAA,EAAa,CAAEE,YAAajkB,EAAY9X,SAAUk1S,EAAsBp5Q,SAAUq5Q,EAAgBn5Q,kBAAmBjtB,IACzIkmS,GAA6B,kBAAoB,MAAO,CAAEzxT,UAAW,gEACjE,kBAAoB,KAAU,CAAEgxB,KAAMyxR,EAASjrQ,OAAQ,mBAAoBj7B,QAASq1S,GAChF,kBAAoB,IAAK,CAAE5xT,UAAW,GAAGwxT,GAAqB,uBAAyB,gBAAiB,EAE9H,GAAW,IAAO,kBAAoB,MAAO,CAAEx1T,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ9lB,MAAO,8BACvH,kBAAoB,OAAQ,CAAEiuC,SAAU,UAAWg1H,SAAU,UAAWt4L,EAAG,63BAA83Bm7C,KAAM,aCjDt8B66Q,GAA+B,EAAGvgI,UAASC,UAAS7tL,QAAOuyC,UAAY,kBAAoB,IAAK,CAAEA,KAAMA,EAAMj2C,UAAW,oCAClI,kBAAoB,KAAK,CAAE4C,IAAK0uL,EAASxtI,IAAKytI,IAC9C,kBAAoB,IAAK,KAAM7tL,ICEtBouT,GAA2B,EAAGvuS,QAAOwuS,eAAcjkG,gBAAeh3K,sBAC3E,MAAMilN,GAAS,SAAUjlN,GAIzB,OAHKA,GAAuC,SAApBA,IACpBilN,EAAO1pM,UAAY,WAEf,kBAAoB,KAAa,CAAEvb,gBAAiBilN,EAAO97M,SAC/D,kBAAoB,MAAO,CAAEjgD,UAAW,oCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAOytM,EAAO1pM,WAAaryD,UAAW,mDAAoE,SAAlB8tN,EAA2B,YAAc,gBACnK,kBAAoB,IAAK,KAAMvqM,IACnC,kBAAoB,MAAO,CAAEtkB,MAAO,CAAEqvD,MAAOytM,EAAO1pM,WAAaryD,UAAW,mDACxE,kBAAoB,KAAW,KAC3B,kBAAoB,GAAQ,CAAEgyM,QAAS,CAACkD,IAAaC,YAAY,EAAM7Z,cAAe,QAAUy2H,EAAal4T,QAAUk4T,EAAapmT,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,sBAAsB1M,KAAO,kBAAoB,OAAQ,KAClP,kBAAoB,OAAQ,CAAEuG,UAAW,yCAA0Cf,MAAO,CAAEqvD,MAAOytM,EAAO1pM,YACtG,kBAAoBw/P,GAA8B,IAAKtjF,cAAkB,EClB5FyjF,GAAW,EAAGvpQ,SAAQ3E,MAAKrG,WAAUl6B,QAAO2pC,UAAS+kQ,gBAAkB,kBAAoB,IAAK,CAAEh8Q,KAAMiX,EAAS1tD,OAAQ,SAAUQ,UAA0B,IAAfiyT,EAAmB,uCAAyC,sBAAuBh9K,IAAK,uBAC/O,kBAAoB,KAAK,CAAEryI,IAAK6lD,EAAQ3E,IAAKA,IAC7C,kBAAoB,MAAO,CAAE9jD,UAAW,qCACpC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,IAAK,KAAMk6B,KCH1By0Q,GAAe,EAAGC,cAAar7Q,qBAAuB,kBAAoB,KAAa,CAAEA,gBAAiBA,GAAoC,WACvJ,kBAAoB,MAAO,CAAE92C,UAAW,uBACpC,kBAAoB,KAAW,KAAMmyT,EAAYt4T,QAAUs4T,EAAYxmT,KAAK4iO,GAAS,kBAAoByjF,GAAU,CAAE7rT,IAAK,SAASooO,EAAKhrN,WAAYgrN,EAAM0jF,WAAYE,EAAYt4T,cCA7Ku4T,GAA0B,EAAG3wQ,QAAOjE,YAAWC,WAAU3G,sBAClE,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,mCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,iDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBgG,GACvD,kBAAoB,KAAM,CAAEW,wBAAyB,CAC7CC,OAAQX,GAAY,OAEhC,kBAAoB,MAAO,CAAEz9C,UAAW,kDAAoDyhD,EAAM5nD,OAAS,GAAK4nD,EAAM91C,KAAK4zB,GAAU,kBAAoB6xO,GAAuB,CAAEjrQ,IAAK,SAASo5B,EAAKhc,QAASA,MAAOgc,EAAKhc,MAAOklC,OAAQlpB,EAAKkpB,OAAQ0oN,OAAQ5xO,EAAK4xO,OAAQt7N,QAAStW,EAAKsW,QAASgO,QAAStkB,EAAKskB,QAASqJ,QAAS3tB,EAAK2tB,eAAiB,ECP3VmlQ,GAAiB/oT,IAC1B,MAAM,QAAEo9C,EAAO,QAAED,EAAO,SAAEE,IAAa,YACjC,QAAE1G,IAAY,SAAU32C,EAAMwtC,kBAC7Bw7Q,EAAeC,GAAoB,WAAe,IACzD,IAAIC,EAAc,EAClB9rQ,EAAU8rQ,EAAc,GAAM7rQ,EAAW6rQ,EAAc,IAAO/rQ,IAAU+rQ,EAAc,IACtF,MAAOC,EAAmBC,GAAwB,WAAe,IAC3DC,EAA0BrpT,EAAMusC,QAAQ,GAAG+8Q,aACjD,aAAgB,KACZF,EAAqB,GAAGC,EAAwB/pT,MAAM,EAAG4pT,QAAkB,GAC5E,CAACG,EAAyBH,IAC7B,aAAgB,KACRlpT,EAAMusC,QAAQh8C,OAAS,GACvB04T,EAAiBjpT,EAAMusC,QAAQjtC,MAAM,EAAG,IAC5C,GACD,CAACU,EAAMusC,UACV,MAAMg9Q,EAAwB,eAAmB73R,IAE7C,GADAA,EAAMvb,iBACFnW,EAAMusC,QAAQh8C,OAASy4T,EAAcz4T,OAAQ,CAC7C,MAAMi5T,EAAaxpT,EAAMusC,QAAQjtC,MAAM0pT,EAAcz4T,OAAQy4T,EAAcz4T,OAAS,IACpF04T,GAAkB5xQ,GAAS,IAAKA,KAASmyQ,IAC7C,IACD,CAACR,EAAehpT,EAAMusC,UACnBy/K,EAAqB,eAAkB,SACfzuN,IAAtByC,EAAM+qL,YACC,gBAAoB,WAAgB,KACvC,gBAAoBD,EAAa,CAAEC,YAAa/qL,EAAM+qL,YAAaC,UAAqC,UAA1BhrL,EAAMwtC,kBACpF,gBAAoBo3K,GAAK,CAAEM,WAAY,OAAQH,UAAW,UAE3D,gBAAoB,WAAgB,OAC5C,CAAC/kN,EAAMwtC,gBAAiBxtC,EAAM+qL,cACjC,OAAQ,gBAAoB,KAAa,CAAEv9I,gBAAiBmJ,GACxD,gBAAoB,KAAW,KAC3Bq1K,IACA,gBAAoB,MAAO,CAAEt1N,UAAW,iBACpC,gBAAoB,MAAO,CAAEA,UAAW,4BACpC,gBAAoB,MAAO,CAAEA,UAAW,uBACpC,gBAAoB,MAAO,CAAEA,UAAW,6BACpC,gBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,gBAAoB,MAAO,CAAEvjB,UAAW,gCACpC,gBAAoB,KAAM,KAAMsJ,EAAMm0C,YAC9C,gBAAoB,MAAO,CAAEz9C,UAAW,0BACpC,gBAAoB,MAAO,CAAEA,UAAW,oCACpC,gBAAoB,MAAO,CAAEA,UAAW,yCACpC,gBAAoB,IAAK,KAAM,IAAIoX,KAAK9N,EAAMusC,QAAQ,GAAGk9Q,eAAiBzpT,EAAMusC,QAAQ,GAAGk9Q,eAAiB,IAAIl3C,eAAejzQ,MAAM,IACrI,gBAAoB,OAAQ,KAAM,QACtC,gBAAoB,MAAO,CAAE5I,UAAW,+CACpC,gBAAoB,MAAO,CAAEA,UAAW,yCACpC,gBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAMusC,QAAQ,GAAG8+N,UAC9C,gBAAoB,KAAM,KAAMrrQ,EAAMusC,QAAQ,GAAG6xL,WACjD,gBAAoB,IAAK,KAAM+qF,GAC/B,MACR,gBAAoB,MAAO,CAAEzyT,UAAW,0CACpC,gBAAoB,IAAK,CAAEi2C,KAAM3sC,EAAMusC,QAAQ,GAAG8+N,UAC9C,gBAAoB,KAAK,CAAE/xQ,IAAK0G,EAAMusC,QAAQ,GAAGm9Q,UAAWlvQ,IAAKx6C,EAAMusC,QAAQ,GAAGo9Q,mBAClG,gBAAoB,MAAO,CAAEjzT,UAAW,qCAAuCsyT,EAAc3mT,KAAI,CAAC4zB,EAAM9lC,IAChGA,EAAI,EACI,gBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,0CACpD,gBAAoB,MAAO,CAAEA,UAAW,+CACpC,gBAAoB,IAAK,KAAM,IAAIoX,KAAKmoB,EAAKwzR,eAAiBxzR,EAAKwzR,eAAiB,IAAIl3C,eAAejzQ,MAAM,KACjH,gBAAoB,MAAO,CAAE5I,UAAW,gDACpC,gBAAoB,IAAK,CAAEi2C,KAAM1W,EAAKo1O,UAClC,gBAAoB,KAAM,KAAMp1O,EAAKmoM,cAE9C,OAEf,gBAAoB,MAAO,CAAE1nO,UAAW,mCAAqCsJ,EAAMusC,QAAQh8C,OAASy4T,EAAcz4T,QAAU,gBAAoB09C,GAAA,EAAU,CAAEh7B,QAASs2S,EAAuBr7Q,OAAQ,mBAAoBvB,KAAM3sC,EAAMmsN,YAAcnsN,EAAMk1C,iBAAkB,ECxEjR00Q,GAAuB,EAAG3vS,QAAOsyB,UAASwzK,YAAWxlK,aAAe,kBAAoB,MAAO,CAAE7jD,UAAW,iCACrH,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,sDACpC,kBAAoB,IAAK,KAAM61C,GAC/B,kBAAoB,IAAK,CAAEI,KAAM4N,GAAWwlK,KCDvC8pG,GAA2B,EAAGC,8BAA6B51Q,YAAW1G,sBAC/E,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,sCACpC,kBAAoB,KAAW,KAC3B,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBgG,GAC7D,kBAAoB,MAAO,CAAEx9C,UAAW,oDAAsDozT,EAA4Bv5T,OAAS,GAAKu5T,EAA4BznT,KAAK4iO,GAAU,kBAAoB2kF,GAAsB,IAAK3kF,EAAMpoO,IAAK,SAASooO,EAAKhrN,eAAiB,ECJ/Q8vS,GAA6B,EAAG9vS,QAAO+qN,QAAOx3L,sBACvD,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GACxBulM,GAAa,IAAAv9O,cAAayvO,IAC5B,MAAMjmB,GAAiB,SAAiBimB,EAAKlmB,kBAC7C,OAAQ,kBAAoB,MAAO,CAAEroN,UAAW,gDAA+CuuO,EAAK1lB,gBAAkB,qDAAuD,IAAM5pN,MAAO,CAAE4pN,gBAAiB,QAAQ0lB,EAAK1lB,sBAAsB0lB,EAAK9tK,gBAAgBv1C,MAAM,OAAO,OAC9Q,kBAAoB,MAAO,KACvB,kBAAoBgzB,GAAA,EAAS,CAAE1G,OAAQ,gBAAkB+2L,EAAKhrN,OAC9D,kBAAoB,OAAQ,CAAEvjB,UAAW,+DAAgEm+C,wBAAyB,CAAEC,OAAQmwL,EAAKrqL,eACpH,iBAAtBqqL,EAAK+kF,cAA6B/kF,EAAK+kF,aAAaz5T,OAAS,GAAK00O,EAAK+kF,cAAcpoS,MAAM,QAAQvf,KAAI,CAAC5O,EAAGtD,IAAM,kBAAoB,MAAO,CAAE0M,IAAK1M,GACtJ,kBAAoB,MAAO,CAAEuG,UAAW,2DACpC,KACA,kBAAoB,MAAO,CAAEA,UAAW,oBAAsBjD,QAC1EwxO,EAAKv6C,YAAc,kBAAoB,KAAU,CAAEx8I,OAAQ+2L,EAAK9tK,gBAAgBv1C,MAAM,OAAO,GAAI+qB,KAAMs4L,EAAKglF,WAAY57Q,cAAc,GAClI,IACA,kBAAoB,OAAQ,CAAE33C,UAAW,YAAcuuO,EAAKv6C,aAChEu6C,EAAKp7C,UAAY,kBAAoB,IAAK,CAAE3zL,OAAQ8oN,EAAgBtoN,UAAW,uDAAwDi2C,KAAMs4L,EAAK1qL,SAC9I,IACA0qL,EAAKp7C,UAAW,GACzB,IACH,OAAQ,kBAAoB,KAAa,CAAEr8I,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,yCACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,GACtE,kBAAoB,MAAO,CAAEvjB,UAAW,wDACpC,kBAAoB,MAAO,CAAEA,UAAW,+DAAiEsuO,EAAMz0O,OAAS,GAAKwiP,EAAW/N,EAAM,KAC9I,kBAAoB,MAAO,CAAEtuO,UAAW,wDAA0DsuO,EAAMz0O,OAAS,GAAKy0O,EAAM1lO,MAAM,GAAG+C,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB,EAAAo9C,SAAU,CAAE1wC,IAAK1M,GAAK4iP,EAAW9N,UAAa,EC/B/NilF,GAAiB,EAAGC,cAAa/rF,eAAiB,kBAAoB,MAAO,CAAE1nO,UAAW,oBAAsByzT,EAAY55T,OAAS,GAAK45T,EAAY9nT,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAE4pN,WAAYhmN,UAAW,2BAC/O,kBAAoB,IAAK,KAAM5D,EAAE4pN,UACjC5pN,EAAEs3T,YAAY75T,OAAS,GAAKuC,EAAEs3T,YAAY/nT,KAAK4zB,GAAU,kBAAoB,IAAK,CAAEp5B,IAAK,SAASo5B,EAAKhc,QAAS0yB,KAAM1W,EAAK6lB,KAAMplD,UAAW,GAAG0nO,IAAcnoM,EAAKhc,OAAS,cAAgBgc,EAAKhc,aCEvLowS,GAAc,EAAG7gD,WAAUI,WAAU0gD,eAAclsF,YAAW5wL,sBACvE,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,qBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoBwzT,GAAgB,CAAEC,YAAaG,EAAclsF,UAAWA,KAChF,kBAAoBmqC,GAAkB,CAAEtuP,MAAOuvP,EAAUrxN,MAAOyxN,OAAgB,ECTvF2gD,GAAwB,EAAG3nG,eAAc3oM,QAAOuwS,uBACzD,MAAM,QAAE7zQ,EAAO,UAAEoS,IAAc,EAAAD,GAAA,GAAU85J,GAAcp1K,iBACjDulM,GAAa,IAAAv9O,cAAY,EAAGykB,QAAO+tK,UAASC,UAASwiI,8BAA6BC,qBAAoBC,8BAA8Bx6T,KAsBtI,MAAMy6T,EAAsB,KACxB,MAAMC,EAAU90S,SAAS20S,EAAmBI,8CACtCC,EAAeh1S,SAAS20S,EAAmBM,2CAE3Cz9S,EAzBV,SAAiC09S,EAAuBC,EAAoBC,GACxE,MAAM93R,EAAM,IAAIvlB,KACVs9S,EAAa,IAAIt9S,KAAKulB,GACtBg4R,EAAiBh4R,EAAIqhE,YACrB42N,EAAsBj4R,EAAImkE,cAAgB,EAChD,IAAI+zN,EAAYN,EAAwBI,EACpCE,EAAY,IACZA,GAAa,GAEC,IAAdA,GAAmBD,GAAuBJ,EAAqBC,IAC/DI,GAAa,GAEjBH,EAAWz2N,WAAWthE,EAAIuhE,aAAe22N,GACzCH,EAAWx4N,YAAYs4N,EAAqB,EAAG,EAAG,EAAG,GACrD,MAAMM,EAAqB,IAAI19S,KAAKs9S,EAAWz4S,UAAY,MACrD84S,EAAkB,IAAI39S,KAAK09S,EAAmB74S,UAAuC,GAA3Bw4S,EAAgC,GAAK,KAC/FO,EAAaF,EAAmBjuG,eAAe,QAAS,CAAEzqM,KAAM,UAAWqC,MAAO,UAAWkB,IAAK,YAAa61B,cAC/Gy/Q,EAAaH,EAAmBjuG,eAAe,QAAS,CAAE9uM,KAAM,UAAWC,OAAQ,UAAWk9S,QAAQ,IAAQ1/Q,cAC9GqwD,EAAUkvN,EAAgBluG,eAAe,QAAS,CAAE9uM,KAAM,UAAWC,OAAQ,UAAWk9S,QAAQ,IAAQ1/Q,cAC9G,MAAO,CAAC,GAAGw/Q,EAAW/9S,QAAQ,IAAK,KAAKA,QAAQ,IAAK,OAAQ,IAAIg+S,OAAgBpvN,UACrF,CAKiBsvN,CAAwBhB,EAASE,EADxBh1S,SAAS20S,EAAmBoB,0CAElD,OAAIrB,EACO,kBAAoB,MAAO,CAAE51Q,wBAAyB,CAAEC,OAAQ21Q,KAEvEE,EACO,kBAAoB,MAAO,CAAE91Q,wBAAyB,CAAEC,OAAQ61Q,KAEtEvlT,MAAMylT,IAAazlT,MAAM2lT,IAAkB3lT,MAAM2lT,GAQ/C,GAPI,kBAAoB,MAAO,CAAEr0T,UAAW,sEAC3C6W,EAAK,GACL,IACA,kBAAoB,KAAM,MAC1B,IACAA,EAAK,GAEJ,EAEb,GAAKq9S,IAGL,OAAQ,kBAAoB,MAAO,CAAE/tT,IAAK1M,EAAGuG,UAAW,qDAAoDi0T,EAA6B,qCAAuC,KAC5K,kBAAoB,MAAO,CAAEj0T,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,gBAAkBujB,GAC1D,kBAAoB,MAAO,CAAE3gB,IAAK0uL,EAASxtI,IAAKytI,KACpD,kBAAoB,MAAO,CAAEvxL,UAAW,8CAAgDk0T,KAAwB,GACrH,IACH,OAAQ,kBAAoB,KAAa,CAAEp9Q,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,2BACjE,kBAAoB,MAAO,CAAEA,UAAW,QACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,IACxE,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,CAAEvjB,UAAW,sBACpC,kBAAoB,MAAO,CAAEA,UAAW,uCAAyC8zT,GAAkBnoT,KAAI,CAAC4iO,EAAM90O,IAAM4iP,EAAW9N,EAAM90O,SAAS,EC9DrJ47T,GAAgB,EAAG9xS,QAAO4uS,cAAaluQ,WAAUwtI,cAAgB,kBAAoB,MAAO,CAAEzxL,UAAW,wBAClH,kBAAoB,MAAO,CAAEA,UAAW,yCACpC,kBAAoB,KAAK,CAAE4C,IAAKqhD,EAAUH,IAAK2tI,IAC/C,kBAAoBvzI,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBj0B,IAC7D,kBAAoB,MAAO,CAAEvjB,UAAW,6CAA8Cm+C,wBAAyB,CACvGC,OAAQ+zQ,MCJPmD,GAAoB,EAAGhnF,QAAO9wL,eAAiB,kBAAoB,KAAa,KACzF,kBAAoB,MAAO,CAAEx9C,UAAW,6BACpC,kBAAoB,KAAW,KAC3B,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBgG,GACvD,kBAAoB,MAAO,CAAEx9C,UAAW,2CAA6CsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,GAAU,kBAAoB8mF,GAAe,CAAElvT,IAAK,SAASooO,EAAKhrN,WAAYgrN,UCFjMgnF,GAAa,EAAG/3Q,YAAWg4Q,cAAa1+Q,kBAAiB2+Q,gBAAeC,iBAAmB,gBAAoB,KAAa,CAAE5+Q,gBAAiBA,GACxJ,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAE92C,UAAW,eACpC,gBAAoB,MAAO,CAAEA,UAAW,gCACpC,gBAAoB,KAAM,KAAMw9C,IACpC,gBAAoB,MAAO,CAAEx9C,UAAW,+BACpC,gBAAoB,MAAO,CAAEA,UAAW,0BACpCw1T,EAAY7pT,KAAI,CAAC4zB,EAAM9lC,IAAO,gBAAoB,IAAK,CAAEw8C,KAAM1W,EAAKo2R,SAAUxvT,IAAK1M,EAAGuG,UAAW,+BAC7F,gBAAoB,MAAO,CAAEA,UAAW,qCACpC,gBAAoB,KAAK,CAAEA,UAAW,0BAA2B4C,IAAK28B,EAAKq2R,QAAS9xQ,IAAKvkB,EAAKs2R,aAClG,gBAAoB,MAAO,CAAE71T,UAAW,0BACpC,gBAAoB,MAAO,CAAEA,UAAW,+BACpC,gBAAoB,IAAK,KACrB,gBAAoB,OAAQ,CAAEA,UAAW,2BAA6Bu/B,EAAKu2R,wBAC3Er6C,KACA,gBAAoB,OAAQ,CAAEz7Q,UAAW,8BAAgCu/B,EAAKw2R,cAC9Et6C,KACA,gBAAoB,OAAQ,CAAEz7Q,UAAW,0BAA4B,IAAIoX,KAAKmoB,EAAKy2R,gBAAgBn6C,eAAejzQ,MAAM,MAChI,gBAAoB,MAAO,CAAE5I,UAAW,gCACpC,gBAAoB,KAAM,KAAMu/B,EAAKs2R,YACzC,gBAAoB,MAAO,CAAE71T,UAAW,iCACpC,gBAAoB,IAAK,KAAMu/B,EAAK02R,iBAChDR,GAAiB,gBAAoB,MAAO,CAAEz1T,UAAW,4BACrD,gBAAoB,KAAU,CAAEw3C,OAAQ,uBAAwBvB,KAAMy/Q,GAAeD,KAC7F,gBAAoB,MAAO,CAAEz1T,UAAW,yBACpC,gBAAoBs0O,GAA0B,WC3BrD4hF,GAAsB5sT,IAC/B,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBACpC,OAAQ,kBAAoB,MAAO,CAAE92C,UAAW,yBAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,GAChD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,qCACpC,kBAAoB,KAAM,KAAMsJ,EAAMia,QAC1C,kBAAoB,MAAO,CAAEvjB,UAAW,2CACpC,kBAAoB,MAAO,CAAEm+C,wBAAyB,CAAEC,OAAQ90C,EAAM+sL,SAC1E,kBAAoB,MAAO,CAAEr2L,UAAW,sCACpC,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBvB,KAAM3sC,EAAMmsN,WAAY99K,aAAcruC,EAAMiiN,oBAAsBjiN,EAAMk1C,eACzI,kBAAoB,MAAO,CAAEx+C,UAAW,wCAA0CsJ,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAMuH,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,gCACtK,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,IAAK,KAAMu/B,EAAKnjB,OACxC,kBAAoB,MAAO,CAAEpc,UAAW,uCAAyCu/B,EAAK42R,UAAUxqT,KAAI,CAAC0lB,EAAI53B,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,kCAC5JqxB,EAAG+kS,SAAW,kBAAoB,MAAO,CAAEp2T,UAAW,kCAClD,kBAAoB,MAAO,CAAE4C,IAAKyuB,EAAG+kS,QAAStyQ,IAAKzyB,EAAGglS,cAC1D,kBAAoB,MAAO,CAAEr2T,UAAW,mCAAqCqxB,EAAGq2M,sBAAuB,EClBtH4uF,GAAoB,EAAG7Y,kBAAkB,OAAQn0S,MAC1D,MAAM,QAAEo9C,EAAO,QAAED,EAAO,SAAEE,IAAa,YAChCwoL,EAAcC,IAAmB,IAAA50O,WAAS,IAC1CywO,EAAeC,IAAoB,IAAA1wO,WAAS,IAC5C2wO,EAAcC,IAAmB,IAAA5wO,WAAS,GAMjD,OALA,IAAAC,YAAU,KACN20O,EAAgB1oL,GAChBwkL,EAAiBvkL,GACjBykL,EAAgB3kL,EAAQ,GACzB,CAACC,EAASC,EAAUF,IACf,kBAAoB,KAAa,CAAE3P,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,wBAAwBsJ,EAAMmF,YAClE,kBAAoB,MAAO,CAAEzO,UAAW,wCACpCsJ,EAAMia,OAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQluC,EAAMk/P,QAAU,YAAc,YAAavpQ,MAAO,CAAE,mBAAoB,GAAGqK,EAAMitT,gBAAiB,sBAAuB9Y,IAAqBn0S,EAAMia,OAC1M,kBAAoB,MAAO,CAAEvjB,UAAW,6BAA8Bm+C,wBAAyB,CACvFC,OAAQ90C,EAAMktT,UACfv3T,MAAO,CAAE,mBAAoB,GAAGqK,EAAMitT,oBACjD,kBAAoB,MAAO,CAAEv2T,UAAW,0CACnCmrO,GAAgBF,IAAkB,kBAAoB,KAAK,CAAEjrO,UAAW,8BAA+B4C,IAAK0G,EAAMynL,SAAUjtI,IAAKx6C,EAAMmoL,WACxI09C,GAAgB,kBAAoB,KAAK,CAAEnvO,UAAW,8BAA+B4C,IAAK0G,EAAMmtT,eAAgB3yQ,IAAKx6C,EAAMmoL,cAAgB,ECvBlJilI,GAAmC,EAAGzyQ,WAAUwtI,WAAUklI,yBAA2B,kBAAoB,MAAO,CAAE32T,UAAW,6CACtI,kBAAoB,MAAO,CAAEA,UAAW,6DACpC,kBAAoB42T,GAA0B,CAAEh0T,IAAKqhD,EAAUH,IAAK2tI,EAAUznI,YAAa2sQ,MAC7FC,IAA2B,QAAuB,MCA3CC,GAA+B,EAAGvoF,QAAOz4L,UAAS2H,YAAW7mC,OAAMy0M,gBAAgB,QAASt0K,qBAAuB,kBAAoB,KAAa,CAAEA,gBAAiBA,GAChL,kBAAoB,MAAO,CAAE92C,UAAW,wCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,yDAA0E,SAAlBorN,EAA2B,oBAAsB,KAC7I,kBAAoB,MAAO,CAAEprN,UAAW,sEACpC,kBAAoB,IAAK,KAAM2W,GAC/B,kBAAoBunC,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBgG,IACjE,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEx9C,UAAW,qDACpC,kBAAoB,GAAQ,CAAE64M,WAAY,CAClCC,WAAW,EACXM,aAAc,IAAM,gGACnBk1B,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,8CAA8C1M,KAClH,kBAAoBi9T,GAAkC,IAAKnoF,QAC/D,kBAAoB,MAAO,CAAEvuO,UAAW,uDAChD,kBAAoB,IAAK,CAAEA,UAAW,gEAAiEm+C,wBAAyB,CACxHC,OAAQvI,GAAoB,UChBvCihR,GAAqB,EAAGruQ,SAAQ0oN,SAAQ1zN,WAAUl6B,QAAOywK,aAAYD,YAAWj9I,sBACzF,MAAM,QAAEmJ,EAAO,UAAEoS,IAAc,SAAUvb,GAAmB,2BAE5D,OAAQ,kBAAoB,MAAO,CAAE92C,UAAW,wBAAyBf,MADzC,CAAG63C,gBAAiBmJ,QAAWp5C,EAAWynD,MAAO+D,QAAaxrD,IAE1F,kBAAoB,KAAK,CAAEjE,IAAK6lD,EAAQ3E,IAAKqtN,EAAQnxQ,UAAW,iCAChE,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBj0B,GACzD,kBAAoB,IAAK,KAAMk6B,GAC/B,kBAAoB,KAAU,CAAEjG,OAAQ,mBAAoBvB,KAAM89I,EAAW37I,eAAgB,iCAAmC47I,GAAa,ECPxI+iI,GAA8B,EAAGxzS,QAAOk6B,WAAU6wL,QAAOx3L,sBAClE,MAAM,QAAEmJ,EAAO,UAAEoS,IAAc,SAAUvb,GAAmB,SAC5D,OAAQ,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAE92C,UAAW,mCAAoCf,MAAO,CAAE63C,gBAAiBmJ,QAAWp5C,EAAWynD,MAAO+D,QAAaxrD,IAC5I,kBAAoB,KAAW,CAAE7G,UAAW,+CACxC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,6CAA8Cm+C,wBAAyB,CAAEC,OAAQX,KACvH,kBAAoB,MAAO,CAAEz9C,UAAW,2CAA6CsuO,EAAMz0O,QAAUy0O,EAAM3iO,KAAK4iO,GAAU,kBAAoBuoF,GAAoB,CAAE3wT,IAAK,SAASooO,EAAKhrN,WAAYgrN,SAAc,ECXpN,GAAkB,EAAG/wL,YAAWmlQ,qBAAuB,kBAAoB,MAAO,CAAE3iT,UAAW,mBACxG,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,IAAK,CAAEW,wBAAyB,CAAEC,OAAQukQ,MCDrDqU,GAAiC1tT,GAAW,kBAAoB,MAAO,CAAEtJ,UAAW,oCAC7F,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAM2tT,iBAAkBnzQ,IAAKx6C,EAAM4tT,iBAAkBl3T,UAAW,4CAChG,kBAAoB,IAAK,CAAEA,UAAW,mDAAqDsJ,EAAM6tT,cACjG,kBAAoB,MAAO,CAAEn3T,UAAW,sDAAuDm+C,wBAAyB,CAChHC,OAAQ90C,EAAM8tT,oBAEtB,kBAAoB,MAAO,CAAEp3T,UAAW,yDAA0Dm+C,wBAAyB,CACnHC,OAAQ90C,EAAM46C,gBCDbmzQ,GAA4B,EAAG75Q,YAAWmlQ,kBAAiBr0E,QAAOx3L,sBAC3E,MAAO21G,EAAcu2J,IAAmB,IAAAxoT,UAAS,IAC3C,QAAEylD,EAAU,YAAc,SAAUnJ,GACpCmsQ,GAAqB,IAAAnkT,cAAa63L,IACpCqsH,EAAgBrsH,EAAO2K,UAAU,GAClC,IACH,OAAQ,kBAAoB,KAAa,CAAExqJ,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,0CACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,+BACpC,kBAAoB,MAAO,CAAEA,UAAW,yBACpC,kBAAoB,GAAiB,CAAEw9C,UAAWA,EAAWmlQ,gBAAiBA,IAC9E,kBAAoB,OAAQ,CAAE3iT,UAAW,8CACrC,kBAAoB,IAAK,CAAEA,UAAW,wBAAyB,QAAgB,CAAC,IAChF,kBAAoB,IAAK,CAAEA,UAAW,2DAClCysJ,EAAe,EACf,OACA6hF,EAAMz0O,QACV,kBAAoB,IAAK,CAAEmG,UAAW,wBAAyB,QAAgB,CAAC,MACxF,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoB,KAAW,KAC3B,kBAAoB,GAAQ,CAAEuqM,WAAY,CAClCC,OAAQ,uBACRC,OAAQ,wBACTuH,QAAS,CAACkD,IAAaguG,kBAAmBD,EAAoBz5S,MAAM,EAAO2rM,YAAY,EAAO5Z,YAAa,CAC1G,IAAO,CACHD,cAAe,EACff,aAAc,IAElB,IAAO,CACHe,cAAe,IACff,aAAc,IAElB,IAAO,CACHe,cAAe,IACff,cAAe,KAEnB,IAAO,CACHe,cAAe,IACff,cAAe,GAEnB,KAAQ,CACJe,cAAe,IACff,cAAe,OAElB+zC,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,gBAAgB1M,KAAO,kBAAoBu9T,GAA+B,IAAKzoF,aAAiB,ECnDvL+oF,GAAgC,EAAGl6D,YAAWm6D,eAAcC,gBAAel7D,eAAiB,kBAAoB,MAAO,CAAEt8P,UAAW,qCAAsCf,MAAO,CAAE63C,gBAAiBwlN,IAC7M,kBAAoBg0D,GAAc,CAAEl1O,UAAWo8O,IAC/C,kBAAoB,MAAO,CAAEx3T,UAAW,mDACpC,kBAAoB,KAAM,KAAMo9P,GAChC,kBAAoB,IAAK,KAAMm6D,KCD1BE,GAAoC,EAAGl0S,QAAOk6B,WAAU6wL,QAAOx3L,sBACxE,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,gDACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,2DACpC,kBAAoB,MAAO,CAAEA,UAAW,yEACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,kFAAmFm+C,wBAAyB,CAAEC,OAAQX,MAChK,kBAAoB,MAAO,CAAEz9C,UAAW,yEAA2EsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,GAAU,kBAAoB+oF,GAA+B,CAAEnxT,IAAK,SAASooO,EAAKgpF,eAAgBn6D,UAAW7uB,EAAK6uB,UAAWm6D,aAAchpF,EAAKgpF,aAAcC,cAAejpF,EAAKipF,cAAel7D,UAAW/tB,EAAK+tB,kBAAoB,ECX9Xo7D,GAA8B,EAAGC,kBAAiBC,kBAAiBxuG,QAAOyuG,sBAAqB/gR,qBAAuB,kBAAoB,KAAa,CAAEA,gBAAiBA,GAAoC,WACvN,kBAAoB,MAAO,CAAE92C,UAAW,yCACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,oDACpC,kBAAoB,MAAO,CAAEA,UAAW,kEAAoEopN,EAAMvvN,OAAS,GAAKuvN,EAAMz9M,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEohD,YAAax9C,UAAW,yEACnN,kBAAoB,MAAO,KACvB,kBAAoB,IAAK,KAAM5D,EAAEohD,WACjC,kBAAoB,IAAK,KAAMphD,EAAEqhD,eACzCk6Q,GAAmB,kBAAoB,MAAO,CAAE33T,UAAW,uEACvD,kBAAoB,IAAK,KAAM23T,GAC/B,kBAAoB,IAAK,KAAMC,GAC/B,kBAAoB,KAAK,CAAEh1T,IAAKi1T,EAAqB/zQ,IAAK6zQ,SCZjEG,GAAuB,EAAGC,gBAAeC,iBAAgBC,eAAcC,gBAAe5mI,aAAe,kBAAoB,MAAO,CAAEtxL,UAAW,2BACtJ,kBAAoB,KAAK,CAAE4C,IAAK0uL,IAChC,kBAAoB,MAAO,CAAEtxL,UAAW,8CACpC,kBAAoB,MAAO,CAAEA,UAAW,0DACpC,kBAAoB,IAAK,CAAEA,UAAW,gBAAkB+3T,GACxD,kBAAoB,IAAK,KAAME,IACnC,kBAAoB,MAAO,CAAEj4T,UAAW,2DACpC,kBAAoB,IAAK,CAAEA,UAAW,gBAAkBg4T,GACxD,kBAAoB,IAAK,KAAME,MCL9BC,GAAwB,EAAG7pF,QAAO8pF,wBAA0B,kBAAoB,GAAQ,CAAEj4H,YAAY,EAAM7E,cAAe,EAAGf,aAAc,GAAI/wL,MAAM,EAAMvG,SAAU,CAC3KylF,MAAO,IACPyzH,sBAAsB,EACtBE,iBAAkB+7G,GACnB78H,YAAa,CACZ,CAAC,EAAA5qI,UAAA,gBAA2B,CACxB2qI,cAAe,IAEpBvvL,MAAO,KAAMimM,QAAS,CAAC+J,IAAW3vM,UAAW,YAAckiO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,sBAAsB1M,KAAO,kBAAoBq+T,GAAsB,CAAE3xT,IAAK,SAASooO,EAAK0pF,kBAAmB1pF,QCZvP8pF,GAAmB,EAAGt/E,cAAgB,kBAAoB,MAAO,CAAE/4O,UAAW,sBACvF,kBAAoB,MAAO,CAAEA,UAAW,mCACxC,kBAAoB,QAAS,CAAEA,UAAW,wCAAyC63N,UAAU,EAAMruN,MAAM,EAAMsuN,OAAO,EAAMC,aAAa,GACrI,kBAAoB,SAAU,CAAEn1N,IAAKm2O,EAAUjrO,KAAM,gBCOhDwqT,GAAoB,EAAGv/E,WAAUzK,QAAOiqF,gBAAeh1S,QAAOk6B,WAAUg4K,aAAYj3K,cAAag6Q,cAAaC,eAAc3hR,kBAAiB6gR,kBAAiBC,kBAAiBC,sBAAqBppF,aAAYxqL,WAAUwtI,WAAUinI,uBAAsB,EAAOrpG,uBAAsB,EAAOspG,kBACvS,MAAOv9O,EAAW6iL,IAAgB,IAAAzjQ,aAC5B,QAAEisD,IAAY,WAuCpB,OAtCA,IAAAhsD,YAAU,KACF89T,GAAiBA,EAAcj9S,SAAS,SACxCulC,MAAM03Q,GACD90T,MAAKm9C,GAAYA,EAASK,SAC1Bx9C,MAAMy6P,IACPD,EAAaC,EAAS,IAErBx8M,OAAO/8C,IACRD,QAAQC,MAAMA,EAAM,GAE5B,GACD,CAAC4zT,IA2BI,kBAAoB,MAAO,CAAEv4T,UAAW,6BAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBA,GAAoC,WACpF,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBsnD,EAAA,EAAM,CAAErD,SAAU00Q,GAAa10Q,SAAUuD,gBAAiBmxQ,GAAanxQ,gBAAiB1D,IAAK60Q,GAAa70Q,OAClI,kBAAoB,MAAO,CAAE9jD,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,gDAAiDm+C,wBAAyB,CAC1GC,OAAQX,MAEpBgxL,GAAc,kBAAoB,OAAQ,MArC7B,kBAAoB,MAAO,MACnDhZ,GAAc+iG,IAAgB,kBAAoB,MAAO,CAAEx4T,UAAW,qDACnE,kBAAoB,KAAU,CAAEi2C,KAAMw/K,EAAYj+K,OAAQ,gBAAiBG,aAAc+gR,GAAuBl6Q,GAChHg6Q,GAAe,kBAAoB,KAAU,CAAEviR,KAAMuiR,EAAahhR,OAAQ,sBAAuBG,aAAc03K,GAAuBopG,IAC1Ib,GAAmB,kBAAoB,MAAO,CAAE53T,UAAW,yDACvD,kBAAoB,IAAK,KAAM23T,GAC/B,kBAAoB,IAAK,KAAMC,GAC/B,kBAAoB,KAAK,CAAEh1T,IAAKi1T,EAAqB/zQ,IAAK6zQ,MAgClD,kBAAoBzpG,GAAK,CAAEG,UAAW,OAAQG,WAAY,SAC1DigB,GACI,kBAAoB,MAAO,CAAEzuO,UAAW,oEAAqEm+C,wBAAyB,CAAEC,OAAQqwL,KAjChI,kBAAoB,MAAO,CAAEzuO,UAAW,uDACxE,kBAAoB,MAAO,CAAEA,UAAW,+DACpCo7E,GACI,kBAAoB,MAAO,CAAEp7E,UAAW,wCACpC,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,KAAQ,CAAEuJ,cAAe6xE,EAAW5xE,MAAM,EAAMe,iBAAkB,CAC9E6qJ,WAAY,CACRp5J,MAAO,OACPC,OAAQ,OACR8B,EAAG,OACHP,EAAG,aAG3B8wO,GAAOz0O,QAAU,kBAAoB,MAAO,CAAEmG,UAAW,wCACrD,kBAAoBm4T,GAAuB,CAAE7pF,MAAOA,EAAO8pF,oBAAoB,IAC/E3xQ,GAAW,kBAAoB0xQ,GAAuB,CAAE7pF,MAAOA,EAAO8pF,oBAAoB,KAC9Fr/E,GAAY,kBAAoBs/E,GAAkB,CAAEt/E,SAAUA,IAC9D90L,GAAY,kBAAoB,KAAK,CAAErhD,IAAKqhD,EAAUH,IAAK2tI,SAiBxB,EC/DlCmnI,GAAuC,EAAGC,YAAW30Q,cAAa6vI,YAAWC,aAAYk4B,eAAc4sG,gBAAeC,mBAC/H,MAAM,QAAE94Q,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,kBACjD,QAAE2P,IAAY,WACduyQ,GAAW,IAAA38T,QAAO,OACjBiqO,EAAeC,IAAoB,IAAA/rO,UAAS,IAYnD,OAXA,IAAAC,YAAU,KAEF8rO,EADA9/K,EACiBqyQ,EAGAC,EACrB,IAEAC,EAASv8T,SACTu8T,EAASv8T,QAAQ6nE,OAEb,kBAAoB,KAAa,CAAExtB,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,6CAA8Cf,MAAO,CAAEqvD,MAAO+D,IAClG,kBAAoB,MAAO,CAAEryD,UAAW,iEACpC,kBAAoB,MAAO,CAAEf,MAAO,CAAE63C,gBAAiBmJ,GAAWjgD,UAAW,+DACzE,kBAAoB,OAAQ,CAAEA,UAAW,QAASf,MAAO,CACjDqvD,MAAwC,SAAjC49J,EAAap1K,gBAA6B,UAAY,IAC9DqH,wBAAyB,CACxBC,OAAQy6Q,MAEpB,kBAAoB,MAAO,CAAE74T,UAAW,gFACpC,kBAAoB,IAAK,CAAEf,MAAO,CAC1BqvD,MAAwC,SAAjC49J,EAAap1K,gBAA6B,UAAY,IAC9D92C,UAAW,8BAAgCkkD,GAClD,kBAAoB,MAAO,CAAElkD,UAAW,gEACpC,kBAAoB,KAAU,CAAEi2C,KAAM89I,EAAWv8I,OAAQ00K,EAAaE,cAAgBp4B,MAClG,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,CAAEh0L,UAAW,+DACpC,kBAAoB,QAAS,CAAEG,IAAK64T,EAAUh9T,MAAO,OAAQwN,MAAM,EAAMquN,UAAU,EAAMC,OAAO,EAAMC,aAAa,GAC/G,kBAAoB,SAAU,CAAEn1N,IAAK0jO,EAAex4N,KAAM,kBAAoB,ECpCzFmrT,GAAe,EAAGx6Q,aAAYD,cAAas6Q,gBAAeI,eAAcC,cAAahH,cAAa5uS,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,sBAChK,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,KAAK,CAAE4C,IAAKk2T,KACpC,kBAAoB,MAAO,CAAE94T,UAAW,mCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,IAAK,CAAE46B,wBAAyB,CAC5CC,OAAQ+zQ,MAEpB,kBAAoB,KAAU,CAAE36Q,OAAQ,gBAAiBvB,KAAMwI,GAAcD,ICRpE46Q,GAAkB,EAAG36Q,aAAYD,cAAas6Q,gBAAeI,eAAcC,cAAahH,cAAa5uS,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,0BACnK,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,IAAK,KAAM4uS,GAC/B,kBAAoB,KAAU,CAAE36Q,OAAQ,gBAAiBvB,KAAMwI,GAAcD,IACjF,kBAAoB,MAAO,CAAEx+C,UAAW,wCACpC,kBAAoB0nN,GAAO,CAAEG,SAAUixG,EAAelxG,UAAWsxG,EAAcvxG,SAAUwxG,EAAar1Q,IAAKvgC,EAAOulC,QAAS,YCLtHuwQ,GAA8B,EAAG91S,QAAO+qN,QAAOx3L,kBAAiBy/Q,mBAAqB,kBAAoB,KAAa,KAC/H,kBAAoB,MAAO,CAAEv2T,UAAW,uCAAwCf,MAAO,CAAE63C,gBAAiBA,GAAmB,YACzH,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoBk+C,GAAA,EAAS,CAAEj/C,MAAO,CAAE,mBAAoB,GAAGs3T,KAAmB/+Q,OAAQ,cAAgBj0B,GAC1G,kBAAoB,MAAO,CAAEvjB,UAAW,wDAA0DsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,IAA0B,IAAjBA,EAAKgN,SAAoB,kBAAoB69E,GAAiB,CAAEjzT,IAAK,SAASooO,EAAKhrN,WAAYgrN,OACzO,kBAAoB,MAAO,CAAEvuO,UAAW,sDAAwDsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,IAA0B,IAAjBA,EAAKgN,SAAqB,kBAAoB09E,GAAc,CAAE9yT,IAAK,SAASooO,EAAKhrN,WAAYgrN,UCNpO+qF,GAAqB,EAAG76Q,aAAYD,cAAawF,gBAAevG,WAAUl6B,QAAO0gC,WAAUnN,kBAAiByiR,mBAAkBC,0BAA4B,kBAAoB,KAAa,CAAE1iR,gBAAiBA,GAAoC,WAC3P,kBAAoB,MAAO,CAAE92C,UAAW,8BACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoB,MAAO,CAAEA,UAAW,2DACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WACnC,kBAAoB,OAAQ,CAAE2G,wBAAyB,CAC/CC,OAAQ76B,MAEpB,kBAAoB,MAAO,CAAEvjB,UAAW,uDAAwDm+C,wBAAyB,CACjHC,OAAQX,MAEpB,kBAAoB,KAAU,CAAExH,KAAMwI,EAAYjH,OAAQ,uBAAwBv4C,MAAO,CAAE,uBAAwB,GAAGs6T,IAAoB,4BAA6B,GAAGC,KAA0B7hR,aAAcqM,GAAiBxF,IACvO,kBAAoB,MAAO,CAAEx+C,UAAW,uCAAwCf,MAAO,CAAE,yBAA0B,OAAOglD,WCZzHw1Q,GAAwB,EAAGl2S,QAAOu2B,WAAUshC,YAAWtkC,sBAChE,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,iCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,iDACpC,kBAAoBswT,GAAc,CAAEl1O,UAAWA,IAC/C,kBAAoB,MAAO,CAAEp7E,UAAW,8DACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWj0B,GAClD,kBAAoB,IAAK,KAAMu2B,OAAe,ECRzD4/Q,GAAwC,EAAGn2S,QAAO2gC,cAAay1Q,WAAUC,WAAU1tG,mBAC5F,MAAMmwB,GAAa,IAAAv9O,cAAY,EAAGykB,QAAO2gC,cAAaD,WAAUwtI,WAAUh4L,KAAS,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,0FAC/H,kBAAoB,MAAO,CAAEA,UAAW,iFACpC,kBAAoB,MAAO,CAAE4C,IAAKqhD,EAAUH,IAAK2tI,EAAUzxL,UAAW,2DACtE,kBAAoB,MAAO,CAAEA,UAAW,gBAAkBujB,IAC9D,kBAAoB,MAAO,CAAEvjB,UAAW,+EACpC,kBAAoB,IAAK,KACrB,IACAkkD,MAAiB,IACvB4zP,GAAgB,IAAAh5S,cAAY,CAAC2iD,EAAO46J,GAAmB,IAAW,kBAAoB,aAAgB,KACxG,kBAAoB,GAAQ,CAAE9hB,aAAc,GAAIe,cAAe,OAAQ9xL,MAAM,EAAMuxL,gBAAgB,EAAM93L,SAAU,CAC3GylF,MAAO,EACPyzH,sBAAsB,EACtBE,oBACDtwM,MAAO,KAAMimM,QAAS,CAAC+J,MAAa,SAAoBt6J,EAAO,GAAG91C,KAAI,CAAC4zB,EAAMuH,IAAW,kBAAoBm9K,GAAa,CAAE99M,IAAK2gC,GAASu1M,EAAW,IAAK98M,EAAM9lC,EAAG,GAAGqtC,aAAmB,CAACu1M,KAC9L,QAAEp8L,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACvD,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,6CAA8Cf,MAAO,CAAEqvD,MAAO+D,IAClG,kBAAoB,MAAO,CAAEryD,UAAW,8DACpC,kBAAoB,MAAO,CAAEA,UAAW,kFACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,GACpE,kBAAoB,KAAM,CAAEvjB,UAAW,eAAgBm+C,wBAAyB,CACxEC,OAAQ8F,GAAe,OAEnC,kBAAoB,MAAO,KAAMy1Q,GAAY7hB,EAAc6hB,IAC3D,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,KAAMC,GAAY9hB,EAAc8hB,GAAU,OAAW,EC7BvFC,GAAwB,EAAGp7Q,aAAYD,cAAa+sK,qBAAoB9tK,WAAUl6B,QAAO0gC,WAAUnN,kBAAiBgjR,YAAWC,YAAWC,cAAavB,eAAcppG,yBAA2B,kBAAoB,KAAa,CAAEv4K,gBAAiBA,GAC7P,kBAAoB,MAAO,CAAE92C,UAAW,0BAA2Bf,MAAO,CAAE,yBAA0B,OAAOglD,KAAa,eAAgB,GAAG61Q,IAAa,eAAgB,GAAGC,MACzK,kBAAoB,KAAW,CAAE/5T,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,2CACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWj0B,GAClD,kBAAoB,IAAK,KAAMk6B,GAC/B,kBAAoB,MAAO,CAAEz9C,UAAW,2CACpCg6T,GAAe,kBAAoB,KAAU,CAAE/jR,KAAM+jR,EAAariR,aAAc03K,EAAqB73K,OAAQ,iBAAmBihR,GAChIh6Q,GAAc,kBAAoB,KAAU,CAAExI,KAAMwI,EAAY9G,aAAc4zK,EAAoB/zK,OAAQ,uBAAyBgH,QCV1Iy7Q,GAAwB,EAAGpkR,UAAS4S,YAAc,kBAAoB,MAAO,CAAEzoD,UAAW,iCACnG,kBAAoB,KAAK,CAAEA,UAAW,uCAAwC4C,IAAK6lD,IACnF,kBAAoB,IAAK,KAAM5S,ICAtBqkR,GAAoB,EAAG5rF,QAAO/qN,QAAOuzB,sBAC9C,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,4BACpC,kBAAoB,KAAW,CAAEA,UAAW,6CACxC,kBAAoB,KAAM,KAAMujB,GAChC,kBAAoB,MAAO,CAAEvjB,UAAW,0CAA4CsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAK4iO,GAAS,kBAAoB0rF,GAAuB,CAAE9zT,IAAK,SAASooO,EAAK14L,aAAc04L,SAAa,ECT1N4rF,GAAW,kBAAoB,MAAO,CAAEjpS,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,QAC7I,kBAAoB,OAAQ,CAAEn7C,EAAG,mNAAoNw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UACpU,kBAAoB,OAAQ,CAAEt7C,EAAG,qBAAsBw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UACtI,kBAAoB,OAAQ,CAAEt7C,EAAG,6BAA8Bw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UAC9I,kBAAoB,OAAQ,CAAEt7C,EAAG,6BAA8Bw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UAC9I,kBAAoB,OAAQ,CAAEt7C,EAAG,6BAA8Bw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,WCLrIijR,GAAc,kBAAoB,MAAO,CAAElpS,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,QAChJ,kBAAoB,OAAQ,CAAEn7C,EAAG,4BAA6Bw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UAC7I,kBAAoB,OAAQ,CAAEt7C,EAAG,oJAAqJw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,WCG5PkjR,GAA8C,EAAG92S,QAAO+qN,QAAOpiB,eAAc+lE,cACtF,MAAM,QAAEhyO,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACjDulM,GAAa,IAAAv9O,cAAY,CAACyvO,EAAM90O,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAA0B,MAAZiyR,EAAkB,uEAAyE,wEACvL,kBAAoB,MAAO,CAAEjyR,UAAW,sEACpC,kBAAoB,MAAO,CAAEA,UAAW,uEAAwEf,MAAO,CAAE63C,gBAAiBy3L,EAAK4yB,sBAC3I5yB,EAAK+rF,MAAQ,kBAAoB,MAAO,CAAEt6T,UAAW,mEACjD,kBAAoB,OAAQ,CAAEA,UAAW,wEAA0EuuO,EAAKgsF,gBACxHhsF,EAAK+rF,KAAKpvS,MAAM,MAAMvf,KAAI,CAAC+rL,EAAKj+L,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,+EAC3E,QAAR03L,EAAgByiI,GAAUC,GAC1B1iI,MACR,kBAAoB,MAAO,CAAE13L,UAAW,sFACpC,kBAAoB,MAAO,CAAEA,UAAW,4FAA6F4C,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAK98C,cAC/K,kBAAoB,MAAO,CAAEzxL,UAAW,mEACpC,kBAAoB,MAAO,CAAEA,UAAW,kFACpC,kBAAoB,KAAM,CAAEA,UAAW,eAAiBuuO,EAAKhrN,OAC7D,kBAAoB,IAAK,CAAEvjB,UAAW,WAAauuO,EAAKrqL,iBAAkB,CAAC+tO,IACvF,OAAQ,kBAAoB,KAAa,CAAEn7O,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,uDACjE,kBAAoB,MAAO,CAAEA,UAAW,8EACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,IACxE,kBAAoB,MAAO,CAAEvjB,UAA0B,MAAZiyR,EAAkB,6EAA+E,8EAAkF3jD,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAO4iP,EAAW9N,EAAM90O,QAAS,ECnBhS,OAAe,CAACusD,GAAYgzJ,KACrB,MAAMwhH,GAAgD,EAAGj3S,QAAO+qN,QAAOpiB,eAAc+lE,cACxF,MAAM,QAAEhyO,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACjDulM,GAAa,IAAAv9O,cAAayvO,GAAU,kBAAoB,MAAO,CAAEvuO,UAA0B,MAAZiyR,EAAkB,0EAA4E,2EAC/K,kBAAoB,MAAO,CAAEjyR,UAAW,yEACpC,kBAAoB,MAAO,CAAEA,UAAW,0EAA2Ef,MAAO,CAAE63C,gBAAiBy3L,EAAK4yB,sBAC9I5yB,EAAK+rF,MAAQ,kBAAoB,MAAO,CAAEt6T,UAAW,sEACjD,kBAAoB,OAAQ,CAAEA,UAAW,4EAA8EuuO,EAAKgsF,gBAC5HhsF,EAAK+rF,KAAKpvS,MAAM,MAAMvf,KAAI,CAAC+rL,EAAKj+L,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,kFAC3E,QAAR03L,EAAgByiI,GAAUC,GAC1B1iI,MACR,kBAAoB,MAAO,CAAE13L,UAAW,yFACpC,kBAAoB,MAAO,CAAEA,UAAW,+FAAgG4C,IAAK2rO,EAAKtqL,SAAUH,IAAKyqL,EAAK98C,cAClL,kBAAoB,MAAO,CAAEzxL,UAAW,sEACpC,kBAAoB,MAAO,CAAEA,UAAW,qFACpC,kBAAoB,KAAM,CAAEA,UAAW,eAAiBuuO,EAAKhrN,OAC7D,kBAAoB,IAAK,CAAEvjB,UAAW,WAAauuO,EAAKrqL,iBAAkB,CAAC+tO,IACvF,OAAQ,kBAAoB,KAAa,CAAEn7O,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,0DACjE,kBAAoB,MAAO,CAAEA,UAAW,iFACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,IACxE,kBAAoB,MAAO,CAAEvjB,UAAW,mBAA8B,MAAZiyR,EAAkB,gFAAkF,kFAAqF3jD,EAAM3iO,KAAIpR,GAAK8hP,EAAW9hP,MAC7Q,kBAAoB,MAAO,CAAEyF,UAAW,kCACpC,kBAAoB,GAAQ,CAAEu6L,aAAc,GAAIe,cAAe,KAAM9xL,MAAM,EAAMqvM,WAAY,CAAEC,WAAW,GAAQ/sM,MAAO,IAAM/L,UAAW,8BAAgCsuO,EAAM3iO,KAAI,CAACpR,EAAGd,IAAM,kBAAoB,aAAgB,KAC9N,kBAAoBwqN,GAAa,CAAE99M,IAAK1M,GACpC,kBAAoB,MAAO,CAAEuG,UAAW,kFAAoFq8O,EAAW9hP,YAAY,EC9BlKkgU,GAAgC,EAAGl3S,QAAO2gC,cAAagoK,eAAcoiB,YAC9E,MAAM,QAAEruL,EAAO,UAAEoS,IAAc,SAAU65J,GAAcp1K,iBACvD,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,qCACjE,kBAAoB,MAAO,CAAEA,UAAW,8CACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,GACpE,kBAAoB,IAAK,CAAEvjB,UAAW,WAAakkD,IACvD,kBAAoB,MAAO,CAAElkD,UAAW,sDAAwDsuO,GAAO3iO,KAAI,CAACpR,EAAGd,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,yDAClK,kBAAoB,MAAO,CAAEA,UAAW,qDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,iBAAmBj9C,EAAEgpB,OAC5D,kBAAoB,MAAO,CAAE3gB,IAAKrI,EAAE0pD,SAAUH,IAAKvpD,EAAEk3L,YACzD,kBAAoB,MAAO,CAAEzxL,UAAW,wDACpC,kBAAoB,IAAK,CAAEA,UAAW,WAAazF,EAAE2pD,oBAAqB,EChBrFw2Q,GAAiB,EAAG1jR,OAAO,UAAW/6C,SAAS,GAAID,QAAQ,MAAU,kBAAoB,MAAO,CAAEA,MAAOA,EAAOC,OAAQA,EAAQk1B,QAAS,YAAa6lB,KAAMA,EAAM9lB,MAAO,8BAClL,kBAAoB,IAAK,CAAEu9B,SAAU,oBACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,2FAA4Fm7C,KAAM,aACvI,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,KAC5B,kBAAoB,OAAQ,CAAEA,KAAMA,EAAMn7C,EAAG,qBCD5C8+T,GAAgB,EAAGrsF,QAAOx3L,kBAAiBvzB,QAAOu2B,eAC3D,MAAOwmJ,EAAas6H,IAAkB,IAAApgU,UAAS,IACzC,QAAEylD,IAAY,EAAAmS,GAAA,GAAUtb,GACxB+jR,GAAuB,IAAA/7T,cAAasN,GAAc,KAClC,SAAdA,GAAwBk0L,EAAc,EACtCs6H,GAAej6Q,GAAQA,EAAO,IAGX,UAAdv0C,GAAyBk0L,EAAcguC,EAAMz0O,OAAS,GAC3D+gU,GAAej6Q,GAAQA,EAAO,GAElC,GACD,CAAC2/I,EAAaguC,EAAMz0O,SACvB,OAAQ,kBAAoB,KAAa,CAAEi9C,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,uBACpC,kBAAoB,MAAO,CAAEA,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,8BACpC,kBAAoB,KAAM,KAAMujB,IACpC,kBAAoB,MAAO,CAAEvjB,UAAW,iCACpC,kBAAoB,IAAK,KAAM85C,KACvC,kBAAoB,KAAW,CAAE95C,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,6CAA+CsuO,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoB,OAAQ,CAAE3gC,IAAK,SAASooO,EAAKhrN,QAASvjB,WAAc8mC,GAASw5J,EAAc,gBAAkB,IAA5C,SACxL,kBAAoB,MAAO,CAAEtgM,UAAW,qCACpC,kBAAoB,KAAM,KAAMsuO,EAAMhuC,GAAa/8K,OACnD,kBAAoB,IAAK,CAAE46B,wBAAyB,CAAEC,OAAQkwL,EAAMhuC,GAAaxmJ,aACrF,kBAAoB,MAAO,CAAE95C,UAAW,uCACpC,kBAAoB,OAAQ,CAAEuc,QAASs+S,EAAqB,SAAWH,GAAe,CAAE1jR,KAAM,MAAOh7C,MAAO,GAAIC,OAAQ,MACxH,kBAAoB,OAAQ,CAAEsgB,QAASs+S,EAAqB,UAAYH,GAAe,CAAE1jR,KAAM,MAAOh7C,MAAO,GAAIC,OAAQ,OAC7H,kBAAoB,MAAO,CAAE+D,UAAW,qCACpC,kBAAoB,KAAK,CAAE4C,IAAK0rO,EAAMhuC,GAAar8I,cAAgB,ECjC1E62Q,GAAiB,kBAAoB,MAAO,CAAE5pS,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ,aAAc,eACzK,kBAAoB,IAAK,CAAEyX,SAAU,4BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,mDAAoDw7C,OAAQ,eAAgBJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UACzK,kBAAoB,OAAQ,CAAEt7C,EAAG,+MAAgNw7C,OAAQ,eAAgBJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,WACzU,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE9f,GAAI,sBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,aCN9D+jR,GAAmB,kBAAoB,MAAO,CAAE7pS,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ,aAAc,aAC3K,kBAAoB,IAAK,CAAEyX,SAAU,4BACjC,kBAAoB,OAAQ,CAAE5yD,EAAG,uBAAwBw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UACxI,kBAAoB,OAAQ,CAAEt7C,EAAG,6MAA8Mw7C,OAAQ,UAAWJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,WAClU,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE9f,GAAI,sBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,QAAS7T,UAAW,mCCNlF63R,GAA0B,kBAAoB,MAAO,CAAE9pS,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,OAAQ,aAAc,eAClL,kBAAoB,IAAK,CAAEyX,SAAU,4BACjC,kBAAoB,OAAQ,CAAEp3B,GAAI,qBAAsBp4B,MAAO,CAAEw+I,SAAU,aAAew9K,UAAW,iBAAkBl9T,EAAG,IAAKP,EAAG,IAAKxB,MAAO,KAAMC,OAAQ,MACxJ,kBAAoB,OAAQ,CAAEJ,EAAG,mBAAoBm7C,KAAM,WAC/D,kBAAoB,IAAK,CAAEknG,KAAM,4BAC7B,kBAAoB,OAAQ,CAAEriJ,EAAG,6IAA8Iw7C,OAAQ,eAAgBJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,UACnQ,kBAAoB,OAAQ,CAAEt7C,EAAG,+QAAgRw7C,OAAQ,eAAgBJ,YAAa,MAAOC,cAAe,QAASC,eAAgB,YAC7Y,kBAAoB,OAAQ,KACxB,kBAAoB,WAAY,CAAE9f,GAAI,sBAClC,kBAAoB,OAAQ,CAAEr7B,MAAO,KAAMC,OAAQ,KAAM+6C,KAAM,aCH9DkkR,GAAkB,EAAG33S,QAAO+qN,QAAOpiB,mBAC5C,MAAM,QAAEjsK,EAAO,UAAEoS,IAAc,SAAU65J,EAAap1K,iBAChDqkR,GAAW,IAAAr8T,cAAY,EAAGs8T,uBAAwB,kBAAoB,MAAO,CAAEp7T,UAAW,yEAC5F86T,GACA,kBAAoB,MAAO,CAAE96T,UAAW,2CAA6Co7T,KAAqB,IACxGC,GAAa,IAAAv8T,cAAY,EAAGs8T,uBAAwB,kBAAoB,MAAO,CAAEp7T,UAAW,yEAC9F+6T,GACA,kBAAoB,MAAO,CAAE/6T,UAAW,6CAA+Co7T,KAAqB,IAC1GE,GAAoB,IAAAx8T,cAAY,EAAGs8T,uBAAwB,kBAAoB,MAAO,CAAEp7T,UAAW,gFACrGg7T,GACA,kBAAoB,MAAO,CAAEh7T,UAAW,oDAAsDo7T,KAAqB,IACjH/+E,GAAa,IAAAv9O,cAAayvO,GAAU,kBAAoB,MAAO,CAAEvuO,UAAW,2BAC9EuuO,EAAKgtF,aACe,OAApBhtF,EAAKitF,YAAuBL,EAAS5sF,GACjB,SAApBA,EAAKitF,YAAyBH,EAAW9sF,GACrB,gBAApBA,EAAKitF,YAAgCF,EAAkB/sF,KAAS,CAAC4sF,EAAUE,EAAYC,IAC3F,OAAQ,kBAAoB,KAAa,CAAExkR,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,2BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEf,MAAO,CAAEqvD,MAAO+D,GAAaryD,UAAW,qBACjE,kBAAoB,KAAS,CAAEw3C,OAAQ00K,EAAaC,aAAe5oM,GACnE,kBAAoB,KAAM,MAC1B,kBAAoB,MAAO,CAAEvjB,UAAW,2BAA6BsuO,GAAO3iO,KAAK4iO,GAAU,kBAAoB,MAAO,CAAEpoO,IAAK,SAASooO,EAAKgtF,gBAAkBl/E,EAAW9N,UAAc,ECtB7LktF,GAAsB,EAAGntF,QAAO9wL,YAAWiB,aAAYD,cAAak9Q,cAAa5kR,kBAAiBy0K,qBAAoByuG,cAAavB,eAAckD,eAActsG,yBAA2B,kBAAoB,KAAa,CAAEv4K,gBAAiBA,GAAoC,WAC3R,kBAAoB,MAAO,CAAE92C,UAAW,+BACpC,kBAAoB,KAAW,CAAEA,UAAW,6CACxC,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,MAAO,CAAEx9C,UAAW,8CACpC,kBAAoB,GAAQ,CAAEgyM,QAAS,CAACkD,IAAaC,YAAY,EAAM7Z,cAAe,IAAKf,aAAc,EAAGgB,YAAa,CACjH,IAAO,CACHD,cAAe,EACff,aAAc,MAEjB+zC,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAU,kBAAoBm9K,GAAa,CAAE99M,IAAK,oBAAoB2gC,KAAW,kBAAoB2zQ,GAAgB,IAAKlsE,SAC5K,kBAAoB,MAAO,CAAEvuO,UAAW,gDACpCy+C,GAAc,kBAAoB,KAAU,CAAEjH,OAAQ,sBAAuBvB,KAAMwI,EAAY9G,aAAc4zK,GACzG,kBAAoB,IAAK,KAAM/sK,GAC/B,kBAAoB,KAAK,CAAE57C,IAAK84T,EAAa53Q,IAAKtF,KACtDw7Q,GAAe,kBAAoB,KAAU,CAAExiR,OAAQ,sBAAuBvB,KAAM+jR,EAAariR,aAAc03K,GAC3G,kBAAoB,IAAK,KAAMopG,GAC/B,kBAAoB,KAAK,CAAE71T,IAAK+4T,EAAc73Q,IAAK20Q,SCpB1DmD,GAAUtyT,IACnB,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBACpC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoBsnD,EAAA,EAAM,CAAErD,SAAU36C,EAAM26C,SAAUuD,gBAAiBl+C,EAAMk+C,gBAAiB1D,IAAKx6C,EAAMw6C,OAAS,ECJjH+3Q,GAAoB,EAAGzgP,YAAW39B,WAAUl6B,QAAOuzB,sBAC5D,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,4BACpC,kBAAoB,KAAW,CAAEA,UAAW,6CACxC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQ76B,GACTvjB,UAAW,qBAClB,kBAAoBswT,GAAc,CAAEl1O,UAAWA,EAAWp7E,UAAW,wCACrE,kBAAoB,IAAK,KAAMy9C,KAAa,ECP/Cq+Q,GAAuCxyT,IAChD,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBAG9BilR,GAFiG,QAAjFzyT,EAAMglO,MAAM,GAAGkpF,cAActyP,OAAO57D,EAAMglO,MAAM,GAAGkpF,cAAc39T,OAAS,GAAe,EAAI,IACZ,QAAjFyP,EAAMglO,MAAM,GAAGkpF,cAActyP,OAAO57D,EAAMglO,MAAM,GAAGkpF,cAAc39T,OAAS,GAAe,EAAI,IACxD,EAAI,OAAS,OAwBxE,OAAQ,kBAAoB,KAAa,CAAEi9C,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,+CACpC,kBAAoB,MAAO,CAAEA,UAAW,6DACpC,kBAAoB,KAAM,CAAEf,MAAO,CAAE8uN,eAAmClnN,IAAxByC,EAAMwkN,cAA8B,SAAWxkN,EAAMwkN,cAAchtL,gBAAmBx3B,EAAMia,OACnIja,EAAMwwC,UAnBqBxwC,EAAMwwC,UAAY,kBAAoB,IAAK,CAAE95C,eAAyC6G,IAA3ByC,EAAMqlN,kBAA6D,WAA3BrlN,EAAMqlN,iBAAgC,cAAgB,GAAM1vN,MAAO,CAAE8uN,eAAsClnN,IAA3ByC,EAAMqlN,iBAAiC,SAAWrlN,EAAMqlN,iBAAiB7tL,gBAAmBx3B,EAAMwwC,WAoB7T,kBAAoB,MAAO,CAAE95C,UAAW,+DAAwF,UAA1BsJ,EAAM0yT,gBAA8B,sBAAwB,qBAC9J,kBAAoB,MAAO,CAAEh8T,UAAW,6DApBhCsJ,EAAMglO,MAAMz0O,OAAS,GAAKyP,EAAMglO,MAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAWA,EAAQ,EAAK,kBAAoB,MAAO,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,yDAA0Df,MAAO,CAAE63C,gBAAiBxtC,EAAM+1P,uBAC3O,kBAAoB,MAAO,CAAEr/P,UAAW,+DAAgEf,MAAO,CAAE47L,aAAckhI,IAC3H,kBAAoBzL,GAAc,CAAEl1O,UAAWmzJ,EAAKipF,iBACxD,kBAAoB,MAAO,CAAEx3T,UAAW,+DACpC,kBAAoB,KAAM,KAAMuuO,EAAK6uB,WACrC,kBAAoB,IAAK,CAAEj/M,wBAAyB,CAAEC,OAAQmwL,EAAKgpF,kBAAuB,MACvE,kBAAoB,MAAO,CAAEv3T,UAAW,6DAA8Df,MAAO,CAAEg9T,cAAuC,WAAxB3yT,EAAM8hN,cAA6B,iBAAmB,SAAUjgL,QAAiC,WAAxB7hC,EAAM8hN,cAA6B,mBAAqB,oBAAqBt0K,gBAAiBxtC,EAAM+1P,uBAClU,kBAAoB,MAAO,CAAEr/P,UAAW,kEAAyF,WAAxBsJ,EAAM8hN,cAA6B,cAAgB,mBACxJ,kBAAoBklG,GAAc,CAAEl1O,UAAW9xE,EAAMglO,MAAM,GAAGkpF,iBAClE,kBAAoB,MAAO,CAAEx3T,UAAW,gEACpC,kBAAoB,KAAM,KAAMsJ,EAAMglO,MAAM,GAAG8uB,WAC/C,kBAAoB,IAAK,CAAEj/M,wBAAyB,CAAEC,OAAQ90C,EAAMglO,MAAM,GAAGipF,gBACtEjuT,EAAM4yT,YAtByB,kBAAoB,MAAO,CAAEl8T,UAAW,uDAClF,kBAAoB,OAAQ,CAAEA,UAAW,2DACrCm6T,GACA,IACA,kBAAoB,IAAK,KAAM,QACnC,kBAAoB,OAAQ,CAAEn6T,UAAW,2DACrCo6T,GACA,IACA,kBAAoB,IAAK,KAAM,iBAuBL,ECtCzB+B,GAAkB7yT,IAC3B,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBACpC,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,gBAAoB,MAAO,CAAEA,UAAW,sBAA8C,UAAzBsJ,EAAM8hN,cAA0C,cAAgB,eACzH,gBAAoB,MAAO,CAAEprN,UAAW,qCACpC,gBAAoB,KAAM,KAAMsJ,EAAMia,OACtC,gBAAoB,MAAO,CAAEvjB,UAAW,sCAAuCm+C,wBAAyB,CAChGC,OAAQ90C,EAAMitC,SAE1B,gBAAoB,MAAO,CAAEv2C,UAAW,sCACpC,gBAAoB,KAAK,CAAE4C,IAAK0G,EAAM26C,SAAUH,IAAKx6C,EAAMmoL,cAAgB,ECTzF2qI,GAAyB,EAAG74S,QAAO2gC,cAAao2Q,OAAMr2Q,WAAUwtI,WAAUH,UAASC,aAAe,kBAAoB,MAAO,CAAEvxL,UAAW,gCAC5I,kBAAoB,MAAO,CAAEA,UAAW,8CACpCsxL,GAAW,kBAAoB,aAAgB,KAC3C,kBAAoB,MAAO,CAAEtxL,UAAW,oCAAqC4C,IAAK0uL,EAASxtI,IAAKytI,IAChG,IACA,kBAAoB,MAAO,OAC/B,kBAAoB,KAAM,CAAEvxL,UAAW,SAAWujB,GAClD,kBAAoB,MAAO,CAAEvjB,UAAW,oBAAsBkkD,GACrD,KAATo2Q,GAAe,kBAAoB,MAAO,CAAEt6T,UAAW,0CAA4Cs6T,GAAMpvS,MAAM,KAAKvf,KAAI,CAAC+rL,EAAKj+L,IAAO,kBAAoB,OAAQ,CAAE0M,IAAK1M,EAAGuG,UAAW,+BAC1K,WAAR03L,EAAmB0iI,GAAa,GACxB,QAAR1iI,EAAgByiI,GAAU,GAC1BziI,OACRzzI,GAAY,kBAAoB,MAAO,CAAEjkD,UAAW,+BAAgC4C,IAAKqhD,EAAUH,IAAK2tI,KAC/F4qI,GAAqB,EAAG94S,QAAO+qN,QAAOG,aAAYviB,mBAC3D,MAAM,QAAEjsK,IAAY,EAAAmS,GAAA,GAAU85J,GAAcp1K,iBAC5C,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,6CACxC,kBAAoB,MAAO,CAAEA,UAAW,0BACpC,kBAAoB,MAAO,CAAEA,UAAW,sBACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ00K,GAAcC,aAAe5oM,IACxE,kBAAoB,MAAO,MAC3B,kBAAoB,MAAO,CAAEvjB,UAAW,sCAAwCsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAAM,kBAAoB2iU,GAAwB,CAAEj2T,IAAK1M,KAAM80O,OAChK,kBAAoB,MAAO,MAC3B,kBAAoB,IAAK,CAAEvuO,UAAW,kDAAoDyuO,KAAe,ECf5G,GAAyB,CAClC,CACI68C,SAAU,CAAC,SACX+B,uBAAwB,CACpB2hB,MAAO,CACHxhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BrP,kBAAmB,CAAE7iR,QAAS,CAAC,MAAO,QAAS,QAAS,UAAWkyR,eAAgB,qBACnFhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1BjL,yBAA0B,QAC1BK,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B4E,gBAAiB,QACjBzN,aAAc,WAElB4F,uBAAwB,CACpB6kB,OAAQ,CAAC,qBACTC,aAAc,CAAC,2BAA4B,gCAGnDX,QAAS,CACLzhB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B5K,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3B7I,aAAc,WAElBsD,qBAAsB,CAAC,iBAE3B0mB,OAAQ,CACJ1hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,cAC9BjP,mBAAoB,CAAEjjR,QAAS,CAAC,SAAU,UAAWkyR,eAAgB,sBACrEhP,cAAe,CAAEljR,QAAS,CAAC,SAAU,gBAAiBkyR,eAAgB,mBAE1ExB,uBAAwB,KAAM,CAC1B7K,2BAA4B,SAC5BC,sBAAuB,WAE3B6K,wBAAyB,KAAM,CAC3BjJ,kBAAmB,SACnBI,aAAc,WAElBsD,qBAAsB,CAAC,iBAE3B6mB,OAAQ,CACJ7hB,qBAAiB3mR,EACjBgnR,mBAAqB6hB,IAAgB,CACjCt6B,WAAY,CAAEka,eAAgB,gBAElCxB,uBAAwB,KAAM,CAC1B5K,sBAAuB,iBAE3B6K,wBAAyB,KAAM,CAC3B7I,aAAc,WAElBsD,qBAAsB,CAAC,kBAG/BkG,WAnFwB,CAC5BsgB,MAAO,QACPC,QAAS,UACTC,OAAQ,SACRC,OAAQ,SACRE,OAAQ,UA+EJphB,oBAAgBpnR,EAChBikR,uBAAwB,CACpB6kB,OAAQ,CAAC,qBACTC,aAAc,CAAC,oBAEnB7kB,mBAlF4B,CAChC,CACI7lR,KAAM,KACNqmR,aAAc,GACdD,SAAU,CAAC,aCRNgxC,GAAuBhzT,GAAU,gBAAoBosS,GAAmB,IAAKpsS,EAAOsjR,WAAY,KCFhG2vC,GAAiB,EAAG5lT,OAAMm3O,aAAe,kBAAoB,MAAO,CAAE9tP,UAAW,oBAC1F,kBAAoB,OAAQ,KAAM2W,GAClC,kBAAoB,IAAK,KAAMm3O,ICFtB0uE,GAAc,EAAG7lT,OAAMm3O,aAAe,kBAAoB,MAAO,CAAE9tP,UAAW,iBACvF,kBAAoB,OAAQ,KAAM2W,GAClC,kBAAoB,IAAK,KAAMm3O,ICFtB2uE,GAAY,EAAGx8T,eACxB,MACMy8T,GAAS,IAAArgU,aADIwK,IAEZ81T,EAAaC,IAAkB,IAAApiU,WAAS,GACzCqiU,GAAc,IAAAxgU,QAAO,CACvB+pM,OAAQ,EACRC,OAAQ,EACR5lK,WAAY,EACZrjB,UAAW,IAET0/S,GAA0B,IAAAh+T,cAAczF,IAC1C,IAAKqjU,EAAOjgU,QACR,OAEJ,MAAMsgU,EAASL,EAAOjgU,SAASwD,SAAS,GAClCmmM,EAAS/sM,EAAE4sM,MAAQ82H,EAAOz8R,WAC1B+lK,EAAShtM,EAAE8sM,MAAQ42H,EAAO1/S,UAC1BojB,EAAas8R,EAAOt8R,WACpBrjB,EAAY2/S,EAAO3/S,UACzBy/S,EAAYpgU,QAAU,CAAE2pM,SAAQC,SAAQ5lK,aAAYrjB,aACpDw/S,GAAe,GACfn7T,SAAS4gB,KAAKpjB,MAAMk5C,OAAS,UAChC,GAAG,IACE6kR,GAAwB,IAAAl+T,cAAY,KACtC89T,GAAe,GACVF,EAAOjgU,UAGZgF,SAAS4gB,KAAKpjB,MAAMk5C,OAAS,UAChC,GAAG,IACE8kR,GAAqB,IAAAn+T,cAAczF,IACrC,IAAKsjU,IAAgBD,EAAOjgU,QACxB,OAEJpD,EAAEomB,iBACF,MAAMs9S,EAASL,EAAOjgU,SAASwD,SAAS,GAClClC,EAAI1E,EAAE4sM,MAAQ82H,EAAOz8R,WACrB9iC,EAAInE,EAAE8sM,MAAQ42H,EAAO1/S,UACrB6/S,EAA2C,KAAlCn/T,EAAI8+T,EAAYpgU,QAAQ2pM,QACjC+2H,EAA2C,KAAlC3/T,EAAIq/T,EAAYpgU,QAAQ4pM,QACvC02H,EAAOt8R,WAAao8R,EAAYpgU,QAAQgkC,WAAay8R,EACrDH,EAAO3/S,UAAYy/S,EAAYpgU,QAAQ2gB,UAAY+/S,CACtD,GAAG,CAACR,IACL,OAAQ,kBAAoB,MAAO,CAAEx8T,IAAKu8T,EAAQU,YAAaN,EAAyBO,UAAWL,EAAuBM,YAAaL,GAAsBh9T,EAAU,ECtC9Js9T,GAAmB,EAAGh6S,QAAOi6S,mBACtC,MAAMC,GAAsB,IAAAnoR,UAAQ,IACXkoR,EAAa13T,QAAO,CAAC1J,EAAG3C,IAAOA,EAAI,GAAM,GAAK2C,KAEpE,CAACohU,IACEE,GAAyB,IAAApoR,UAAQ,IACfkoR,EAAa13T,QAAO,CAAC1J,EAAG3C,IAAOA,EAAI,GAAM,GAAK2C,KAEnE,CAACohU,IACJ,OAAQ,kBAAoB,KAAa,KACrC,kBAAoB,MAAO,CAAEx9T,UAAW,8BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoBk5S,GAAW,KAC3B,kBAAoB,MAAO,CAAEz8T,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,yDAA2Dy9T,EAAoB5jU,OAAS,GAAK4jU,EAAoB9xT,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEua,QAC9M,kBAAoB6lT,GAAa,IAAKpgU,QAC1C,kBAAoB,MAAO,CAAE4D,UAAW,4DAA8D09T,EAAuB7jU,OAAS,GAAK6jU,EAAuB/xT,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEua,QACvN,kBAAoB4lT,GAAgB,IAAKngU,WAAa,EClBjEuhU,GAAyBr0T,IAClC,MAAM,QAAE22C,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,iBACpC,OAAQ,kBAAoB,MAAO,CAAE92C,UAAW,2BAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,GAChD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,wDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaluC,EAAMia,QAC9D,kBAAoB,MAAO,CAAEvjB,UAAW,sDAAuDm+C,wBAAyB,CAAEC,OAAQ90C,EAAM+sL,QACxI,kBAAoB,MAAO,CAAEr2L,UAAW,sDACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMynL,SAAUjtI,IAAKx6C,EAAMmoL,aACnE,kBAAoB,MAAO,CAAEzxL,UAAW,0CAA4CsJ,EAAM4pL,YAAYvnL,KAAI,CAAC0lB,EAAI53B,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,8CAClK,kBAAoB,MAAO,CAAEA,UAAW,mDACpC,kBAAoB,KAAK,CAAE4C,IAAKyuB,EAAGg2L,QAASvjK,IAAKzyB,EAAGkgK,WACxD,kBAAoB,MAAO,CAAEvxL,UAAW,oDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAanmB,EAAG9N,QAC3D,kBAAoB,MAAO,CAAEvjB,UAAW,kDAAmDm+C,wBAAyB,CAAEC,OAAQ/sB,EAAG6yB,sBAAyB,ECrBrK05Q,GAAe,EAAGxgU,UAAS+gB,WAAU0/S,uBAC9C,MAAOl4D,EAAgBm4D,IAAqB,IAAAtjU,aACrCymT,EAAQ8c,IAAa,IAAAvjU,WAAS,GAM/BwjU,EAAsB9mF,GAAW,IALb,CAACA,IACvB4mF,EAAkB5mF,GAClB/4N,EAAS+4N,GACT6mF,GAAU,EAAM,EAEyBE,CAAkB/mF,GACzDgnF,GAAgB,IAAAp/T,cAAY,IAAMi/T,GAAW9c,IAAS,CAACA,IAC7D,OAAQ,kBAAoB,MAAO,CAAEjhT,UAAW,iBAC5C,kBAAoB,MAAO,CAAEA,UAAW,gBAAiBuc,QAAS2hT,GAAiBv4D,EAAiBA,EAAejiQ,MAAQm6T,GAC3H5c,GAAW,kBAAoB,MAAO,CAAEjhT,UAAW,eAAiB5C,EAAQuO,KAAKurO,GAAY,kBAAoB,MAAO,CAAE/wO,IAAK+wO,EAAO99O,MAAO4G,UAAW,gBAAiBuc,QAASyhT,EAAmB9mF,IAAWA,EAAOxzO,UAAY,ECP9Ny6T,GAA8B,EAAG7vF,QAAOx3L,kBAAkB,QAASvzB,QAAOwwK,YAAWC,iBAC9F,MAAM,QAAE/zI,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAkC,SAApB82C,EAA6B,2CAA6C,uCACjH,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,qDACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,GACtE,kBAAoB,MAAO,CAAEvjB,UAAW,iEAAmEsuO,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEmnB,QAASvjB,UAAW,gFAC9M,kBAAoB,KAAK,CAAE4C,IAAKxG,EAAE6nD,SAAUH,IAAK1nD,EAAEq1L,WACnD,kBAAoB,OAAQ,CAAEzxL,UAAW,uFACrC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBp7C,EAAEmnB,OAC/D,kBAAoB,IAAK,KAAMnnB,EAAE0xP,cACzC95D,GAAc,kBAAoB,MAAO,CAAEh0L,UAAW,uDAClD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,gBAAiBvB,KAAM89I,GAAaC,OAAiB,ECbxGoqI,GAA6B90T,IACtC,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBACpC,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,iCACpC,kBAAoB,MAAO,CAAEA,UAAW,iDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBluC,EAAMia,OACnE,kBAAoB,MAAO,CAAEvjB,UAAW,6CAA8Cm+C,wBAAyB,CACvGC,OAAQ90C,EAAM46C,eAEtB56C,EAAMk1C,aAAe,kBAAoB,MAAO,CAAEx+C,UAAW,mDACzD,kBAAoBu3C,GAAA,EAAU,CAAEC,OAAQ,mBAAoBvB,KAAM3sC,EAAMk1P,WAAal1P,EAAMk1C,eACnG,kBAAoB,MAAO,CAAEx+C,UAAW,kDACpC,kBAAoB,KAAK,CAAE4C,IAAK0G,EAAMynL,SAAUjtI,IAAKx6C,EAAMmoL,cAAgB,ECjBlF4sI,GAAW,EAAGC,UAASjjE,cAAgB,kBAAoB,MAAO,CAAEr7P,UAAW,kBACxF,kBAAoB0nN,GAAO,CAAE9kN,IAAK07T,EAASx6Q,IAAKu3M,IAChD,kBAAoB,IAAK,CAAEl9M,wBAAyB,CAC5CC,OAAQi9M,GAAY,OCEnBkjE,GAA0B,EAAG9oG,aAAYzhC,aAAYwqI,cAAav6Q,WAAUxG,WAAUl6B,QAAOuzB,sBACtG,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,mCACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWj0B,GAClD,kBAAoB,IAAK,CAAEvjB,UAAW,4CAA6Cm+C,wBAAyB,CACpGC,OAAQX,GAAY,OAEhC,kBAAoB,MAAO,CAAEz9C,UAAW,oDACpC,kBAAoB,MAAO,CAAEA,UAAW,kEACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAKG,KACrD,kBAAoB,MAAO,CAAEjkD,UAAW,sEAAwEw+T,EAAY3kU,OAAS,GAAK2kU,EAAY7yT,KAAK4iO,GAAU,kBAAoB8vF,GAAU,CAAEl4T,IAAK,SAASooO,EAAK8sB,WAAYijE,QAAS/vF,EAAK+vF,QAASjjE,SAAU9sB,EAAK8sB,eAC9Q,kBAAoB,MAAO,CAAEr7P,UAAW,mEACpC,kBAAoB,KAAU,CAAEw3C,OAAQ,gBAAiBvB,KAAMw/K,GAAczhC,MAAgB,ECjBpGyqI,GAAyB,EAAGhtI,WAAUxtI,WAAU1N,OAAMhzB,QAAOuzB,sBACtE,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,gBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,gBAAoB,MAAO,CAAEjgD,UAAW,mCACpC,gBAAoB,KAAW,CAAEA,UAAW,6CACxC,gBAAoB,MAAO,CAAEA,UAAW,oDACpC,gBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,EAAUH,IAAK2tI,KACrD,gBAAoB,MAAO,CAAEzxL,UAAW,mDACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,gBAAoB,IAAK,CAAEvjB,UAAW,4DAA6Dm+C,wBAAyB,CACpHC,OAAQ7H,GAAQ,SACX,ECRpBmoR,GAAsBp1T,IAC/B,MAAOmzQ,EAAUC,GAAe,YAAe,IACxCC,EAAeC,GAAoB,YAAe,IAClDjG,EAAakG,GAAkB,WAAe,CAAC,IAC/C7C,EAAc8C,GAAmB,WAAe,IAChDxuC,EAAOqK,GAAY,WAAe,KAClCxiM,EAAau/N,GAAkB,gBAAe7uQ,IAC9Ck2Q,EAAyBC,GAA8B,YAAe,IACtErH,EAAmBsH,GAAwB,YAAe,IAC1D9iO,EAAaoQ,GAAkB,WAAe,IAC9CxL,EAAW4/Q,GAAgB,YAAe,IAE1CjoF,EAAoBkoF,GAAyB,WAAe,GAC7D7+Q,EAAkB,cAAal5C,GAC/Bg4T,EAAY,cAAah4T,GACzBi4T,EAAsBx1T,EAAM+vQ,OAAOp0Q,MAAKa,GAAyC,aAA/BA,EAAOyd,MAAMud,iBAA+B2gB,OAAS,IACtGs9Q,EAAkBC,GAAiB,CACtCF,EAAoBnzT,KAAKvP,GAAMA,EAAEw7Q,gBACjCknD,EAAoBnzT,KAAKvP,GAAMA,EAAEo7Q,eAgB/B,iBAAEgC,GAd+B,MACnC,MAAMkE,EAAWpvC,EAAMz0O,OAAS,EAKhC,MAAO,CACH6jR,WACAlE,iBANqBtgR,OAAO+wD,OAAO0sN,GAAa7wQ,QAAOurB,GAAa,KAAPA,GAAoB,IAAPA,IAAUx3B,OAAS,EAO7F2jR,iBALqBT,GAA2C,KAAhB5mO,EAMhDonO,SAP6B,KAAhBpnO,EAQbsnO,qBANyBC,IAAaX,EAOzC,EAEwBY,GACvBC,EAA4B,eAAkB,IAAMt0Q,EAAM+vQ,OAAO9vP,QAAO,CAACgV,EAAKgB,KAChFhB,EAAIgB,EAAKhc,QAAS,EACXgb,IACR,CAAC,IAAI,CAACj1B,EAAM+vQ,UACRwE,EAAYC,GAAiB,YAAe,IAAMF,MAEnDnE,EAAW,eAAmBl6O,GAAUlmC,IAC1CA,EAAEomB,iBACF,MAAM8vP,EAAQjmQ,EAAM+vQ,OAAOp0Q,MAAKsqQ,GAASA,EAAMhsP,QAAUgc,IACzD,IAAKgwO,GAAwB,aAAfA,EAAMzhQ,WAA8C,IAAhByhQ,EAAM9tN,MACpD,OAEJ,MAAM2wE,EAAWm9I,EAAM9tN,MAAM91C,KAAKvP,GAAMA,EAAEw7Q,gBAGpCmG,EAFgBF,EAAWt+O,GAEuB,GADrC6yF,EACyBrwG,KAAK,KAC3Ci8P,EAAmCz+O,EAXiBk3O,WAAW,IAAK,IAY1EoG,GAAeoB,IAAkB,IAC1BA,EACH,CAACD,GAAUD,MAEfD,EAAc,IAAKD,EAAY,CAACt+O,IAAQs+O,EAAWt+O,IAAQ,GAC5D,CAACs+O,EAAYv0Q,EAAM+vQ,SAChB6E,EAA2B,eAAmB9kR,IAC5CA,EAAMkiB,SAAS,eAAiBliB,EAAMkiB,SAAS,aAAeliB,EAAMkiB,SAAS,eAC7E2hQ,GAAqB,GAGzBA,GAAqB,EAAM,GAC5B,IACGgiD,EAA6B,eAAmB9pF,IAClD,GAAI4pF,GAAoBA,EAAiBllU,OAAS,EAC9C,OAAOklU,EAAiB5kU,QAAQg7O,EAEpB,GACjB,CAAC4pF,IACEG,EAAqB,eAAmB9lU,IAC1C,GAAIA,GAASA,EAAMS,OAAS,EAAG,CAC3B,MAAMslU,EAAa/lU,EAAMuS,KAAKvP,GAAM6iU,EAA2B7iU,KAAI0J,QAAOurB,QAAoB,IAAPA,IAKvF,OAJwB2tS,EACnBrzT,KAAI,CAACvP,EAAG3C,IAAOulU,EAAcG,EAAW1lU,MACxCqM,QAAQ1J,QAAYyK,IAANzK,IACd2lB,OACkBmJ,MAAM,IACjC,CACgB,GACjB,CAAC8zS,EAAeC,IACbG,EAA2B,eAAmBp5G,IAChD,IAAIq5G,EAAqBH,EAAmBl5G,GAI5C,OAHIq5G,GAAoBxlU,SAAWmlU,EAAcnlU,SAC7CwlU,OAAqBx4T,GAElBw4T,CAAkB,GAC1B,CAACL,EAAcnlU,OAAQqlU,IAEpB/gD,EAAgB,eAAmBpuQ,IACrC4uT,GAAa,GACb,MAAM,WAAEW,EAAU,SAAEC,EAAQ,KAAEC,EAAI,aAAEjhD,GAAiBxuQ,EAgD/C0vT,EAAwBvmU,OAAOolC,QAPC,CAClC2nL,QAAS38M,EAAM28M,QACfu5G,MAzCI,SAAcA,GACPA,GAEP,SAAcrlR,GACPA,EAEJ,EAoCPokO,kBAjC4B,IAAjBA,EACAA,EAEJpoO,GAAe,GA+BtBmpR,gBA5B0B,IAAfA,EACAA,EAEN3oD,EAAwB,WAGtBA,EAAwB,YAAGzrP,MAAM,KAAKplB,QAAOhK,GAAKA,SAHzD,EA0BAyjU,SAZqB,MACrB,MAAMv5G,OATkB,IAAbu5G,EACAA,EAEN5oD,EAAsB,SAGpBA,EAAsB,UAAGzrP,MAAM,KAAKplB,QAAOhK,GAAKA,SAHvD,EAOA,OAAIkqN,EACOo5G,EAAyBp5G,GAE7BA,CAAQ,EAOL05G,KAE0Dn2S,QAAO,CAACo2S,EAAmBC,KAC/F,MAAOC,EAAUnjR,GAAckjR,EAC/B,OAAIljR,QACO,IACAijR,EACH,CAACE,GAAWnjR,GAGbijR,CAAiB,GACzB,CAAC,GA5DyB,IAACG,EAAiBC,EA6D3ClB,EAAUpiU,UA7DgBqjU,EA6DoBjB,EAAUpiU,QA7DbsjU,EA6DsBN,EA7DHnoF,GAAewoF,EAAiB,CAAC,WAAaxoF,GAAeyoF,EAAgB,CAAC,YA8D5IN,EAAsBD,KAAO,EAC7Bj1Q,EAAe,IAEnB,MAAMy1Q,EAAkB1oF,GAAemoF,GACvCZ,EAAUpiU,QAAUgjU,EAChB1/Q,EAAgBtjD,SAChBsjD,EAAgBtjD,QAAQ2jD,QAE5B,MAAM6/Q,EAAuBlgR,EAAgBtjD,QAAU,IAAI4jD,gBACrDnH,EAAiB,CACnBC,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3B/2B,KAAM29S,EACNv/Q,OAAQV,EAAgBtjD,QAAQgkD,QAEpCy9N,EAAyBhlO,EAAe72B,MACxCw+B,MAAM,oCAAoCv3C,EAAM+3C,QAASnI,GACpDz1C,MAAMm9C,GAAaA,EAASK,SAC5Bx9C,MAAM46Q,IACP1lC,EAAS0lC,EAAa6hD,UACtB31Q,EAAe8zN,EAAa/8N,YAC5Bs9Q,EAAsBvgD,EAAa3nC,mBAAmB,IAErDh1L,OAAMn5C,GAAO7D,QAAQ+S,KAAKlP,KAC1Bo5C,SAAQ,KACTg9Q,GAAa,GACbsB,EAAqB7/Q,OAAO,GAC9B,GACH,CAACjG,EAAaw8N,EAAayoD,EAA0BlhD,EAA0B50Q,EAAM28M,QAAS38M,EAAM+3C,MAAOlL,IACxGsiM,EAAyB,eAAmBj8L,IAC9C2hO,EAAc,CACVqhD,KAAMhjR,GACR,GACH,CAAC2hO,IACEG,EAAoB,eAAmBlJ,IACzC+I,EAAc,CAAEI,aAAcnJ,EAAYkqD,WAAY,KAAMC,SAAU,OACtE7pD,EAAeN,GACfyH,EAAe,CAAC,EAAE,GACnB,CAACsB,IClMmC,EAAChkO,EAAagmR,EAAeC,KACpE,MAAMhtF,GAAgB,IAAA/2O,SAAO,IAC7B,IAAA5B,YAAU,KACN,IAAK24O,EAAc32O,QACf,OAEJ,MAAMw7O,EAAkBD,KACxB,GAAIC,EAAiB,CACjB,MAAMooF,GAAkB,SAAiBpoF,GAWzC,OAVAkoF,EAAc,CACVb,WAAY,CAACe,GACbb,KAAMrlR,SAENimR,GACAA,GAAwBE,IAAgB,IACjCA,EACHhB,WAAY,GAAGe,SAI3B,CACA,MAAMhoF,EAAYX,KAClByoF,EAAc,CAAEX,KAAMnnF,GAAal+L,GAAc,GAClD,CAACA,EAAagmR,EAAeC,KAChC,IAAA3lU,YAAU,KACN24O,EAAc32O,SAAU,CAAK,GAC9B,GAAG,EDyKN8jU,CAA4BpmR,EAAagkO,EAAetB,GACxD3kC,GAA4B/9L,EAAaoQ,GAAgB,GACzD,aAAgB,KAKZyyN,EAJoB,KAAhB7mO,EAI4B,GACjC,CAACgoO,EAAehoO,IACnB,MAAMqoO,EAAc,eAAmB3iR,IACnCghR,EAAehhR,EAAE,GAClB,IACG4iR,EAAgB,eAAkB,KACpC,MAAMvkR,EAAIhB,OAAOmlC,YAAYnlC,OAAOolC,QAAQq4O,GAAa7wQ,QAAO,EAAE,CAAEhK,KAAa,KAANA,KAC3E5C,OAAOiM,KAAKjL,GAAGyR,KAAK0lB,IAChB,MAAMvjB,EAAOxE,EAAM+vQ,OAAOvzQ,QAAOpK,GAAKA,EAAE6nB,MAAMkzP,WAAW,IAAK,MAAQplP,IAAI,GAAGvjB,KAC7E,GAAc,UAATA,EACD5T,EAAEm3B,GAAc,EAARn3B,EAAEm3B,QAET,GAAa,kBAATvjB,EAA0B,CAC/B,MAAMwS,EAAYpmB,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAU,IAAImb,QAAQ,aAAc,IAC/EsJ,EAAUrmB,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAU,IAAImb,QAAQ,WAAY,IAC7EqJ,IACApmB,EAAQ,KAAIomB,GAEZC,IACArmB,EAAW,QAAIqmB,UAEZrmB,EAAEm3B,EACb,MAEIn3B,EAAEm3B,GAAMn3B,EAAEm3B,GAAInG,MAAM,KAAKplB,QAAQhK,GAAY,KAANA,IAAUgK,QAAQhK,GAAY,QAANA,IAC/D5C,OAAOiM,KAAKjL,GAAGyR,KAAI0lB,GAAQn3B,EAAEm3B,GAAIx3B,QAA6B,iBAAXK,EAAEm3B,GAAoCn3B,EAAEm3B,UAAVn3B,EAAEm3B,IACvF,IAEJ8sP,EAAc,IACPjkR,EACHqkR,aAAc,KAElB7I,EAAe,IACfsH,GAA2B,EAAK,GACjC,CAACmB,EAAexH,EAAartQ,EAAM+vQ,SAChCY,EAAe,eAAmB5gR,IACpCA,EAAEomB,iBACFq9P,EAAgC,IAAhB5hR,KAAK6yD,UACrB,MAAM2wN,EAAa,CAAC,EACpBxlR,OAAOiM,KAAKwxQ,GAAahrQ,KAAItS,GAAKqlR,EAAWrlR,GAAK,KAClDwjR,EAAe6B,GACfZ,EAAcF,KACdO,EAAc,CAAC,GACfnB,GAA2B,GAC3BtH,EAAe,IACfuH,GAAqB,EAAM,GAC5B,CAACtG,EAAaiH,EAA2BO,IACtCvpC,EAAuB,gBAAoBsgC,GAAe,CAAEG,uBAAwB/rQ,EAAM+rQ,uBAAwBF,iBAAkB7rQ,EAAM6rQ,iBAAkBG,WAAYhsQ,EAAMgsQ,WAAYxnQ,KAAM,SAAU0nQ,aAAcoH,EAAkB57H,QAAS27H,EAAepH,WAAYmH,EAAajiO,KAAMgiO,EAAUtmO,YAAaA,GAAe,GAAIu/N,eAAgB4I,EAAmBlJ,WAAY9rQ,EAAM8rQ,WAAYO,kBAAmBA,IAC/Z9gC,EAAiB,gBAAoBqkC,GAAS,CAAE1D,aAAcoH,EAAkBrD,OAAQkF,EAAe53O,MAAOmzO,EAAcV,SAAUW,EAAcZ,OAAQ/vQ,EAAM+vQ,OAAQjzO,KAAMuwO,EAAalhO,QAAS+oO,EAAarF,UAAW7vQ,EAAM6vQ,UAAWC,UAAW9vQ,EAAM8vQ,UAAWI,iBAAkBA,EAAkBqE,WAAYA,EAAYpE,SAAUA,IAUvV,OARA,aAAgB,KACZh4Q,SAAS4gB,KAAKI,UAAUowK,OAAO,uBAAwB8pF,EAAc,GACtE,CAACA,IACJ,aAAgB,IAAM,KACd58N,EAAgBtjD,SAChBsjD,EAAgBtjD,QAAQ2jD,OAC5B,GACD,IACK,gBAAoB,MAAO,CAAEpgD,UAAW,2BAC5C,gBAAoB,KAAa,CAAE82C,gBAAiB,QAAUiI,EAAY,gBAAoB,MAAO,CAAE/+C,UAAW,mBAC9G,gBAAoB2iD,GAAA,EAAgB,OAClC,gBAAoB,MAAO,CAAE3iD,UAAW,iBAAgB28Q,EAAgB,iBAAmB,KACzF,gBAAoB,MAAO,CAAE38Q,UAAW,oBAbxB,gBAAoBs2O,GAA4B,CAAEjgM,cAAe/sC,EAAM+sC,cAAekgM,eAAgBjtO,EAAMitO,eAAgBJ,2BAA4B7sO,EAAM6sO,4BAA8B,GAAIjwB,cAAe58M,EAAM48M,cAAeD,QAAS38M,EAAMk3T,cAAelyF,MAAOA,EAAO4F,WAAYuoC,EAAU7nC,qBAAsBA,EAAsBC,eAAgBA,EAAgB16L,YAAaA,EAAau8L,mBAAoBA,EAAoBD,SA3O/b,GA2OmdE,QAAS8B,MAc9c,EEvQtBgoF,GAAiB,EAAGl9S,QAAO2gC,cAAaw8Q,kBAAiB78Q,UAASlM,gBAAe,EAAMb,sBAChG,MAAO6pR,EAAmBC,GAAwB,WAAe18Q,IAC3D,QAAEjE,IAAY,EAAAmS,GAAA,GAAUtb,GAI9B,OAHA,aAAgB,KACZ8pR,EAAqB18Q,EAAY,GAClC,CAACA,IACI,gBAAoB,KAAa,CAAEpN,gBAAiBmJ,GACxD,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAEjgD,UAAW,oBACpC,gBAAoB,MAAO,CAAEA,UAAW,qCACpC,gBAAoB,KAAM,KAAMujB,IACpC,gBAAoB,MAAO,CAAEvjB,UAAW,0CAA2Cm+C,wBAAyB,CACpGC,OAAQuiR,KAEhB,gBAAoB,MAAO,CAAE3gU,UAAW,sCACpC,gBAAoBu3C,GAAA,EAAU,CAAEtB,KAAM4N,EAASrM,OAAQ,mBAAoBG,aAAcA,GACrF+oR,EACA,IACY,KAAZ78Q,GAAkB,gBAAoB,OAAQ,CAAE7jD,UAAW,cAAe,QAAgB,CAAC,QAAS,ECd/G6gU,GAAqBv3T,IAC9B,MAAM,QAAEm9C,IAAY,WACd2lN,EAAkB,CACpBC,OAAQ/iQ,EAAMgjQ,cAAc,GAC5Bw0D,SAAU,GACVptQ,MAAO,GACP84M,YAAa,GACbE,SAAU,IAERE,EAAyB,CAC3BP,QAAQ,EACRy0D,UAAU,EACVptQ,OAAO,EACP84M,aAAa,EACbK,YAAY,GAEVC,EACM,SADNA,EAEO,UAFPA,EAGK,QAHLA,EAIO,WAEP,QAAE7sN,IAAY,EAAAmS,GAAA,GAAU9oD,EAAMwtC,kBAC7Bi2N,EAAYC,GAAiB,cAC7BC,EAAiBC,GAAsB,WAAeN,IACtDO,EAAcC,GAAmB,WAAe,KAChDC,EAAgBC,GAAqB,WAAe,KACpDC,EAAcC,GAAmB,WAAeV,IAChDW,EAAmBC,GAAwB,YAAe,IAC1Dr5K,EAAUs5K,GAAe,WAAevB,GACzCvnN,EAAa,SAAa,MAC1B+oN,EAAa,SAAa,MAC1BC,EAAqB,eAAkB,KACzCT,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAAC7jQ,EAAM6jQ,gBACJ,OAAEd,EAAM,SAAEy0D,EAAQ,MAAEptQ,EAAK,YAAE84M,GAAgBn4K,EAC3C/gC,EAAewtQ,IAAc,4BAA4B/3T,KAAK+3T,IAAaA,EAASjnU,QAAU,KAAOinU,EAASjnU,OAAS,EACvH05D,EAAgBC,GAAU,wBAAwBzqD,KAAKyqD,IAAUA,EAAM35D,QAAU,GACjF45D,EAAgBC,GAAU,+CAA+C3qD,KAAK2qD,IAAUA,EAAM75D,QAAU,IACxGk0Q,EAAgB,eAAmB1B,GAAW/iQ,EAAMgjQ,cAAc,KAAOD,GAAQ,CAAC/iQ,EAAMgjQ,iBACvF0B,EAAaC,GAAkB,WAAe,cAC9C5sN,EAAO6sN,GAAY,aACpBC,EAAoB,eAAmB/0Q,GAAY60Q,EAAe70Q,IAAU,IAClF,aAAgB,KACZ,GAAI6zQ,EAAgBJ,WAAY,CAC5B,MAAMuB,EAAqB,IACpBnB,EACH6zD,UAAWxtQ,EAAY+gC,EAASysO,UAChCptQ,OAAQD,EAAa4gC,EAAS3gC,OAC9B84M,aAAcj5M,EAAa8gC,EAASm4K,aACpCH,QAAS0B,EAAc15K,EAASg4K,SAEpCa,EAAmBkB,EACvB,IACD,CAAC/5K,IACJ,MAAMg6K,EAAe,eAAmBh1Q,IACpC+zQ,EAAgB,IAChBE,EAAkB,IAClB,MAAM,KAAEpoQ,EAAI,MAAE9L,GAAUC,EAAEmG,OACtBiuQ,GACAE,GAAat5K,IAAa,IAAMA,EAAU,CAACnvF,GAAO9L,KACtD,GACD,CAACq0Q,IACEc,EAAY,eAAkB,KAChCrB,EAAmBN,GACnBpwQ,YAAW,KACPmxQ,EAAYvB,EAAgB,GAC7B,IACHgB,EAAgB,IAChBM,GAAqB,EAAK,GAC3B,IACGc,EAA2B,eAAmBC,IAChD,MAAMC,EAAkB,IAAI56K,SAC5B46K,EAAgB/7K,OAAO,mBAAoB87K,GAAoC,IAC/E,IAAK,MAAMtoQ,KAAOkuF,EACF,aAARluF,EACAuoQ,EAAgB/7K,OAAOxsF,EAAKkuF,EAASluF,IAGvBkuF,EAASluF,GACjB7G,SAAS4sE,IACXwiM,EAAgB/7K,OAAO,WAAYzmB,EAAK,IAKpD,OADA5iE,EAAMqlQ,YAAcD,EAAgB/7K,OAAO,aAAcrpF,EAAMqlQ,YACxDD,CAAe,GACvB,CAACr6K,IACEu6K,EAAgB,eAAkB,KACpC,MAAMR,EAAqB,IACpBnB,EACH6zD,UAAWxtQ,EAAY+gC,EAASysO,UAChCptQ,OAAQD,EAAa4gC,EAAS3gC,OAC9B84M,aAAcj5M,EAAa8gC,EAASm4K,aACpCH,QAAS0B,EAAc15K,EAASg4K,SAEpC,MAAO,CAAEwC,OAAS31Q,OAAO+wD,OAAO,IAAKmkN,EAAoBvB,YAAY,IAAShzP,MAAKzgB,IAAmB,IAAVA,IAAkBg1Q,qBAAoB,GACnI,CAACnB,EAAiB54K,EAASysO,SAAUzsO,EAAS3gC,MAAO2gC,EAASm4K,YAAan4K,EAASg4K,OAAQ0B,IACzFe,EAAmB,eAAkB,KACvCxB,EAAkBhkQ,EAAM+jQ,gBACxBG,EAAgBV,GAChByB,GAAW,GACZ,CAACzB,EAAsBxjQ,EAAM+jQ,eAAgBkB,IAC1CQ,EAAkB,eAAkB,KACtCrB,GAAqB,GACrBF,EAAgBV,GAChBM,EAAgB9jQ,EAAM6jQ,aAAa,GACpC,CAACL,EAAoBxjQ,EAAM6jQ,eACxB6B,EAAc,eAAkB1uN,UAClCktN,EAAgBV,GAChB,IAKqB,aAJDjsN,MAAM,aAAc,CAChC1H,OAAQ,OACR92B,KAAM0qP,KAEJjoQ,OACFgqQ,IAGAC,GAER,CACA,MACIA,GACJ,IACD,CAACjC,EAAsBC,EAAYgC,EAAiBD,IACjDG,EAAwB,eAAkB,IAAOrB,EAAWnxQ,SAASyvQ,WAAY,IACjFgD,EAAgB,eAAkB5uN,MAAOjnD,IAC3CA,EAAEomB,iBACFiuP,GAAqB,GACrBJ,EAAkB,IAClB,MAAM,MAAEuB,EAAK,mBAAET,GAAuBQ,IACtC,IAAKC,EAID,OAHAT,EAAmBvB,YAAa,EAChCK,EAAmBkB,QACnBV,GAAqB,GAGzB,MAAMyB,EAAgBF,IAChBP,EAAkBF,EAAyBW,GAAiB,IAClEhB,EAAkB,UAClBnB,EAAc0B,EACR,GACP,CAACF,EAA0BI,EAAeK,EAAuBd,IAC9DiB,EAAsB,eAAkB,KAC1C5B,EAAgBV,GAChBoB,OAASrnQ,GACTsnQ,EAAkB,YAAY,GAC/B,CAACrB,EAAqBqB,IACnBkB,EAAe,eAAkB,WACnC,OAAO,gBAAoB,OAAQ,CAAErvQ,UAAW,+BAAiC,IACrF,GAAG,IACGsvQ,EAAgB,eAAkB,UAAuB,MAAEC,IAC7D,OAAQtC,EAAgBsC,IAAU,gBAAoB,OAAQ,CAAEvvQ,UAAW,gCAAkCsJ,EAAMkmQ,kBACvH,GAAG,CAACvC,IACEwC,EAAY,eAAkB,IAAM,gBAAoB7qD,GAAQ,CAAElhN,MAAO4F,EAAMomQ,YAAa7qD,SAAS,EAAMtoM,QAAS2yP,EAAez3N,QAAS,IAAIg2N,GAAqB,+BAAgC,CAACnkQ,EAAMomQ,YAAaR,EAAezB,IAC9O,aAAgB,KACZ,SAASvyO,EAAmBF,GACpB6pB,EAAWpoD,UAAYooD,EAAWpoD,QAAQ+lB,SAASwY,EAAMx7B,UACpD+tQ,IAAiBT,GAAwBS,IAAiBT,GAC3DsC,IAGZ,CAEA,OADA3tQ,SAAS5G,iBAAiB,YAAaqgC,GAChC,KACHz5B,SAAS1G,oBAAoB,YAAamgC,EAAmB,CAChE,GACF,CAAC2pB,EAAY0oN,IAChB,aAAgB,KACRlsN,QAAwBx6C,IAAfkmQ,IACJiC,IACLd,OAASrnQ,GACTmmQ,OAAcnmQ,GAClB,GACD,CAACkmQ,EAAYiC,EAAa3tN,IAC7B,MAAMsuN,GAAiB,eAAkB,IAAO,gBAAoB,WAAgB,KAChF,IACApC,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMsmQ,8BAClFrC,IAAiBT,GAAsB,gBAAoB,WAAgB,KACvE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAM6jQ,eAClFI,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoB,OAAQ,CAAE9sQ,UAAW,6BAA+BsJ,EAAMumQ,oCAAqC,CAACtC,IACtHuC,GAAU,eAAkB,IAAO,gBAAoB,WAAgB,KAAMvC,IAAiBT,GAChG,gBAAoB,MAAO,CAAE9sQ,UAAW,iCACpC,gBAAoB,MAAO,CAAEG,IAAK0kD,EAAY7kD,UAAW,+BACrD,gBAAoB,MAAO,CAAEA,UAAW,6CACpC,gBAAoB2vQ,GAAgB,OACxC,gBAAoB,OAAQ,CAAE3vQ,UAAW,mCAAqCutQ,IAAiBT,GAAwB,gBAAoB,WAAgB,KACvJ,gBAAoBnqN,GAAA,EAAgB,QACxC4qN,IAAiBT,GAAwB,gBAAoB,WAAgB,KACzE,gBAAoBloD,GAAQ,CAAElhN,MAAO4F,EAAMymQ,mBAAoBlrD,SAAS,EAAMtoM,QAAS6yP,SAA6B,CAACO,GAAgB7C,EAAqBA,EAAsBsC,EAAqB7B,EAAcjkQ,EAAMymQ,qBAEzO,OAAQ,gBAAoB,KAAa,CAAEj5N,gBAAiBmJ,GACxD,gBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,gBAAoB,MAAO,CAAEA,UAAW,uBACpC,gBAAoB,MAAO,CAAEA,UAAW,qCACpC,gBAAoB,KAAM,CAAEA,UAAW,4CAA8CsJ,EAAMia,OAC3F,gBAAoB,MAAO,CAAEvjB,UAAW,8CAA+Cm+C,wBAAyB,CACxGC,OAAQ90C,EAAMm0C,YAEtBgJ,GAAW,gBAAoB,MAAO,CAAEzmD,UAAW,4CAC/C,gBAAoB0nN,GAAO,CAAEG,SAAUv+M,EAAMklO,gBAAiB1qL,IAAKx6C,EAAMmoL,aACjF,gBAAoB,MAAO,CAAEzxL,UAAW,qCACpC,gBAAoB8vQ,GAAS,MAC7B,gBAAoB,MAAO,CAAE9vQ,UAAW,+EACpC,gBAAoB,QAAS,CAAE8sO,QAAS,WAAY9sO,UAAW,mEAC3DsJ,EAAMy3T,UACN,gBAAoB1xD,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,cAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAO0nU,EAAUhzT,KAAM,OAAQ5I,KAAM,WAAYmyB,GAAI,WAAY9L,YAAajiB,EAAM03T,mBAC/I,gBAAoB,MAAO,CAAEhhU,UAAW,2EACpC,gBAAoB,QAAS,CAAE8sO,QAAS,QAAS9sO,UAAW,mEACxDsJ,EAAMq0C,WACN,gBAAoB0xN,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,WAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOs6D,EAAO5lD,KAAM,QAAS5I,KAAM,QAASmyB,GAAI,QAAS9L,YAAajiB,EAAM6mQ,oBACvI,gBAAoB,MAAO,CAAEnwQ,UAAW,iFACpC,gBAAoB,QAAS,CAAE8sO,QAAS,cAAe9sO,UAAW,mEAC9DsJ,EAAM8mQ,WACN,gBAAoBf,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,iBAChD,gBAAoB,QAAS,CAAE/yP,SAAU6xP,EAAcj1Q,MAAOozQ,EAAa1+P,KAAM,OAAQ5I,KAAM,cAAemyB,GAAI,cAAe9L,YAAajiB,EAAM+mQ,oBACxJ,gBAAoB,MAAO,CAAErwQ,UAAW,4EACpC,gBAAoB,QAAS,CAAE8sO,QAAS,SAAU9sO,UAAW,mEACzDsJ,EAAM0mQ,YACN,gBAAoBX,EAAc,MAClC,gBAAoBC,EAAe,CAAEC,MAAO,YAChD,gBAAoB,SAAU,CAAE/yP,SAAU6xP,EAAcnpQ,KAAM,SAAUmyB,GAAI,SAAUj+B,MAAOizQ,GAAU/iQ,EAAMgjQ,cAAc3gQ,KAAI,CAACurO,EAAQz9O,IAAO,gBAAoB,SAAU,CAAE0M,IAAK,iBAAiB1M,IAAKL,MAAO89O,EAAQnlN,SAAgB,IAANt4B,GAAWy9O,OAClP,gBAAoB,MAAO,CAAEl3O,UAAW,qCACpC,gBAAoB,GAAU,CAAE2wQ,QAASrnQ,EAAMsnQ,YAAa7nN,QAAS8kN,EAAoB1tQ,IAAKytQ,EAAYv5M,KAAM25M,EAAahD,iBAAkB1hQ,EAAMunQ,qBAAsBrF,SAtChKnqN,GAAW6sN,EAAS7sN,MAuCnC8rN,GAAgB,gBAAoB,MAAO,CAAEntQ,UAAW,qCAAuCmtQ,GAC/FE,GAAkB,gBAAoB,MAAO,CAAErtQ,UAAW,uCAAyCqtQ,GACnG,gBAAoB,MAAO,CAAErtQ,UAAW,+BACpC,gBAAoByvQ,EAAW,UAAW,ECnPrDwxD,GAAa,EAAG19S,QAAOsyB,aAAe,kBAAoB,MAAO,CAAE71C,UAAW,oBACvFujB,GAAS,kBAAoB,IAAK,CAAEvjB,UAAW,mCAAqCujB,GACpF,kBAAoB,MAAO,CAAEvjB,UAAW,gCAAiCm+C,wBAAyB,CAC1FC,OAAQvI,MCDPqrR,GAAU,EAAGz/Q,WAAa,kBAAoB,MAAO,CAAEzhD,UAAW,gBAAkByhD,EAAM5nD,OAAS,GAAK4nD,EAAM91C,KAAI,CAACvP,EAAGi3H,IAAS,kBAAoB,MAAO,CAAEltH,IAAKktH,GAC1K,kBAAoB4tM,GAAY,CAAEprR,QAASz5C,EAAEy5C,QAAStyB,MAAOnnB,EAAEmnB,QAC/D8vG,IAAQ5xE,EAAM5nD,OAAS,GAAK,kBAAoB,MAAO,CAAEmG,UAAW,uBAAwB,eCCnFmhU,GAA2B,EAAG3jR,YAAWC,WAAU2jR,WAAUC,UAASlmE,kBAAiBhsC,mBAAkBmyG,iBAAgBC,2BAA0BjyG,oBAAmBkyG,kBAAiBC,4BAA2BC,mBAAkBC,uBAAsBC,mBAAkBC,qBACrR,MAAM,QAAE5hR,IAAY,SAAUk7M,GAM9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,oCACpC,kBAAoB,KAAW,CAAEA,UAAW,+BAA+B0hU,GAAoB,oBAAoBC,GAAwB,qBACvI,kBAAoB,MAAO,CAAE3hU,UAAW,kDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBgG,GACvD,kBAAoB,IAAK,CAAEx9C,UAAW,aAAey9C,IACzD,kBAAoB,MAAO,CAAEz9C,UAAW,qDAAuDohU,GAAYA,GAAUvnU,OAAS,GAAKunU,GAAUz1T,KAAI,CAACvP,EAAG3C,IAAO,kBAAoB,MAAO,CAAE0M,IAAK,SAAS/J,EAAE0lU,UAAW9hU,UAAW,uEAC3N,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,sBAAwBp7C,EAAEmnB,OACjEnnB,EAAE0lU,QAAQjoU,OAAS,GAAKuC,EAAE0lU,QAAQn2T,KAAI,CAACo2T,EAAaj7R,IAAW,kBAAoB,MAAO,CAAE3gC,IAAK,SAAS2gC,IAAS9mC,UAAW,2FAC1H,kBAAoB,MAAO,CAAEA,UAAW,0GACpC,kBAAoB,IAAK,CAAEA,UAAW,gIAAkI8mC,EAAQ,GAChL,kBAAoBo6R,GAAS,CAAEz/Q,MAAOsgR,EAAYtgR,SACrD3a,EAAQ1qC,EAAE0lU,QAAQjoU,OAAS,GAAKwnU,GAAY,kBAAoB,IAAK,CAAErhU,UAAW,wBAA0BqhU,EAAQ7rR,sBAjBnG,kBAAoB,MAAO,CAAEx1C,UAAW,mDAC1E,kBAAoB,KAAU,CAAEi2C,KAAMqrR,EAAgB3pR,aAAc4pR,EAA0B/pR,OAAQ,iBAAmB23K,GACxHG,GAAqBkyG,GAAoB,kBAAoB,KAAU,CAAEvrR,KAAMurR,EAAiB7pR,aAAc4pR,EAA0B/pR,OAAQ,iBAAmB83K,GACnK+xG,IAAYM,GAAyB,kBAAoB,IAAK,KAAMN,GACrE,kBAAoB,KAAU,CAAEprR,KAAM4rR,EAAgBlqR,aAAc4pR,EAA0B/pR,OAAQ,mBAAqBoqR,MAcvF,ECrB/BI,GAAmB,EAAGC,YAAWC,aAAY1kR,YAAW1D,WAAU0E,cAAau1I,YAAWkzC,gBAAek7F,gBAAen7F,oBAAsB,kBAAoB,KAAa,KACxL,kBAAoB,MAAO,CAAEhnO,UAAW,wBACpC,kBAAoB,KAAW,KAC3B,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWgG,GAClD,kBAAoB,MAAO,CAAEx9C,UAAW,8BACpC,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,MAAO,CAAEA,UAAW,yBACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKq/T,KACtC,kBAAoB,MAAO,CAAEjiU,UAAW,0BACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKs/T,KACtC,kBAAoB,IAAK,CAAEliU,UAAW,iCAAmC85C,GACzE,kBAAoB,KAAU,CAAErC,QAAS,+BAAgCD,OAAQ,sBAAuBvB,KAAM89I,GAAav1I,IAC/H,kBAAoB,MAAO,CAAEx+C,UAAW,uCACpC,kBAAoB0nN,GAAO,CAAEI,cAAc,EAAMD,SAAUmf,EAAgBrf,SAAUsf,EAAerf,UAAWu6G,SCbtHC,GAA0B,EAAG5jR,cAAau1I,YAAWsuI,WAAU7kR,YAAW8kR,YAAW7kR,WAAUwpL,gBAAeD,oBAAsB,kBAAoB,KAAa,KAC9K,kBAAoB,MAAO,CAAEhnO,UAAW,4BACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,SAAWgG,GAClD,kBAAoB,MAAO,CAAEx9C,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,iBACpC,kBAAoB,MAAO,CAAEA,UAAW,wBACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKy/T,KACtC,kBAAoB,MAAO,CAAEriU,UAAW,yBACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAK0/T,MAC1C,kBAAoB,IAAK,CAAEtiU,UAAW,sCAAwCy9C,GAC9E,kBAAoB,KAAU,CAAEhG,QAAS,mCAAoCD,OAAQ,sBAAuBvB,KAAM89I,GAAav1I,GAC/H,kBAAoB,MAAO,CAAEx+C,UAAW,4CACpC,kBAAoB0nN,GAAO,CAAEC,SAAUsf,EAAerf,UAAWof,EAAgBnf,SAAUmf,EAAgBlf,cAAc,SCfvIy6G,GAAsB,EAAGlrS,KAAI0tO,WAAU/zO,OAAMg0O,SAAQH,kBAAiBC,eAAc09D,WAAU,MAChG,MAAM5vF,GAAe,IAAA9zO,cAAY,KACzB+lQ,GAAmBxtO,IAAOytO,EAC1BD,GAAiB,GAEZA,QAA0Bh+P,IAAPwwB,GACxBwtO,EAAgBxtO,EACpB,GACD,CAACytO,EAAcztO,EAAIwtO,KACf8M,EAAaC,IAAkB,IAAAp3Q,UAAS,KAC/C,IAAAC,YAAU,KACNm3Q,EAAe5M,EAAO,GACvB,CAACA,IACJ,MAAMy9D,GAAgB,IAAA3jU,cAAY,IAAM,kBAAoB,MAAO,KAAO0jU,GAAW,CAC7E/tI,SAAU,QACVz0L,UAAW,sCAAuCm+C,wBAAyB,CAAEC,OAAQuzN,MAAkB,CAACA,EAAa6wD,IAC7H,OAAQ,kBAAoB,MAAO,CAAExiU,UAAW,iCAAgCq3B,IAAOytO,EAAe,SAAW,QAAW09D,GAAW,CAC/HjuI,WAAW,EACXE,SAAU,aACVD,SAAU,gCAEd,kBAAoB,MAAO,CAAEx0L,UAAW,wCAAyCuc,QAASq2N,GACtF,kBAAoB,MAAO,CAAE5yO,UAAW,4CACpC,kBAAoB,KAAM,KAAOwiU,GAAW,CACpC/tI,SAAU,QACVz0L,UAAW,6BACfgxB,GAAQ,kBAAoB02L,GAAO,CAAE1rN,MAAO,GAAIC,OAAQ,GAAI2G,IAAKouB,EAAM8yB,IAAKihN,IAC5EA,GACJ,kBAAoB,OAAQ,CAAE/kQ,UAAW,mCAAoC,QAAgB,CAAC,MACtG,kBAAoB,MAAO,CAAEA,UAAW,4CACpC,kBAAoB,MAAO,KAAOwiU,GAAW,CACrCjuI,WAAW,EACXE,SAAU,iBACVD,SAAU,8BACRiuI,MAAmB,EAE5BC,GAAmB,EAAGn/S,QAAOk6B,WAAUgE,QAAO+gR,WAAU,MACjE,MAAO19D,EAAcD,GAAmB,cAAgB,GAClDsN,GAAY,IAAA78N,UAAQ,IAAO,kBAAoB,MAAO,CAAEt1C,UAAW,4BAA8ByhD,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoB8oU,GAAqB,CAAEp8T,IAAK,4BAA4B1M,IAAK49B,GAAI59B,EAAGsrQ,SAAUxlO,EAAKwlO,SAAUC,OAAQzlO,EAAKylO,OAAQh0O,KAAMuO,EAAKvO,KAAM6zO,gBAAiBA,EAAiBC,aAAcA,EAAc09D,QAASA,QAAe,CAAC/gR,EAAOojN,EAAiBC,EAAc09D,IAClZ,OAAQ,kBAAoB,MAAO,CAAExiU,UAAW,sBAC5C,kBAAoB,MAAO,KAAOwiU,GAAW,CACrCjuI,WAAW,EACXC,SAAU,8BACVx0L,UAAW,8BACf,kBAAoB,KAAM,CAAEA,UAAW,6BAA+BujB,GACtEk6B,GAAY,kBAAoB,MAAO,CAAEz9C,UAAW,8BAA+Bm+C,wBAAyB,CAAEC,OAAQX,KACtH00N,GAAY,EC7CXwwD,GAAoB,EAAGp/S,QAAOk6B,WAAU3G,kBAAiB8rR,OAAMJ,WAAU,MAClF,MAAOK,EAAWC,IAAgB,IAAAtoU,UAAS,IACrC,QAAEksD,IAAY,YACbq8Q,EAAWC,IAAgB,IAAAxoU,WAAS,GAO3C,OANA,IAAAC,YAAU,KACNuoU,EAAat8Q,EAAQ,GACtB,CAACA,IAII,kBAAoB,KAAa,CAAE5P,gBAAiBA,GAAoC,SAC5F,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,+BACpC,kBAAoB,KAAM,KAAMujB,GAChCk6B,GAAY,kBAAoB,KAAM,CAAEz9C,UAAW,uCAAwCm+C,wBAAyB,CAAEC,OAAQX,MAClI,kBAAoB,MAAO,CAAEz9C,UAAW,uBAA0B+iU,EAG4BH,EAAKj3T,KAAI,CAACs3T,EAAKxpU,IAAM,kBAAoBipU,GAAkB,CAAEv8T,IAAK1M,KAAMwpU,EAAKT,QAASA,MAHrG,kBAAoB,aAAgB,KAC/G,kBAAoB,KAAM,CAAExiU,UAAW,gCAAkC4iU,EAAKj3T,KAAI,CAACs3T,EAAKxpU,KAAM,OAAC,kBAAoB,KAAM,CAAEuG,UAAW,sCAAqCvG,IAAMopU,EAAY,sBAAwB,IAAM18T,IAAK,4BAA4B1M,IAAK8iB,SATrPuqB,EAS6QrtC,EATnQ,KAC9BqpU,EAAah8R,EAAM,IAQoRm8R,EAAI1/S,OATxR,IAACujB,CAS8R,KAC1S,kBAAoB,MAAO,CAAE9mC,UAAW,gCACpC,kBAAoB0iU,GAAkB,IAAKE,EAAKC,GAAYL,QAASA,QAAuH,ECnBnMU,GAAY,EAAGz6Q,SAAQhL,WAAUl6B,QAAOq5R,iBAAgBumB,mBAAkB1xI,cAAgB,kBAAoB,MAAO,CAAEzxL,UAAW,kBAAmBf,MAAO,CAAE63C,gBAAiB8lQ,GAAkB,OAAQwmB,YAAaxmB,GAAkB,SACjP,kBAAoBl1F,GAAO,CAAE9kN,IAAK6lD,EAAQ3E,IAAK2tI,IAC/C,kBAAoBvzI,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,YAAam+C,wBAAyB,CACtEC,OAAQX,GAAY,IACrBx+C,MAAO,CAAE,uBAAwB,GAAGkkU,QCDlCE,GAAkC,EAAG9/S,QAAOk6B,WAAUwG,WAAUqqL,QAAOx3L,kBAAiBwsR,aAAYvvI,YAAWw1B,qBAAoB6C,eAAc5tK,cAAa2tK,cAAc,iBACrL,MAAM,QAAElsK,IAAY,SAAUnJ,GACxBysR,GAA0B,IAAAzkU,cAAY,IACpCykB,GAASk6B,EACD,kBAAoB,MAAO,CAAEz9C,UAAW,qDAC5C,kBAAoB,MAAO,CAAEA,UAAW,oDACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ20K,GAAe5oM,GAC/Dk6B,GAAY,kBAAoBS,GAAA,EAAS,CAAE1G,OAAQ,gBAAkBiG,IACzEwG,GAAY,kBAAoB,MAAO,CAAEjkD,UAAW,kDAChD,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,MAEvC,kBAAoB,aAAgB,OAC5C,CAACA,EAAUxG,EAAUl6B,EAAO4oM,IAC/B,OAAQ,kBAAoB,KAAa,CAAEr1K,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,4CACpC,kBAAoB,KAAW,CAAEA,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,IAAIsjU,GAAc,wBAA0BC,KACpF,kBAAoB,MAAO,CAAEvjU,UAAW,oDAAoDsjU,KAAgBh1F,EAAMz0O,OAAS,GAAKy0O,EAAM3iO,KAAKvP,GAAO,kBAAoB8mU,GAAW,CAAE/8T,IAAK,SAAS/J,EAAEmnB,WAAYnnB,OAC/MoiD,GAAe,kBAAoB,KAAU,CAAEvI,KAAM89I,EAAWp8I,aAAc4xK,EAAoB/xK,OAAQ40K,EAAcv0K,gBAAgB,GAAQ2G,KAAgB,ECnBnKglR,GAAoB,EAAGC,cAAalgT,QAAOk6B,WAAUimR,SAAQC,WAAUC,gBAAe9sR,kBAAiBs1K,eAAcy3G,uBAC9H,MAAM,QAAE5jR,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,kCAAmCf,MAAO,CAAE,yBAA0B,OAAO2kU,QACrH,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE5jU,UAAW,yCAAyC6jU,KAC7E,kBAAoBn8G,GAAO,CAAE9kN,IAAK6gU,KACtClgT,GAAS,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GAChEk6B,GAAY,kBAAoB,IAAK,CAAEz9C,UAAW,0CAA2Cm+C,wBAAyB,CAAEC,OAAQX,KAChIimR,GAAU,kBAAoB,KAAU,CAAElsR,OAAQ40K,EAAcn2K,KAAMytR,GAAUC,KAAa,ECXhGG,GAAgB,EAAGvgT,QAAOu2B,WAAUmK,WAAUy/Q,SAAQC,WAAU9/Q,UAASwlK,YAAW8xC,kBAAiB/uC,eAAe,gBAAiB4yC,2BAC9I,MAAM,QAAE/+M,EAAO,UAAEoS,IAAc,SAAU8oM,GACzC,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,MAAO,CAAEjgD,UAAW,yBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,iCACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,KACtC,kBAAoB,KAAM,CAAEjkD,UAAW,aAAcm+C,wBAAyB,CACtEC,OAAQ76B,GACTtkB,MAAO,CAAEqvD,MAAO+D,KACvB,kBAAoB,IAAK,CAAEryD,UAAW,4BAA6Bf,MAAO,CAAEqvD,MAAO,GAAG0wM,GAAwB,MAAQ7gN,wBAAyB,CACvIC,OAAQtE,GAAY,MAE5B4pR,GAAU,kBAAoB,KAAU,CAAElsR,OAAQ40K,EAAcn2K,KAAMytR,GAAUC,GAC/Et6G,GAAaxlK,GAAY,kBAAoB,IAAK,CAAE7jD,UAAW,SAAUi2C,KAAM4N,GAAWwlK,KAAc,ECdnH06G,GAA2B,CAC7BC,MAAO,2BACPC,YAAa,2BACbC,mBAAoB,oCAEXC,GAAwB,EAAG1lR,aAAYD,cAAawF,gBAAeqhK,WAAUgE,YAAW+6G,oBAAmB3mR,WAAUl6B,QAAOuzB,kBAAiButR,wBACtJ,MAAMC,EAAkBD,GAAqB,QACvC/7G,GAAiB,SAAiB87G,GACxC,OAAQ,kBAAoB,KAAa,CAAEttR,gBAAiBA,GAAmB,WAC3E,kBAAoB,MAAO,CAAE92C,UAAW,uEAAuEskU,KAC3G,kBAAoB,KAAW,CAAEtkU,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,iDACpC,kBAAoB,MAAO,CAAEA,UAAW,8DACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,gBACnC,kBAAoB,OAAQ,CAAE2G,wBAAyB,CAC/CC,OAAQ76B,MAEpB,kBAAoB,MAAO,CAAEvjB,UAAW,0DAA2Dm+C,wBAAyB,CACpHC,OAAQX,MAEpB,kBAAoB,MAAO,CAAEz9C,UAAW,iEACpC,kBAAoB,KAAU,CAAEi2C,KAAMwI,EAAYjH,OAAQusR,GAAyBO,GAAkB3sR,aAAcqM,GAAiBxF,GACpI6qK,GAAa,kBAAoB,IAAK,CAAErpN,UAAW,sDAAuDi2C,KAAMovK,EAAU7lN,OAAQ8oN,GAAkBe,OAAgB,EC1B/Kk7G,GAAc,EAAGhhT,QAAOtjB,WAAUD,YAAW6jD,aAClDA,EACO,kBAAoB,IAAK,CAAE5N,KAAM4N,EAAS7jD,UAAW,uBAAuBA,IAAaR,OAAQ,SAAUy1I,IAAK,cACnH,kBAAoBuvL,GAAiB,CAAEjhT,MAAOA,GAAStjB,IAExD,kBAAoB,MAAO,CAAED,UAAWA,GAC3C,kBAAoBwkU,GAAiB,CAAEjhT,MAAOA,GAAStjB,IAElDukU,GAAkB,EAAGjhT,QAAOtjB,cAAe,kBAAoB,aAAgB,KACxF,kBAAoB,MAAO,KAAMsjB,GACjC,kBAAoB,MAAO,KAAMtjB,ICX9B,IAAIwkU,GAsBAC,IArBX,SAAWD,GACPA,EAAcA,EAA0B,WAAI,GAAK,aACjDA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,IAAM,WAChDA,EAAcA,EAAwB,SAAI,IAAM,WAChDA,EAAcA,EAAwB,SAAI,IAAM,WAChDA,EAAcA,EAAwB,SAAI,IAAM,WAChDA,EAAcA,EAAyB,UAAI,IAAM,YACjDA,EAAcA,EAAuB,QAAI,IAAM,UAC/CA,EAAcA,EAAwB,SAAI,IAAM,WAChDA,EAAcA,EAAyB,UAAI,IAAM,YACjDA,EAAcA,EAAwB,SAAI,IAAM,UACnD,CApBD,CAoBGA,KAAkBA,GAAgB,CAAC,IAEtC,SAAWC,GACPA,EAA8B,OAAI,UAClCA,EAA4C,qBAAI,uBAChDA,EAAwC,iBAAI,mBAC5CA,EAA2C,oBAAI,sBAC/CA,EAAkC,WAAI,aACtCA,EAAqC,cAAI,eAC5C,CAPD,CAOGA,KAA0BA,GAAwB,CAAC,IC7B/C,MCODC,GAAoBF,GAAcG,QAC3BC,GAAmB,EAAGp6C,iBAAgBq6C,iBAAgBC,WAAUC,WAAUC,YAAWC,iBAAgBC,gBAAeC,mBAAkB9sE,UAASc,aAAY55M,SAAQ64M,QAAOssB,eAAc0gD,kBAAiBC,qBAClN,MAAMC,GAAe,IAAAlpU,aAAOwK,GACtB2+T,GAAe,IAAAnpU,aAAOwK,IACrB4+T,EAAUC,IAAe,IAAAlrU,eAASqM,IAClC8+T,EAAUC,IAAe,IAAAprU,eAASqM,IAClC8sB,EAAMvV,IAAW,IAAA5jB,eAASqM,IAC1B6zP,EAAWmrE,IAAgB,IAAArrU,eAASqM,IACpCi/T,EAAUC,IAAe,IAAAvrU,UAAS,KAClCwrU,EAAWC,IAAgB,IAAAzrU,UAAS,IAcrC0rU,EAAwB,CAAC15K,EAAckqH,IAAclqH,GAAgBkqH,EACrEyvD,EAAuBC,GACrBA,EACO,qCAGA,qCCnCiB,IAACniP,EAAQoiP,EAARpiP,ED4CZ,CACjBo0K,QACAC,UACAc,cC/CqCitE,GDsCV,IAAAvnU,cAAawnU,IACxCZ,EAAYY,EAAWttE,KAAO,GAC9B4sE,EAAYU,EAAWrtE,KAAO,GAC9BssE,EAAa9oU,QAAU6pU,EAAWttE,KAAO,EACzCwsE,EAAa/oU,QAAU6pU,EAAWrtE,KAAO,CAAC,GAC3C,KC1CH,IAAAx+P,YAAU,KACN,IAAI09P,EACAxyJ,EACJ,MAAMuxM,EAAiB,KACnB/+C,EAAY,IAAIC,UAAU,GAAGn0K,EAAOo0K,iBAAiBp0K,EAAOq0K,WAAWr0K,EAAOm1K,cAC9EjB,EAAUI,WAAa,cACvB,MAAMC,GAAc,IAAIrJ,aAAcC,OAAO,QAC7C+I,EAAUM,OAAS,KACf9yJ,EAAW0a,aAAY,KACnB83I,EAAU5hM,KAAKiiM,EAAY,GAC5B,IAAK,EAEZL,EAAU/8I,UAAapgF,IACnB,MAAMoL,EAAOpL,EAAMoL,KACb+a,EAAU22M,GAAK1B,QAAQhwN,EAAM,CAAE+sF,GAAI,WACzC,GAAIhyE,EAAS,CACT,MAAMmlR,EAAavrP,KAAKC,MAAM75B,GAC9BklR,EAAuBC,EAC3B,EACH,EAQL,OANApvB,IACA16S,YAAW,KACF27P,EAAUi/C,MACXF,GACJ,GACD,KACI,KACH5+N,cAAcqtB,GACdwyJ,EAAU14L,OAAO,CACpB,GACF,CAAC4mQ,EAAwBpiP,EAAOm1K,WAAYn1K,EAAOq0K,QAASr0K,EAAOo0K,QChCjC,GAAGp0K,SAAQ69B,YAAW52G,cAC3D,IAAAzQ,YAAU,KACN,IAAI8rU,EAAwB,EAC5B/pU,YAAW8jD,eACYA,iBACTkmR,GAAc,EAKlBC,QAHYnmR,iBACRomR,GAAkB,EAGtBC,EAAW,IAErB,MAAMC,EAAyBvmN,aAAY//D,UACnCimR,EAAwBr7T,EAAO27T,uBAC/BN,UACMC,IACV,GACDt7T,EAAO47T,kBACJN,EAAelmR,UACjB,IACI,MAAMM,QAAiBC,MAAM,GAAGojC,EAAOzkC,kBAAkBykC,EAAOq0K,WAAWr0K,EAAOm1K,cAAcn1K,EAAO8iP,aACjGC,QAAqBpmR,EAASK,OACZ,MAApBL,EAAS97C,QACTwzE,cAAcsuP,GACVI,EAAaA,EAAantU,OAAS,IAC/BoqF,EAAO8iP,YAActC,GAAcG,UACnC9iN,EAAUikN,YAAY,GAAGiB,EAAaA,EAAantU,OAAS,IAAIotU,IAAI1yQ,QAAQrpD,EAAOg8T,wBAAwBF,EAAaA,EAAantU,OAAS,IAAIstU,KAAK5yQ,QAAQrpD,EAAOg8T,sBACtKplN,EAAU1jG,SAAS4oT,EAAaA,EAAantU,OAAS,GAAGutU,KAAK7yQ,QAAQrpD,EAAOg8T,oBAC7EplN,EAAU+jN,cAAcmB,EAAaA,EAAantU,OAAS,GAAGwtU,MAAM9yQ,QAAQrpD,EAAOg8T,sBAKvFX,IAA0Br7T,EAAO27T,sBACjCvuP,cAAcsuP,EAG1B,CACA,MAAOjiU,GACHD,QAAQC,MAAMA,EAClB,GAEJ,IAAI2iU,EAAuB,EAC3B,MAAMC,EAAwBlnN,aAAY//D,UAClCgnR,EAAuBp8T,EAAO27T,uBAC9BS,UACMZ,IACV,GACDx7T,EAAO47T,kBACJJ,EAAmBpmR,UACrB,IACI,MAAMM,QAAiBC,MAAM,GAAGojC,EAAOzkC,kBAAkBykC,EAAOq0K,WAAWr0K,EAAOm1K,cAC5EouE,QAAoB5mR,EAASK,OACnC,GAAwB,MAApBL,EAAS97C,OAAgB,CACzBwzE,cAAcivP,GACd,MAAME,EAAY,EAAE,EAAG,GACnBA,EAAUnsT,SAASksT,EAAYL,OAC/BM,EAAUnsT,SAASksT,EAAYP,KAC/BnlN,EAAUmkN,aAAa,IAGvBnkN,EAAUmkN,aAAa,GAAGuB,EAAYP,IAAI1yQ,QAAQrpD,EAAOg8T,wBAAwBM,EAAYL,KAAK5yQ,QAAQrpD,EAAOg8T,qBAEzH,MAEQI,IAAyBp8T,EAAO27T,uBAChCvuP,cAAcivP,GACdzlN,EAAUmkN,aAAa,IAGnC,CACA,MAAOthU,GACHD,QAAQC,MAAMA,EAClB,GAEJ,MAAO,KACH2zE,cAAcsuP,GACdtuP,cAAcivP,EAAsB,CACvC,GACF,CAACzlN,EAAW52G,EAAOg8T,kBAAmBh8T,EAAO27T,qBAAsB37T,EAAO47T,iBAAkB7iP,EAAOzkC,OAAQykC,EAAOm1K,WAAYn1K,EAAOq0K,QAASr0K,EAAO8iP,WAAW,EF/BnKW,CAA0B,CACtBzjP,OAAQ,CACJzkC,SACA84M,UACAc,aACA2tE,UAAWpC,IAEf7iN,UAAW,CACPikN,cACA3nT,UACAynT,eACAI,gBAEJ/6T,OAAQ,CACJ27T,qBA5DiB,GA6DjBC,iBA5Da,IA6DbI,kBA5Dc,KA+DtB,MA6BMS,EAAoBtvD,IACtB,MAAMuvD,EAAc,SACdC,EAAoB,6CAC1B,IGtG+B,CAACxvD,GAAUA,EAAMvvQ,MAAQuvQ,EAAMllJ,GHsGzD20M,CAAwBzvD,GACzB,MAAO,CACH0vD,SAAUrD,GAAsBsD,qBAChCC,YAAaL,EACbzrB,SAAU,cAGlB,MAAM,OAAEr3S,EAAM,OAAEsnC,GD5GS,EAAC87R,EAAY58N,EAAUkhD,KAEpD,QAD4D,IAAf07K,QAAkD,IAAb58N,QAAoD,IAAjBkhD,EAEjH,MAAO,CACH1nJ,OAAQ4/T,GAAsByD,iBAC9B/7R,YAAQvlC,GAGhB,MAAMuhU,EAAY98N,EAAW48N,EAC7B,OAAIE,EAAY,EACL,CACHtjU,OAAQ4/T,GAAsB2D,oBAC9Bj8R,YAAQvlC,GAGE,IAAduhU,EACO,CACHtjU,OAAQ4/T,GAAsB4D,WAC9Bl8R,YAAQvlC,GAGZuhU,EAAY,EACL,CACHtjU,OAAQ4/T,GAAsB6D,cAC9Bn8R,QAASogH,EAAe07K,GAAcE,EAAY,KAGnD,CACHtjU,OAAQ4/T,GAAsB8D,OAC9Bp8R,YAAQvlC,EACX,EC8E8B4hU,CAAkBzhU,OAAOqxQ,EAAMvvQ,MAAO9B,OAAOqxQ,EAAMllJ,IAAKx/F,GAC7E+0S,EAAmB,CACrB,CAAChE,GAAsB2D,qBAAsB,CACzCN,UAAU,EACVE,YAAaL,EACbzrB,SAAU,GAAG0rB,eAEjB,CAACnD,GAAsByD,kBAAmB,CACtCJ,UAAU,EACVE,YAAaL,EACbzrB,SAAU,GAAG0rB,eAEjB,CAACnD,GAAsB8D,QAAS,CAC5BT,UAAU,EACVE,YAAaL,EACbzrB,SAAU,GAAG0rB,eAEjB,CAACnD,GAAsB4D,YAAa,CAChCP,UAAU,EACVE,YAAaL,EACbzrB,SAAU,GAAG0rB,cAEjB,CAACnD,GAAsB6D,eAAgB,CACnCR,UAAU,EACVE,YAAa,GAAG/sU,KAAKouB,MAAM8iB,GAAU,MACrC+vQ,SAAU,KAGZwsB,EAA8BzvU,OAAOolC,QAAQoqS,GAAkBzjU,MAAK,EAAEkB,KAASA,IAAQrB,MAAU,GACvG,OAAQ6jU,GAA+B,CACnCZ,UAAU,EACVE,YAAaL,EACbzrB,SAAU,GAAG0rB,cACf,GAEA,cAAEe,EAAa,eAAEC,GA1ED,MAClB,MAAOC,EAAcC,GAAcjD,EAAS7uT,QAAQ,IAAK,IAAIiU,MAAM,KAC7D09S,EAAgB,CAClB9/T,KAAMggU,QAAgBjiU,EACtBssH,GAAI41M,QAAcliU,IAEfmiU,EAAeC,GAAejD,EAChC/uT,QAAQ,IAAK,IACbiU,MAAM,KAKX,MAAO,CAAE09S,gBAAeC,eAJD,CACnB//T,KAAMkgU,QAAiBniU,EACvBssH,GAAI81M,QAAepiU,GAEiB,EA6DFqiU,IAClCjB,YAAakB,EAAwBhtB,SAAUitB,GAAyBzB,EAAiBiB,IACzFX,YAAaoB,EAAyBltB,SAAUmtB,GAA0B3B,EAAiBkB,GAC7FU,EAjI4B,MAC9B,QAAyB,IAAd7uE,QACa,IAAb+qE,EACP,OAEJ,MAAMrsU,GAAUshQ,EAAY+qE,GAAYA,EAAY,IACpD,OAAKz+T,OAAO0H,MAAMtV,IACG,iBAAVA,GACPA,IAAUowU,IAGP,EAFIpwU,CAEH,EAsHQqwU,GACdC,OAA8C,IAAhBH,EAC9BruU,KAAKknC,IAAImnS,GAAah1Q,QAAQ,GAC9B,IACA,iBAAEo1Q,EAAgB,cAAEC,EAAa,cAAEC,GAtD9B,CAAEF,iBAVHxD,OAD0C,IAAhBoD,GACNA,IAAgBruU,KAAKknC,IAAImnS,IAUxBK,mBARe,IAAbnE,QACO,IAAzBF,EAAa9oU,QAClB0pU,EAAoBD,EAAsBT,EAAUF,EAAa9oU,UACjE0pU,GAAoB,GAKgB0D,mBAJA,IAAblE,QACO,IAAzBH,EAAa/oU,QAClB0pU,EAAoBD,EAAsBP,EAAUH,EAAa/oU,UACjE0pU,GAAoB,IAwD9B,OAAQ,kBAAoB,SAAU,CAAEnmU,UAAW,qBAC/C,kBAAoB,MAAO,CAAEA,UAAW,iCACpC,kBAAoB,KAAM,CAAEA,UAAW,sCAAwCyqR,GAC/E,kBAAoB,MAAO,CAAEzqR,UAAW,sCAAwC8kU,GAChFngD,EAAgB,kBAAoB,MAAO,CAAE3kR,UAAW,0CACpD,aACA,kBAAoB,MAAO,CAAE4C,IAAKyiU,IAClC,IACA1gD,GAAiB,IACzB,kBAAoB,MAAO,CAAE3kR,UAAW,4BACpC,kBAAoB,MAAO,CAAEA,UAAW,oCAAsCylU,GAC9E,kBAAoB,MAAO,CAAEzlU,UAAW,mCAAmC2pU,KACvED,EACA,MACR,kBAAoB,MAAO,CAAE1pU,UAAW,oCACpC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,MAAO,CAAEA,UAAW,gDAAkDmlU,GAC1F,kBAAoB,MAAO,CAAEnlU,UAAW,gDACpC,kBAAoB8pU,GAAuB,CAAE1wU,MAAOwvU,EAAc9/T,QACtE,kBAAoB,MAAO,CAAE9I,UAAW,8CAA8CopU,IAAuBnqU,MAAO,CAC5G,sBAAuBkqU,KAE/B,kBAAoB,MAAO,CAAEnpU,UAAW,gDACpC,kBAAoB8pU,GAAuB,CAAE1wU,MAAOwvU,EAAcz1M,MACtE,kBAAoB,MAAO,CAAEnzH,UAAW,gDAAkDolU,GAC1F,kBAAoB,MAAO,CAAEplU,UAAW,gDACpC,kBAAoB8pU,GAAuB,CAAE1wU,MAAOyvU,EAAe//T,QACvE,kBAAoB,MAAO,CAAE9I,UAAW,8CAA8CspU,IAAwBrqU,MAAO,CAC7G,sBAAuB,GAAGoqU,OAElC,kBAAoB,MAAO,CAAErpU,UAAW,gDACpC,kBAAoB8pU,GAAuB,CAAE1wU,MAAOyvU,EAAe11M,OAC3E,kBAAoB,MAAO,CAAEnzH,UAAW,8CACpC,kBAAoB,MAAO,KAAMilU,GACjC,kBAAoB,MAAO,KAAMtxS,IACrC,kBAAoB,MAAO,CAAE3zB,UAAW,8CACpC,kBAAoB,MAAO,KAAMklU,GACjC,kBAAoB,MAAO,KAAMxqE,KACzC,kBAAoB,MAAO,CAAE16P,UAAW,6BACpC,kBAAoBukU,GAAa,CAAEhhT,MAAOwhT,EAAU/kU,UAAW,mCAAmC4pU,IAAiB/lR,QAASyhR,GACxH,kBAAoBwE,GAAuB,CAAE1wU,MAAOqsU,KACxD,kBAAoBlB,GAAa,CAAEhhT,MAAOyhT,EAAUhlU,UAAW,mCAAmC6pU,IAAiBhmR,QAASyhR,GACxH,kBAAoBwE,GAAuB,CAAE1wU,MAAOusU,MAAe,EAE7EmE,GAAwB,EAAG1wU,gBACR,IAAVA,EACA,kBAAoB,aAAgB,KAAM,KAE9C,kBAAoB,aAAgB,KAAMA,GItMxCmmU,GAAW,EAAG3nD,gBAAetyO,cAAgB,kBAAoB,MAAO,CAAEtlC,UAAW,kBAC9F,kBAAoB,IAAK,KAAM43Q,GAC/B,kBAAoB,MAAO,CAAE53Q,UAAW,2BAA6BslC,EAASzrC,OAAS,GAAKyrC,EAAS35B,KAAI,CAACvP,EAAG3C,IAAO,kBAAoB,IAAK,CAAE+F,OAAQ,SAAUy1I,IAAK,sBAAuB9uI,IAAK,SAAS/J,EAAE40B,OAAQilB,KAAM75C,EAAE2tU,QACzN,kBAAoBriH,GAAO,CAAE9kN,IAAKxG,EAAE40B,YCD/Bg5S,GAAqB,EAAGzmT,QAAOwiM,aAAYkkH,iBAAmB,kBAAoB,KAAa,KACxG,kBAAoB,MAAO,CAAEjqU,UAAW,6BAA8Bq3B,GAAI,aACtE,kBAAoB,KAAW,CAAEr3B,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,GAAGiqU,KACvC,kBAAoB/rR,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,IAC3D,kBAAoB,MAAO,CAAEvjB,UAAW,2CAA2CiqU,KAAiBlkH,EAAWlsN,OAAS,GAAKksN,EAAWp6M,KAAKvP,GAAO,kBAAoBmjU,GAAU,CAAEp5T,IAAK,SAAS/J,EAAEw7Q,mBAAoBx7Q,UCTvN,GAA8B,CACvC8tU,MAAO,OACPC,OAAQ,OACRC,OAAQ,OACRC,KAAM,IACNC,QAAS,OACTC,MAAO,OACPC,UAAW,OACXC,QAAS,KACTC,SAAU,SCsBDC,IAA0B,IAAAp2F,OA5Bf,EAAGuwF,qBACvB,MAAMriU,GAAY,IAAApG,QAAO,MACnBuuU,ECLiC,EAAC9F,EAAgB+F,IAAmB3xU,OAAOolC,QAAQusS,GAAgB5lU,MAAK,EAAEkB,KAAUA,EAAI26B,gBAAkBgkS,EAAehkS,kBAAiB,GDKrJgqS,CAA4BhG,EAAgB,KAAgCA,EAuBxG,OAtBA,IAAArqU,YAAU,KACN,MAAMq1L,EAASruL,SAASvB,cAAc,UACtC4vL,EAAOltL,IAAM,+EACbktL,EAAOhiL,KAAO,kBACdgiL,EAAOxvI,OAAQ,EACfwvI,EAAO/2I,UAAY,+EAGS6xR,+RAUxBnoU,EAAUhG,SACVgG,EAAUhG,QAAQk1B,YAAYm+J,EAClC,GACD,CAAC86I,IACI,kBAAoB,MAAO,CAAE5qU,UAAW,+BAAgCG,IAAKsC,EAAWxD,MAAO,CAAEhD,OAAQ,OAAQD,MAAO,SAC5H,kBAAoB,MAAO,CAAEgE,UAAW,uCAAwCf,MAAO,CAAEhD,OAAQ,oBAAqBD,MAAO,UAAa,IEzBrI+uU,GAAiB,EAAGtgD,iBAAgBq6C,iBAAgBC,WAAUC,WAAUC,YAAWC,iBAAgBC,gBAAeC,mBAAkB9sE,UAASc,aAAY55M,SAAQ64M,QAAOssB,eAAc0gD,kBAAiB2F,wBAAuB1F,oBAAsB,kBAAoB,KAAa,CAAExuR,gBAAiB,QACjT,kBAAoB,KAAW,CAAE92C,UAAW,+BACxC,kBAAoB6kU,GAAkB,CAAEp6C,eAAgBA,EAAgBq6C,eAAgBA,EAAgBC,SAAUA,EAAUC,SAAUA,EAAUC,UAAWA,EAAWC,eAAgBA,EAAgBC,cAAeA,EAAeC,iBAAkBA,EAAkB9sE,QAASA,EAASc,WAAYA,EAAY55M,OAAQA,EAAQ64M,MAAOA,EAAOssB,aAAcA,EAAc0gD,gBAAiBA,EAAiBC,eAAgBA,IAC9Z,kBAAoB,MAAO,CAAEtlU,UAAW,0BACpC,kBAAoB2qU,GAAyB,CAAE7F,eAAgBA,KACnEkG,GAAyB,kBAAoB,MAAO,CAAEhrU,UAAW,+BAAgCm+C,wBAAyB,CAClHC,OAAQ4sR,OCNXC,GAAiB,EAAG1nT,QAAOk6B,WAAU5H,UAAS0lB,WAAa,gBAAoB,KAAa,CAAEzkB,gBAAiB,QACxH,gBAAoB,KAAW,KAC3B,gBAAoB,MAAO,CAAE92C,UAAW,mBACpC,gBAAoB,KAAK,CAAE4C,IAAK24D,IAChC,gBAAoB,MAAO,CAAEv7D,UAAW,4BACpC,gBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,oBAAsBj0B,GAC7D,gBAAoB26B,GAAA,EAAS,CAAE1G,OAAQ,WAAaiG,GACpD,gBAAoB,MAAO,CAAEz9C,UAAW,YAAam+C,wBAAyB,CAAEC,OAAQvI,SCN3Fq1R,GAAe,EAAG3nT,QAAOk6B,WAAUe,cAAau1I,YAAW4hC,eAAc+5F,cAAa95F,cAAau1G,gBAAkB,kBAAoB,KAAa,KAC/J,kBAAoB,MAAO,CAAEnrU,UAAW,sBACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,+BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,aAAey9C,GACrD,kBAAoB,KAAU,CAAEjG,OAAQ,sBAAuBG,aAAcwzR,EAAYl1R,KAAM89I,GAAav1I,IAChH,kBAAoB,MAAO,CAAEx+C,UAAW,+BACpC,kBAAoB,IAAK,CAAER,OAAQ,SAAUy1I,IAAK,sBAAuBh/F,KAAM89I,GAC3E,kBAAoB2zB,GAAO,CAAEC,SAAUiO,EAAahO,UAAW8nG,EAAa7nG,SAAU8N,SCP7Fy1G,GAAkB,EAAGC,eAAcC,YAAW90F,oBACvD,MAAOK,EAAsBC,IAA2B,IAAAt8O,UAAS8wU,EAAUzxU,OAAS,EAAI,IAChF62D,UAAWjW,IAAS,WACtBw8L,GAAkC,IAAAn4O,cAAak8B,IACjD87M,EAA6D,EAArC97M,EAAM0xB,cAAcoiL,QAAQoI,QACpD3sL,EAAe,EAAE,GAClB,IACG4sL,GAAoB,IAAAr4O,cAAY,IAAO,kBAAoB,aAAgB,KAAOwsU,EAAUzxU,QAAUwxU,EAAa/8F,MAAMz0O,QAAU28O,EAAiB,kBAAoB,MAAO,CAAEx2O,UAAW,iCAAmCw2O,GAAe7qO,KAAI,CAACurO,EAAQz9O,IAAO,kBAAoB,MAAO,CAAE0M,IAAK1M,EAAGuG,UAAW,sEAAqE62O,IAAyBp9O,EAAI,+BAAiC,IAAM8iB,QAAS06N,EAAiC,cAAex9O,GAAKy9O,MAAa,KAAM,CAACV,EAAeK,EAAsBI,EAAiCq0F,EAAWD,KAC9lB,YAAElxR,EAAW,iBAAEoW,EAAgB,WAAEjV,EAAU,eAAEiP,IAAmB,SAAcssL,EAAuBw0F,EAAa/8F,MAAQg9F,EAAW,GAC3I,OAAQ,kBAAoB,KAAa,CAAEx0R,gBAAiB,QACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,oBACpC,kBAAoB,MAAO,CAAEA,UAAW,4BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,iBACnCg/L,EAAcK,GACd,KACyB,IAAzBA,EAA6By0F,EAAUzxU,OAASwxU,EAAa/8F,MAAMz0O,OACnE,KACJs9O,KACqB,IAAzBN,EACI,kBAAoBlC,GAAc,CAAEG,WAAW,EAAMZ,YAAY,EAAM/5L,YAAaA,EAAaoW,iBAAkBA,EAAkBjV,WAAYA,EAAYiP,eAAgBA,KAAmB+gR,IAChM,kBAAoB,aAAgB,KAChC,kBAAoB,OAAQ,CAAEtrU,UAAW,sCAAwCuwD,EAAiB5kD,KAAI,CAAC4iO,EAAM90O,IAAO,kBAAoB,KAAK,CAAE0M,IAAK1M,GAChJ,kBAAoBu8O,GAAoB,CAAEG,2BAA4Bk1F,EAAal1F,2BAA4BjwB,cAAemlH,EAAanlH,cAAeD,QAASolH,EAAaplH,WAAYsoB,EAAM2F,WAAYm3F,EAAan3F,WAAYkB,YAAai2F,EAAaj2F,kBACrQ,kBAAoB,MAAO,CAAEp1O,UAAW,wBACpC,kBAAoBq7C,GAAA,EAAoB,CAAElB,YAAaA,EAAamB,WAAYA,EAAYiP,eAAgBA,EAAgBhP,cAAwB,UAATd,QAAyB,EC5BnL8wR,GAAyB,EAAGhoT,QAAOk6B,WAAU3G,sBACtD,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,8BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,UAAWm+C,wBAAyB,CAClEC,OAAQX,GAAY,QAChB,ECXf+tR,GAAiB,EAAGtmU,OAAMosL,aAAe,kBAAoB,OAAQ,CAAEtxL,UAAW,mBAC3F,kBAAoB,MAAO,CAAE4C,IAAK0uL,IAClC,kBAAoB,OAAQ,CAAEtxL,UAAW,yBAA2BkF,ICD3DumU,GAA6B,EAAGv4I,cAAaw4I,YAAWC,6BAA+B,kBAAoB,MAAO,CAAE3rU,UAAW,kCACxI,kBAAoB,MAAO,CAAEA,UAAW,yDACpC2rU,GAA2B,kBAAoB,KAAM,KAAMA,GAC3D,kBAAoB,MAAO,CAAE3rU,UAAW,oDAAsDkzL,EAAYvnL,KAAI,CAACytP,EAAYtyN,IAAU,kBAAoB0kS,GAAgB,CAAErlU,IAAK2gC,EAAO5hC,KAAMk0P,EAAWl0P,KAAMosL,QAAS8nE,EAAW9nE,cACtO,kBAAoB,MAAO,CAAEtxL,UAAW,uDACpC,kBAAoB,MAAO,CAAEA,UAAW,4CAA6Cm+C,wBAAyB,CACtGC,OAAQstR,OCHXE,GAA8B,EAAGhJ,OAAM+I,6BAExC,kBAAoB,KAAa,CAAE3rU,UAAW,8CAClD,kBAAoB,KAAW,CAAEA,UAAW,mCACxC,kBAAoB,KAAM,CAAEA,UAAW,kDACvC,kBAAoB,GAAQ,CAAE64M,WAAY,CAClCxnL,GAAI,iDACJynL,WAAW,EACXM,aAPU,CAACtyK,EAAO9mC,IAAc,cAAcA,MAAc4iU,EAAK97R,GAAO+kS,gBAQzE75H,QAAS,CAAC6L,IAAa79M,UAAW,2BAA4BmgM,YAAY,EAAM+G,gBAAgB,GAAShuM,OAAO+wD,OAAO24Q,GAAMj3T,KAAI,CAACmgU,EAAShlS,IAAU,kBAAoBm9K,GAAa,CAAE99M,IAAK2gC,GAChM,kBAAoB2kS,GAA4B,CAAEtlU,IAAK2gC,EAAOosJ,YAAa44I,EAAQ54I,YAAaw4I,UAAWI,EAAQJ,UAAWC,wBAAyBA,UCT1JI,GAAqB,EAAGxoT,QAAOk6B,WAAU0oL,mBAAkBC,kBAAiBtvL,sBACrF,MAAM,QAAE2P,IAAY,YACd,QAAExG,IAAY,SAAUnJ,IACvBk1R,EAAYC,IAAiB,IAAAzxU,UAAS,CACzCwB,MAAO,IACPC,OAAQ,OAEZ,IAAAxB,YAAU,KAEFwxU,EADAxlR,EACc,CACVzqD,MAAO,KACPC,OAAQ,KAIF,CACVD,MAAO,IACPC,OAAQ,KACV,GACH,CAACwqD,IACJ,MAAMylR,GAAwB,IAAAptU,cAAY,IAClC2nD,EACO0/K,EAEJC,GACR,CAACD,EAAkB1/K,EAAS2/K,IAC/B,OAAQ,kBAAoB,KAAa,CAAEtvL,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,8BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,aAAey9C,GACrD,kBAAoBynL,GAAgB,CAAEtiO,IAAKspU,IAAyB1iU,MAAM,EAAMvG,UAAU,EAAMjH,MAAOgwU,EAAWhwU,MAAOC,OAAQ+vU,EAAW/vU,WAAa,ECjC5JkwU,GAAY,EAAGvJ,OAAM9rR,kBAAiBs1R,aAAYC,cAAaC,cAAaC,aAAYC,gBAAeC,iBAAgBC,iBAAgBC,gBAAeC,eAAcC,kBAC7K,MAAM,QAAE5sR,IAAY,EAAAmS,GAAA,GAAUtb,IACvBg2R,EAAYC,IAAiB,IAAAvyU,WAAS,IACtCwyU,EAAaC,IAAkB,IAAAzyU,WAAS,IACxC0yU,EAAaC,IAAkB,IAAA3yU,WAAS,IACxC4yU,EAAYC,IAAiB,IAAA7yU,WAAS,GACvC8yU,GAAsB,IAAAxuU,cAAY,KACpCiuU,GAAc,GACdE,GAAe,GACfE,GAAe,GACfE,GAAc,EAAM,GACrB,IACGE,GAAuB,IAAAzuU,cAAY,KACrCmuU,GAAe,GACfF,GAAc,GACdI,GAAe,GACfE,GAAc,EAAM,GACrB,IACGG,GAAuB,IAAA1uU,cAAY,KACrCquU,GAAe,GACfJ,GAAc,GACdE,GAAe,GACfI,GAAc,EAAM,GACrB,IACGI,GAAsB,IAAA3uU,cAAY,KACpCuuU,GAAc,GACdN,GAAc,GACdE,GAAe,GACfE,GAAe,EAAM,GACtB,IAkBGO,EAAY,CAACC,EAASnvR,EAAaovR,EAAcC,EAAUC,IAActvR,GAAe,kBAAoB,MAAO,CAAEx+C,UAAW,wCAClI,kBAAoB,SAAU,CAAEuc,QAASqxT,EAAc5tU,UAAW,qCAAoC2tU,EAAU,gBAAkB,KAC9H,kBAAoB,MAAO,CAAE/qU,IAAKirU,IAClCrvR,EACA,kBAAoB,MAAO,CAAEttB,MAAO,6BAA8Bl1B,MAAO,KAAMC,OAAQ,KAAMk1B,QAAS,YAAa6lB,KAAM,QACrH,kBAAoB,OAAQ,CAAEn7C,EAAG,6EAA8Eo7C,YAAa,IAAKC,cAAe,QAASC,eAAgB,YACjLw2R,GAvBY,EAACf,EAAcC,EAAaiB,IAAc,kBAAoB,MAAO,CAAE9tU,UAAW,sCAC9F,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,IAAK,CAAEA,UAAW,6CAA+C4sU,GACrF,kBAAoB,KAAM,CAAE5sU,UAAW,4CAA8C4iU,EAAKj3T,KAAI,CAAC4zB,EAAMuH,IAA4B,YAAhBvH,EAAKisK,QAAwBjsK,EAAKwuS,cAAgBD,GAC/J,kBAAoB,KAAM,CAAE3nU,IAAK2gC,EAAO9mC,UAAW,4CAC/C,kBAAoB0nN,GAAO,CAAE9kN,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKhc,MAAOulC,QAAS,UAC1E,kBAAoB,IAAK,CAAE7S,KAAM1W,EAAKskB,QAASrkD,OAAQ,SAAU2+C,wBAAyB,CAClFC,OAAQ7e,EAAKhc,OACd0xH,IAAK,oBACxB,kBAAoB,MAAO,CAAEj1I,UAAW,qCACpC,kBAAoB,IAAK,CAAEA,UAAW,4CAA8C6sU,GACpF,kBAAoB,KAAM,CAAE7sU,UAAW,2CAA6C4iU,EAAKj3T,KAAI,CAAC4zB,EAAMuH,IAA4B,WAAhBvH,EAAKisK,QAAuBjsK,EAAKwuS,cAAgBD,GAC7J,kBAAoB,KAAM,CAAE3nU,IAAK2gC,EAAO9mC,UAAW,2CAC/C,kBAAoB0nN,GAAO,CAAE9kN,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKhc,MAAOulC,QAAS,UAC1E,kBAAoB,IAAK,CAAE7S,KAAM1W,EAAKskB,QAASrkD,OAAQ,SAAU2+C,wBAAyB,CAClFC,OAAQ7e,EAAKhc,OACd0xH,IAAK,qBAOb+4L,CAAQpB,EAAcC,EAAaiB,IAClD,OAAQ,kBAAoB,KAAa,CAAEh3R,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,wBACpC0tU,EAAUZ,EAAYN,EAAec,EAAqBlB,EAAY,MACtEsB,EAAUV,EAAaP,EAAgBc,EAAsBlB,EAAa,OAC1EqB,EAAUR,EAAaR,EAAgBc,EAAsBlB,EAAa,OAC1EoB,EAAUN,EAAYT,EAAec,EAAqBlB,EAAY,QAAS,EC7DlF0B,GAAW,EAAG1qT,QAAOk6B,WAAU6zI,aAAe,kBAAoB,MAAO,CAAEtxL,UAAW,mBAC/F,kBAAoB0nN,GAAO,CAAE9kN,IAAK0uL,IAClC,kBAAoB,MAAO,CAAEtxL,UAAW,iCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,0CAA2Cm+C,wBAAyB,CACpGC,OAAQX,GAAY,QCDvBywR,GAA2B,EAAG3qT,QAAOk7B,aAAYD,cAAayF,WAAU77B,OAAMmjM,qBAAoBz0K,sBAC3G,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,qCACpC,kBAAoB,MAAO,CAAEA,UAAW,mDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpD3b,MAAMC,QAAQugB,IAASA,EAAKvuB,OAAS,GAAKuuB,EAAKzc,KAAKvP,GAAO,kBAAoB6xU,GAAU,CAAE9nU,IAAK,SAAS/J,EAAEmnB,WAAYnnB,MACvH,kBAAoB,KAAU,CAAEu7C,aAAc4zK,EAAoB/zK,OAAQ,gBAAiBvB,KAAMwI,GAAcD,IACnH,kBAAoB,MAAO,CAAEx+C,UAAW,mDACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,OAAgB,ECdzDkqR,GAAQ,EAAG78I,UAAS7zI,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,eAC5F,kBAAoB0nN,GAAO,CAAE9kN,IAAK0uL,IAClC,kBAAoBpzI,GAAA,EAAS,CAAE1G,OAAQ,WAAaj0B,GACpDk6B,GAAY,kBAAoB,IAAK,CAAEz9C,UAAW,YAAam+C,wBAAyB,CAChFC,OAAQX,MCDP2wR,GAA+B,EAAG7qT,QAAO0gC,WAAUxC,QAAO3K,sBACnE,MAAM,QAAEmJ,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoB,MAAO,CAAEA,UAAW,wDACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,gBAAkB4H,MAAMC,QAAQ45C,IAAUA,EAAM5nD,OAAS,GAAK4nD,EAAM91C,KAAKvP,GAAM,kBAAoB+xU,GAAO,CAAEhoU,IAAK,SAAS/J,EAAEmnB,WAAYnnB,QACpL,kBAAoB,MAAO,CAAE4D,UAAW,wDACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKqhD,OAAgB,ECdzDoqR,GAAe,EAAGC,YAC3B,MAAMC,GAAa,IAAAlyU,UAMnB,OALA,IAAA5B,YAAU,KACF8zU,EAAW9xU,UACX8xU,EAAW9xU,QAAQs8C,UAAY,kBAAeu1R,WAClD,GACD,CAACA,IACG,kBAAoB,MAAO,CAAEnuU,IAAKouU,GAAa,ECN7CC,GAAc,EAAGl9I,UAASz7I,UAAStyB,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,sBACjG,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,sBAAwBj0B,GAC/D,kBAAoB,MAAO,CAAEvjB,UAAW,kBAAmBm+C,wBAAyB,CAC5EC,OAAQvI,GACT52C,MAAO,CAAE,yBAA0B,OAAOqyL,SCFxCm9I,GAAsB,EAAGx8C,UAAS92B,sBAC3C,MAAM,QAAEl7M,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,0BAA4BiyR,EAAQp4R,OAAS,GAAKo4R,EAAQtmR,KAAKvP,GAAO,kBAAoB,MAAO,CAAE+J,IAAK,SAAS/J,EAAEy5C,WACvJ,kBAAoB24R,GAAa,CAAEroU,IAAK,SAAS/J,EAAEy5C,aAAcz5C,SAAW,ECL/EsyU,GAAmC,EAAGnrT,QAAOk6B,WAAUe,cAAaC,aAAY8sK,qBAAoBz0K,sBAC7G,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,qCACpC,kBAAoB,KAAM,CAAEA,UAAW,aAAcm+C,wBAAyB,CACtEC,OAAQ76B,GAAS,MAEzB,kBAAoB,IAAK,CAAEvjB,UAAW,WAAay9C,GACnDgB,GAAcD,GAAe,kBAAoB,KAAU,CAAEhH,OAAQ,sBAAuBvB,KAAMwI,EAAY9G,aAAc4zK,GAAsB/sK,KAAgB,ECRrKmwR,GAA8B,EAAGprT,QAAOk6B,WAAUmxR,kBAAiBlT,cAAavgE,sBACzF,MAAM,QAAEl7M,IAAY,SAAUk7M,GAC9B,OAAQ,kBAAoB,KAAa,CAAErkN,gBAAiBmJ,GACxD,kBAAoB,KAAW,CAAEjgD,UAAW,+BACxC,kBAAoB,MAAO,CAAEA,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,6DAA8Df,MAAO,CAAE,yBAA0B,OAAO2vU,QAChJ,kBAAoB1wR,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,MAAO,CAAEvjB,UAAW,YAAam+C,wBAAyB,CACtEC,OAAQX,GAAY,MAE5B,kBAAoB,MAAO,CAAEz9C,UAAW,yDACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAK84T,OAAmB,ECd5DmT,GAA6B,EAAGtrT,QAAOk+B,QAAOqtR,cAAgB,kBAAoB,MAAO,CAAE9uU,UAAW,mCAC/G,kBAAoB,MAAO,CAAEA,UAAW,kDACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKksU,EAAUhrR,IAAKvgC,IACjD,kBAAoB,KAAM,KAAMA,IACpC,kBAAoB,KAAM,CAAEvjB,UAAW,iDAAmDyhD,GAASA,EAAM91C,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,KAAM,CAAE0M,IAAK,eAAe1M,IAAKuG,UAAW,yCAA2Cu/B,OCF7NwvS,GAAyB,EAAGvxR,YAAWisK,eAAc2mG,kBAAiBC,mBAAkBpwQ,cACjG,MAAQA,QAASnJ,IAAoB,SAAUmJ,GAC/C,OAAQ,kBAAoB,KAAa,CAAEnJ,gBAAiBA,GACxD,kBAAoB,MAAO,CAAE92C,UAAW,8BACpC,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEA,UAAW,yCACpC,kBAAoB,MAAO,CAAEA,UAAW,6CACpC,kBAAoB,KAAM,KAAMw9C,GAChC,kBAAoB,KAAM,KAAMisK,IACpC,kBAAoB,MAAO,CAAEzpN,UAAW,6CACpC,kBAAoB6uU,GAA4B,CAAEtrT,MAAO6sS,EAAgB7sS,MAAOk+B,MAAO2uQ,EAAgB3uQ,MAAOqtR,SAAU1e,EAAgB0e,WACxI,kBAAoBD,GAA4B,CAAEtrT,MAAO8sS,EAAiB9sS,MAAOk+B,MAAO4uQ,EAAiB5uQ,MAAOqtR,SAAUze,EAAiBye,eAAiB,ECVvKE,GAAe,EAAGzrT,QAAO2gC,cAAa6sI,WAAUU,WAAU36I,sBACnE,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,kBACpC,kBAAoB,MAAO,CAAEA,UAAW,gCACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,cAAgBj0B,GACvD,kBAAoB,IAAK,CAAEvjB,UAAW,8BAA+Bm+C,wBAAyB,CAAEC,OAAQ8F,MAC5G,kBAAoBwjK,GAAO,CAAE9kN,IAAKmuL,EAAUjtI,IAAK2tI,MAAe,ECXnEw9I,GAAiB,EAAG7xE,YAAWm6D,eAAc2X,eAAcC,cAAaC,qBAAoBC,cAAgB,kBAAoB,MAAO,CAAErvU,UAAW,qBAC7J,kBAAoB,MAAO,CAAEA,UAAwB,aAAbqvU,EAA0B,8BAAgC,iCACjF,eAAbA,GAA6B,kBAAoB,MAAO,CAAErvU,UAAW,2BACjE,kBAAoB0nN,GAAO,CAAE9kN,IAAKusU,EAAarrR,IAAKsrR,KACxD,kBAAoB,MAAO,CAAEpvU,UAAW,2BACpC,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQg/M,GAAa,MAE7B,kBAAoB,IAAK,CAAEj/M,wBAAyB,CAC5CC,OAAQm5Q,GAAgB,OAEvB,aAAb8X,GAA2B,kBAAoB,MAAO,CAAErvU,UAAW,gCAC/D,kBAAoB0nN,GAAO,CAAE9kN,IAAKssU,EAAcprR,IAAKsrR,OCVpDE,GAAuB,EAAG/rT,QAAOk6B,WAAUu+Q,kBAAiB1tF,QAAOx3L,sBAC5E,MAAM,QAAEmJ,IAAY,EAAAmS,GAAA,GAAUtb,GAC9B,OAAQ,kBAAoB,KAAa,CAAEA,gBAAiBmJ,GACxD,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAEjgD,UAAW,6BACnCujB,GAASk6B,IAAa,kBAAoB,MAAO,CAAEz9C,UAAW,0CAC3D,kBAAoB,KAAM,CAAEm+C,wBAAyB,CAC7CC,OAAQ76B,GAAS,MAEzB,kBAAoB,IAAK,CAAEvjB,UAAW,qCAAsCm+C,wBAAyB,CAC7FC,OAAQX,GAAY,OAEhC,kBAAoB,MAAO,CAAEz9C,UAAW,0CAA2Cf,MAAO,CAAEg9T,cAAmC,SAApBD,EAA6B,MAAQ,gBAC5I,kBAAoB,MAAO,CAAEh8T,UAAW,+CAAiDsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IAClGA,EAAI,EACI,kBAAoBw1U,GAAgB,CAAE9oU,IAAK,GAAG1M,IAAK2jQ,UAAW7uB,EAAK6uB,UAAWm6D,aAAchpF,EAAKgpF,aAAc2X,aAAc3gG,EAAK2gG,aAAcE,mBAAoB7gG,EAAK6gG,mBAAoBjuE,oBAAqB5yB,EAAK4yB,oBAAqBkuE,SAAU9gG,EAAK8gG,WAG3P,kBAAoB,aAAgB,SAGpD,kBAAoB,MAAO,CAAErvU,UAAW,iDAAmDsuO,EAAM3iO,KAAI,CAAC4iO,EAAM90O,IACpGA,EAAI,EACI,kBAAoBw1U,GAAgB,CAAE9oU,IAAK,GAAG1M,IAAK2jQ,UAAW7uB,EAAK6uB,UAAWm6D,aAAchpF,EAAKgpF,aAAc4X,YAAa5gG,EAAK4gG,YAAaC,mBAAoB7gG,EAAK6gG,mBAAoBjuE,oBAAqB5yB,EAAK4yB,oBAAqBkuE,SAAU9gG,EAAK8gG,WAGzP,kBAAoB,aAAgB,YAE5C,EC1BfE,GAAgBjmU,IACzB,MAAMkmU,EAAiBlmU,EAAMmmU,OAAO51U,OAAS,EAAI,EAAIyP,EAAMmmU,OAAO51U,OAC5Du4Q,EAAyB9oQ,EAAM4oQ,oBAAqB,SAA6B5oQ,EAAM4oQ,mBACvFG,EAAsBD,EAAyB,IAAIA,IAA2B,GACpF,OAAQ,gBAAoB,KAAa,CAAEt7N,gBAAiBxtC,EAAMwtC,gBAAiB92C,UAAWqyQ,GAC1F,gBAAoB,MAAO,CAAEryQ,UAAW,UACpCsJ,EAAMia,OAAS,gBAAoB,KAAM,CAAEvjB,UAAW,2BAA6BsJ,EAAMia,OACzF,gBAAoB,KAAW,CAAEvjB,UAAWqyQ,GACxC,gBAAoB,MAAO,CAAEryQ,UAAW,mBACpC,gBAAoB,GAAQ,CAAEgyM,QAAS,CAAChsJ,GAAYgzJ,IAAazO,WAAY,CACrEC,OAAQ,sBACRC,OAAQ,uBACTlP,YAAa,CACZ,IAAK,CACDD,cAAe,KAEnB,IAAK,CACDA,cAAe,KAEnB,KAAM,CACFA,cAAek0I,IAEpB32H,WAAY,CACXxnL,GAAI,sBACJynL,WAAW,EACXM,aAAc,IAAM,kEACnB9vM,EAAMmmU,OAAO9jU,KAAK20P,GAAW,gBAAoBr8C,GAAa,CAAE99M,IAAK,gBAAgBm6P,EAAM/8O,SAChG,gBAAoBy8O,GAAgB,IAAKM,SACjD,gBAAoB,MAAO,CAAEtgQ,UAAW,yBAA2B,ECjCtE0vU,GAAgB,EAAGC,cAAapsT,QAAOk6B,WAAUrhC,OAAMwzT,eAAcp4R,SAAQq4R,gBAAeC,kBAAiBC,qBAAoBC,0BAC1I,MAAMC,EAAcJ,EAAgB,OAAOA,KAAmB,OACxDK,GAAqB,IAAA56R,UAAQ,IACP,SAApBw6R,EACO,gBAEkB,WAApBA,EACE,cAEJ,iBACR,CAACA,IACJ,OAAQ,kBAAoB,UAAW,CAAE9vU,UAAW,mBAAkBw3C,EAAS,qBAAqBA,IAAW,IAAMv4C,MAAO,CACpH,yBAA0BgxU,EAC1B,yBAA0BF,EAC1B,0BAA2BC,IAE/B,kBAAoB,MAAO,CAAEptU,IAAK+sU,EAAa7rR,IAAK8rR,EAAc3wU,MAAO,CAAEquC,OAAQ4iS,KACnF,kBAAoB,KAAM,KAAM3sT,GAChC,kBAAoB,MAAO,KACvB,kBAAoB,OAAQ,CAAEvjB,UAAW,6BAA+By9C,GACxE,kBAAoB,OAAQ,CAAEz9C,UAAW,yBAA2Boc,IAAQ,EClB3E+zT,GAAoB,EAAG5sT,QAAOi6R,aAAYlvE,QAAOx3L,qBAAwB,kBAAoB,KAAa,CAAEA,gBAAiBA,GACtI,kBAAoB,KAAW,KAC3B,kBAAoB,MAAO,CAAE92C,UAAW,wBACpCujB,GAAU,kBAAoB,KAAM,CAAEtkB,MAAO,CACrC,gBAAiB,GAAGu+S,MACnBj6R,GACT3b,MAAMC,QAAQymO,IACVA,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoB4oS,GAAe,CAAEvpU,IAAK2gC,EAAO6oS,YAAaphG,EAAKohG,YAAapsT,MAAOgrN,EAAKhrN,MAAOk6B,SAAU8wL,EAAK9wL,SAAUrhC,KAAMmyN,EAAKnyN,KAAMo7B,OAAQ+2L,EAAK/2L,OAAQq4R,cAAethG,EAAKshG,cAAeC,gBAAiBvhG,EAAKuhG,gBAAiBC,mBAAoBxhG,EAAKwhG,mBAAoBC,oBAAqBzhG,EAAKyhG,2BCPlVI,GAAU,EAAGlsR,cAAaotI,UAAS/tK,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,gBACjG,kBAAoB0nN,GAAO,CAAE9kN,IAAK0uL,IAClC,kBAAoBpzI,GAAA,EAAS,CAAE1G,OAAQ,iBAAmBj0B,GAC1D,kBAAoB,IAAK,CAAEvjB,UAAW,6BAA+BkkD,ICD5DmsR,GAAgB,EAAGC,WAAU/sT,QAAOuzB,kBAAkB,WAC/D,MAAOy5R,EAAUC,IAAe,IAAAh2U,WAAS,GAIzC,OAHA,IAAAC,YAAU,KACN+1U,GAAY,EAAK,GAClB,IACK,kBAAoB,KAAa,CAAE15R,gBAAiBA,EAAiB92C,UAAW,mDACpF,kBAAoB,MAAO,CAAEA,UAAW,kCAAoCuwU,GAAa,kBAAoB,MAAO,CAAEvwU,UAAW,sBAAuBf,MAAO,CAAE,yBAA0B,GAAG63C,MAC1L,kBAAoB,IAAK,CAAE92C,UAAW,YAAcujB,GACpD,kBAAoB,MAAO,CAAEvjB,UAAW,wCAA0CswU,EAASz2U,OAAS,GAChG,kBAAoB,GAAQ,CAAE0hM,YAAa,CACnC,IAAK,CACDhB,aAAc,GAElB,IAAK,CACDA,aAAc,IAElB,KAAM,CACFA,aAAc,IAElB,KAAM,CACFA,aAAc,KAEnBe,cAAe,OAAQ9xL,MAAM,EAAMvG,SAAU,CAC5CylF,MAAO,EACPyzH,sBAAsB,GACvBpwM,MAAO,IAAMm7L,gBAAgB,EAAO8K,QAAS,CAAC+J,IAAWzU,UAAU,GAAQ,IAAIgpI,KAAaA,KAAaA,GAAU3kU,KAAI,CAAC8kU,EAASh3U,IAAO,kBAAoBwqN,GAAa,CAAE99M,IAAK,iBAAiB1M,KAAKg3U,EAAQltT,SACjN,kBAAoB6sT,GAAS,IAAKK,WAAoB,EC1BpEC,GAAyBC,IAC3B,MAAMC,EAAcD,GAAczlT,MAAM,KAAK,GAAGviB,WAChD,OAAOioU,EAAc,GAAGA,gBAAuB/pU,CAAS,EAE/CgqU,GAAmB,EAAGttT,QAAOk6B,WAAUe,cAAasyR,oBAAmBtyE,YAAW1nN,kBAAiBi6R,WAAUJ,eAAcK,6BAA4BC,0BAChK,MAAM,QAAEhxR,IAAY,SAAUnJ,GAC9B,OAAQ,kBAAoB,KAAa,CAAE92C,UAAW,mBAAoB82C,gBAAiBmJ,GACvF,kBAAoB,KAAW,CAAEjgD,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,oBAAoB+wU,EAAW,iCAAmC,MAAMD,EAAoB,oCAAsC,OAAOE,EAA6B,wCAA0C,MACpP,kBAAoB,MAAO,CAAEhxU,UAAW,6BACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQk5R,GAAsBC,IAAiBptT,GAC9E,kBAAoB,IAAK,CAAEvjB,UAAW,0BAA4By9C,IACrEe,GAAeggN,GAAc,kBAAoBjnN,GAAA,EAAU,CAAEtB,KAAMuoN,EAAW7mN,aAAcs5R,EAAqBz5R,OAAQ,mBAAqBgH,KAAgB,ECjBzK0yR,GAAmB,CACrB3nQ,MAAO,CAAC,MAAO,OAAQ,OACvBhO,MAAO,CAAC,MAAO,OAAQ,MAAO,QCArB41Q,GAAc,EAAGC,eAAc1iB,YAAW2iB,kBAAiB,MACpE,MAAMC,EDEkB,CAACC,IACzB,MAAMt+Q,EAFoB,CAACs+Q,GAAYA,EAAQj2T,SAAS,KAAOi2T,EAAQrmT,MAAM,KAAK9mB,WAAQyC,EAExE2qU,CAAsBD,GACxC,GAAKt+Q,EAGL,OAAO/5D,OAAOolC,QAAQ4yS,IAAkBjsU,MAAK,EAAE,CAAEwsU,KAAgBA,EAAWn2T,SAAS23C,GAAWnyB,mBAAkB,EAAE,ECPlG4wS,CAAaN,GAC/B,MAAkB,UAAdE,EACQ,kBAAoB,MAAO,CAAEtxU,UAAW,gBAC5C,kBAAoB,MAAO,CAAE4C,IAAKwuU,KAExB,UAAdE,EACQ,kBAAoB,MAAO,CAAEtxU,UAAW,gBAC5C,kBAAoB,QAAS,CAAE4C,IAAKwuU,EAAcjvE,OAAQusD,EAAW72F,UAAU,EAAMC,OAAO,EAAMC,aAAa,EAAMvuN,KAAM6nU,KAE5H,kBAAoB,aAAgB,KAAK,ECVvCM,GAA2B,EAAGC,gBAAeR,eAAc1iB,YAAW2iB,oBAAuB,kBAAoB,MAAO,CAAErxU,UAAW,+BAC9I,kBAAoB,MAAO,CAAEA,UAAW,0CACpC,kBAAoBmxU,GAAa,CAAEC,aAAcA,EAAc1iB,UAAWA,EAAW2iB,eAAgBA,IACrG,kBAAoB,MAAO,CAAErxU,UAAW,qCAAsC4C,IAAKgvU,MCJ9EC,GAAW,EAAGnuU,QAAOuyC,OAAM67R,UAAU,iBAAkBxgJ,UAAS65I,cAAa,EAAO5uT,aAAgB,kBAAoB,IAAK,CAAEvc,UAAW,wBAAwB8xU,IAAW77R,KAAMA,EAAMz2C,OAAQ2rU,EAAa,cAAWtkU,EAAWouI,IAAKk2L,EAAa,kBAAetkU,EAAW0V,QAASA,GAClS+0K,GAAW,kBAAoB,MAAO,CAAE1uL,IAAK0uL,IAC7C5tL,GCDSquU,GAAgB,EAAGC,WAAa,kBAAoB,MAAO,CAAEhyU,UAAW,mBAAqBgyU,EAAMrmU,KAAI,EAAGjI,QAAOuyC,OAAM67R,UAASxgJ,UAAS65I,aAAY5uT,WAAWuqB,IAAW,kBAAoB+qS,GAAU,CAAE1rU,IAAK2gC,EAAOpjC,MAAOA,EAAOouU,QAASA,EAAS77R,KAAMA,EAAMq7I,QAASA,EAAS65I,WAAYA,EAAY5uT,QAASA,OCCtT01T,GAAyB,EAAG1uT,QAAOu2B,WAAUo4R,iBAAgBC,gBAAenmE,eACrF,IAAAvxQ,YAAU,KACN,MAAM23U,EAAap3S,IACG,WAAdA,EAAM70B,KACN6lQ,GAAWA,EAAQhxO,EACvB,EAGJ,OADAv5B,SAAS5G,iBAAiB,UAAWu3U,GAC9B,KACH3wU,SAAS1G,oBAAoB,UAAWq3U,EAAU,CACrD,GACF,CAACpmE,IACG,kBAAoB,MAAO,CAAEhsQ,UAAW,6BAC3C,kBAAoB,MAAO,CAAEA,UAAW,oCACpC,kBAAoB,SAAU,CAAEA,UAAW,0CAA2Cuc,QAASyvP,GAC3F,kBAAoB,KAAW,OACnC,kBAAoB,MAAO,CAAEhsQ,UAAW,kCACpC,kBAAoB,KAAM,CAAEA,UAAW,aAAeujB,GACtDu2B,GAAa,kBAAoB,MAAO,CAAE95C,UAAW,uCAAyC85C,IAClG,kBAAoB,MAAO,CAAE95C,UAAW,qCACpC,kBAAoB,MAAO,CAAE4C,IAAKsvU,KACtCtqU,MAAMC,QAAQsqU,IAAkBA,EAAct4U,OAAS,GAAM,kBAAoB,MAAO,CAAEmG,UAAW,6CAA+CmyU,EAAcxmU,KAAI,EAAGsqC,OAAMgO,YAAYnd,IAAW,kBAAoB,IAAK,CAAE3gC,IAAK2gC,EAAOmP,KAAMA,GAC/O,kBAAoB,MAAO,CAAErzC,IAAKqhD,WAErCouR,GAA6B,EAAG9uT,QAAOu2B,WAAUo4R,iBAAgBC,gBAAenmE,cAAc,KAAAn6O,cAAa,kBAAoBogT,GAAwB,CAAE1uT,MAAOA,EAAOu2B,SAAUA,EAAUq4R,cAAeA,EAAeD,eAAgBA,EAAgBlmE,QAASA,IAAYvqQ,SAAS4gB,MC1BvRiwT,GAAwB,EAAGhhJ,UAAS/tK,QAAOgzB,UAAW,kBAAoB,MAAO,CAAEv2C,UAAW,6BACvG,kBAAoB,MAAO,CAAE4C,IAAK0uL,IAClC,kBAAoB,KAAM,CAAEtxL,UAAW,8CAAgDujB,GACvFgzB,GAAQ,kBAAoB,MAAO,CAAEv2C,UAAW,mCAAqCu2C,ICF5Eg8R,GAA4B,EAAGjkG,QAAOtuO,eAAkB,kBAAoB,MAAO,CAAEA,UAAW,kCAAiCA,EAAY,IAAIA,IAAc,KAAQ4H,MAAMC,QAAQymO,IAC9LA,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoBwrS,GAAuB,CAAEnsU,IAAK2gC,EAAOwqJ,QAASi9C,EAAKj9C,QAAS/tK,MAAOgrN,EAAKhrN,MAAOgzB,KAAMg4L,EAAKh4L,UCGjIi8R,IAAsC,IAAA1yH,aAAW,EAAGv8L,QAAOkvT,cAAaC,cAAaC,aAAYC,yBAAwBC,aAAYC,qBAAoBh8R,kBAAiB92C,YAAW+yU,WAAW,IAAM5yU,KAC/M,MAAO6yU,EAAaC,IAAkB,IAAAz4U,WAAS,GACzC04U,GAA6B,IAAAp0U,cAAak8B,IAC5CA,EAAMvb,iBACNwzT,GAAgBD,EAAY,GAC7B,CAACA,IAkBJ,OAAQ,kBAAoB,KAAa,CAAEhzU,UAAW,mBAAoB82C,gBAAiBA,GACvF,kBAAoB,MAAO,CAAE92C,UAAW,8CAA+Cf,MAAO,CACtF,yBAA0B,OAAO6zU,MAClCz7S,GAAI07S,GACP,kBAAoB,KAAW,CAAE/yU,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,oCAAoCA,GAAwB,KAAMG,IAAKA,GAC3G,kBAAoB,KAAM,CAAEH,UAAW,qDAAuDujB,GAC9F,kBAAoB,MAAO,CAAEvjB,UAAW,qDACpC,kBAAoB2xU,GAA0B,CAAEC,cAAee,EAAWf,cAAeR,aAAcuB,EAAWvB,aAAc1iB,UAAWikB,EAAWjkB,aAC1J,kBAAoB6jB,GAA2B,CAAEjkG,MAAOmkG,EAAYnkG,MAAOtuO,UAAW,6CACtF,kBAAoBuyU,GAA2B,CAAEjkG,MAAOokG,EAAYpkG,MAAOtuO,UAAW,6CACtF4H,MAAMC,QAAQgrU,IACVA,EAAWh5U,OAAS,GAAM,kBAAoB,MAAO,CAAEmG,UAAW,yCAClE,kBAAoB+xU,GAAe,CAAEC,MA7BjDa,EACOA,EAAWtpT,QAAO,CAAC4pT,EAAeC,KACrC,GAA4B,sBAAxBA,EAAYtB,QAAiC,CAC7C,MAAMuB,EAAiB,IAChBD,EACH72T,QAAS22T,GAGb,OADAC,EAAc9uU,KAAKgvU,GACZF,CACX,CAEA,OADAA,EAAc9uU,KAAK+uU,GACZD,CAAa,GACrB,IAEAN,MAgBCD,GAA0BI,GAAgB,kBAAoBX,GAA4B,CAAE9uT,MAAOqvT,EAAuBrvT,MAAOu2B,SAAU84R,EAAuB94R,SAAUo4R,eAAgBU,EAAuBV,eAAgBC,cAAeS,EAAuBT,cAAenmE,QAASknE,MAAkC,IAEnVV,GAAoC93S,YAChC,sCC5CG,MCCD44S,GAA0B,CAC5B,GACA,GACA,KAESC,GAAsD,EAAGhwT,QAAOkvT,cAAaC,cAAaC,aAAYC,yBAAwBC,aAAYC,qBAAoBh8R,kBAAiB08R,gBAAgB,OAAQT,WAAW,OAC3N,MAAOU,EAAmBC,IAAwB,IAAAl5U,UAAS,IACrD,IAAE2F,GDR4B,EAACwzU,EAAwBC,KAC7D,MAAMC,GAA4B,IAAAx3U,SAAO,GACnCy3U,GAAsB,IAAAz3U,QAAO,KAwB7B,IAAE8D,GAAQsqN,GAAU,CACtB76D,UAAW+jL,EACXn3T,SAR6B,CAAC8tM,EAAQxgI,KAClC+pP,EAA0Bp3U,SAlBN,EAACqtF,EAAO8pP,KAChC,MAAMG,EAAoB,IAAIJ,GAAwBzqT,MAAK,CAAC9sB,EAAGW,IAAMA,EAAIX,IACzE,IAAK,IAAI3C,EAAI,EAAGA,EAAIs6U,EAAkBl6U,OAAQJ,IAC1C,GAAIqwF,EAAM2iG,mBAAqBsnJ,EAAkBt6U,GAAI,CACjD,GAAIq6U,EAAoBr3U,QAAQ6e,SAASy4T,EAAkBt6U,IACvD,SAEJ,MAAMu6U,EAAWD,EAAkBl6U,OAASJ,EAM5C,OALAq6U,EAAoBr3U,QAAQ4H,KAAK0vU,EAAkBt6U,IACnDm6U,EAAqBI,QACX,IAANv6U,IACAo6U,EAA0Bp3U,SAAU,GAG5C,CACJ,EAMAw3U,CAAoBnqP,EAAO8pP,EAAqB,IAMpD,MAAO,CACHzzU,MACH,ECxBe+zU,CAAyBZ,GAAyBI,GAYlE,OAAQ,kBAAoBlB,GAAqC,CAAEjvT,MAAOA,EAAOkvT,YAAaA,EAAaC,YAAaA,EAAaC,WAAYA,EAAYC,uBAAwBA,EAAwBC,WAAYA,EAAYC,mBAAoBA,EAAoBh8R,gBAAiBA,EAAiB92C,UAXvR,MACpB,IAAIm0U,EAAqB,4FAA4FX,IACrH,GAAIC,EAAmB,CACnBU,GAAsB,0DACtB,IAAK,IAAI16U,EAAI,EAAGA,GAAKg6U,EAAmBh6U,IACpC06U,GAAsB,4DAA4D16U,IAEtF,OAAO06U,CACX,CACA,OAAOA,CAAkB,EAE6RC,GAAmBrB,SAAUA,EAAU5yU,IAAKA,GAAO,ECnBpWk0U,GAAkC,EAAG9wT,QAAOkvT,cAAaC,cAAaC,aAAYC,yBAAwBC,aAAYC,qBAAoBh8R,kBAAiB08R,gBAAgB,OAAQT,WAAW,MACjL,SAAlBS,EACQ,kBAAoBD,GAAqD,CAAEhwT,MAAOA,EAAOkvT,YAAaA,EAAaC,YAAaA,EAAaC,WAAYA,EAAYC,uBAAwBA,EAAwBC,WAAYA,EAAYC,mBAAoBA,EAAoBh8R,gBAAiBA,EAAiB08R,cAAeA,EAAeT,SAAUA,IAEnW,kBAAoBP,GAAqC,CAAEjvT,MAAOA,EAAOkvT,YAAaA,EAAaC,YAAaA,EAAaC,WAAYA,EAAYC,uBAAwBA,EAAwBC,WAAYA,EAAYC,mBAAoBA,EAAoBh8R,gBAAiBA,EAAiBi8R,SAAUA,ICJhTuB,GAA4B,EAAG/wT,QAAO63D,YAAWv3B,UAASi+M,iBACnE,MAAOC,EAAkBC,IAAuB,IAAAxnQ,UAAS6F,SAIzD,OAHA,IAAA5F,YAAU,KACN2gF,EAAU9/D,SAAS,WAAa0mP,GAAoB,GAAQA,GAAoB,EAAM,GACvF,CAAC5mL,IACI,kBAAoB,MAAO,CAAEp7E,UAAW,iCAC5C,kBAAoB,IAAK,CAAEi2C,KAAM4N,EAASrkD,QAAuB,IAAfsiQ,EAAuB,QAAU,SAAU9hQ,UAAW,2CAA4Ci1I,IAAK,cACrJ,kBAAoB,MAAO,CAAEj1I,UAAW,oDAAsD+hQ,EAAmB,kBAAoB,GAAiB,CAAEn/P,IAAKw4E,EAAWn4E,UAAU,EAAOuG,MAAM,EAAMo7K,OAAO,IAAU,kBAAoB8iC,GAAO,CAAE9kN,IAAKw4E,EAAWt3B,IAAKvgC,KACxQ,kBAAoB,MAAO,CAAEvjB,UAAW,gDAAkDujB,IAAS,ECNlGgxT,GAAoBjrU,IAC7B,MAAM,QAAE22C,IAAY,SAAU32C,EAAMwtC,iBAAmB,2BACvD,OAAQ,kBAAoB,MAAO,CAAE92C,UAAW,sBAC5C,kBAAoB,KAAa,CAAE82C,gBAAiBmJ,EAASjgD,UAAW,oBACpE,kBAAoB,KAAW,CAAEA,UAAW,oBACxC,kBAAoB,GAAQ,CAAEu6L,aAAc,EAAGe,cAAe,QAAUhyL,EAAMusC,QAAQlqC,KAAI,CAAC4zB,EAAM9lC,IAAM,kBAAoBwqN,GAAa,CAAE99M,IAAK,2BAA2B1M,KACtK,kBAAoB66U,GAA2B,CAAE/wT,MAAOgc,EAAKhc,MAAO63D,UAAW77C,EAAK67C,UAAWv3B,QAAStkB,EAAKskB,QAASi+M,WAAYviO,EAAKuiO,mBAAoB,ECa/K,GAtBuB,EAAG0yE,cAAaC,eAAcvqI,QAAOwqI,qBACxD,MAAOC,EAAaC,IAAkB,IAAAp6U,UAASE,OAAOwB,aACtD,IAAAzB,YAAU,KACN,MAAMo6U,EAAe,IAAMD,EAAel6U,OAAOwB,YAEjD,OADAxB,OAAOG,iBAAiB,SAAUg6U,GAC3B,IAAMn6U,OAAOK,oBAAoB,SAAU85U,EAAa,GAChE,IACH,MAAOC,EAAWC,GAAc7qI,EAAMh/K,MAAM,KAAKvf,IAAI3E,QAC/Co9D,EAAQ0wQ,EAAYC,GAMnBC,EAAUC,GAFN,CAFWH,EAAY1wQ,EAAS,IACpB2wQ,EAAa3wQ,EAAS,KAIvC8wQ,EAAqBP,GAAeD,EAAiB,0BAA4B,GACvF,OAAQ,kBAAoB,KAAa,CAAE10U,UAAW,oBAClD,kBAAoB,KAAW,CAAEA,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,mBAAmBk1U,KACvD,kBAAoB,MAAO,CAAEl1U,UAAW,wBAAyBf,MAAO,CAAEouI,KAAM,GAAG2nM,OAAiBR,GACpG,kBAAoB,MAAO,CAAEx0U,UAAW,yBAA0Bf,MAAO,CAAEouI,KAAM,GAAG4nM,OAAkBR,KAAiB,ECjB1HU,GAA0B,EAAG5xT,QAAOizS,WAAUzlI,WAAU0lI,iBAAgBhlI,WAAUhjL,WAAU8nT,gBAAgB,OAAQ6e,YAAWC,0BAAyB,EAAOC,mBAAmB,UAAWC,mBAAmB,UAAWC,aAAY,EAAOC,aAAYC,gBAAeC,aAAYC,gBAAeC,aAAYC,gBAAer4B,kBAAkB,QAC1V,MAAM,QAAE/2P,EAAO,QAAED,EAAO,SAAEE,IAAa,YAChCwoL,EAAcC,IAAmB,IAAA50O,WAAS,IAC1CywO,EAAeC,IAAoB,IAAA1wO,WAAS,IAC5C2wO,EAAcC,IAAmB,IAAA5wO,WAAS,GAwBjD,OAvBA,IAAAC,YAAU,KACN20O,EAAgB1oL,GAChBwkL,EAAiBvkL,GACjBykL,EAAgB3kL,EAAQ,GACzB,CAACC,EAASC,EAAUF,IAmBf,kBAAoB,MAAO,CAAEzmD,UAAW,oCAC5C,kBAAoB,KAAa,CAAE82C,gBAAiB,QAChD,kBAAoB,KAAW,CAAE92C,UAAcq1U,EAAyB,mBAAqB,IACzF,kBAAoB,MAAO,CAAEr1U,UAAW,+BAA+ByO,KACnE,kBAAoB,MAAO,CAAEzO,UAAW,gDAtBpB+1U,EAuBMX,EAvBKY,EAuBMzf,EAvBc0f,EAuBCV,EAvBkC,MAA9EW,EAuBW3yT,IAvByE,kBAAoB26B,GAAA,EAAS,CAAE1G,OAAQu+R,GAAwB,YAAa92U,MAAO,CAAE,mBAAoB,GAAG+2U,IAAsB1nR,MAAO2nR,EAAgB,sBAAuBx4B,IAAqBy4B,KACrRt3E,EAuBW43D,EAvBM2f,EAuBI5f,EAvBsBv3D,EAuBPs2E,EAvB8C,KAAb9e,GAAmB,kBAAoB,MAAO,CAAEx2T,UAAW,oCAAqCm+C,wBAAyB,CAClNC,OAAQwgN,GACT3/P,MAAO,CAAE,mBAAoB,GAAGk3U,IAA4B7nR,MAAO0wM,OAKvCo3E,EAiBSX,EAjBOY,EAiBKX,EAjBcY,EAiBCX,EAjBgBY,EAiBJX,EAjBwBY,EAiBTX,EAjByBY,EAiBbX,EAA7EN,GAjBgI,kBAAoB,MAAO,CAAEx1U,UAAW,8CACrM,kBAAoB,MAAO,CAAEA,UAAW,sCACpC,kBAAoB,IAAK,CAAEA,UAAW,2CAA6Co2U,GACnF,kBAAoB,IAAK,CAAEp2U,UAAW,8CAAgDq2U,IAC1F,kBAAoB,MAAO,CAAEr2U,UAAW,sCACpC,kBAAoB,IAAK,CAAEA,UAAW,2CAA6Cs2U,GACnF,kBAAoB,IAAK,CAAEt2U,UAAW,8CAAgDu2U,IAC1F,kBAAoB,MAAO,CAAEv2U,UAAW,sCACpC,kBAAoB,IAAK,CAAEA,UAAW,2CAA6Cw2U,GACnF,kBAAoB,IAAK,CAAEx2U,UAAW,8CAAgDy2U,QAbxEC,EAsBO3lJ,EAtBgB4+H,EAsBN8G,EAtBkBkgB,EAsBFllJ,EAtBgC,kBAAoB,MAAO,CAAEzxL,UAAW,gDAC3H,kBAAoB,MAAO,CAAEA,UAAW,kDACnCmrO,GAAgBF,IAAkB,kBAAoB,KAAK,CAAEjrO,UAAW,qCAAsC4C,IAAK8zU,EAAuB5yR,IAAK6yR,IAChJxnG,GAAgB,kBAAoB,KAAK,CAAEnvO,UAAW,qCAAsC4C,IAAK+sT,EAAY7rQ,IAAK6yR,WAHrG,IAACD,EAAuB/mB,EAAYgnB,EAItBP,EAAgBC,EAAmBC,EAAiBC,EAAoBC,EAAgBC,EAP/F73E,EAAiBu3E,EAA0Bn3E,EAD/Ck3E,EAAYH,EAAWC,EAAoBC,CA0BE,ECrC5DW,GAAoB,EAAGrzT,QAAOk6B,WAAUrhC,OAAMy6T,eAAcC,mBAAkBhgS,kBAAiBo7N,wBACxG,MAAM,QAAEjyN,IAAY,SAAUnJ,GACxBs7N,EAAyBF,IAAqB,SAA6BA,GAC3EG,EAAsBD,EACtB,IAAIA,IACJ,GACA69D,EAAc6G,EAAmB,OAAOA,KAAsB,OACpE,OAAQ,kBAAoB,KAAa,CAAEhgS,gBAAiBmJ,EAASjgD,UAAWqyQ,GAC5E,kBAAoB,KAAW,CAAEryQ,UAAWqyQ,GACxC,kBAAoB,UAAW,CAAEryQ,UAAW,sBAAuBf,MAAO,CAClE,yBAA0BgxU,IAE9B,kBAAoB,SAAU,CAAEjwU,UAAW,qCACvC,kBAAoB,KAAM,CAAEA,UAAW,8BAAgCujB,GACvE,kBAAoB,MAAO,CAAEvjB,UAAW,gCAAiCm+C,wBAAyB,CAC1FC,OAAQX,GAAY,MAE5B,kBAAoB,MAAO,CAAEz9C,UAAW,6BAA+Boc,IAC3E,kBAAoB,MAAO,CAAEpc,UAAW,+BACpC,kBAAoB,MAAO,CAAE4C,IAAKi0U,EAAc/yR,IAAKvgC,OAAa,ECnBzEwzT,GAAmB,EAAGxzT,QAAOu2B,WAAUk9R,cAAaC,eAAcC,gBAAez4R,aAAYu1I,aAAYl9I,kBAAiBo7N,wBACnI,MAAM,QAAEjyN,EAAO,UAAEoS,IAAc,SAAUvb,GACnCs7N,EAAyBF,IAAqB,SAA6BA,GAC3EG,EAAsBD,EACtB,IAAIA,IACJ,GACN,OAAQ,kBAAoB,KAAa,CAAEt7N,gBAAiBmJ,EAASjgD,UAAWqyQ,GAC5E,kBAAoB,KAAW,CAAEryQ,UAAWqyQ,GACxC,kBAAoB,MAAO,CAAEryQ,UAAW,uBAAwBf,MAAO,CAAE,eAAgB,GAAGozD,MACxF,kBAAoB,MAAO,CAAEryD,UAAW,kCAAmC4C,IAAKo0U,IAChF,kBAAoB,MAAO,CAAEh3U,UAAW,mCAAoC4C,IAAKq0U,IACjF,kBAAoB,MAAO,CAAEj3U,UAAW,yCACpC,kBAAoB,KAAM,CAAEA,UAAW,+BAAiCujB,GACxE,kBAAoB,MAAO,CAAEvjB,UAAW,kCAAoC85C,GAC5E,kBAAoB,KAAU,CAAE7D,KAAMwI,EAAYjH,OAAQ,gCAAkCw8I,IAChG,kBAAoB,MAAO,CAAEh0L,UAAW,oCAAqC4C,IAAKs0U,MAAoB,ECjBzGC,GAAc,EAAGC,iBAAmB,kBAAoB,MAAO,CAAEp3U,UAAW,gBAAkBo3U,GACvGA,EAAYzrU,KAAI,CAAC4zB,EAAM9lC,IAAO,kBAAoB,IAAK,CAAEuG,UAAW,qBAAsBmG,IAAK1M,EAAGw8C,KAAM1W,EAAK8xJ,SAAU7xL,OAAQ,SAAUy1I,IAAK,cAC1I,kBAAoB,KAAK,CAAEj1I,UAAW,qBAAsB4C,IAAK28B,EAAK+xJ,QAASxtI,IAAKvkB,EAAKgyJ,cCHpF8lJ,GAAc,EAAGlmJ,mBAC1B,MAAMmmJ,GAAqB,IAAAx4U,cAAa8gC,IACX,CAAC,YAAa,QAAS,WAC/BtgC,SAAQqtD,GAAkB/sB,EAAQgtB,cAAc,IAAIC,WAAWF,EAAgB,CAC5FlS,KAAM//C,OACNoyD,SAAS,EACTC,YAAY,EACZC,QAAS,MACT,GACL,IACGR,GAAsC,IAAA1tD,cAAak8B,IACrD,MAAM3J,EAAK2J,EAAMx7B,OAAOitD,QAAQ,KAChC,GAAIp7B,GAAM2J,EAAM0xB,cAAclqC,SAAS6O,GAAK,CACxC,MAAMuO,EAAUn+B,SAASo0B,cAAc,0BACvCyhT,EAAmB13S,EACvB,IACD,CAAC03S,IACJ,OAAO,kBAAoB,MAAO,KAC9B,kBAAoB,MAAO,CAAEt3U,UAAW,uCACpC,kBAAoB,MAAO,CAAEA,UAAW,sBAAuBm+C,wBAAyB,CAChFC,OAAQ+yI,GAAgB,OAEpC,kBAAoB,MAAO,CAAEnxL,UAAW,6BACpC,kBAAoB,MAAO,CAAEA,UAAW,sBAAuBuc,QAASiwC,EAAqCrO,wBAAyB,CAC9HC,OAAQ+yI,GAAgB,OACtB,ECtBTomJ,GAAwB,EAAGzrR,OAAMsrR,cAAaI,iBAAoB,kBAAoB,MAAO,CAAEx3U,UAAW,4BACnH,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoBsnD,EAAA,EAAM,CAAErD,SAAU6H,EAAKmlI,aAAcntI,IAAKgI,EAAKolI,aAAc3pI,SAAUuE,EAAKvE,YACpGiwR,GAAarmJ,cAAiB,kBAAoB,MAAO,CAAEnxL,UAAW,0CAClE,kBAAoBq3U,GAAa,CAAElmJ,aAAcqmJ,GAAarmJ,gBAClE,kBAAoBgmJ,GAAa,CAAEC,YAAaA,KCPvCK,GAAsB,EAAGl0T,QAAO6tK,QAAO65B,UAAY,kBAAoB,MAAO,CAAEjrN,UAAW,yBACpG,kBAAoB,KAAM,CAAEA,UAAW,gCAAkCujB,GACzE,kBAAoB,KAAM,CAAEvjB,UAAW,qCAAuCoxL,EAAMzlL,KAAI,CAACqlB,EAAM8V,IAAW,kBAAoB,KAAM,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,+BACzJ,kBAAoB,KAAK,CAAE4C,IAAKouB,EAAK0mT,cAAe5zR,IAAK9yB,EAAK2mT,oBAClE1sH,GAAS,kBAAoB,MAAO,CAAEjrN,UAAW,8BAA+Bm+C,wBAAyB,CACjGC,OAAQ6sK,MCNP2sH,GAAgB,EAAGrhS,OAAMN,OAAMgO,WAAUtM,gBAAe,MACjE,MAAMn4C,EAASm4C,EAAe,cAAW9wC,EACnCouI,EAAMt9F,EAAe,kBAAe9wC,EAC1C,OAAQ,kBAAoB,IAAK,CAAE7G,UAAW,kBAAmBi2C,KAAMA,EAAMz2C,OAAQA,EAAQy1I,IAAKA,GAAOhxF,EAAW,kBAAoB,MAAO,CAAErhD,IAAKqhD,EAAUH,IAAKvN,IAAUA,EAAM,ECF5KshS,GAAmB,EAAGt0T,QAAOivK,WAAa,kBAAoB,UAAW,CAAExyL,UAAW,sBAC/F,kBAAoB,KAAM,CAAEA,UAAW,6BAA+BujB,GACtE,kBAAoB,KAAM,CAAEvjB,UAAW,6BAA+BwyL,EAAM7mL,KAAI,CAACy5C,EAAMte,IAAW,kBAAoB,KAAM,CAAE3gC,IAAK2gC,EAAO9mC,UAAW,4BACjJ,kBAAoB43U,GAAe,CAAErhS,KAAM6O,EAAK7O,KAAMN,KAAMmP,EAAKnP,KAAMgO,SAAUmB,EAAKnB,SAAUtM,aAAcyN,EAAKzN,oBCH9GmgS,GAAgB,EAAGC,iBAAmB,kBAAoB,MAAO,CAAE/3U,UAAW,qBAAuB+3U,EAAYpsU,KAAI,CAAC+4C,EAAS5d,IAAW,kBAAoB+wS,GAAkB,CAAE1xU,IAAK2gC,EAAOvjB,MAAOmhC,EAAQnhC,MAAOivK,MAAO9tI,EAAQ8tI,WCInOwlJ,GAAa,EAAGC,wBAAuBC,sBAAqBC,wBAAuBC,YAAWthS,kBAAiBuhS,aAAY,EAAMC,uBAA0B,kBAAoB,KAAa,CAAExhS,gBAAiBA,EAAiB92C,UAAW,oBACpP,kBAAoB,MAAO,CAAEA,UAAW,iBACpCq4U,GAAaC,GAAsB,kBAAoBvB,GAAkB,CAAExzT,MAAO+0T,EAAkB/0T,MAAOu2B,SAAUw+R,EAAkBx+R,SAAUk9R,YAAasB,EAAkBtB,YAAaC,aAAcqB,EAAkBrB,aAAcC,cAAeoB,EAAkBpB,cAAez4R,WAAY65R,EAAkB75R,WAAYu1I,WAAYskJ,EAAkBtkJ,WAAYl9I,gBAAiBwhS,EAAkBxhS,gBAAiBo7N,kBAAmBomE,EAAkBpmE,oBACxc,kBAAoB,KAAW,CAAElyQ,UAAW,oBACxC,kBAAoBu3U,GAAuB,CAAEzrR,KAAMmsR,EAAsBnsR,KAAMsrR,YAAaa,EAAsBb,YAAaI,YAAaS,EAAsBT,eACtK,kBAAoB,KAAW,CAAEx3U,UAAW,oBAAsB4H,MAAMC,QAAQqwU,EAAoB9mJ,QAAU,kBAAoBqmJ,GAAqB,CAAEl0T,MAAO20T,EAAoB30T,MAAO6tK,MAAO8mJ,EAAoB9mJ,MAAO65B,KAAMitH,EAAoBjtH,QACvP,kBAAoB,KAAW,CAAEjrN,UAAW,oBACxC,kBAAoB83U,GAAe,CAAEC,YAAaI,EAAsBJ,eAC5E,kBAAoB,KAAW,CAAE/3U,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,4BAA6Bm+C,wBAAyB,CAAEC,OAAQg6R,QCdvGG,GAAuB,EAAG10R,UAAS5jD,WAAUmkU,oBAAmBpkU,eACpE6jD,EAGG,kBAAoB,IAAK,CAAE7jD,UAAWA,EAAWi2C,KAAM4N,EAASrkD,OAAQ4kU,EAAoB,cAAWv9T,EAAWouI,IAAKmvL,EAAoB,aAAe,IAAMnkU,GAF7J,kBAAoB,aAAgB,KAAM,YCC5Cu4U,GAAwB,EAAGlnJ,UAAS7zI,WAAUl6B,QAAOq5R,iBAAgBumB,mBAAkB5xI,UAAS1tI,UAASsvI,WAAUixI,qBAAoB,KAAc,kBAAoB,MAAO,CAAEpkU,UAAW,4BAA6Bf,MAAO,CACtO,uBAAwBkkU,EACxB,qBAAsBvmB,IAE1B,kBAAoBl1F,GAAO,CAAE9kN,IAAK0uL,EAASxtI,IAAKytI,EAASvxL,UAAW,oCACpEy9C,GAAa,kBAAoB,MAAO,CAAEz9C,UAAW,sCAAuCm+C,wBAAyB,CAC7GC,OAAQX,KAEhB,kBAAoB86R,GAAsB,CAAEv4U,UAAW,wCAAyC6jD,QAASA,EAASugR,kBAAmBA,GACjI,kBAAoBlmR,GAAA,EAAS,CAAE1G,OAAQ,YAAax3C,UAAW,oCAAsCujB,IACzGsgC,GAAWsvI,GAAa,kBAAoB,MAAO,CAAEnzL,UAAW,mCAC5D,kBAAoBu4U,GAAsB,CAAE10R,QAASA,EAASugR,kBAAmBA,GAAqBjxI,KCXjGslJ,GAA4B,EAAGl1T,QAAOk6B,WAAU6wL,QAAOx3L,kBAAiBi9I,YAAWw1B,qBAAoB6C,eAAc5tK,iBAAoB,kBAAoB,KAAa,CAAEx+C,UAAW,mBAAoB82C,gBAAiBA,GACrO,kBAAoB,KAAW,CAAE92C,UAAW,oBACxC,kBAAoB,MAAO,CAAEA,UAAW,kCACpCujB,GAAS,kBAAoB,KAAM,CAAEvjB,UAAW,WAAaujB,GAC7Dk6B,GAAY,kBAAoB,IAAK,KAAMA,GAC3C,kBAAoB,MAAO,CAAEz9C,UAAW,yCAA2C4H,MAAMC,QAAQymO,IAC7FA,EAAM3iO,KAAI,CAAC4iO,EAAMznM,IAAW,kBAAoB0xS,GAAuB,CAAEryU,IAAK2gC,EAAOwqJ,QAASi9C,EAAKj9C,QAASC,QAASg9C,EAAKh9C,QAAShuK,MAAOgrN,EAAKhrN,MAAOk6B,SAAU8wL,EAAK9wL,SAAUm/P,eAAgBruE,EAAKquE,eAAgBumB,iBAAkB50F,EAAK40F,iBAAkBhwI,SAAUo7C,EAAKp7C,SAAUtvI,QAAS0qL,EAAK1qL,QAASugR,kBAAmB71F,EAAK61F,uBACzU5lR,GAAgB,kBAAoB,KAAU,CAAEvI,KAAM89I,EAAWp8I,aAAc4xK,EAAoB/xK,OAAQ40K,EAAcv0K,gBAAgB,GAAQ2G,MCRhJk6R,GAA2B,EAAGxJ,eAAczxR,WAAUl6B,WAAa,kBAAoB,MAAO,CAAEvjB,UAAW,iCACpH,kBAAoB,MAAO,CAAEA,UAAW,+CACpC,kBAAoB0nN,GAAO,CAAE9kN,IAAKssU,EAAcprR,IAAKorR,KACzD,kBAAoB,MAAO,CAAElvU,UAAW,8CACpC,kBAAoBk+C,GAAA,EAAS,CAAE1G,OAAQ,sBAAwBj0B,GAC/D,kBAAoB,IAAK,CAAEvjB,UAAW,WAAay9C,KCJ9Ck7R,GAAwB,EAAGrqG,QAAO7wL,WAAUl6B,QAAOuzB,kBAAiBupN,iBAAgBu4E,oBAAmBp7B,aAAa,SAAUH,gBAAgB,UAAWnrC,wBAClK,MAAM,QAAEjyN,IAAY,SAAUnJ,GACxBs7N,GAAyB,SAA6BF,GACtDG,GAAsB,SAA0BD,GACtD,OAAQ,kBAAoB,MAAO,CAAEpyQ,UAAW,8BAC5C,kBAAoB,KAAa,CAAEA,UAAWqyQ,EAAqBv7N,gBAAiBmJ,GAChF,kBAAoB,KAAW,CAAEjgD,UAAWqyQ,GACxC,kBAAoB,MAAO,CAAEryQ,UAAW,2CACpC,kBAAoB,MAAO,CAAEA,UAAW,eAAgBm+C,wBAAyB,CACzEC,OAAQ76B,GAAS,IAClBtkB,MAAO,CAAE,yBAA0BohQ,EAAgB,qBAAsBm9C,KAChF,kBAAoB,MAAO,CAAEx9S,UAAW,YAAaf,MAAO,CAAE,4BAA6B25U,EAAmB,wBAAyBv7B,GAAiBl/P,wBAAyB,CACzKC,OAAQX,GAAY,OAEhC,kBAAoB,MAAO,CAAEz9C,UAAW,4CAA8C4H,MAAMC,QAAQymO,IAAUA,EAAM3iO,KAAK4iO,GAAU,kBAAoBmqG,GAA0B,CAAEvyU,IAAK,SAASooO,EAAKhrN,WAAYgrN,SAAc,ECjBnOsqG,GAAa,EAAGnlR,QAAOxuD,OAAM4zU,cAAaC,oBAAmBC,mBAAkBC,0BAAyB5qE,eAAc7vN,cAAa06R,WAAUC,aAAYC,oBAAsB,kBAAoB,OAAQ,CAAEp5U,UAAW,mBAAoBk5U,SAAUA,GAC/P,kBAAoB,OAAQ,KACxB,kBAAoB,QAAS,CAAE18T,SAAU6xP,EAAcj1Q,MAAO8L,EAAM4I,KAAM,OAAQ5I,KAAM,OAAQmyB,GAAI,OAAQzC,OAAQwkT,EAAgB7tT,YAAaytT,IACjJG,GAAYj0U,MAAQ,kBAAoB,IAAK,CAAElF,UAAW,cAAgBm5U,EAAWj0U,OACzF,kBAAoB,OAAQ,KACxB,kBAAoB,QAAS,CAAEsX,SAAU6xP,EAAcj1Q,MAAOs6D,EAAO5lD,KAAM,OAAQ5I,KAAM,QAASmyB,GAAI,QAASzC,OAAQwkT,EAAgB7tT,YAAawtT,IACpJI,GAAYzlR,OAAS,kBAAoB,IAAK,CAAE1zD,UAAW,cAAgBm5U,EAAWzlR,QAC1F,kBAAoB,OAAQ,KACxB,kBAAoB,QAAS,CAAEl3C,SAAU6xP,EAAcj1Q,MAAO0/U,EAAahrU,KAAM,OAAQ5I,KAAM,cAAemyB,GAAI,cAAezC,OAAQwkT,EAAgB7tT,YAAa0tT,IACtKE,GAAYL,aAAe,kBAAoB,IAAK,CAAE94U,UAAW,cAAgBm5U,EAAWL,cAChG,kBAAoB,SAAU,CAAEhrU,KAAM,UAAY0wC,ICTzCsxN,GAAU,EAAGupE,eAAcC,mBAAkBC,wBAA0B,kBAAoB,MAAO,CAAEv5U,UAAW,mBACxH,kBAAoB,MAAO,CAAEA,UAAW,kCACpC,kBAAoB,IAAK,CAAEA,UAAW,iBAAmBq5U,GACzD,kBAAoB,KAAU,CAAE98T,QAAS+8T,EAAkB9hS,OAAQ,iBAAmB+hS,KCCxFC,GAAkB,CACpBt0U,KAAM,CACF9L,MAAO,GACPwqG,SAAS,GAEblwC,MAAO,CACHt6D,MAAO,GACPwqG,SAAS,GAEbk1O,YAAa,CACT1/U,MAAO,GACPwqG,SAAS,IAGX61O,GAAmB,CACrB/lR,WAAO7sD,EACPiyU,iBAAajyU,EACb3B,UAAM2B,GAEG6yU,GAAiB,EAAGj8R,WAAUl6B,QAAOo2T,WAAUn7R,cAAa6hN,iBAAgBm9C,aAAYo8B,gBAAehB,oBAAmB9hS,kBAAiBo7N,oBAAmB4gE,qBAAoB+G,kBAAiBC,kBAAiBC,qBAAoBC,iBAAgBX,eAAcE,qBAAoB5qE,aAAYsrE,oBAAmBC,yBAClU,MAAO7lP,EAAUs5K,GAAe,aAAe6rE,KACxCz6R,EAAW4/Q,IAAgB,IAAAnkU,WAAS,IACpC2/U,EAAYC,IAAiB,IAAA5/U,UAASi/U,KACtCY,EAAqBC,IAA0B,IAAA9/U,UAAS6+U,IACzD,QAAEp5R,IAAY,SAAUnJ,GACxBs7N,GAAyB,SAA6BF,GACtDG,GAAsB,SAA0BD,GAChDmoE,GAAc,IAAAz7U,cAAY,CAAC07U,EAAQphV,KACrC,IAAIqhV,EACJ,MAAe,SAAXD,GACAC,GAAY,SAAYrhV,GACnBqhV,GAILL,GAAez5R,IAAS,IAAMA,EAAMz7C,UAAM2B,MACnC4zU,IAJHL,GAAez5R,IAAS,IAAMA,EAAMz7C,KAAM80U,MACnCS,IAKA,UAAXD,GACAC,GAAY,SAAarhV,GACpBqhV,GAILL,GAAez5R,IAAS,IAAMA,EAAM+S,WAAO7sD,MACpC4zU,IAJHL,GAAez5R,IAAS,IAAMA,EAAM+S,MAAOmmR,MACpCY,KAKfA,GAAY,SAAarhV,GACpBqhV,GAILL,GAAez5R,IAAS,IAAMA,EAAMm4R,iBAAajyU,MAC1C4zU,IAJHL,GAAez5R,IAAS,IAAMA,EAAMm4R,YAAagB,MAC1CW,GAGK,GACjB,CAACZ,EAAiBG,EAAgBF,IAC/BY,GAAkB,IAAA57U,cAAak8B,IACjC,MAAM5hC,EAAQ4hC,EAAMx7B,OAAOpG,MACrBohV,EAASx/S,EAAMx7B,OAAO63B,GACtBusE,EAAU22O,EAAYC,EAAQphV,GACpCu0Q,GAAawM,IAAa,IACnBA,EACH,CAACqgE,GAAS,CACNphV,QACAwqG,cAEL,GACJ,CAAC22O,IACE/rE,EAA2B,iBAAkB,KAC/C,MAAME,EAAkB,IAAI56K,SAC5B,IAAK,MAAM3tF,KAAOkuF,EACF,aAARluF,EACAuoQ,EAAgB/7K,OAAOxsF,EAAKkuF,EAASluF,GAAK/M,OAG5Bi7F,EAASluF,GACjB7G,SAAS4sE,IACXwiM,EAAgB/7K,OAAO,WAAYzmB,EAAK,IAKpD,OADAyiM,GAAcD,EAAgB/7K,OAAO,aAAcg8K,GAC5CD,CAAe,GACvB,CAACC,EAAYt6K,IACV26K,EAAc,iBAAkB1uN,UAClCq+Q,GAAa,GACb2b,EAAuBJ,GACvB,MAAMxrE,EAAkBF,IACxB,IAKqB,aAJD3tN,MAAM,kBAAmB,CACrC1H,OAAQ,OACR92B,KAAMqsP,KAEJ5pQ,OACFw1U,EAAuBjB,GAGvBiB,EAAuBL,EAE/B,CACA,MACIK,EAAuBL,EAC3B,IACD,CAACzrE,EAA0ByrE,EAAmBZ,EAAca,IACzD7wE,GAAe,IAAAvqQ,cAAYwhD,MAAOtlB,IAEpC,GADAA,EAAMvb,iBACFs/B,EACA,OAEJ,IAAI47R,GAAY,EAChB,MAAMC,EAAc1hV,OAAOiM,KAAK,GAChCy1U,EAAYt7U,SAASiqR,IACZl1L,EAASk1L,GAAW3lL,UACrB+2O,GAAY,EAChB,IAEJC,EAAYt7U,SAASlD,GAAOm+U,EAAYn+U,EAAGi4F,EAASj4F,GAAGhD,SAClDuhV,IAGDA,SACM3rE,IAEVrB,EAAY6rE,IACZY,EAAcX,IAAiB,GAChC,CAACplP,EAAUkmP,EAAax7R,EAAWiwN,IAChC6rE,GAAwB,IAAA/7U,cAAY,KACtC6/T,GAAc5/Q,EAAU,GACzB,CAACA,IACE+7R,GAAuB,IAAAh8U,cAAak8B,IACtC,MAAM5hC,EAAQ4hC,EAAMx7B,OAAOpG,MACrBohV,EAASx/S,EAAMx7B,OAAO63B,GAC5BkjT,EAAYC,EAAQphV,EAAM,GAC3B,CAACmhV,IACJ,OAAQ,kBAAoB,MAAO,CAAEv6U,UAAW,qBAAsBf,MAAO,CAAE,yBAA0B,OAAO6zU,MAAyBz7S,GAAI,+BACzI,kBAAoB,KAAa,CAAEr3B,UAAWqyQ,EAAqBv7N,gBAAiBmJ,GAChF,kBAAoB,KAAW,CAAEjgD,UAAWqyQ,GACxC,kBAAoB,MAAO,CAAEryQ,UAAW,iBACpC,GAAe,kBAAoB8vQ,GAAS,CAAEwpE,iBAAkBuB,EAAuBxB,aAAcgB,EAAqBd,mBAAoBA,IAC9I,kBAAoB,MAAO,CAAEv5U,UAAW,8BACpCujB,GAAS,kBAAoB26B,GAAA,EAAS,CAAEl+C,UAAW,aAAcf,MAAO,CAAE,yBAA0BohQ,EAAgB,qBAAsBm9C,IAAgBj6R,GAC1J,kBAAoB,IAAK,CAAEvjB,UAAW,yBAA0Bf,MAAO,CAAE,4BAA6B25U,EAAmB,wBAAyBgB,IAAmBn8R,IACzK,kBAAoBo7R,GAAY,CAAEM,WAAYgB,EAAYjB,SAAU7vE,EAAcnkQ,KAAMmvF,EAASnvF,KAAK9L,MAAOs6D,MAAO2gC,EAAS3gC,MAAMt6D,MAAO0/U,YAAazkP,EAASykP,YAAY1/U,MAAO2/U,kBAAmBY,EAASZ,kBAAmBC,iBAAkBW,EAASX,iBAAkBC,wBAAyBU,EAASV,wBAAyB5qE,aAAcqsE,EAAiBl8R,YAAaA,EAAa46R,eAAgB0B,OAA4B","sources":["webpack://tmv2-components/webpack/universalModuleDefinition","webpack://tmv2-components/./.yarn/__virtual__/@rive-app-react-canvas-virtual-e8c2532ed6/0/cache/@rive-app-react-canvas-npm-4.18.2-1fb7e9d392-3e336d385d.zip/node_modules/@rive-app/react-canvas/dist/index.js","webpack://tmv2-components/./.yarn/__virtual__/lottie-react-virtual-68ea195aa1/0/cache/lottie-react-npm-2.4.0-d4d95c55aa-e9ea4a89be.zip/node_modules/lottie-react/build/index.umd.js","webpack://tmv2-components/./.yarn/__virtual__/react-datepicker-virtual-1712aa058a/0/cache/react-datepicker-npm-4.25.0-c8fd6182e9-c619dc2ed1.zip/node_modules/react-datepicker/dist/react-datepicker.min.js","webpack://tmv2-components/./.yarn/__virtual__/react-onclickoutside-virtual-79f0dfee1e/0/cache/react-onclickoutside-npm-6.13.1-46b6ae9d3f-6c5727bfcd.zip/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","webpack://tmv2-components/./.yarn/__virtual__/react-popper-virtual-9b54828460/0/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip/node_modules/react-popper/lib/esm/Manager.js","webpack://tmv2-components/./.yarn/__virtual__/react-popper-virtual-9b54828460/0/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip/node_modules/react-popper/lib/esm/utils.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/math.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/enums.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/createPopper.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/debounce.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/within.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/popper.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://tmv2-components/./.yarn/cache/@popperjs-core-npm-2.11.8-f1692e11a0-e5c69fdebf.zip/node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://tmv2-components/./.yarn/__virtual__/react-popper-virtual-9b54828460/0/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip/node_modules/react-popper/lib/esm/usePopper.js","webpack://tmv2-components/./.yarn/__virtual__/react-popper-virtual-9b54828460/0/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip/node_modules/react-popper/lib/esm/Popper.js","webpack://tmv2-components/./.yarn/__virtual__/react-popper-virtual-9b54828460/0/cache/react-popper-npm-2.3.0-1045578379-837111c987.zip/node_modules/react-popper/lib/esm/Reference.js","webpack://tmv2-components/./src/Components/AlphabetList/AlphabetListItem/AlphabetListItem.tsx","webpack://tmv2-components/./src/Components/AlphabetList/AlphabetList.tsx","webpack://tmv2-components/./src/Components/svgIcons/ButtonV2Icons.tsx","webpack://tmv2-components/./src/Components/ButtonV2/ButtonV2.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/SearchInput/SearchInput.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/SearchResults/SearchResultItem/stripHTML.ts","webpack://tmv2-components/./src/Components/GlobalSearch/fetchSearchResults.ts","webpack://tmv2-components/./src/Components/GlobalSearch/NoResults/NoResults.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/SearchResults/SearchResultItem/SearchResultItem.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/SearchResults/SearchResults.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/useGlobalSearchNavigation.ts","webpack://tmv2-components/./src/Components/GlobalSearch/ContactUs/Contacts.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/ContactUs/CreateAccount.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/ContactUs/ContactUs.tsx","webpack://tmv2-components/./src/Components/GlobalSearch/GlobalSearch.tsx","webpack://tmv2-components/./src/Components/Header/MobileTrigger/MobileTrigger.tsx","webpack://tmv2-components/./src/Components/Header/ClickWrapper.tsx","webpack://tmv2-components/./src/Components/Header/Navigation/NavDropdown/NavDropdown.tsx","webpack://tmv2-components/./src/Components/Header/Navigation/NavDropdown/loginAction/LoginButtons.tsx","webpack://tmv2-components/./src/Components/Header/viewHeaders/SearcherWidgets.tsx","webpack://tmv2-components/./src/Components/Header/Navigation/NavDropdown/NavDropdownHover.tsx","webpack://tmv2-components/./src/Components/Header/Navigation/Navigation.tsx","webpack://tmv2-components/./src/Components/Header/NavigationWidgets/NavigationWidgets.tsx","webpack://tmv2-components/./src/Components/Header/SecondaryNavigation/SecondaryNavigation.tsx","webpack://tmv2-components/./src/Components/Header/viewHeaders/MobileHeader.tsx","webpack://tmv2-components/./src/Components/Header/viewHeaders/TabletHeader.tsx","webpack://tmv2-components/./src/Components/Header/viewHeaders/DesktopHeader.tsx","webpack://tmv2-components/./src/Components/Header/NavigationHeader/NavigationHeader.tsx","webpack://tmv2-components/./src/Components/Heading/Heading.tsx","webpack://tmv2-components/./src/Components/Img/BaseImg.tsx","webpack://tmv2-components/./src/Components/Img/Img.tsx","webpack://tmv2-components/./src/Components/Img/ResponsiveImg.tsx","webpack://tmv2-components/./src/Components/Img/ResponsiveImgDecorator.tsx","webpack://tmv2-components/./src/Components/JobBoard/JobBoardPagination/JobBoardPagination.tsx","webpack://tmv2-components/./src/Components/LoadingSpinner/LoadingSpinner.tsx","webpack://tmv2-components/./src/Components/Logo/Logo.tsx","webpack://tmv2-components/./src/Components/RiskWarningRibbon/RiskWarningRibbon.tsx","webpack://tmv2-components/./src/Components/StillHaveQuestionsItems/contactUs.utils.ts","webpack://tmv2-components/./src/Components/global/Containers/ContainerFW/ContainerFW.tsx","webpack://tmv2-components/./src/Components/global/Containers/Container/Container.tsx","webpack://tmv2-components/./src/Components/global/Grid/Col/Col.tsx","webpack://tmv2-components/./src/Components/global/Grid/Row/Row.tsx","webpack://tmv2-components/./src/Components/global/WidgetsContainer/WidgetsContainer.tsx","webpack://tmv2-components/./src/Components/svgIcons/CaretDown.tsx","webpack://tmv2-components/./src/Components/svgIcons/CaretUp.tsx","webpack://tmv2-components/./src/Components/svgIcons/GrayCheckMark.tsx","webpack://tmv2-components/./src/Components/svgIcons/GreenCheckIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/IconHamburger.tsx","webpack://tmv2-components/./src/Components/svgIcons/MultiplesSectorsIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/PlusIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/accountTypesTick.tsx","webpack://tmv2-components/./src/Components/svgIcons/chat.tsx","webpack://tmv2-components/./src/Components/svgIcons/chevron.tsx","webpack://tmv2-components/./src/Components/svgIcons/closeIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/darkStarSet.tsx","webpack://tmv2-components/./src/Components/svgIcons/downloadExternalIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/globe.tsx","webpack://tmv2-components/./src/Components/svgIcons/handIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconArrowLeft.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconCalendar.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconFb.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconFlame.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconIn.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconNoResults.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconTw.tsx","webpack://tmv2-components/./src/Components/svgIcons/magnifying.tsx","webpack://tmv2-components/./src/hooks/useMarketSentiment.ts","webpack://tmv2-components/./src/hooks/usePagination.ts","webpack://tmv2-components/./src/hooks/usePageViewStyle.ts","webpack://tmv2-components/./src/pageViewStyle/pageViewStyle.ts","webpack://tmv2-components/./src/utils/capitalizeString.ts","webpack://tmv2-components/./src/utils/checkIsNumber.ts","webpack://tmv2-components/./src/utils/duplicateArrayItems.ts","webpack://tmv2-components/./src/utils/getClassConditionalAppend.ts","webpack://tmv2-components/./src/utils/getColors.ts","webpack://tmv2-components/./src/utils/getContainerClassPerMaxWidth.ts","webpack://tmv2-components/./src/utils/getVideoType.ts","webpack://tmv2-components/./src/utils/handleLinkTarget.ts","webpack://tmv2-components/./src/utils/sanitizeUrl.ts","webpack://tmv2-components/./src/utils/validators.ts","webpack://tmv2-components/./.yarn/cache/@rive-app-canvas-npm-2.26.3-6a49e8e5e5-c4ee909183.zip/node_modules/@rive-app/canvas/rive.js","webpack://tmv2-components/./.yarn/cache/cross-fetch-npm-4.0.0-9c67668db4-ecca4f37ff.zip/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addDays/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addHours/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addMilliseconds/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addMinutes/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addMonths/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addQuarters/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addWeeks/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/addYears/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/constants/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/endOfDay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/endOfMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/endOfWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/endOfYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/format/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getDate/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getDay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getHours/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfISOWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getISOWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getISOWeekYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getMinutes/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getQuarter/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getSeconds/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getTime/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isAfter/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isBefore/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isDate/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isEqual/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isSameDay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isSameMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isSameQuarter/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isSameYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isValid/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/isWithinInterval/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/max/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/min/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parseISO/index.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/assign/index.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/Setter.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/Parser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/constants.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/utils.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/parse/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setHours/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setMinutes/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setQuarter/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setSeconds/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/setYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/set/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfDay/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfMonth/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfQuarter/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfWeek/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/startOfYear/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subDays/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subMilliseconds/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subMonths/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subQuarters/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subWeeks/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/subYears/index.js","webpack://tmv2-components/./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/esm/toDate/index.js","webpack://tmv2-components/./.yarn/cache/debounce-npm-1.2.1-b09266a260-682a89506d.zip/node_modules/debounce/index.js","webpack://tmv2-components/./.yarn/cache/lodash.throttle-npm-4.1.1-856641af92-129c0a28ce.zip/node_modules/lodash.throttle/index.js","webpack://tmv2-components/./.yarn/cache/lottie-web-npm-5.12.2-942dc9e22a-af5bc3bc40.zip/node_modules/lottie-web/build/player/lottie.js","webpack://tmv2-components/./.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/factoryWithThrowingShims.js","webpack://tmv2-components/./.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/index.js","webpack://tmv2-components/./.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://tmv2-components/./.yarn/cache/react-fast-compare-npm-3.2.2-45b585a872-2071415b4f.zip/node_modules/react-fast-compare/index.js","webpack://tmv2-components/./.yarn/cache/void-elements-npm-3.1.0-4f43780839-0390f81810.zip/node_modules/void-elements/index.js","webpack://tmv2-components/./.yarn/cache/warning-npm-4.0.3-291e921d6d-4f2cb6a957.zip/node_modules/warning/warning.js","webpack://tmv2-components/external umd \"React\"","webpack://tmv2-components/external umd \"ReactDOM\"","webpack://tmv2-components/./.yarn/cache/classnames-npm-2.5.1-c7273f3423-da424a8a6f.zip/node_modules/classnames/index.js","webpack://tmv2-components/./.yarn/cache/i18next-http-backend-npm-2.5.2-6cbbe5e7c3-6d99fb1b55.zip/node_modules/i18next-http-backend/esm/getFetch.cjs","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-74T7T5LL.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-B7OIQIGJ.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-BHJSY5WG.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-DCAKKOYV.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-GSRQSB3U.js","webpack://tmv2-components/./.yarn/cache/@dotlottie-common-npm-0.7.11-10268a235f-6ebe66289a.zip/node_modules/@dotlottie/common/dist/chunk-NZJZ4CCL.js","webpack://tmv2-components/webpack/bootstrap","webpack://tmv2-components/webpack/runtime/create fake namespace object","webpack://tmv2-components/webpack/runtime/load script","webpack://tmv2-components/webpack/runtime/amd options","webpack://tmv2-components/webpack/runtime/compat get default export","webpack://tmv2-components/webpack/runtime/define property getters","webpack://tmv2-components/webpack/runtime/ensure chunk","webpack://tmv2-components/webpack/runtime/get javascript chunk filename","webpack://tmv2-components/webpack/runtime/get mini-css chunk filename","webpack://tmv2-components/webpack/runtime/global","webpack://tmv2-components/webpack/runtime/hasOwnProperty shorthand","webpack://tmv2-components/webpack/runtime/make namespace object","webpack://tmv2-components/webpack/runtime/publicPath","webpack://tmv2-components/webpack/runtime/jsonp chunk loading","webpack://tmv2-components/./src/Components/Examples/Bye/Bye.tsx","webpack://tmv2-components/./src/Components/Examples/Hello/Hello.tsx","webpack://tmv2-components/./src/Components/Footer/SocialContacts/SocialContacts.tsx","webpack://tmv2-components/./src/Components/Footer/FooterBanner/FooterBanner.tsx","webpack://tmv2-components/./src/Components/TradingViewSmallButton/TradingViewSmallButton.tsx","webpack://tmv2-components/./src/Components/Footer/MainFooter/AccordionMenu/AccordionMenu.tsx","webpack://tmv2-components/./src/Components/Footer/MainFooter/MainFooter.tsx","webpack://tmv2-components/./src/Components/Footer/RiskWarning/RiskWarning.tsx","webpack://tmv2-components/./src/Components/Cards/WideRangeCardDeck/WideRangeCard/WideRangeCard.tsx","webpack://tmv2-components/./src/Components/Footer/ScrollToTopButton/ScrollToTopButton.tsx","webpack://tmv2-components/./src/Components/Banners/BellyBanner/BellyBanner.tsx","webpack://tmv2-components/./src/Components/svgIcons/chevronRight.tsx","webpack://tmv2-components/./src/Components/svgIcons/homeIcon.tsx","webpack://tmv2-components/./src/Components/Breadcrumbs/Breadcrumbs.tsx","webpack://tmv2-components/./src/Components/Banners/StaticBanner/StaticBanner.tsx","webpack://tmv2-components/./.yarn/cache/ssr-window-npm-4.0.2-01f9c0151e-df18260092.zip/node_modules/ssr-window/ssr-window.esm.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/utils.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/get-support.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/get-device.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/get-browser.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events-emitter.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateSize.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateSlides.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateAutoHeight.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateSlidesOffset.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateSlidesProgress.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateProgress.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateSlidesClasses.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateActiveIndex.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/update/updateClickedSlide.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/transition/transitionEmit.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideTo.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideToLoop.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideNext.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slidePrev.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideReset.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideToClosest.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onTouchStart.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onTouchMove.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onTouchEnd.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onResize.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onClick.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onScroll.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/process-lazy-preloader.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/onLoad.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/events/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/defaults.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/moduleExtendParams.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/core.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/getTranslate.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/setTranslate.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/minTranslate.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/maxTranslate.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/translate/translateTo.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/transition/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/transition/setTransition.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/transition/transitionStart.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/transition/transitionEnd.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/loop/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/loop/loopCreate.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/loop/loopFix.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/loop/loopDestroy.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/grab-cursor/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/breakpoints/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/check-overflow/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/classes/index.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/classes/addClasses.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/classes/removeClasses.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/modules/resize/resize.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/core/modules/observer/observer.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/create-element-if-not-defined.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/modules/navigation/navigation.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/classes-to-selector.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/modules/pagination/pagination.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/modules/autoplay/autoplay.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/effect-target.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/effect-init.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/utils.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/params-list.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/get-children.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/context.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/swiper.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/get-params.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/mount-swiper.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/get-changed-params.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/update-swiper.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/components-shared/update-on-virtual-data.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/virtual.js","webpack://tmv2-components/./.yarn/cache/swiper-npm-9.0.5-afb755771d-33c45c0d9e.zip/node_modules/swiper/react/swiper-slide.js","webpack://tmv2-components/./src/Components/Button/Button.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerSlider/HeroBanner/HeroBanner.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerSlider/HeroBannerSlider.tsx","webpack://tmv2-components/./src/Components/Banners/RibbonBanner/RibbonBanner.tsx","webpack://tmv2-components/./src/Components/Banners/ArticleBanner/ArticleBanner.tsx","webpack://tmv2-components/./src/Components/Banners/PressBanner/PressBanner.tsx","webpack://tmv2-components/./src/Components/Banners/SearchBanner/SearchBanner.tsx","webpack://tmv2-components/./src/Components/Banners/ContactsBanner/ContactsBanner.tsx","webpack://tmv2-components/./src/Components/Banners/RibbonBanner2/RibbonBanner2.tsx","webpack://tmv2-components/./src/Components/ImgV2/ImgV2.tsx","webpack://tmv2-components/./src/Components/Banners/RibbonBanner3/RibbonBanner3.tsx","webpack://tmv2-components/./src/Components/Banners/PaymentMethodsBanner/MethodImage/MethodImage.tsx","webpack://tmv2-components/./src/Components/Banners/PaymentMethodsBanner/PaymentMethodsBanner.tsx","webpack://tmv2-components/./src/Components/Banners/ErrorBanner/ErrorBanner.tsx","webpack://tmv2-components/./src/Components/ButtonSquare/ButtonSquare.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImages/HeroBannerWithImages.tsx","webpack://tmv2-components/./.yarn/__virtual__/react-intersection-observer-virtual-e02463a92c/0/cache/react-intersection-observer-npm-9.13.1-e97f4d95f9-92b3e7d929.zip/node_modules/react-intersection-observer/dist/index.mjs","webpack://tmv2-components/./src/Components/Banners/OptionalButtonBanner/OptionalButtonBanner.tsx","webpack://tmv2-components/./src/Components/Banners/OptionalButtonSectionBanner/OptionalButtonSectionBanner.tsx","webpack://tmv2-components/./src/Components/Banners/OptionalButtonSectionBanner2/OptionalButtonSectionBanner2.tsx","webpack://tmv2-components/./src/Components/svgIcons/browser.tsx","webpack://tmv2-components/./src/Components/svgIcons/smartphone.tsx","webpack://tmv2-components/./src/Components/svgIcons/app-store.tsx","webpack://tmv2-components/./src/Components/svgIcons/google-play.tsx","webpack://tmv2-components/./src/Components/Banners/AnimatedBanner/AnimatedBanner.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesAndTitle/HeroBannerWithImagesAndTitle.tsx","webpack://tmv2-components/./src/Components/Banners/OptionalButtonBannerWithAnimation/OptionalButtonBannerWithAnimation.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerImageRight/HeroBannerImageRight.tsx","webpack://tmv2-components/./src/Components/Banners/BreadcrumbsBanner/BreadcrumbsBanner.tsx","webpack://tmv2-components/./src/Components/Banners/BasicBannerWithChangingTextPosition/BasicBannerWithChangingTextPosition.tsx","webpack://tmv2-components/./src/Components/Banners/AcademyBanner/AcademyBanner.tsx","webpack://tmv2-components/./src/Components/Gaps/Gap/Gap.tsx","webpack://tmv2-components/./src/Components/Banners/BasicBanner/BasicBanner.tsx","webpack://tmv2-components/./src/Components/Banners/SimpleBanner/SimpleBanner.tsx","webpack://tmv2-components/./src/Components/Banners/AffiliateBanner/AffiliateBanner.tsx","webpack://tmv2-components/./.yarn/__virtual__/react-countdown-virtual-17203dba13/0/cache/react-countdown-npm-2.3.6-242ef27d9e-c322ce627a.zip/node_modules/react-countdown/dist/index.es.js","webpack://tmv2-components/./src/Components/Banners/CountdownBanner/CountdownBanner.tsx","webpack://tmv2-components/./src/Components/Banners/TradingViewBanner/TradingViewBanner.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesNew/HeroBannerWithImagesNew.tsx","webpack://tmv2-components/./src/Components/Banners/ThinkTraderMainBanner/ThinkTraderMainBanner.tsx","webpack://tmv2-components/./src/Components/Banners/TradingViewDownloadBanner/TradingViewDownloadBanner.tsx","webpack://tmv2-components/./src/Components/Banners/VideoBannerLP/VideoBannerLP.tsx","webpack://tmv2-components/./.yarn/__virtual__/@lottiefiles-dotlottie-react-virtual-bf30c5c02d/0/cache/@lottiefiles-dotlottie-react-npm-0.8.12-8753c9818c-cbccddf310.zip/node_modules/@lottiefiles/dotlottie-react/dist/index.js","webpack://tmv2-components/./src/Components/Banners/HomePageMainBanner/HomePageMainBanner.tsx","webpack://tmv2-components/./src/Components/Banners/MarketsBanner/MarketsBanner.tsx","webpack://tmv2-components/./src/Components/Banners/WebinarBanner/Person/Person.tsx","webpack://tmv2-components/./src/Components/Banners/WebinarBanner/WebinarBanner.tsx","webpack://tmv2-components/./src/Components/Banners/ThinkTraderAccountBanner/TTAccBannerButtonAndLink/TTAccBannerButtonAndLink.tsx","webpack://tmv2-components/./src/Components/Banners/ThinkTraderAccountBanner/ThinkTraderAccountBanner.tsx","webpack://tmv2-components/./src/Components/svgIcons/clock.tsx","webpack://tmv2-components/./src/Components/Banners/PodcastEpisodeBanner/PodcastEpisodeBanner.tsx","webpack://tmv2-components/./src/Components/Banners/SimpleTitleAndSubtitleBanner/SimpleTitleAndSubtitleBanner.tsx","webpack://tmv2-components/./src/Components/Banners/HeaderWithImgAndStatsBanner/StatsList/StatsList.tsx","webpack://tmv2-components/./src/Components/Banners/HeaderWithImgAndStatsBanner/HeaderWithImgAndStatsBanner.tsx","webpack://tmv2-components/./src/Components/Banners/StatsLineRibbonBanner/FeaturesList/FeaturesList.tsx","webpack://tmv2-components/./src/Components/Banners/StatsLineRibbonBanner/TrustPilotMiniBanner/TrustPilotMiniBanner.tsx","webpack://tmv2-components/./src/Components/Banners/StatsLineRibbonBanner/CheckOutButton/CheckOutButton.tsx","webpack://tmv2-components/./src/Components/Banners/StatsLineRibbonBanner/StatsLineRibbonBanner.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesHomeUplift/StatsValuesRibbon/StatsValuesRibbon.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesHomeUplift/ButtonSection/ButtonSection.tsx","webpack://tmv2-components/./src/Components/MediaViewerComponent/MediaViewerComponent.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesHomeUplift/AnimationSection/AnimationSection.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesHomeUplift/CryptoDisclaimer/CryptoDisclaimer.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesHomeUplift/HeroBannerWithImagesHomeUplift.tsx","webpack://tmv2-components/./src/Components/Banners/HeroBannerWithImagesAndAnimation/HeroBannerWithImagesAndAnimation.tsx","webpack://tmv2-components/./src/Components/ArticleInsert/ArticleInsert.tsx","webpack://tmv2-components/./src/Components/MeetOurCEO/MeetOurCEO.tsx","webpack://tmv2-components/./src/Components/svgIcons/Location.tsx","webpack://tmv2-components/./src/Components/svgIcons/timeClock.tsx","webpack://tmv2-components/./src/Components/JobBoard/JobBoard.tsx","webpack://tmv2-components/./src/Components/JobBoard/fetchData/fetchData.ts","webpack://tmv2-components/./src/Components/svgIcons/User.tsx","webpack://tmv2-components/./src/stories/Footer/Footer.tsx","webpack://tmv2-components/./src/Components/Header/NavigationWidgets/NavigationWidgets.props.mock.ts","webpack://tmv2-components/./src/Components/Header/Navigation/navigation.props.mock.ts","webpack://tmv2-components/./src/Components/Header/SecondaryNavigation/secondaryNavigationMock.props.mock.ts","webpack://tmv2-components/./src/Components/Footer/Footer.props.mock.ts","webpack://tmv2-components/./src/Components/Layout/Layout.tsx","webpack://tmv2-components/./src/Components/Cards/AccordionCardDeckWithImageV2/AccordionCardDeckWithImageV2.tsx","webpack://tmv2-components/./src/Components/svgIcons/smallArrowIcon.tsx","webpack://tmv2-components/./src/Components/Cards/DarkBackgroundCardDeckWithImage/DarkBackgroundCardDeckWithImage.tsx","webpack://tmv2-components/./src/Components/Cards/CardWithIconDeck/CardWithIcon/CardWithIcon.tsx","webpack://tmv2-components/./src/Components/Cards/CardWithIconDeck/CardWithIconDeck.tsx","webpack://tmv2-components/./src/Components/Cards/DarkNumberedCardDeck/DarkNumberedCard/DarkNumberedCard.tsx","webpack://tmv2-components/./src/Components/Cards/DarkNumberedCardDeck/DarkNumberedCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/InformationCardDarkDeck/InformationCardDark/InformationCardDark.tsx","webpack://tmv2-components/./src/Components/Cards/InformationCardDarkDeck/InformationCardDarkDeck.tsx","webpack://tmv2-components/./src/Components/Cards/PlatformInformationCardDeck/PlatformInformationCard/PlatformInformationCard.tsx","webpack://tmv2-components/./src/Components/Cards/PlatformInformationCardDeck/PlatformInformationCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/AccountCardDeck/AccountCard/AccountCard.tsx","webpack://tmv2-components/./src/Components/Cards/AccountCardDeck/AccountCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/VPSproviderCardDeck/VPSproviderCard/VPSproviderCard.tsx","webpack://tmv2-components/./src/Components/Cards/VPSproviderCardDeck/VPSproviderCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedCardDemoDeck/NumberedCardDemo/NumberedCardDemo.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedCardDemoDeck/NumberedCardDemoDeck.tsx","webpack://tmv2-components/./src/Components/Cards/GetHelpCardDeck/GetHelpCard/GetHelpCard.tsx","webpack://tmv2-components/./src/Components/Cards/GetHelpCardDeck/GetHelpCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/HotTopicCardDeck/HotTopicCard/HotTopicCard.tsx","webpack://tmv2-components/./src/Components/Cards/HotTopicCardDeck/HotTopicCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/BrokerRegulationCardDeck/BrokerRegulationCard/BrokerRegulationCard.tsx","webpack://tmv2-components/./src/Components/Cards/BrokerRegulationCardDeck/BrokerRegulationCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/NewsCardDeck/NewsCard/NewsCard.tsx","webpack://tmv2-components/./src/Components/EconomicCalendar/EconomicCalendar.tsx","webpack://tmv2-components/./src/Components/Cards/NewsCardDeck/TwitterFeedEmbed/TwitterFeedEmbed.tsx","webpack://tmv2-components/./src/Components/Cards/NewsCardDeck/NewsCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/AcademyArticleCardDeck/AcademyArticleCard/AcademyArticleCard.tsx","webpack://tmv2-components/./src/Components/Cards/AcademyArticleCardDeck/AcademyArticleCardDeckPool.tsx","webpack://tmv2-components/./src/Components/FilterAcademyCards/utils/query.utils.ts","webpack://tmv2-components/./src/Components/FilterAcademyCards/utils/windowLocation.ts","webpack://tmv2-components/./src/Components/FilterAcademyCards/utils/useHandleWindowLocationPage.ts","webpack://tmv2-components/./src/Components/Cards/AcademyArticleCardDeck/AcademyArticleCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/WideRangeCardDeck/WideRangeCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/YouTubeVideoEmbed/YouTubeVideoEmbed.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/YouTubeVideoEmbed/utils.ts","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/SimpleLightbox/ConditionalPortal.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/SimpleLightbox/SimpleLightbox.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/VideoCard/VideoCard.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeck/VideoCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeckWithPagination/VideoCardDeckWithPagination.tsx","webpack://tmv2-components/./src/Components/Cards/InformationCardDarkDeckAcademy/InformationCardDarkDeckAcademy.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckWithDifferentSize/CardDeckWithDifferentSize.tsx","webpack://tmv2-components/./src/Components/Cards/InstrumentCategoryDeck/InstrumentCategoryDeck.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedSwipeCardDeck/NumberedSwipeCard/NumberedSwipeCard.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedSwipeCardDeck/NumberedSwipeCard/variants/NumberedSwipeCard_AppDownload/NumberedSwipeCard_AppDownload.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedSwipeCardDeck/NumberedSwipeCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeckSlider/VideoCardDeckSliderCard/VideoCardDeckSliderCard.tsx","webpack://tmv2-components/./src/Components/Cards/VideoCardDeckSlider/VideoCardDeckSlider.tsx","webpack://tmv2-components/./src/Components/Cards/SellBuyPriceCardsDeck/SellBuyPriceCard/SellBuyPriceCard.tsx","webpack://tmv2-components/./.yarn/cache/pako-npm-2.1.0-78df11948c-7166654864.zip/node_modules/pako/dist/pako.esm.mjs","webpack://tmv2-components/./src/Components/Cards/SellBuyPriceCardsDeck/SellBuyPriceCardsDeck.tsx","webpack://tmv2-components/./src/Components/Cards/TwoCardsWithImages/CardWithImage.tsx","webpack://tmv2-components/./src/Components/Cards/TwoCardsWithImages/TwoCardsWithImages.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckWithTextsAndButtons/CardWithTexts.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckWithTextsAndButtons/CardDeckWithTextsAndButtons.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedListImageCardDeck/NumberedListImageCard/NumberedListImageCard.tsx","webpack://tmv2-components/./src/Components/Cards/NumberedListImageCardDeck/NumberedListImageCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/IconAndTitleCardDeck/IconAndTitleCard/IconAndTitleCard.tsx","webpack://tmv2-components/./src/Components/Cards/IconAndTitleCardDeck/IconAndTitleCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/IconAndTitleCardDeck2Rows/IconAndTitleCardDeck2Rows.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithIconText/CardsWithIconTextCard/CardsWithIconTextCard.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithIconText/CardsWithIconText.tsx","webpack://tmv2-components/./src/Components/Cards/ThinkTraderCardWithImage/ThinkTraderCardWithImage.tsx","webpack://tmv2-components/./src/Components/Cards/ThreeCardsLP/TheCard/TheCard.tsx","webpack://tmv2-components/./src/Components/Cards/ThreeCardsLP/ThreeCardsLP.tsx","webpack://tmv2-components/./src/Components/Cards/IconAndTitleCardSquaredDeck/IconAndTitleCardSquared/IconAndTitleSquaredCard.tsx","webpack://tmv2-components/./src/Components/Cards/IconAndTitleCardSquaredDeck/IconAndTitleCardSquaredDeck.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithHoverAnimation/CardWithHoverAnimation/CardWithHoverAnimation.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithHoverAnimation/CardsWithHoverAnimation.tsx","webpack://tmv2-components/./src/Components/Cards/TwoCardsWithImagesAndButton/CardWithImageAndButton/CardWithImageAndButton.tsx","webpack://tmv2-components/./src/Components/Cards/TwoCardsWithImagesAndButton/TwoCardsWithImagesAndButton.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithOutHoverAnimation/CardWithOutHoverAnimation/CardWithOutHoverAnimation.tsx","webpack://tmv2-components/./src/Components/Cards/CardsWithOutHoverAnimation/CardsWithOutHoverAnimation.tsx","webpack://tmv2-components/./src/Components/Cards/SectionWithThreeColumns/SectionWithThreeColumns.tsx","webpack://tmv2-components/./src/Components/Cards/CardsDeckWithSliderOnMobile/CardsDeckWithSliderOnMobile.tsx","webpack://tmv2-components/./src/Components/Cards/CardsDeckWithTitleAndSubSwiper/SingleCard/SingleCard.tsx","webpack://tmv2-components/./src/Components/Cards/CardsDeckWithTitleAndSubSwiper/CardsDeckWithTitleAndSubSwiper.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckWithImages/CardWithImageAndLabels/CardWithImageAndLabel.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckWithImages/CardDeckWithImages.tsx","webpack://tmv2-components/./src/Components/Cards/CardDeckGradientSwiper/CardDeckGradientSwiper.tsx","webpack://tmv2-components/./src/Components/Cards/AddressCardDeck/Cards/CardSwiper.tsx","webpack://tmv2-components/./src/Components/Cards/AddressCardDeck/AddressCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/InterchangeableImageCardDeck/InterchangeableImageCardDeck.tsx","webpack://tmv2-components/./src/Components/Cards/SmallAwardCardsDeck/MobileSmallAwardCard/MobileSmallAwardCard.tsx","webpack://tmv2-components/./src/Components/Cards/SmallAwardCardsDeck/SmallAwardCard/SmallAwardCard.tsx","webpack://tmv2-components/./src/Components/Cards/SmallAwardCardsDeck/SmallAwardCardsDeck.tsx","webpack://tmv2-components/./src/Components/Cards/MarketCard/MarketCard.tsx","webpack://tmv2-components/./.yarn/__virtual__/@dotlottie-react-player-virtual-1dc5e1d857/0/cache/@dotlottie-react-player-npm-1.6.19-961889956a-2b5dcd6f83.zip/node_modules/@dotlottie/react-player/dist/chunk-XVC7DH25.js","webpack://tmv2-components/./.yarn/__virtual__/@dotlottie-react-player-virtual-1dc5e1d857/0/cache/@dotlottie-react-player-npm-1.6.19-961889956a-2b5dcd6f83.zip/node_modules/@dotlottie/react-player/dist/chunk-ZAFYX2AB.js","webpack://tmv2-components/./src/Components/Cards/FeatureCardsSection/FeatureCard/FeatureCard.tsx","webpack://tmv2-components/./src/Components/Cards/FeatureCardsSection/FeatureCardsSection.tsx","webpack://tmv2-components/./src/Components/InstrumentSlider/InstrumentSlider.tsx","webpack://tmv2-components/./src/Components/PriceFeed/PriceFeed.tsx","webpack://tmv2-components/./src/Components/LargeImageSection/LargeImageSection.tsx","webpack://tmv2-components/./src/Components/InnovationBlockDemo/InnovationBlockDemo.tsx","webpack://tmv2-components/./src/Components/Cards/AccordionCardDeck/AccordionCard/AccordionCard.tsx","webpack://tmv2-components/./src/Components/FaqAccordion/FaqAccordionCard/FaqAccordionCard.tsx","webpack://tmv2-components/./src/Components/FaqAccordion/FaqAccordion.tsx","webpack://tmv2-components/./src/Components/DemoAccountTabsSlider/DemoAccountTabsSlider.tsx","webpack://tmv2-components/./src/Components/InnovationBlockThinkZero/InnovationBlockThinkZero.tsx","webpack://tmv2-components/./src/Components/Dropdown/Dropdown.tsx","webpack://tmv2-components/./src/Components/svgIcons/externalLink.tsx","webpack://tmv2-components/./src/Components/ButtonLink/ButtonLink.tsx","webpack://tmv2-components/./src/Components/PlatformComparison/PlatformCard/PlatformCard.tsx","webpack://tmv2-components/./src/Components/PlatformComparison/PlatformComparison.tsx","webpack://tmv2-components/./src/Components/AccountTypes/AccountCard/AccountCard.tsx","webpack://tmv2-components/./src/Components/AccountTypes/AccountTypes.tsx","webpack://tmv2-components/./src/Components/AccountTypesV2/AccountTypesV2.tsx","webpack://tmv2-components/./.yarn/__virtual__/@hcaptcha-react-hcaptcha-virtual-7e15198f61/0/cache/@hcaptcha-react-hcaptcha-npm-1.8.1-bedef890e5-01fcfe91bc.zip/node_modules/@hcaptcha/react-hcaptcha/dist/esm/utils.js","webpack://tmv2-components/./.yarn/__virtual__/@hcaptcha-react-hcaptcha-virtual-7e15198f61/0/cache/@hcaptcha-react-hcaptcha-npm-1.8.1-bedef890e5-01fcfe91bc.zip/node_modules/@hcaptcha/react-hcaptcha/dist/esm/index.js","webpack://tmv2-components/./.yarn/cache/@babel-runtime-npm-7.25.6-6725f0979a-ee1a69d3ac.zip/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://tmv2-components/./src/Components/ContactForm/ContactForm.tsx","webpack://tmv2-components/./src/Components/ContactForm/PartnershipForm.tsx","webpack://tmv2-components/./src/Components/StillHaveQuestionsItems/ContactItemContent.tsx","webpack://tmv2-components/./src/Components/StillHaveQuestionsItems/StillHaveQuestionItem.tsx","webpack://tmv2-components/./src/Components/ContactOptions/ContactOptions.tsx","webpack://tmv2-components/./src/Components/ContactForm/ContactUsWrapper.tsx","webpack://tmv2-components/./src/Components/svgIcons/Addplus.tsx","webpack://tmv2-components/./src/Components/svgIcons/Substract.tsx","webpack://tmv2-components/./src/Components/FaqAccordionList/FaqAccordionList.tsx","webpack://tmv2-components/./src/Components/Article/Article.tsx","webpack://tmv2-components/./src/Components/SupportSection/SupportSection.tsx","webpack://tmv2-components/./src/Components/PressArticle/PressArticle.tsx","webpack://tmv2-components/./src/Components/PopularQuestions/PopularQuestions.tsx","webpack://tmv2-components/./src/Components/FiltersRibbon/LayoutOptions/LayoutOptions.tsx","webpack://tmv2-components/./src/Components/FiltersRibbon/FiltersRibbon.tsx","webpack://tmv2-components/./src/Components/Filters/Checkboxes/Checkboxes.tsx","webpack://tmv2-components/./src/Components/Filters/Checkboxes/CheckboxesDatepicker.tsx","webpack://tmv2-components/./src/Components/Filters/Range/Range.tsx","webpack://tmv2-components/./src/Components/Filters/utils/filterUtils.ts","webpack://tmv2-components/./src/Components/Filters/Filters.tsx","webpack://tmv2-components/./src/Components/TradersGym/TradersGym.tsx","webpack://tmv2-components/./src/Components/AlphabetsSearch/AlphabetsSearchCard/AlphabetsSearchCard.tsx","webpack://tmv2-components/./src/Components/AlphabetsSearch/AlphabetsSearch.tsx","webpack://tmv2-components/./src/Components/CardsGridIconAndTitle/CardsGridIconAndTitle.tsx","webpack://tmv2-components/./src/Components/TradingGlossary/TradingGlossary.tsx","webpack://tmv2-components/./src/Components/SectionHeader/SectionHeader.tsx","webpack://tmv2-components/./src/Components/BrokerLocationMap/BrokerLocationMap.tsx","webpack://tmv2-components/./src/Components/svgIcons/ellipse.tsx","webpack://tmv2-components/./src/Components/LatestMarketNews/LatestMarketNews.tsx","webpack://tmv2-components/./src/Components/InstrumentsBuySellCardsBar/InstrumentsBuySellCardsBar.tsx","webpack://tmv2-components/./src/Components/FilterCards/FilterCards.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/FilterUIs/DropdownFilter/DropdownFilter.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/FilterUIs/TabsFilter/TabsFilter.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/ContractSpecsFilterSet/ContractSpecsFilterFactory/ContractSpecsFilterFactory.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/ContractSpecsFilterSet/ContractSpecsFilterSet.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/ToggleExpandCollapse/ToggleExpandCollapseButton/ToggleExpandCollapseButton.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/ToggleExpandCollapse/ToggleExpandCollapse.tsx","webpack://tmv2-components/./src/Components/ContractSpecsFilters/ContractSpecsFilters.tsx","webpack://tmv2-components/./src/Components/SearchRibbon/SearchRibbon.tsx","webpack://tmv2-components/./src/Components/TradingGlossarySearch/TradingGlossarySearch.tsx","webpack://tmv2-components/./.yarn/cache/html-parse-stringify-npm-3.0.1-5762cd4b01-334fdebd4b.zip/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/utils.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/unescape.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/defaults.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/i18nInstance.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/initReactI18next.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/context.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/useTranslation.js","webpack://tmv2-components/./.yarn/__virtual__/react-i18next-virtual-ac1f5fad26/0/cache/react-i18next-npm-14.1.1-3e536a2304-e1a00f82f3.zip/node_modules/react-i18next/dist/es/index.js","webpack://tmv2-components/./src/Components/ContractSpecs/AdditionalInformation/AdditionalInformation.tsx","webpack://tmv2-components/./src/Components/ContractSpecsTabs/ContractSpecsTable/ContractSpecsTable.tsx","webpack://tmv2-components/./src/utils/stripHtmlFromString.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/tabInitialization.utils.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/table.utils.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/instrumentTranslations.utils.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/ContractSpecsTabObj.ts","webpack://tmv2-components/./.yarn/cache/i18next-npm-23.11.4-2c8640734f-8682a1c538.zip/node_modules/i18next/dist/esm/i18next.js","webpack://tmv2-components/./.yarn/cache/i18next-http-backend-npm-2.5.2-6cbbe5e7c3-6d99fb1b55.zip/node_modules/i18next-http-backend/esm/utils.js","webpack://tmv2-components/./.yarn/cache/i18next-http-backend-npm-2.5.2-6cbbe5e7c3-6d99fb1b55.zip/node_modules/i18next-http-backend/esm/request.js","webpack://tmv2-components/./.yarn/cache/i18next-http-backend-npm-2.5.2-6cbbe5e7c3-6d99fb1b55.zip/node_modules/i18next-http-backend/esm/index.js","webpack://tmv2-components/./src/i18n/culturesToLocaleMap.ts","webpack://tmv2-components/./src/i18n/i18nInit.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/InstrumentFieldsTranslator.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/utils/useExecuteTriggerCallback.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/config/contractSpecsFiltersInit.config.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/config/instrumentFieldsTranslations.config.ts","webpack://tmv2-components/./src/Components/ContractSpecsTabs/config/propertyReassignMap.ts","webpack://tmv2-components/./src/Components/CardsDeckWithTitle/CardsDeckInfoBox/CardsDeckInfoBox.tsx","webpack://tmv2-components/./src/Components/ContractSpecsTabs/ImportantNote/ImportantNote.tsx","webpack://tmv2-components/./src/Components/ContractSpecsTabs/ContractSpecsTab.tsx","webpack://tmv2-components/./src/Components/ContractSpecsTabs/ContractSpecsTabs.tsx","webpack://tmv2-components/./src/Components/InstrumentSliderNew/InstrumentSliderNew.tsx","webpack://tmv2-components/./src/Components/PriceFeedNew/PriceFeedNewSocketComponent.tsx","webpack://tmv2-components/./src/Components/PriceFeedNew/PriceFeedNew.tsx","webpack://tmv2-components/./src/Components/PriceFeedNew/PriceFeedNewWidget.tsx","webpack://tmv2-components/./src/Components/CardsGridImageAndDescription/CardsGridImageAndDescription.tsx","webpack://tmv2-components/./src/Components/AnimatedImageBoxesGridSimple/AnimatedImageBoxesGridSimple.tsx","webpack://tmv2-components/./src/Components/TradingScenarios/TradingScenarios.tsx","webpack://tmv2-components/./src/Components/TradingScenariosMultiple/TradingScenariosMultiple.tsx","webpack://tmv2-components/./src/Components/TrustpilotSlider/TrustpilotCard/TrustpilotCard.tsx","webpack://tmv2-components/./src/Components/TrustpilotSlider/TrustPilotEvalutation/TrustPilotEvaluation.tsx","webpack://tmv2-components/./src/Components/TrustpilotSlider/TrustpilotSlider.tsx","webpack://tmv2-components/./src/Components/TradingGlossaryLanding/TradingGlossaryLanding.tsx","webpack://tmv2-components/./src/Components/SupportSearch/SupportSearch.tsx","webpack://tmv2-components/./src/Components/FreeText/FreeText.tsx","webpack://tmv2-components/./src/Components/FaqAccordionListWithImage/FaqAccordionListWithImage.tsx","webpack://tmv2-components/./src/Components/OtherAccounts/TradingView/index.tsx","webpack://tmv2-components/./src/Components/OtherAccounts/BlackCard/index.tsx","webpack://tmv2-components/./src/Components/OtherAccounts/CommonCards/index.tsx","webpack://tmv2-components/./src/Components/OtherAccounts/OtherAccounts.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithComponentBlackBackground/ButtonWrapper/ButtonWrapper.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithComponentBlackBackground/TradeWithComponentBlackBackground.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithComponent3Items/TradeWithComponent3Items.tsx","webpack://tmv2-components/./src/Components/svgIcons/pdf.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithComponent/TradeWithComponent.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithThinkCopy/TradeWithThinkCopy.tsx","webpack://tmv2-components/./src/Components/WhyTradeWith/TradeWithThinkTrader/TradeWithThinkTrader.tsx","webpack://tmv2-components/./src/Components/Cards/InstrumentSliderCard/InstrumentSliderCard.tsx","webpack://tmv2-components/./src/Components/TwoInstrumentSliders/TwoInstrumentSliders.tsx","webpack://tmv2-components/./src/Components/HeroBannerWithInstruments/HeroBannerWithInstruments.tsx","webpack://tmv2-components/./src/Components/ExpandableCardsContainer/ExpandableCard/ExpandableCard.tsx","webpack://tmv2-components/./src/Components/ExpandableCardsContainer/ComponentHeader.tsx","webpack://tmv2-components/./src/Components/ExpandableCardsContainer/ExpandableCardsContainer.tsx","webpack://tmv2-components/./src/Components/PopularInstruments/PopularInstruments.tsx","webpack://tmv2-components/./src/Components/svgIcons/arrowRight.tsx","webpack://tmv2-components/./src/Components/KeepTraderInOrderSwiper/CardDescription/CardDescription.tsx","webpack://tmv2-components/./src/Components/KeepTraderInOrderSwiper/KeepTraderInOrderSwiperCard/KeepTraderInOrderSwiperCard.tsx","webpack://tmv2-components/./src/Components/KeepTraderInOrderSwiper/KeepTraderInOrderSwiper.tsx","webpack://tmv2-components/./src/Components/CentredTitleWithSubtitle/CentredTitleWithSubtitle.tsx","webpack://tmv2-components/./src/Components/CardsDeckWithTitle/CardsDeckWithTitle.tsx","webpack://tmv2-components/./src/Components/CardsDeckWithTitleSimple/CardsDeckWithTitleSimple.tsx","webpack://tmv2-components/./src/Components/TradeMiniAccount/TradeMiniAccountCard/TradeMiniAccountCard.tsx","webpack://tmv2-components/./src/Components/TradeMiniAccount/TradeMiniAccount.tsx","webpack://tmv2-components/./src/Components/ItemDeckWithTitle/ItemDeckWithTitle.tsx","webpack://tmv2-components/./src/Components/svgIcons/iconCloseWhite.tsx","webpack://tmv2-components/./src/Components/svgIcons/playButton.tsx","webpack://tmv2-components/./src/Components/HeroBannerWithVideo/HeroBannerWithVideo.tsx","webpack://tmv2-components/./src/Components/AnimatedRollingNumber/AnimatedRollingNumber.tsx","webpack://tmv2-components/./src/Components/HeroBannerWithRollingAnimationVideoBG/HeroBannerWithRollingAnimationVideoBG.tsx","webpack://tmv2-components/./src/Components/ComponentColItemsDeckWithTitle/ComponentColItemsDeckWithTitle.tsx","webpack://tmv2-components/./src/Components/WideCardWithList/WideCardWithList.tsx","webpack://tmv2-components/./src/Components/svgIcons/pdfDark.tsx","webpack://tmv2-components/./src/Components/WideCardWithListV2/WideCardWithListV2.tsx","webpack://tmv2-components/./src/Components/SectionWithList/SectionWithList.tsx","webpack://tmv2-components/./src/Components/svgIcons/IconChevronUpp.tsx","webpack://tmv2-components/./src/Components/AccessThinkPortalToday/AccessThinkPortalToday.tsx","webpack://tmv2-components/./src/Components/AccessThinkPortalTodayImgToggle/ImageToggle/ImageToggle.tsx","webpack://tmv2-components/./src/Components/AccessThinkPortalTodayImgToggle/AccessThinkPortalTodayImgToggle.tsx","webpack://tmv2-components/./src/Components/TitleWithSubtitleAndThreeSimpleCards/TitleWithSubtitleAndThreeSimpleCards.tsx","webpack://tmv2-components/./src/Components/ThreeImagesCards/ThreeImagesCardComponent/ThreeImagesCardComponent.tsx","webpack://tmv2-components/./src/Components/ThreeImagesCards/ThreeImagesCardComponentLarge/ThreeImagesCardComponentLarge.tsx","webpack://tmv2-components/./src/Components/ThreeImagesCards/ThreeImagesCardComponentSwiper/ThreeImagesCardComponentSwiper.tsx","webpack://tmv2-components/./src/Components/ThreeImagesCards/ThreeImagesCards.tsx","webpack://tmv2-components/./src/Components/ManagePortfolioWithEase/ManagePortfolioWithEase.tsx","webpack://tmv2-components/./src/Components/HeroBannerWithVideoBG/HeroBannerWithVideoBG.tsx","webpack://tmv2-components/./src/Components/BubbleTitleDescButtons/BubbleTitleDescButtons.tsx","webpack://tmv2-components/./src/Components/AnimatedBoxGrid/MiniComponentsGridContainer/PhonesGridContainer/PhonesGridContainer.tsx","webpack://tmv2-components/./src/Components/AnimatedBoxGrid/MiniComponentsGridContainer/ChartsGridContainer/ChartsGridContainer.tsx","webpack://tmv2-components/./src/Components/AnimatedBoxGrid/MiniComponentsGridContainer/NotificationsGridContainer/NotificationCard.tsx","webpack://tmv2-components/./src/Components/AnimatedBoxGrid/MiniComponentsGridContainer/NotificationsGridContainer/NotificationsGridContainer.tsx","webpack://tmv2-components/./src/Components/AnimatedBoxGrid/AnimatedBoxGrid.tsx","webpack://tmv2-components/./src/Components/Cards/ClickAndPlayVideoCard/ClickAndPlayButton.tsx","webpack://tmv2-components/./src/Components/Cards/ClickAndPlayVideoCard/ClickAndPlayVideoCard.tsx","webpack://tmv2-components/./src/stories/pages/ThinkTraderPage.tsx","webpack://tmv2-components/./src/Components/DownloadButton/DownloadButton.tsx","webpack://tmv2-components/./src/Components/DownloadButtonDeck/DownloadButtonDeck.tsx","webpack://tmv2-components/./src/Components/PopularInstrumentsByGroups/CardItem.tsx","webpack://tmv2-components/./src/Components/PopularInstrumentsByGroups/PopularInstrumentsByGroups.tsx","webpack://tmv2-components/./src/Components/WhatWeOffer/WhatWeOffer.tsx","webpack://tmv2-components/./src/Components/TitleWithImageAndCountries/CulturesContainer.tsx","webpack://tmv2-components/./src/Components/TitleWithImageAndCountries/TitleWithImageAndCountries.tsx","webpack://tmv2-components/./src/Components/TwoSectionWithTitle/TwoSectionWithTitleCard.tsx","webpack://tmv2-components/./src/Components/svgIcons/Check.tsx","webpack://tmv2-components/./src/Components/svgIcons/Alert.tsx","webpack://tmv2-components/./src/Components/TwoSectionWithTitle/TwoSectionWithTitle.tsx","webpack://tmv2-components/./src/Components/CustomLottie/CustomLottie.tsx","webpack://tmv2-components/./src/Components/DynamicLeveragePricingTable/DynamicLeveragePricingTable.tsx","webpack://tmv2-components/./src/Components/TrendingVideos/TrendingVideos.tsx","webpack://tmv2-components/./src/Components/svgIcons/timeClockDark.tsx","webpack://tmv2-components/./src/Components/TrendingVideosV2/TrendingVideosV2.tsx","webpack://tmv2-components/./src/Components/svgIcons/VideoClock.tsx","webpack://tmv2-components/./src/Components/HeroBannerWithTitleSubtitleImageButton/HeroBannerWithTitleSubtitleImageButton.tsx","webpack://tmv2-components/./src/Components/svgIcons/chevronRight-support.tsx","webpack://tmv2-components/./src/Components/TitleSubtitleAndSearch/TitleSubtitleAndSearch.tsx","webpack://tmv2-components/./src/Components/CategoriesWithIconSwiper/CategoriesWithIconSwiperCard.tsx","webpack://tmv2-components/./src/Components/CategoriesWithIconSwiper/CategoriesWithIconSwiper.tsx","webpack://tmv2-components/./src/Components/TwoWideCards/WideCard.tsx","webpack://tmv2-components/./src/Components/TwoWideCards/TwoWideCards.tsx","webpack://tmv2-components/./src/Components/StillHaveQuestionsItems/StillHaveQuestionsItems.tsx","webpack://tmv2-components/./src/Components/Announcements/Announcements.tsx","webpack://tmv2-components/./src/Components/CardsDeckWithTitleAndSub/CardsWithTitleAndSub.tsx","webpack://tmv2-components/./src/Components/CardsDeckWithTitleAndSub/CardsDeckWithTitleAndSub.tsx","webpack://tmv2-components/./src/Components/CardsDeckWithTitleAndSubV2/CardsDeckWithTitleAndSubV2.tsx","webpack://tmv2-components/./src/Components/SupportBody/SideBarSection.tsx","webpack://tmv2-components/./src/Components/SupportBody/SupportBody.tsx","webpack://tmv2-components/./src/Components/MaintenanceCardsStrip/MaintenanceCardsStrip.tsx","webpack://tmv2-components/./src/Components/TitleWithTwoCards/TitleWithCard.tsx","webpack://tmv2-components/./src/Components/TitleWithTwoCards/TitleWithTwoCards.tsx","webpack://tmv2-components/./src/Components/MarketNews/MarketNews.tsx","webpack://tmv2-components/./src/Components/WhyTradersChooseUs/WhyTradersChooseUs.tsx","webpack://tmv2-components/./src/Components/RichTextWithImage/RichTextWithImage.tsx","webpack://tmv2-components/./src/Components/ToggleableTitleContentSwiper/ToggleableTitleContentSwiperCard.tsx","webpack://tmv2-components/./src/Components/ToggleableTitleContentSwiper/ToggleableTitleContentSwiper.tsx","webpack://tmv2-components/./src/Components/TwoWideCardsWithButtonsDeck/WideCardWithButton/WideCardWithButton.tsx","webpack://tmv2-components/./src/Components/TwoWideCardsWithButtonsDeck/TwoWideCardsWithButtonsDeck.tsx","webpack://tmv2-components/./src/Components/EmployeeTestimonialSlider/CardDescription/CardDescription.tsx","webpack://tmv2-components/./src/Components/EmployeeTestimonialSlider/EmployeeTestimonialSliderCard/EmployeeTestimonialSliderCard.tsx","webpack://tmv2-components/./src/Components/EmployeeTestimonialSlider/EmployeeTestimonialSlider.tsx","webpack://tmv2-components/./src/Components/CardDeckWithImageAndTitleAnimated/CardWithImageAndTitleAnimated/CardWithImageAndTitleAnimated.tsx","webpack://tmv2-components/./src/Components/CardDeckWithImageAndTitleAnimated/CardDeckWithImageAndTitleAnimated.tsx","webpack://tmv2-components/./src/Components/RibbonWithDataForTrustPilot/RibbonWithDataForTrustPilot.tsx","webpack://tmv2-components/./src/Components/SwiperWithVideoBg/VideoBgComponentCard.tsx","webpack://tmv2-components/./src/Components/SwiperWithVideoBg/SimpleSwiperComponent.tsx","webpack://tmv2-components/./src/Components/SwiperWithVideoBg/VideoBgComponent.tsx","webpack://tmv2-components/./src/Components/SwiperWithVideoBg/SwiperWithVideoBg.tsx","webpack://tmv2-components/./src/Components/RichTextDescriptionCtaAndImageBanner/RichTextDescriptionCtaAndImageBanner.tsx","webpack://tmv2-components/./src/Components/SectionWithTwoAnimatedCards/AnimatedCard.tsx","webpack://tmv2-components/./src/Components/SectionWithTwoAnimatedCards/AnimatedBigCard.tsx","webpack://tmv2-components/./src/Components/SectionWithTwoAnimatedCards/SectionWithTwoAnimatedCards.tsx","webpack://tmv2-components/./src/Components/RibbonWithStatLine/RibbonWithStatLine.tsx","webpack://tmv2-components/./src/Components/AnimatedViewWithTitle/AnimatedViewWithTitle.tsx","webpack://tmv2-components/./src/Components/SectionCardsMovingInOppositeDirection/SectionCardsMovingInOppositeDirection.tsx","webpack://tmv2-components/./src/Components/Banners/BannerImageBackground/BannerImageBackground.tsx","webpack://tmv2-components/./src/Components/SectionWithAwards/SectionWithAwardsCard.tsx","webpack://tmv2-components/./src/Components/SectionWithAwards/SectionWithAwards.tsx","webpack://tmv2-components/./src/Components/svgIcons/webIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/mobileIcon.tsx","webpack://tmv2-components/./src/Components/CardsGridWithFullWidthCenteredImagesAndTags/CardsGridWithFullWidthCenteredImagesAndTags.tsx","webpack://tmv2-components/./src/Components/CardsGridWithFullWidthCenteredImagesAndTagsV2/CardsGridWithFullWidthCenteredImagesAndTagsV2.tsx","webpack://tmv2-components/./src/Components/CardsGridTitleDescriptionIcon/CardsGridTitleDescriptionIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/shortArrow.tsx","webpack://tmv2-components/./src/Components/InstantSwiper/InstantSwiper.tsx","webpack://tmv2-components/./src/Components/svgIcons/supportUpIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/supportDownIcon.tsx","webpack://tmv2-components/./src/Components/svgIcons/supportMaintenanceIcon.tsx","webpack://tmv2-components/./src/Components/StatusCardsGrid/StatusCardsGrid.tsx","webpack://tmv2-components/./src/Components/TrustPilotOpinionLP/TrustPilotOpinionLP.tsx","webpack://tmv2-components/./src/Components/LogoLP/LogoLP.tsx","webpack://tmv2-components/./src/Components/CardWithAnimation/CardWithAnimation.tsx","webpack://tmv2-components/./src/Components/CardDeckWithTitleAndAnimatinOrImage/CardDeckWithTitleAndAnimatinOrImage.tsx","webpack://tmv2-components/./src/Components/TextAndImageLP/TextAndImageLP.tsx","webpack://tmv2-components/./src/Components/WhySpreadBetWithUs/WhySpreadBetWithUs.tsx","webpack://tmv2-components/./src/Components/ContractSpecsSBTabs/config/contractSpecsSBFiltersInit.config.ts","webpack://tmv2-components/./src/Components/ContractSpecsSBTabs/ContractSpecsSBTabs.tsx","webpack://tmv2-components/./src/Components/TimelineWithText/TimeLine/BottomTimeLine.tsx","webpack://tmv2-components/./src/Components/TimelineWithText/TimeLine/TopTimeLine.tsx","webpack://tmv2-components/./src/Components/TimelineWithText/Draggable/Draggable.tsx","webpack://tmv2-components/./src/Components/TimelineWithText/TimelineWithText.tsx","webpack://tmv2-components/./src/Components/MarketsAndInstruments/MarketsAndInstruments.tsx","webpack://tmv2-components/./src/Components/CustomSelect/CustomSelect.tsx","webpack://tmv2-components/./src/Components/ItemDeckWithTitleHorizontal/ItemDeckWithTitleHorizontal.tsx","webpack://tmv2-components/./src/Components/ContactUsBannerWithButton/ContactUsBannerWithButton.tsx","webpack://tmv2-components/./src/Components/TradeWithExpertInsights/CardInfo.tsx","webpack://tmv2-components/./src/Components/TradeWithExpertInsights/TradeWithExpertInsights.tsx","webpack://tmv2-components/./src/Components/TextAndImageLPCentered/TextAndImageLPCentered.tsx","webpack://tmv2-components/./src/Components/FilterAcademyCards/FilterAcademyCards.tsx","webpack://tmv2-components/./src/Components/FilterAcademyCards/utils/useFetchAcadArticlesOnMount.ts","webpack://tmv2-components/./src/Components/BigTextSection/BigTextSection.tsx","webpack://tmv2-components/./src/Components/ContactFormBanner/ContactFormBanner.tsx","webpack://tmv2-components/./src/Components/SectionWithFeaturedLists/Items/AspectItem.tsx","webpack://tmv2-components/./src/Components/SectionWithFeaturedLists/Aspects/Aspects.tsx","webpack://tmv2-components/./src/Components/SectionWithFeaturedLists/SectionWithFeaturedLists.tsx","webpack://tmv2-components/./src/Components/GetTheBestOfBoth/GetTheBestOfBoth.tsx","webpack://tmv2-components/./src/Components/ExperienceNewWayToTrade/ExperienceNewWayToTrade.tsx","webpack://tmv2-components/./src/Components/TabsWithAccordion/TabWithAccordion.tsx","webpack://tmv2-components/./src/Components/TabsWithAccordion/TabsWithAccordion.tsx","webpack://tmv2-components/./src/Components/OtherAccountsVariationCardsDeck/OtherCard/OtherCard.tsx","webpack://tmv2-components/./src/Components/OtherAccountsVariationCardsDeck/OtherAccountsVariationCardsDeck.tsx","webpack://tmv2-components/./src/Components/Mt5GradientBanner/Mt5GradientBanner.tsx","webpack://tmv2-components/./src/Components/Mt5HeroBanner/Mt5HeroBanner.tsx","webpack://tmv2-components/./src/Components/RibbonWithOutStatLine/RibbonWithOutStatLine.tsx","webpack://tmv2-components/./src/Components/InstrumentHeader/BidAskQuote/BidAskQuote.tsx","webpack://tmv2-components/./src/Components/InstrumentHeader/instrumentData.types.ts","webpack://tmv2-components/./src/Components/InstrumentHeader/utils/calcRangeBarProps.ts","webpack://tmv2-components/./src/Components/InstrumentHeader/InstrumentHeader.tsx","webpack://tmv2-components/./src/Components/InstrumentHeader/hooks/useInstrumentPriceWS.ts","webpack://tmv2-components/./src/Components/InstrumentHeader/hooks/useInstrumentPriceHistory.ts","webpack://tmv2-components/./src/Components/InstrumentHeader/utils/checkIsStringRangeValid.ts","webpack://tmv2-components/./src/Components/Mt5DownloadSection/Categories/Category.tsx","webpack://tmv2-components/./src/Components/Mt5DownloadSection/Mt5DownloadSection.tsx","webpack://tmv2-components/./src/Components/InstrumentChart/config/instrumentCorrections.ts","webpack://tmv2-components/./src/Components/InstrumentChart/InstrumentChart.tsx","webpack://tmv2-components/./src/Components/InstrumentChart/utils/getInstrumentCodeCorrection.ts","webpack://tmv2-components/./src/Components/InstrumentInfo/InstrumentInfo.tsx","webpack://tmv2-components/./src/Components/ProfileSection/ProfileSection.tsx","webpack://tmv2-components/./src/Components/VideoSection/VideoSection.tsx","webpack://tmv2-components/./src/Components/ProfileArticles/ProfileArticles.tsx","webpack://tmv2-components/./src/Components/SimpleTitleAndSubtitle/SimpleTitleAndSubtitle.tsx","webpack://tmv2-components/./src/Components/TabsWithInstrumentsAndTable/TierInstrument/TierInstrument.tsx","webpack://tmv2-components/./src/Components/TabsWithInstrumentsAndTable/TabWithInstrumentsAndTable/TabWithInstrumentsAndTable.tsx","webpack://tmv2-components/./src/Components/TabsWithInstrumentsAndTable/TabsWithInstrumentsAndTable.tsx","webpack://tmv2-components/./src/Components/SimpleHeaderBanner/SimpleHeaderBanner.tsx","webpack://tmv2-components/./src/Components/LoginTabs/LoginTabs.tsx","webpack://tmv2-components/./src/Components/SectionWithListVersioned/ListItem/Listitem.tsx","webpack://tmv2-components/./src/Components/SectionWithListVersioned/SectionWithListVersioned.tsx","webpack://tmv2-components/./src/Components/SectionWithImageLateralItems/Items/Items.tsx","webpack://tmv2-components/./src/Components/SectionWithImageLateralItems/SectionWithImageLateralItems.tsx","webpack://tmv2-components/./src/Components/ErrorHandler/ErrorHandler.tsx","webpack://tmv2-components/./src/Components/SectionWithTwoLists/SectionItem/SectionItem.tsx","webpack://tmv2-components/./src/Components/SectionWithTwoLists/SectionWithTwoLists.tsx","webpack://tmv2-components/./src/Components/HeaderWithTitleSubTitleAndButton/HeaderWithTitleSubTitleAndButton.tsx","webpack://tmv2-components/./src/Components/SectionWithGradientAndImage/SectionWithGradientAndImage.tsx","webpack://tmv2-components/./src/Components/TwoSectionWithTitleNew/TwoSectionWithTitleNewCard.tsx","webpack://tmv2-components/./src/Components/TwoSectionWithTitleNew/TwoSectionWithTitleNew.tsx","webpack://tmv2-components/./src/Components/ImageAndText/ImageAndText.tsx","webpack://tmv2-components/./src/Components/GridBigAndSmallCards/BigOrSmallCard/BigOrSmallCard.tsx","webpack://tmv2-components/./src/Components/GridBigAndSmallCards/GridBigAndSmallCards.tsx","webpack://tmv2-components/./src/Components/AwardsSlider/AwardsSlider.tsx","webpack://tmv2-components/./src/Components/Cards/BigAwardsCardDeck/BigAwardsCard/BigAwardsCard.tsx","webpack://tmv2-components/./src/Components/Cards/BigAwardsCardDeck/BigAwardsCardDeck.tsx","webpack://tmv2-components/./src/Components/LicenseSlider/License/License.tsx","webpack://tmv2-components/./src/Components/LicenseSlider/LicenseSlider.tsx","webpack://tmv2-components/./src/Components/TitleSubTitleCTA/TitleSubTitleCTA.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/SmartphoneFrameWithMedia/MediaViewer/utils.ts","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/SmartphoneFrameWithMedia/MediaViewer/MediaViewer.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/SmartphoneFrameWithMedia/SmartphoneFrameWithMedia.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/LinkPillsPair/LinkPill/LinkPill.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/LinkPillsPair/LinkPillsPair.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/MobileAppDownload/MobileAppDownload.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/SimpleIconAndTextCardDeck/SimpleIconAndTextCard/SimpleIconAndTextCard.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/SimpleIconAndTextCardDeck/SimpleIconAndTextCardDeck.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/ThreeColsSectionMediaAndButtonsBase.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/hooks/useComponentIntersection.ts","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/ThreeColsSectionMediaAndButtonsIntersectionObserver.tsx","webpack://tmv2-components/./src/Components/ThreeColsSectionMediaAndButtons/ThreeColsSectionMediaAndButtons.tsx","webpack://tmv2-components/./src/Components/SmallCardsSlider/SmallCardWithAnimatedIcon/SmallCardWithAnimatedIcon.tsx","webpack://tmv2-components/./src/Components/SmallCardsSlider/SmallCardsSlider.tsx","webpack://tmv2-components/./src/Components/RatioContainer/RatioContainer.tsx","webpack://tmv2-components/./src/Components/RichTextWithImageUplift/RichTextWithImageUplift.tsx","webpack://tmv2-components/./src/Components/SingleAwardBanner/SingleAwardBanner.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/FooterBannerV2_6/FooterBannerV2_6.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/SocialBarWithLogoAndLiveChat/SocialMedia/SocialMedia.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/SocialBarWithLogoAndLiveChat/LiveChatCTA/LiveChatCTA.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/SocialBarWithLogoAndLiveChat/SocialBarWithLogoAndLiveChat.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/PaymentMethodsIcons/PaymentMethodsIcons.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/FooterNavV2_6/FooterNavSection/FooterNavLink/FooterNavLink.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/FooterNavV2_6/FooterNavSection/FooterNavSection.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/FooterNavV2_6/FooterNavV2_6.tsx","webpack://tmv2-components/./src/Components/FooterV2_6/FooterV2_6.tsx","webpack://tmv2-components/./src/Components/M30CardsWithIconTextsLink/LinkWithTargetAndRel/LinkWithTargetAndRel.tsx","webpack://tmv2-components/./src/Components/M30CardsWithIconTextsLink/CardWithIconTextsLink/CardWithIconTextsLink.tsx","webpack://tmv2-components/./src/Components/M30CardsWithIconTextsLink/M30CardsWithIconTextsLink.tsx","webpack://tmv2-components/./src/Components/M31FiveCardsTitleText/CardWithImageAndGradient/CardWithImageAndGradient.tsx","webpack://tmv2-components/./src/Components/M31FiveCardsTitleText/M31FiveCardsTitleText.tsx","webpack://tmv2-components/./src/Components/M35IntouchForm/FormInputs/FormInputs.tsx","webpack://tmv2-components/./src/Components/M35IntouchForm/Overlay/Overlay.tsx","webpack://tmv2-components/./src/Components/M35IntouchForm/M35IntouchForm.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"React\"), require(\"ReactDOM\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"componentsbundle\", [\"React\", \"ReactDOM\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"componentsbundle\"] = factory(require(\"React\"), require(\"ReactDOM\"));\n\telse\n\t\troot[\"componentsbundle\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__1024__, __WEBPACK_EXTERNAL_MODULE__314__) => {\nreturn ","Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"react\"),t=require(\"@rive-app/canvas\");function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var i=/*#__PURE__*/n(e),r=function(){return r=Object.assign||function(e){for(var t,n=1,i=arguments.length;n0&&r[r.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]0&&e.height>0&&e.top<(window.innerHeight||document.documentElement.clientHeight)&&e.bottom>0&&e.left<(window.innerWidth||document.documentElement.clientWidth)&&e.right>0&&(null==d||d.startRendering(),t=!1)}};return u&&!1!==p.shouldUseIntersectionObserver&&x(u,function(i){i.isIntersecting?d&&d.startRendering():d&&d.stopRendering(),t=!i.isIntersecting,clearTimeout(e),i.isIntersecting||0!==i.boundingClientRect.width||(e=setTimeout(n,10))}),function(){u&&T(u)}},[x,T,d,u,p.shouldUseIntersectionObserver]),e.useEffect(function(){return function(){d&&(d.cleanup(),v(null))}},[d,u]);var P=null==n?void 0:n.animations;e.useEffect(function(){d&&P&&(d.isPlaying?(d.stop(d.animationNames),d.play(P)):d.isPaused&&(d.stop(d.animationNames),d.pause(P)))},[P,d]);var L=e.useCallback(function(e){return i.default.createElement(E,r({setContainerRef:R,setCanvasRef:m},e))},[m,R]);return{canvas:u,container:l.current,setCanvasRef:m,setContainerRef:R,rive:d,RiveComponent:L}}exports.default=function(e){var t=e.src,n=e.artboard,a=e.animations,u=e.stateMachines,s=e.layout,c=e.useOffscreenRenderer,l=void 0===c||c,f=e.shouldDisableRiveListeners,d=void 0!==f&&f,v=e.shouldResizeCanvasToContainer,h=void 0===v||v,p=e.automaticallyHandleEvents,b=void 0!==p&&p,w=e.children,y=o(e,[\"src\",\"artboard\",\"animations\",\"stateMachines\",\"layout\",\"useOffscreenRenderer\",\"shouldDisableRiveListeners\",\"shouldResizeCanvasToContainer\",\"automaticallyHandleEvents\",\"children\"]),g=O({src:t,artboard:n,animations:a,layout:s,stateMachines:u,autoplay:!0,shouldDisableRiveListeners:d,automaticallyHandleEvents:b},{useOffscreenRenderer:l,shouldResizeCanvasToContainer:h}).RiveComponent;return i.default.createElement(g,r({},y),w)},exports.useResizeCanvas=w,exports.useRive=O,exports.useRiveFile=function(n){var i=this,r=e.useState(null),o=r[0],s=r[1],c=e.useState(\"idle\"),l=c[0],f=c[1];return e.useEffect(function(){var e=null;return a(i,void 0,void 0,function(){return u(this,function(i){try{f(\"loading\"),(e=new t.RiveFile(n)).init(),e.on(t.EventType.Load,function(){null==e||e.getInstance(),s(e),f(\"success\")}),e.on(t.EventType.LoadError,function(){f(\"failed\")}),s(e)}catch(e){console.error(e),f(\"failed\")}return[2]})}),function(){null==e||e.cleanup()}},[n.src,n.buffer]),{riveFile:o,status:l}},exports.useStateMachineInput=function(n,i,r,o){var a=e.useState(null),u=a[0],s=a[1];return e.useEffect(function(){function e(){if(n&&i&&r||s(null),n&&i&&r){var e=n.stateMachineInputs(i);if(e){var t=e.find(function(e){return e.name===r});void 0!==o&&t&&(t.value=o),s(t||null)}}else s(null)}e(),n&&n.on(t.EventType.Load,function(){e()})},[n]),u},Object.keys(t).forEach(function(e){\"default\"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lottie-web'), require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'lottie-web', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global[\"lottie-react\"] = {}, global.Lottie, global.React));\n})(this, (function (exports, lottie, React) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var lottie__default = /*#__PURE__*/_interopDefaultLegacy(lottie);\n var React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n\n var _excluded$1 = [\"animationData\", \"loop\", \"autoplay\", \"initialSegment\", \"onComplete\", \"onLoopComplete\", \"onEnterFrame\", \"onSegmentStart\", \"onConfigReady\", \"onDataReady\", \"onDataFailed\", \"onLoadedImages\", \"onDOMLoaded\", \"onDestroy\", \"lottieRef\", \"renderer\", \"name\", \"assetsPath\", \"rendererSettings\"];\n var useLottie = function useLottie(props, style) {\n var animationData = props.animationData,\n loop = props.loop,\n autoplay = props.autoplay,\n initialSegment = props.initialSegment,\n onComplete = props.onComplete,\n onLoopComplete = props.onLoopComplete,\n onEnterFrame = props.onEnterFrame,\n onSegmentStart = props.onSegmentStart,\n onConfigReady = props.onConfigReady,\n onDataReady = props.onDataReady,\n onDataFailed = props.onDataFailed,\n onLoadedImages = props.onLoadedImages,\n onDOMLoaded = props.onDOMLoaded,\n onDestroy = props.onDestroy;\n props.lottieRef;\n props.renderer;\n props.name;\n props.assetsPath;\n props.rendererSettings;\n var rest = _objectWithoutProperties(props, _excluded$1);\n var _useState = React.useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n animationLoaded = _useState2[0],\n setAnimationLoaded = _useState2[1];\n var animationInstanceRef = React.useRef();\n var animationContainer = React.useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n var play = function play() {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n var stop = function stop() {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n var pause = function pause() {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n var setSpeed = function setSpeed(speed) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n var goToAndPlay = function goToAndPlay(value, isFrame) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n var goToAndStop = function goToAndStop(value, isFrame) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n var setDirection = function setDirection(direction) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n var playSegments = function playSegments(segments, forceFlag) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n var setSubframe = function setSubframe(useSubFrames) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n var getDuration = function getDuration(inFrames) {\n var _a;\n return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames);\n };\n /**\n * Destroy animation\n */\n var destroy = function destroy() {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n var loadAnimation = function loadAnimation() {\n var forcedConfigs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n var config = _objectSpread2(_objectSpread2(_objectSpread2({}, props), forcedConfigs), {}, {\n container: animationContainer.current\n });\n // Save the animation instance\n animationInstanceRef.current = lottie__default[\"default\"].loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return function () {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n React.useEffect(function () {\n var onUnmount = loadAnimation();\n // Clean up on unmount\n return function () {\n return onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n React.useEffect(function () {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n React.useEffect(function () {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] || animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n React.useEffect(function () {\n var partialListeners = [{\n name: \"complete\",\n handler: onComplete\n }, {\n name: \"loopComplete\",\n handler: onLoopComplete\n }, {\n name: \"enterFrame\",\n handler: onEnterFrame\n }, {\n name: \"segmentStart\",\n handler: onSegmentStart\n }, {\n name: \"config_ready\",\n handler: onConfigReady\n }, {\n name: \"data_ready\",\n handler: onDataReady\n }, {\n name: \"data_failed\",\n handler: onDataFailed\n }, {\n name: \"loaded_images\",\n handler: onLoadedImages\n }, {\n name: \"DOMLoaded\",\n handler: onDOMLoaded\n }, {\n name: \"destroy\",\n handler: onDestroy\n }];\n var listeners = partialListeners.filter(function (listener) {\n return listener.handler != null;\n });\n if (!listeners.length) {\n return;\n }\n var deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n function (listener) {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return function () {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return function () {\n deregisterList.forEach(function (deregister) {\n return deregister();\n });\n };\n }, [onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy]);\n /**\n * Build the animation view\n */\n var View = /*#__PURE__*/React__default[\"default\"].createElement(\"div\", _objectSpread2({\n style: style,\n ref: animationContainer\n }, rest));\n return {\n View: View,\n play: play,\n stop: stop,\n pause: pause,\n setSpeed: setSpeed,\n goToAndStop: goToAndStop,\n goToAndPlay: goToAndPlay,\n setDirection: setDirection,\n playSegments: playSegments,\n setSubframe: setSubframe,\n getDuration: getDuration,\n destroy: destroy,\n animationContainerRef: animationContainer,\n animationLoaded: animationLoaded,\n animationItem: animationInstanceRef.current\n };\n };\n\n // helpers\n function getContainerVisibility(container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n top = _container$getBoundin.top,\n height = _container$getBoundin.height;\n var current = window.innerHeight - top;\n var max = window.innerHeight + height;\n return current / max;\n }\n function getContainerCursorPosition(container, cursorX, cursorY) {\n var _container$getBoundin2 = container.getBoundingClientRect(),\n top = _container$getBoundin2.top,\n left = _container$getBoundin2.left,\n width = _container$getBoundin2.width,\n height = _container$getBoundin2.height;\n var x = (cursorX - left) / width;\n var y = (cursorY - top) / height;\n return {\n x: x,\n y: y\n };\n }\n var useInitInteractivity = function useInitInteractivity(_ref) {\n var wrapperRef = _ref.wrapperRef,\n animationItem = _ref.animationItem,\n mode = _ref.mode,\n actions = _ref.actions;\n React.useEffect(function () {\n var wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n var scrollModeHandler = function scrollModeHandler() {\n var assignedSegment = null;\n var scrollHandler = function scrollHandler() {\n var currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n var action = actions.find(function (_ref2) {\n var visibility = _ref2.visibility;\n return visibility && currentPercent >= visibility[0] && currentPercent <= visibility[1];\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" && action.visibility && action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n var frameToGo = action.frames[0] + Math.ceil((currentPercent - action.visibility[0]) / (action.visibility[1] - action.visibility[0]) * action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n } else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n } else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return function () {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n var cursorModeHandler = function cursorModeHandler() {\n var handleCursor = function handleCursor(_x, _y) {\n var x = _x;\n var y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n var pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n var action = actions.find(function (_ref3) {\n var position = _ref3.position;\n if (position && Array.isArray(position.x) && Array.isArray(position.y)) {\n return x >= position.x[0] && x <= position.x[1] && y >= position.y[0] && y <= position.y[1];\n }\n if (position && !Number.isNaN(position.x) && !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" && action.position && Array.isArray(action.position.x) && Array.isArray(action.position.y) && action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n var xPercent = (x - action.position.x[0]) / (action.position.x[1] - action.position.x[0]);\n var yPercent = (y - action.position.y[0]) / (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil((xPercent + yPercent) / 2 * (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n var mouseMoveHandler = function mouseMoveHandler(ev) {\n handleCursor(ev.clientX, ev.clientY);\n };\n var mouseOutHandler = function mouseOutHandler() {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return function () {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n };\n var useLottieInteractivity = function useLottieInteractivity(_ref4) {\n var actions = _ref4.actions,\n mode = _ref4.mode,\n lottieObj = _ref4.lottieObj;\n var animationItem = lottieObj.animationItem,\n View = lottieObj.View,\n animationContainerRef = lottieObj.animationContainerRef;\n useInitInteractivity({\n actions: actions,\n animationItem: animationItem,\n mode: mode,\n wrapperRef: animationContainerRef\n });\n return View;\n };\n\n var _excluded = [\"style\", \"interactivity\"];\n var Lottie = function Lottie(props) {\n var _a, _b, _c;\n var style = props.style,\n interactivity = props.interactivity,\n lottieProps = _objectWithoutProperties(props, _excluded);\n /**\n * Initialize the 'useLottie' hook\n */\n var _useLottie = useLottie(lottieProps, style),\n View = _useLottie.View,\n play = _useLottie.play,\n stop = _useLottie.stop,\n pause = _useLottie.pause,\n setSpeed = _useLottie.setSpeed,\n goToAndStop = _useLottie.goToAndStop,\n goToAndPlay = _useLottie.goToAndPlay,\n setDirection = _useLottie.setDirection,\n playSegments = _useLottie.playSegments,\n setSubframe = _useLottie.setSubframe,\n getDuration = _useLottie.getDuration,\n destroy = _useLottie.destroy,\n animationContainerRef = _useLottie.animationContainerRef,\n animationLoaded = _useLottie.animationLoaded,\n animationItem = _useLottie.animationItem;\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n React.useEffect(function () {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play: play,\n stop: stop,\n pause: pause,\n setSpeed: setSpeed,\n goToAndPlay: goToAndPlay,\n goToAndStop: goToAndStop,\n setDirection: setDirection,\n playSegments: playSegments,\n setSubframe: setSubframe,\n getDuration: getDuration,\n destroy: destroy,\n animationContainerRef: animationContainerRef,\n animationLoaded: animationLoaded,\n animationItem: animationItem\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View: View,\n play: play,\n stop: stop,\n pause: pause,\n setSpeed: setSpeed,\n goToAndStop: goToAndStop,\n goToAndPlay: goToAndPlay,\n setDirection: setDirection,\n playSegments: playSegments,\n setSubframe: setSubframe,\n getDuration: getDuration,\n destroy: destroy,\n animationContainerRef: animationContainerRef,\n animationLoaded: animationLoaded,\n animationItem: animationItem\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\"\n });\n };\n\n Object.defineProperty(exports, 'LottiePlayer', {\n enumerable: true,\n get: function () { return lottie__default[\"default\"]; }\n });\n exports[\"default\"] = Lottie;\n exports.useLottie = useLottie;\n exports.useLottieInteractivity = useLottieInteractivity;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=index.umd.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addQuarters\"),require(\"date-fns/addYears\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subQuarters\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/endOfYear\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\"),require(\"date-fns/set\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addQuarters\",\"date-fns/addYears\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subQuarters\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/endOfYear\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\",\"date-fns/set\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addQuarters,e.addYears,e.subDays,e.subWeeks,e.subMonths,e.subQuarters,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,e.endOfMonth,e.endOfYear,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper,e.set)}(this,(function(e,t,r,a,n,o,s,i,p,l,c,d,u,f,h,m,y,v,D,g,k,w,b,S,C,_,M,P,E,N,x,Y,O,I,T,R,L,F,A,W,q,K,B,Q,H,j,V,U,z,$,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe,le){\"use strict\";function ce(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=ce(t),ue=ce(a),fe=ce(n),he=ce(o),me=ce(s),ye=ce(i),ve=ce(p),De=ce(l),ge=ce(c),ke=ce(d),we=ce(u),be=ce(f),Se=ce(h),Ce=ce(m),_e=ce(y),Me=ce(v),Pe=ce(D),Ee=ce(g),Ne=ce(k),xe=ce(w),Ye=ce(b),Oe=ce(S),Ie=ce(C),Te=ce(_),Re=ce(M),Le=ce(P),Fe=ce(E),Ae=ce(N),We=ce(x),qe=ce(Y),Ke=ce(O),Be=ce(I),Qe=ce(T),He=ce(R),je=ce(L),Ve=ce(F),Ue=ce(A),ze=ce(W),$e=ce(q),Ge=ce(K),Je=ce(B),Xe=ce(Q),Ze=ce(H),et=ce(j),tt=ce(U),rt=ce(z),at=ce($),nt=ce(G),ot=ce(J),st=ce(X),it=ce(Z),pt=ce(ee),lt=ce(te),ct=ce(re),dt=ce(ae),ut=ce(ne),ft=ce(oe),ht=ce(se),mt=ce(ie),yt=ce(le);function vt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Dt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Jt(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return Jt(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||p&&!p(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})})):r&&r.some((function(t){return Jt(e,t)}))||!1}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:Je.default(r),maxDate:tt.default(a)})||n&&n.some((function(t){return $t(e,t)}))||o&&!o.some((function(t){return $t(e,t)}))||s&&!s(At(e))||!1}function ir(e,t,r,a){var n=Le.default(e),o=Te.default(e),s=Le.default(t),i=Te.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||s&&!s(At(e))||!1}function lr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var a=Le.default(t),n=Le.default(r);return a<=e&&n>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate,i=new Date(e,0,1);return ur(i,{minDate:Ze.default(r),maxDate:rt.default(a)})||n&&n.some((function(e){return zt(i,e)}))||o&&!o.some((function(e){return zt(i,e)}))||s&&!s(At(i))||!1}function dr(e,t,r,a){var n=Le.default(e),o=Re.default(e),s=Le.default(t),i=Re.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&Ve.default(e,r)<0||a&&Ve.default(e,a)>0}function fr(e,t){return t.some((function(t){return xe.default(t)===xe.default(e)&&Ne.default(t)===Ne.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&fr(e,r)||a&&!fr(e,a)||n&&!n(e)||!1}function mr(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=At(),s=qe.default(We.default(o,Ne.default(e)),xe.default(e)),i=qe.default(We.default(o,Ne.default(r)),xe.default(r)),p=qe.default(We.default(o,Ne.default(a)),xe.default(a));try{n=!ct.default(s,{start:i,end:p})}catch(e){n=!1}return n}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=_e.default(e,1);return r&&Ue.default(r,n)>0||a&&a.every((function(e){return Ue.default(e,n)>0}))||!1}function vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ke.default(e,1);return r&&Ue.default(n,r)>0||a&&a.every((function(e){return Ue.default(n,e)>0}))||!1}function Dr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Pe.default(e,1);return r&&ze.default(r,n)>0||a&&a.every((function(e){return ze.default(e,n)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=be.default(e,1);return r&&ze.default(n,r)>0||a&&a.every((function(e){return ze.default(n,e)>0}))||!1}function kr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)>=0}));return He.default(a)}return r?He.default(r):t}function wr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)<=0}));return je.default(a)}return r?je.default(r):t}function br(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--holidays\",r=new Map;return e.forEach((function(e){var a=e.date,n=e.holidayName;if(fe.default(a)){var o=qt(a,\"MM.dd.yyyy\"),s=r.get(o)||{};if(!(\"className\"in s)||s.className!==t||(i=s.holidayNames,p=[n],i.length!==p.length||!i.every((function(e,t){return e===p[t]})))){var i,p;s.className=t;var l=s.holidayNames;s.holidayNames=l?[].concat(xt(l),[n]):[n],r.set(o,s)}}})),r}function Cr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:Lt,r=Math.ceil(Le.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Pr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function Er(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Le.default(r)<=s),a&&i&&(i=Le.default(a)>=s),i&&n.push(s)}return n}var Nr=function(e){_t(a,e);var r=Nt(a);function a(e){var n;kt(this,a),St(Et(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(Et(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Le.default(n.props.minDate):null,a=n.props.maxDate?Le.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),St(Et(n),\"onChange\",(function(e){n.props.onChange(e)})),St(Et(n),\"handleClickOutside\",(function(){n.props.onCancel()})),St(Et(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),St(Et(n),\"incrementYears\",(function(){return n.shiftYears(1)})),St(Et(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Er(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return bt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:\"render\",value:function(){var e=ue.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),xr=ht.default(Nr),Yr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0?n.get(o).holidayNames.join(\", \"):\"\"})),St(Et(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(a)&&Jt(n,a))?0:-1})),St(Et(e),\"handleFocusDay\",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(a=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(a=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(a=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(a=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(a=!1)),a&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),St(Et(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),St(Et(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",title:e.getTitle(),\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()||e.isInRange()},e.renderDayContents(),\"\"!==e.getTitle()&&de.default.createElement(\"span\",{className:\"holiday-overlay\"},e.getTitle()))})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),qr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&Jt(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains(\"react-datepicker__week-number\")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusWeekNumber()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusWeekNumber(e)}},{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick,\"react-datepicker__week-number--selected\":Jt(this.props.date,this.props.selected),\"react-datepicker__week-number--keyboard-selected\":this.isKeyboardSelected()};return de.default.createElement(\"div\",{ref:this.weekNumberEl,className:ue.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:\"defaultProps\",get:function(){return{ariaLabelPrefix:\"week \"}}}]),r}(de.default.Component),Kr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),St(Et(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Ht(Ke.default(e.props.day,r)),t)})),St(Et(e),\"onMonthMouseEnter\",(function(t){e.handleDayMouseEnter(Ht(Ke.default(e.props.day,t)))})),St(Et(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),St(Et(e),\"onMonthKeyDown\",(function(t,r){var a=e.props,n=a.selected,o=a.preSelection,s=a.disabledKeyboardNavigation,i=a.showTwoColumnMonthYearPicker,p=a.showFourColumnMonthYearPicker,l=a.setPreSelection,c=t.key;if(\"Tab\"!==c&&t.preventDefault(),!s){var d=Vr(p,i),u=jr[d].verticalNavigationOffset,f=jr[d].grid;switch(c){case\"Enter\":e.onMonthClick(t,r),l(n);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,ke.default(o,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,_e.default(o,1));break;case\"ArrowUp\":e.handleMonthNavigation(f[0].includes(r)?r+12-u:r-u,_e.default(o,u));break;case\"ArrowDown\":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+u:r+u,ke.default(o,u))}}})),St(Et(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Vt(Be.default(e.props.day,r)),t)})),St(Et(e),\"onQuarterMouseEnter\",(function(t){e.handleDayMouseEnter(Vt(Be.default(e.props.day,t)))})),St(Et(e),\"handleQuarterNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),St(Et(e),\"onQuarterKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleQuarterNavigation(4===r?1:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleQuarterNavigation(1===r?4:r-1,Me.default(e.props.preSelection,1))}})),St(Et(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.monthClassName,d=r.excludeDates,u=r.includeDates,f=c?c(Ke.default(a,t)):void 0,h=Ke.default(a,t);return ue.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),f,{\"react-datepicker__month-text--disabled\":(i||p||d||u)&&sr(h,e.props),\"react-datepicker__month-text--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":!e.props.disabledKeyboardNavigation&&Te.default(l)===t,\"react-datepicker__month-text--in-selecting-range\":e.isInSelectingRangeMonth(t),\"react-datepicker__month-text--in-range\":ir(n,o,t,a),\"react-datepicker__month-text--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month-text--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--selecting-range-start\":e.isSelectingMonthRangeStart(t),\"react-datepicker__month-text--selecting-range-end\":e.isSelectingMonthRangeEnd(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),St(Et(e),\"getTabIndex\",(function(t){var r=Te.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getQuarterTabIndex\",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ke.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(qt(p,\"MMMM yyyy\"))})),St(Et(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.disabledKeyboardNavigation;return ue.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter-text--disabled\":(i||p)&&pr(Be.default(a,t),e.props),\"react-datepicker__quarter-text--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter-text--keyboard-selected\":!c&&Re.default(l)===t,\"react-datepicker__quarter-text--in-selecting-range\":e.isInSelectingRangeQuarter(t),\"react-datepicker__quarter-text--in-range\":dr(n,o,t,a),\"react-datepicker__quarter-text--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter-text--range-end\":e.isRangeEndQuarter(t)})})),St(Et(e),\"getMonthContent\",(function(t){var r=e.props,a=r.showFullMonthYearPicker,n=r.renderMonthContent,o=r.locale,s=r.day,i=ar(t,o),p=rr(t,o);return n?n(t,i,p,s):a?p:i})),St(Et(e),\"getQuarterContent\",(function(t){var r=e.props,a=r.renderQuarterContent,n=function(e,t){return qt(Be.default(At(),e),\"QQQ\",t)}(t,r.locale);return a?a(t,n):n})),St(Et(e),\"renderMonths\",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,a=t.showFourColumnMonthYearPicker,n=t.day,o=t.selected;return jr[Vr(a,r)].grid.map((function(t,r){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},t.map((function(t,r){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(n,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(n,t,o)},e.getMonthContent(t))})))}))})),St(Et(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,ref:e.QUARTER_REFS[n],role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a),tabIndex:e.getQuarterTabIndex(t),\"aria-current\":e.isCurrentQuarter(r,t)?\"date\":void 0},e.getQuarterContent(t))})))})),St(Et(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker,i=t.showWeekPicker;return ue.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s},{\"react-datepicker__weekPicker\":i})})),e}return bt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(qt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),zr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),St(Et(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=kr(a.props),s=wr(a.props),i=At(),p=n||r||t;return p||(o&<.default(i,o)?o:s&&pt.default(i,s)?s:i)})),St(Et(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:ke.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:_e.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),St(Et(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),St(Et(a),\"handleYearMouseEnter\",(function(e,t){a.setState({selectingDate:Qe.default(At(),t)}),a.props.onYearMouseEnter&&a.props.onYearMouseEnter(e,t)})),St(Et(a),\"handleYearMouseLeave\",(function(e,t){a.props.onYearMouseLeave&&a.props.onYearMouseLeave(e,t)})),St(Et(a),\"handleYearChange\",(function(e){a.props.onYearChange&&(a.props.onYearChange(e),a.setState({isRenderAriaLiveMessage:!0})),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleMonthChange\",(function(e){a.handleCustomMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleCustomMonthChange\",(function(e){a.props.onMonthChange&&(a.props.onMonthChange(e),a.setState({isRenderAriaLiveMessage:!0}))})),St(Et(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),St(Et(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ke.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(Ke.default(r,Te.default(e)),Le.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),St(Et(a),\"header\",(function(){var e=Qt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,a.props.locale,a.props.calendarStartDay),t=[];return a.props.showWeekNumbers&&t.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=De.default(e,t),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:t,className:ue.default(\"react-datepicker__day-name\",o)},n)})))})),St(Et(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(qt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return qt(e,\"EEE\",t)}(e,t):function(e,t){return qt(e,\"EEEEEE\",t)}(e,t)})),St(Et(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Pe.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"clearSelectingDate\",(function(){a.setState({selectingDate:null})})),St(Et(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=Dr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(jt(Pe.default(e,n)),n).endPeriod,s=r&&Le.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=yr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,c=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,d=p.previousYearAriaLabel,u=void 0===d?\"string\"==typeof i?i:\"Previous Year\":d;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:c},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),St(Et(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:be.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=gr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(be.default(e,n),n).startPeriod,s=r&&Le.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},qt(e,a.props.dateFormat,a.props.locale))})),St(Et(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Yr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Le.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),St(Et(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Tr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Te.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),St(Et(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ar,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),St(Et(a),\"handleTodayButtonClick\",(function(e){a.props.onSelect(Ut(),e),a.props.setPreSelection&&a.props.setPreSelection(Ut())})),St(Et(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.handleTodayButtonClick(e)}},a.props.todayButton)})),St(Et(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=yr(a.state.date,a.props),o=vr(a.state.date,a.props),s=Dr(a.state.date,a.props),i=gr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(Dt(Dt({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=Mr(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Le.default(e))})),St(Et(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),St(Et(a),\"renderMonths\",(function(){var e;if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var t=[],r=a.props.showPreviousMonths?a.props.monthsShown-1:0,n=_e.default(a.state.date,r),o=null!==(e=a.props.monthSelectedIn)&&void 0!==e?e:r,s=0;s0;t.push(de.default.createElement(\"div\",{key:l,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:p,i:s}),de.default.createElement(Ur,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:p,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:s,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,holidays:a.props.holidays,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),St(Et(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement($r,Ct({onDayClick:a.handleDayClick,selectingDate:a.state.selectingDate,clearSelectingDate:a.clearSelectingDate,date:a.state.date},a.props,{onYearMouseEnter:a.handleYearMouseEnter,onYearMouseLeave:a.handleYearMouseLeave}))):void 0})),St(Et(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(zr,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),St(Et(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Wt(e)&&Boolean(a.props.selected)?\"\".concat(_r(e.getHours()),\":\").concat(_r(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Gr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=Mr(a.state.date,a.props.yearItemNumber),r=t.startPeriod,n=t.endPeriod;return e=a.props.showYearPicker?\"\".concat(r,\" - \").concat(n):a.props.showMonthYearPicker||a.props.showQuarterYearPicker?Le.default(a.state.date):\"\".concat(rr(Te.default(a.state.date),a.props.locale),\" \").concat(Le.default(a.state.date)),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},a.state.isRenderAriaLiveMessage&&e)})),St(Et(a),\"renderChildren\",(function(){if(a.props.children)return de.default.createElement(\"div\",{className:\"react-datepicker__children-container\"},a.props.children)})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},a}return bt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){var t=this;if(!this.props.preSelection||Jt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Jt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!$t(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:\"render\",value:function(){var e=this.props.container||Jr;return de.default.createElement(\"div\",{style:{display:\"contents\"},ref:this.containerRef},de.default.createElement(e,{className:ue.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Lt}}}]),r}(de.default.Component),ea=function(e){var t=e.icon,r=e.className,a=void 0===r?\"\":r,n=e.onClick,o=\"react-datepicker__calendar-icon\";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:\"\".concat(t.props.className||\"\",\" \").concat(o,\" \").concat(a),onClick:function(e){\"function\"==typeof t.props.onClick&&t.props.onClick(e),\"function\"==typeof n&&n(e)}}):\"string\"==typeof t?de.default.createElement(\"i\",{className:\"\".concat(o,\" \").concat(t,\" \").concat(a),\"aria-hidden\":\"true\",onClick:n}):de.default.createElement(\"svg\",{className:\"\".concat(o,\" \").concat(a),xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 448 512\",onClick:n},de.default.createElement(\"path\",{d:\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"}))},ta=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return bt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return mt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),ra=function(e){return!e.disabled&&-1!==e.tabIndex},aa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(ra)})),St(Et(a),\"handleFocusStart\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),St(Et(a),\"handleFocusEnd\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return bt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),na=function(e){_t(r,e);var t=Nt(r);function r(){return kt(this,r),t.apply(this,arguments)}return bt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ue.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Ct({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(aa,{enableTabLoop:c},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:d},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(ta,{portalId:u,portalHost:f},e));var m=ue.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),oa=\"react-datepicker-ignore-onclickoutside\",sa=ht.default(Zr);var ia=\"Date input not valid.\",pa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:At()})),St(Et(a),\"modifyHolidays\",(function(){var e;return null===(e=a.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(xt(e),[Dt(Dt({},t),{},{date:r})]):e}),[])})),St(Et(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=kr(a.props),n=wr(a.props),o=r&<.default(t,$e.default(r))?r:n&&pt.default(t,et.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:br(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),St(Et(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),St(Et(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),St(Et(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),St(Et(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:ca},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),St(Et(a),\"inputOk\",(function(){return fe.default(a.state.preSelection)})),St(Et(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),St(Et(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),St(Et(a),\"sendFocusBackToInput\",(function(){a.preventFocusTimeout&&a.clearPreventFocusTimeout(),a.setState({preventFocus:!0},(function(){a.preventFocusTimeout=setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))}))})),St(Et(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),St(Et(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),St(Et(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),St(Et(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),St(Et(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),St(Et(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&(c=ut.default(o,s.slice(0,o.length),new Date)),Wt(c)||(c=new Date(o))),Wt(c)&&u?c:null));a.props.showTimeSelectOnly&&a.props.selected&&f&&!Jt(f,a.props.selected)&&(f=yt.default(a.props.selected,{hours:xe.default(f),minutes:Ne.default(f),seconds:Ee.default(f)})),!f&&n.target.value||(a.props.showWeekPicker&&(f=Qt(f,a.props.locale,a.props.calendarStartDay)),a.setSelected(f,n,!0))}})),St(Et(a),\"handleSelect\",(function(e,t,r){if(a.props.shouldCloseOnSelect&&!a.props.showTimeSelect&&a.sendFocusBackToInput(),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay)),a.setSelected(e,t,!1,r),a.props.showDateSelect&&a.setState({isRenderAriaLiveMessage:!0}),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||lt.default(e,o)||a.setOpen(!1)}})),St(Et(a),\"setSelected\",(function(e,t,r,n){var o=e;if(a.props.showYearPicker){if(null!==o&&cr(Le.default(o),a.props))return}else if(a.props.showMonthYearPicker){if(null!==o&&sr(o,a.props))return}else if(null!==o&&nr(o,a.props))return;var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,c=s.endDate;if(!Xt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Bt(o,{hour:xe.default(a.props.selected),minute:Ne.default(a.props.selected),second:Ee.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var d=l&&!c,u=l&&c;!l&&!c?i([o,null],t):d&&(lt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))})),St(Et(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay));var o=$e.default(e);if(t&&r)n=Zt(e,a.props.minDate,a.props.maxDate);else if(t){var s=$e.default(a.props.minDate);n=pt.default(e,s)||Xt(o,s)}else if(r){var i=et.default(a.props.maxDate);n=lt.default(e,i)||Xt(o,i)}}n&&a.setState({preSelection:e})})),St(Et(a),\"toggleCalendar\",(function(){a.setOpen(!a.state.open)})),St(Et(a),\"handleTimeChange\",(function(e){var t=a.props.selected?a.props.selected:a.getPreSelection(),r=a.props.selected?e:Bt(t,{hour:xe.default(e),minute:Ne.default(e)});a.setState({preSelection:r}),a.props.onChange(r),a.props.shouldCloseOnSelect&&(a.sendFocusBackToInput(),a.setOpen(!1)),a.props.showTimeInput&&a.setOpen(!0),(a.props.showTimeSelectOnly||a.props.showTimeSelect)&&a.setState({isRenderAriaLiveMessage:!0}),a.setState({inputValue:null})})),St(Et(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),St(Et(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.props.showWeekPicker&&a.props.showWeekNumbers?'.react-datepicker__week-number[tabindex=\"0\"]':'.react-datepicker__day[tabindex=\"0\"]',n=a.calendar.componentNode&&a.calendar.componentNode.querySelector(r);return void(n&&n.focus({preventScroll:!0}))}var o=At(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===ca?(a.handleSelect(o,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(o)):a.setOpen(!1)):\"Escape\"===t?(e.preventDefault(),a.sendFocusBackToInput(),a.setOpen(!1)):\"Tab\"===t&&a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),St(Et(a),\"onPortalKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),St(Et(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=At(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=a.props.showWeekPicker?Ce.default(r,1):Se.default(r,1);break;case\"ArrowRight\":n=a.props.showWeekPicker?ge.default(r,1):De.default(r,1);break;case\"ArrowUp\":n=Ce.default(r,1);break;case\"ArrowDown\":n=ge.default(r,1);break;case\"PageUp\":n=_e.default(r,1);break;case\"PageDown\":n=ke.default(r,1);break;case\"Home\":n=Pe.default(r,1);break;case\"End\":n=be.default(r,1);break;default:n=null}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:ia}));if(e.preventDefault(),a.setState({lastPreSelectChange:ca}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Te.default(r),s=Te.default(n),i=Le.default(r),p=Le.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),St(Et(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.sendFocusBackToInput())})),St(Et(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.sendFocusBackToInput(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),St(Et(a),\"clear\",(function(){a.onClearClick()})),St(Et(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),St(Et(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(sa,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,monthAriaLabelPrefix:a.props.monthAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,holidays:Sr(a.modifyHolidays()),includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:oa,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showDateSelect:a.props.showDateSelect,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,onYearMouseEnter:a.props.onYearMouseEnter,onYearMouseLeave:a.props.onYearMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=a.props,r=t.dateFormat,n=t.locale,o=a.props.showTimeInput||a.props.showTimeSelect?\"PPPPp\":\"PPPP\";return e=a.props.selectsRange?\"Selected start date: \".concat(Kt(a.props.startDate,{dateFormat:o,locale:n}),\". \").concat(a.props.endDate?\"End date: \"+Kt(a.props.endDate,{dateFormat:o,locale:n}):\"\"):a.props.showTimeSelectOnly?\"Selected time: \".concat(Kt(a.props.selected,{dateFormat:r,locale:n})):a.props.showYearPicker?\"Selected year: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy\",locale:n})):a.props.showMonthYearPicker?\"Selected month: \".concat(Kt(a.props.selected,{dateFormat:\"MMMM yyyy\",locale:n})):a.props.showQuarterYearPicker?\"Selected quarter: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy, QQQ\",locale:n})):\"Selected date: \".concat(Kt(a.props.selected,{dateFormat:o,locale:n})),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},e)})),St(Et(a),\"renderDateInput\",(function(){var e,t=ue.default(a.props.className,St({},oa,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Kt(e,r),n=t?Kt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Kt(a.props.selected,a.props);return de.default.cloneElement(r,(St(St(St(St(St(St(St(St(St(St(e={},n,(function(e){a.input=e})),\"value\",o),\"onBlur\",a.handleBlur),\"onChange\",a.handleChange),\"onClick\",a.onInputClick),\"onFocus\",a.handleFocus),\"onKeyDown\",a.onInputKeyDown),\"id\",a.props.id),\"name\",a.props.name),\"form\",a.props.form),St(St(St(St(St(St(St(St(St(St(e,\"autoFocus\",a.props.autoFocus),\"placeholder\",a.props.placeholderText),\"disabled\",a.props.disabled),\"autoComplete\",a.props.autoComplete),\"className\",ue.default(r.props.className,t)),\"title\",a.props.title),\"readOnly\",a.props.readOnly),\"required\",a.props.required),\"tabIndex\",a.props.tabIndex),\"aria-describedby\",a.props.ariaDescribedBy),St(St(St(e,\"aria-invalid\",a.props.ariaInvalid),\"aria-labelledby\",a.props.ariaLabelledBy),\"aria-required\",a.props.ariaRequired)))})),St(Et(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.disabled,n=e.selected,o=e.startDate,s=e.endDate,i=e.clearButtonTitle,p=e.clearButtonClassName,l=void 0===p?\"\":p,c=e.ariaLabelClose,d=void 0===c?\"Close\":c;return!t||null==n&&null==o&&null==s?null:de.default.createElement(\"button\",{type:\"button\",className:ue.default(\"react-datepicker__close-icon\",l,{\"react-datepicker__close-icon--disabled\":r}),disabled:r,\"aria-label\":d,onClick:a.onClearClick,title:i,tabIndex:-1})})),a.state=a.calcInitialState(),a.preventFocusTimeout=null,a}return bt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Te.default(r)!==Te.default(a)||Le.default(r)!==Le.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:br(this.props.highlightDates)}),t.focused||Xt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){var e=this.props,t=e.showIcon,r=e.icon,a=e.calendarIconClassname,n=e.toggleCalendarOnIconClick,o=this.state.open;return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\".concat(t?\" react-datepicker__view-calendar-icon\":\"\")},t&&de.default.createElement(ea,Ct({icon:r,className:\"\".concat(a,\" \").concat(o&&\"react-datepicker-ignore-onclickoutside\")},n?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(aa,{enableTabLoop:this.props.enableTabLoop},de.default.createElement(\"div\",{className:\"react-datepicker__portal\",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(ta,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(na,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1}}}]),r}(de.default.Component),la=\"input\",ca=\"navigate\";e.CalendarContainer=Jr,e.default=pa,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = {};\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions.passive = !instance.props.preventDefault;\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n if (_this.initTimeStamp > event.timeStamp) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n _this.initTimeStamp = performance.now();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","import * as React from \"react\";\r\nexport const AlphabetListItem = (props) => (React.createElement(\"div\", { className: \"alphabet-list-item\" },\r\n React.createElement(\"h5\", null, props.term),\r\n React.createElement(\"p\", null, props.definition)));\r\n","import React, { Fragment, useMemo } from \"react\";\r\nimport { IconNoResults } from \"../svgIcons\";\r\nimport { AlphabetListItem } from \"./AlphabetListItem/AlphabetListItem\";\r\nexport const AlphabetList = (props) => {\r\n const handleGlossaryTitle = useMemo(() => {\r\n if (props.title) {\r\n return (props.title?.charAt(0).toUpperCase() + props.title?.slice(1));\r\n }\r\n return \"\";\r\n }, [props.title]);\r\n const [data, setData] = React.useState({});\r\n const [selectedType, setSelectedType] = React.useState();\r\n React.useEffect(() => {\r\n const letters = [...new Set([...props.content].map(l => l.letter).sort())];\r\n const obj = {};\r\n letters.map((l) => obj[l ? l : \"\"] = []);\r\n props.content.map(item => { obj[`${item.letter}`] = [...obj[`${item.letter}`], { term: item.term, definition: item.definition }]; });\r\n setData(obj);\r\n const parts = window.location.href.split(\"/\");\r\n const lastSegment = parts.pop() || parts.pop();\r\n setSelectedType(lastSegment && lastSegment);\r\n }, [props]);\r\n const resultsTitle = () => Object.keys(data).length ?\r\n React.createElement(\"h5\", { className: \"alphabet-list__title search-title h5-semi-bold\" },\r\n props.searchResultsText,\r\n \" \\u201C\",\r\n props.searchQuery,\r\n \"\\u201C\")\r\n : React.createElement(\"div\", { className: \"alphabet-list__noresults\" },\r\n IconNoResults,\r\n props.noResultsText);\r\n return (React.createElement(\"div\", { className: \"alphabet-list\" },\r\n (selectedType && selectedType.length > 1 && !props.searchQuery) && React.createElement(\"h2\", { className: \"alphabet-list__title\" }, handleGlossaryTitle),\r\n props.searchQuery && React.createElement(\"div\", { className: \"search-title__container\" }, resultsTitle()),\r\n React.createElement(\"div\", { className: \"alphabet-list__container\" }, data && Object.keys(data).map((item, i) => (React.createElement(\"div\", { key: i, className: \"alphabet-list__content\" },\r\n React.createElement(\"div\", { className: \"alphabet-list__letter\" },\r\n React.createElement(\"h3\", null, item)),\r\n React.createElement(\"div\", { className: \"alphabet-list__letter-block\" }, data[item].map((el, i) => React.createElement(AlphabetListItem, { key: `alphabet-list-${i}`, ...el, definition: getHighlightedText(el.definition, props.searchQuery ? props.searchQuery : \"\"), term: getHighlightedText(el.term, props.searchQuery ? props.searchQuery : \"\") })))))))));\r\n};\r\nexport const getHighlightedText = (text, highlightedText, highLightColor = \"#BEF3BD\") => {\r\n const parts = text.split(new RegExp(`(${highlightedText})`, \"gi\"));\r\n return React.createElement(React.Fragment, null,\r\n \" \",\r\n parts.map((part, i) => {\r\n const isPartHighlighted = part.toLowerCase() === highlightedText.toLowerCase();\r\n const key = `${text.toLowerCase().replace(\" \", \"\")}-${i}`;\r\n return React.createElement(Fragment, { key: key }, isPartHighlighted ?\r\n React.createElement(\"mark\", { style: { backgroundColor: highLightColor } }, part) : React.createElement(React.Fragment, null, part));\r\n }),\r\n \" \");\r\n};\r\n","import React from \"react\";\r\nexport const buttonArrowRight = React.createElement(\"svg\", { width: \"15\", height: \"15\", viewBox: \"0 0 15 15\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M2.25 7.49967L12.75 7.49967M12.75 7.49967L7.79167 12.458M12.75 7.49967L7.79167 2.54134\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\r\nexport const buttonArrowUp = React.createElement(\"svg\", { width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6.00065 11.25L6.00065 0.750001M6.00065 0.750001L1.04232 5.70833M6.00065 0.750001L10.959 5.70833\", stroke: \"#0E1D31\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\r\nexport const buttonArrowDown = React.createElement(\"svg\", { width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M5.99935 0.75V11.25M5.99935 11.25L10.9577 6.29167M5.99935 11.25L1.04102 6.29167\", stroke: \"#0E1D31\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\r\n","import React, { useCallback, useMemo } from \"react\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nimport { buttonArrowRight, buttonArrowDown, buttonArrowUp } from \"../svgIcons/ButtonV2Icons\";\r\nexport const ButtonV2 = ({ design, classes, ...props }) => {\r\n const hrefTarget = handleLinkTarget(props.openInNewTab);\r\n const mountArrows = useCallback(() => React.createElement(React.Fragment, null,\r\n props.showArrowRight && buttonArrowRight,\r\n props.showArrowUp && buttonArrowUp,\r\n props.showArrowDown && buttonArrowDown), [props]);\r\n const anchor = useMemo(() => React.createElement(\"a\", { href: props.href ? props.href : \"#\", onClick: props.onClick, className: `button-v2 flex ${design} ${classes || \"\"}`, style: { ...props.style }, target: hrefTarget },\r\n props.icon && React.createElement(React.Fragment, null,\r\n React.createElement(\"img\", { className: \"button-v2-icon\", src: props.icon }),\r\n React.createElement(\"img\", { className: \"button-v2-icon-hover\", src: props.iconHover || props.icon })),\r\n props.children,\r\n mountArrows()), [classes, design, props, hrefTarget, mountArrows]);\r\n const spn = useMemo(() => React.createElement(\"span\", { role: \"button\", onClick: props.onClick, className: `button-v2 flex ${design} ${classes || \"\"}`, style: { ...props.style, cursor: \"pointer\" } },\r\n props.icon && React.createElement(React.Fragment, null,\r\n React.createElement(\"img\", { className: \"button-v2-icon\", src: props.icon }),\r\n React.createElement(\"img\", { className: \"button-v2-icon-hover\", src: props.iconHover || props.icon })),\r\n props.children,\r\n mountArrows()), [classes, design, props, mountArrows]);\r\n return (React.createElement(\"div\", { className: `button-v2-wrapper flex ${props.classesWrapper || \"\"}` }, props.href ? anchor : spn));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nexport const SearchInput = ({ onSearch, onChange, searchValue, searchPlaceholder }) => {\r\n const [inputValue, setInputValue] = React.useState();\r\n React.useEffect(() => {\r\n const timeoutId = setTimeout(() => {\r\n inputValue && onSearch(inputValue);\r\n }, 500);\r\n return () => clearTimeout(timeoutId);\r\n }, [inputValue, onSearch]);\r\n const handleKeyDown = useCallback((event) => {\r\n if (event.key === \"Enter\") {\r\n setInputValue(event);\r\n }\r\n }, []);\r\n return React.createElement(\"div\", { className: \"search-input\" },\r\n React.createElement(\"input\", { className: \"search-input__input\", onKeyDown: handleKeyDown, onChange: onChange, value: searchValue, type: \"search\", placeholder: searchPlaceholder, maxLength: 50 }));\r\n};\r\n","export const stripHTML = (myString) => {\r\n const el = document.createElement(\"div\");\r\n el.innerHTML = myString;\r\n return el.textContent || el.innerText || \"\";\r\n};\r\n","const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n};\r\nconst ERROR_TYPE_MAP = new Map(Object.entries({\r\n 400: \"400\",\r\n 401: \"401\",\r\n}));\r\nconst getErrorType = (responseCode) => ERROR_TYPE_MAP[responseCode] ?? \"An error has occured\";\r\nexport const fetchSearchResults = async (requestUrl, payloadObj, signal) => {\r\n const queryParams = Object.entries(payloadObj).reduce((prev, [key, value]) => `${prev}${key}=${value}&`, \"\");\r\n if (signal) {\r\n requestOptions.signal = signal;\r\n }\r\n try {\r\n const response = await fetch(`${requestUrl}?${queryParams}`, requestOptions);\r\n if (!response.ok) {\r\n return {\r\n isError: true,\r\n errorType: getErrorType(response.status),\r\n results: undefined\r\n };\r\n }\r\n const results = await response.json();\r\n return {\r\n isError: false,\r\n errorType: \"\",\r\n results\r\n };\r\n }\r\n catch (error) {\r\n console.error(\"GlobalSearch error:\", error);\r\n let message;\r\n if (error instanceof Error) {\r\n if (error.name === \"AbortError\") {\r\n return {\r\n isError: false,\r\n errorType: \"\",\r\n results: undefined\r\n };\r\n }\r\n message = error.message;\r\n }\r\n else {\r\n message = String(error);\r\n }\r\n return {\r\n isError: true,\r\n errorType: message,\r\n results: undefined\r\n };\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { MultiplesSectorsIcon } from \"../../svgIcons\";\r\nexport const NoResults = ({ noResults }) => (React.createElement(\"div\", { className: \"no-results\" },\r\n MultiplesSectorsIcon({}),\r\n React.createElement(\"p\", null, noResults)));\r\n","import React from \"react\";\r\nexport const SearchResultItem = ({ title, summary, url }) => React.createElement(\"article\", { className: \"search-result-item\" },\r\n React.createElement(\"h4\", { className: \"search-result-item__title\" },\r\n React.createElement(\"a\", { className: \"search-result-item__url\", href: url }, title)),\r\n React.createElement(\"p\", { className: \"search-result-item__summary\" }, summary));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle/pageViewStyle\";\r\nimport { NoResults } from \"../NoResults/NoResults\";\r\nimport { SearchResultItem, stripHTML } from \"./SearchResultItem\";\r\nimport { JobBoardPagination } from \"../../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { getHighlightedText } from \"../../AlphabetList\";\r\nimport { SearchInput } from \"../SearchInput\";\r\nconst groomResultSummary = (summary, searchValue) => {\r\n const plainText = stripHTML(summary);\r\n return getHighlightedText(plainText, searchValue);\r\n};\r\nconst calculateResultsStats = (totalResults, currentPage, resultsPerPage) => {\r\n const previousResultsCount = currentPage * resultsPerPage;\r\n const remainingResultsCount = totalResults - previousResultsCount;\r\n const firstResultNum = previousResultsCount + 1;\r\n const pageResultsCount = remainingResultsCount >= resultsPerPage ? resultsPerPage : remainingResultsCount;\r\n const lastResultNum = previousResultsCount + pageResultsCount;\r\n const totalPagesCount = Math.ceil(totalResults / resultsPerPage);\r\n return { firstResultNum, lastResultNum, pageResultsCount, totalPagesCount };\r\n};\r\nexport const SearchResults = ({ title, subtitle, resultsList, onPageChange, totalResults, resultsPerPage, currentPage, searchValue, noResultsFoundText = \"No results found\", handleSearch, onSearchChange, inputSearchValue, searchPlaceholder, searchResultsFor }) => {\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, []);\r\n const { totalPagesCount } = calculateResultsStats(totalResults, currentPage, resultsPerPage);\r\n const hasResults = resultsList && resultsList.length > 0;\r\n return (React.createElement(\"div\", { className: \"search-results\" },\r\n React.createElement(\"h1\", { className: \"search-results__title\" }, title),\r\n React.createElement(\"div\", { className: \"global-search__input\" },\r\n React.createElement(\"div\", { className: \"global-search__input-container\" },\r\n React.createElement(SearchInput, { onSearch: handleSearch, onChange: onSearchChange, searchValue: inputSearchValue, searchPlaceholder: searchPlaceholder }))),\r\n React.createElement(\"p\", { className: \"search-results__subtitle\" }, `${subtitle} ${totalResults} ${searchResultsFor} \"${searchValue}\"`),\r\n React.createElement(\"div\", { className: \"search-results__container\" },\r\n React.createElement(\"div\", { className: \"search-results__list\" }, hasResults ? resultsList.map(({ title, content, url }, index) => React.createElement(\"div\", { key: index, className: \"search-results__result\" },\r\n React.createElement(SearchResultItem, { title: stripHTML(title), summary: groomResultSummary(content, searchValue), url: url }))) : React.createElement(NoResults, { noResults: noResultsFoundText })),\r\n totalPagesCount > 1 && React.createElement(\"div\", { className: \"search-results__pagination\" },\r\n React.createElement(JobBoardPagination, { numOfPages: totalPagesCount, currentPage: currentPage, onPageChange: onPageChange, isSmallScreen: view !== \"large\" })))));\r\n};\r\n","import { useState, useEffect, useRef, useCallback } from \"react\";\r\nimport { SEARCH_PARAM_NAME, PAGENUM_PARAM_NAME } from \"./GlobalSearch\";\r\nconst tweakCurrentParamValues = (currentSearchValue, currentPageNum) => ({\r\n paramValue: currentSearchValue || undefined,\r\n pageNumValue: getCorrectedPageNum(currentPageNum),\r\n});\r\nconst checkIsNewEntryAllowed = (currentSearchValue, newParamValue) => currentSearchValue !== null && newParamValue !== undefined;\r\nconst getCorrectedPageNum = (pageNum) => Number(pageNum) || 1;\r\nconst getNewParamValues = (newHistoryEntry) => ({\r\n newParamValue: newHistoryEntry?.newParamValue,\r\n newPageNum: newHistoryEntry?.newPageNum,\r\n});\r\nconst addHistoryEntry = (newHistoryEntry, useCurrentParamValue = false, replaceCurrentEntry = false) => {\r\n const { href, origin, pathname, search, hash } = window.location;\r\n const searchParms = new URLSearchParams(search);\r\n const currentSearchValue = searchParms.get(SEARCH_PARAM_NAME);\r\n const currentPageNum = searchParms.get(PAGENUM_PARAM_NAME);\r\n const { newParamValue, newPageNum } = getNewParamValues(newHistoryEntry);\r\n let paramValue;\r\n let pageNumValue;\r\n let newUrl;\r\n if (useCurrentParamValue) {\r\n const tweakedParamValues = tweakCurrentParamValues(currentSearchValue, currentPageNum);\r\n paramValue = tweakedParamValues.paramValue;\r\n pageNumValue = tweakedParamValues.pageNumValue;\r\n newUrl = href;\r\n }\r\n else {\r\n if (!checkIsNewEntryAllowed(currentSearchValue, newParamValue)) {\r\n return;\r\n }\r\n paramValue = newParamValue;\r\n pageNumValue = newPageNum;\r\n if (paramValue !== undefined) {\r\n searchParms.set(SEARCH_PARAM_NAME, paramValue);\r\n }\r\n if (pageNumValue !== undefined) {\r\n searchParms.set(PAGENUM_PARAM_NAME, pageNumValue.toString());\r\n }\r\n else {\r\n searchParms.delete(PAGENUM_PARAM_NAME);\r\n }\r\n newUrl = `${origin}${pathname}?${searchParms.toString()}${hash}`;\r\n }\r\n const entryState = {\r\n pageName: \"search\",\r\n paramName: SEARCH_PARAM_NAME,\r\n paramValue,\r\n resultsPageNum: getCorrectedPageNum(pageNumValue)\r\n };\r\n if (replaceCurrentEntry) {\r\n window.history.replaceState(entryState, \"\", newUrl);\r\n }\r\n else {\r\n window.history.pushState(entryState, \"\", newUrl);\r\n }\r\n};\r\nexport const useGlobalSearchNavigation = ({ searchFunction, onRefetch, status }) => {\r\n const [, setTriggerRerenderTime] = useState(undefined);\r\n const latestFetchTimestampRef = useRef(undefined);\r\n const getPossibleRefetchValue = (state) => {\r\n if (!state) {\r\n return undefined;\r\n }\r\n const { pageName, paramName, paramValue, resultsPageNum } = state;\r\n if (pageName === \"search\" && paramName === SEARCH_PARAM_NAME && paramValue) {\r\n return { paramValue, resultsPageNum };\r\n }\r\n return undefined;\r\n };\r\n const triggerRefetch = useCallback((searchValue, pageNum = 0) => {\r\n searchFunction({\r\n searchValue,\r\n pageNum\r\n }, true);\r\n setTriggerRerenderTime(Date.now());\r\n onRefetch(searchValue);\r\n }, [onRefetch, searchFunction]);\r\n useEffect(() => {\r\n const handleHistoryNavigation = (event) => {\r\n const refetchValue = getPossibleRefetchValue(event.state);\r\n if (refetchValue?.paramValue) {\r\n triggerRefetch(refetchValue.paramValue, refetchValue.resultsPageNum);\r\n }\r\n };\r\n window.addEventListener(\"popstate\", handleHistoryNavigation);\r\n return () => {\r\n window.removeEventListener(\"popstate\", handleHistoryNavigation);\r\n };\r\n }, [triggerRefetch]);\r\n useEffect(() => {\r\n const handleHistoryOnMount = () => {\r\n const refetchValue = getPossibleRefetchValue(window.history.state);\r\n if (refetchValue?.paramValue) {\r\n triggerRefetch(refetchValue.paramValue, refetchValue.resultsPageNum);\r\n return;\r\n }\r\n addHistoryEntry(undefined, true, true);\r\n };\r\n handleHistoryOnMount();\r\n }, [triggerRefetch]);\r\n useEffect(() => {\r\n const { requestTimestamp, requestedSearchValue, pageNum, isRefetch } = status;\r\n if (requestTimestamp === latestFetchTimestampRef.current) {\r\n return;\r\n }\r\n if (isRefetch) {\r\n return;\r\n }\r\n addHistoryEntry({\r\n newParamValue: requestedSearchValue,\r\n newPageNum: pageNum || undefined\r\n });\r\n latestFetchTimestampRef.current = requestTimestamp;\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Img } from \"../../Img\";\r\nexport const Contacts = ({ mainTitle, subTitle, chatLabel, emailLabel, phoneNumberLabel, chatIcon, emailIcon, phoneNumberIcon, chatCallFunction, onClickFn }) => (React.createElement(\"div\", { className: 'contacts' },\r\n React.createElement(Heading, { design: 'h4-bold' }, mainTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } }),\r\n React.createElement(\"div\", { className: 'contacts__options' },\r\n React.createElement(\"div\", null,\r\n React.createElement(Img, { src: chatIcon }),\r\n React.createElement(\"a\", { className: \"\", onClick: chatCallFunction }, chatLabel)),\r\n React.createElement(\"div\", null,\r\n React.createElement(Img, { src: emailIcon }),\r\n React.createElement(\"p\", null, emailLabel)),\r\n React.createElement(\"div\", null,\r\n React.createElement(Img, { src: phoneNumberIcon }),\r\n React.createElement(\"p\", null, phoneNumberLabel)))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const CreateAccount = ({ secondTitle = \"Create a free account today\", buttonLabel = \"Trade now\", buttonHref = \"www.google.com\" }) => (React.createElement(\"div\", { className: \"create-account\" },\r\n React.createElement(Heading, { design: \"h4-bold\" }, secondTitle),\r\n React.createElement(ButtonV2, { href: buttonHref, design: \"cta-large-wbg\" }, buttonLabel)));\r\n","import React from \"react\";\r\nimport { Contacts } from \"./Contacts\";\r\nimport { CreateAccount } from \"./CreateAccount\";\r\nexport const ContactUs = ({ contacts, createAccountValues }) => (React.createElement(\"div\", { className: \"contact-us-root\" },\r\n React.createElement(Contacts, { ...contacts }),\r\n React.createElement(CreateAccount, { ...createAccountValues })));\r\n","import { debounce } from \"debounce\";\r\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nimport { fetchSearchResults } from \"./fetchSearchResults\";\r\nimport { SearchResults } from \"./SearchResults\";\r\nimport { useGlobalSearchNavigation } from \"./useGlobalSearchNavigation\";\r\nimport { ContactUs } from \"./ContactUs/ContactUs\";\r\nimport { simulateMouseClickOnZendeskChatIcon } from \"../StillHaveQuestionsItems/contactUs.utils\";\r\nexport const SEARCH_PARAM_NAME = \"searchterms\";\r\nexport const PAGENUM_PARAM_NAME = \"page\";\r\nexport const INITIAL_SEARCH_STATUS = {\r\n requestedSearchValue: undefined,\r\n pageNum: undefined,\r\n isLoading: false,\r\n errorMessage: undefined,\r\n requestTimestamp: undefined\r\n};\r\nconst checkIsValidSearchValue = (searchValue) => searchValue.length > 2;\r\nexport const GlobalSearch = ({ searchPlaceholder, searchResultsTitle, searchResultsSubtitle, initialSearchValue, initialResults, sessionToken, apiUrl, currentCulture, backgroundColor = \"#fff\", contact, createAccountValues, searchResultsFor, noResultsFoundText }) => {\r\n const [searchValue, setSearchValue] = useState(initialSearchValue || \"\");\r\n const [results, setResults] = useState(initialResults);\r\n const [status, setStatus] = useState(INITIAL_SEARCH_STATUS);\r\n const abortController = useRef(undefined);\r\n const contactValues = { ...contact, chatCallFunction: simulateMouseClickOnZendeskChatIcon };\r\n const { bgColor } = getColors(backgroundColor);\r\n const fetchResults = useCallback(({ searchValue, pageNum }, isRefetch = false) => {\r\n setStatus({\r\n requestedSearchValue: searchValue,\r\n pageNum,\r\n isLoading: true,\r\n errorMessage: undefined,\r\n requestTimestamp: Date.now(),\r\n isRefetch\r\n });\r\n if (abortController.current) {\r\n abortController.current.abort();\r\n }\r\n abortController.current = new AbortController();\r\n const onResolve = ((result) => {\r\n const { results, isError, errorType } = result;\r\n if (isError) {\r\n setResults({\r\n totalResults: 0,\r\n currentPage: 0,\r\n resultsPerPage: 0,\r\n query: \"\",\r\n items: []\r\n });\r\n setStatus({\r\n requestedSearchValue: undefined,\r\n pageNum: undefined,\r\n isLoading: false,\r\n errorMessage: errorType,\r\n requestTimestamp: undefined,\r\n isRefetch: false\r\n });\r\n return;\r\n }\r\n if (results) {\r\n setResults(results);\r\n setStatus({\r\n requestedSearchValue: undefined,\r\n pageNum: undefined,\r\n isLoading: false,\r\n errorMessage: undefined,\r\n requestTimestamp: undefined,\r\n isRefetch: false\r\n });\r\n }\r\n });\r\n const onReject = (error) => {\r\n let message;\r\n if (error instanceof Error) {\r\n if (error.name === \"AbortError\") {\r\n return;\r\n }\r\n message = error.message;\r\n }\r\n else {\r\n message = String(error);\r\n }\r\n console.error(\"Global search failed: \", message);\r\n throw error;\r\n };\r\n const onFinally = () => {\r\n abortController.current = undefined;\r\n };\r\n const payloadObj = {\r\n token: sessionToken,\r\n searchValue,\r\n pageNumber: pageNum || 1,\r\n wholeSiteCulture: currentCulture,\r\n };\r\n fetchSearchResults(`${apiUrl}/api/search`, payloadObj, abortController.current.signal)\r\n .then(onResolve)\r\n .catch(onReject)\r\n .finally(onFinally);\r\n }, [apiUrl, currentCulture, sessionToken]);\r\n const debouncedSearch = useCallback(({ searchValue, pageNum }, isRefetch = false) => debounce(() => {\r\n fetchResults({ searchValue, pageNum }, isRefetch);\r\n }, 500)(), [fetchResults]);\r\n useGlobalSearchNavigation({\r\n searchFunction: debouncedSearch,\r\n onRefetch: setSearchValue,\r\n status,\r\n });\r\n const handleSearch = useCallback(async (event) => {\r\n const { target } = event;\r\n const inputValue = target.value;\r\n if (!checkIsValidSearchValue(inputValue)) {\r\n return;\r\n }\r\n debouncedSearch({ searchValue: inputValue, pageNum: 0 });\r\n }, [debouncedSearch]);\r\n const handleChange = useCallback((event) => {\r\n const { target } = event;\r\n const inputValue = target.value;\r\n setSearchValue(inputValue);\r\n }, []);\r\n const handlePageChange = useCallback((pageNum) => {\r\n results?.query && fetchResults({\r\n searchValue: results.query,\r\n pageNum: pageNum + 1\r\n });\r\n window.scroll({ top: 0, left: 0, behavior: \"smooth\" });\r\n }, [fetchResults, results?.query]);\r\n useEffect(() => () => {\r\n if (abortController.current) {\r\n abortController.current.abort();\r\n }\r\n }, []);\r\n const getCorrectPageNumForPagination = () => results?.currentPage ? results.currentPage - 1 : 0;\r\n return (React.createElement(\"div\", { className: \"global-search__resultsWrapper\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"global-search__results\" },\r\n status.isLoading\r\n ? React.createElement(LoadingSpinner, null)\r\n : React.createElement(React.Fragment, null,\r\n status.errorMessage && React.createElement(\"div\", { className: \"global-search__error\" }, status.errorMessage),\r\n !status.errorMessage && results?.items?.length !== undefined &&\r\n React.createElement(SearchResults, { title: searchResultsTitle, subtitle: searchResultsSubtitle, resultsList: results.items, searchValue: results.query, onPageChange: handlePageChange, resultsPerPage: results.resultsPerPage, currentPage: getCorrectPageNumForPagination(), totalResults: results.totalResults, handleSearch: handleSearch, onSearchChange: handleChange, inputSearchValue: searchValue, searchPlaceholder: searchPlaceholder, searchResultsFor: searchResultsFor, noResultsFoundText: noResultsFoundText })),\r\n React.createElement(ContactUs, { contacts: contactValues, createAccountValues: createAccountValues }))))));\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { IconClose, IconHamburger } from \"../../svgIcons\";\r\nexport const MobileTrigger = () => {\r\n const [active, setActive] = useState(false);\r\n const activeMobileNavHandler = () => (event) => {\r\n event.preventDefault();\r\n if (active) {\r\n document.getElementsByTagName(\"body\")[0].classList.remove(\"mobile-nav-active\");\r\n }\r\n else {\r\n document.getElementsByTagName(\"body\")[0].classList.add(\"mobile-nav-active\");\r\n }\r\n setActive(active);\r\n };\r\n return React.createElement(\"a\", { href: \"#\", className: \"navigation__mobile-trigger\", onClick: activeMobileNavHandler() }, active ? IconClose() : IconHamburger());\r\n};\r\n","import React from \"react\";\r\nfunction useOutsideClick(ref, func) {\r\n React.useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n func(event);\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [ref]);\r\n}\r\nexport default function ClickWrapper(props) {\r\n const wrapperRef = React.createRef();\r\n useOutsideClick(wrapperRef, props.func);\r\n return React.createElement(\"div\", { className: props.classes, ref: wrapperRef }, props.children);\r\n}\r\n","import React, { useCallback } from \"react\";\r\nimport { Container } from \"../../../global/Containers/Container/Container\";\r\nimport { ContainerFW } from \"../../../global/Containers/ContainerFW/ContainerFW\";\r\nimport { IconChevronDown, IconClose } from \"../../../svgIcons\";\r\nimport { Img } from \"../../../Img\";\r\nimport ClickWrapper from \"../../ClickWrapper\";\r\nconst calcCols = (param, optionalParam) => (optionalParam ? param + 1 : param);\r\nconst NavDropdown = ({ click, data, dropdownType, children, sectionWrapperRef, mouseOver }) => {\r\n const colsLength = calcCols(data?.sections.length, data?.article);\r\n const navWidget = React.useCallback((item, index, i) => {\r\n if (typeof item?.icon === \"string\" && item?.icon?.length > 0) {\r\n return (React.createElement(\"a\", { href: item.linkUrl, key: `dropdown-section-${i}-card-${index}`, className: \"nav-widget\" },\r\n React.createElement(Img, { src: item.icon, className: \"nav-widget__icon\", alt: item.title }),\r\n React.createElement(\"p\", { className: \"nav-widget__title\" }, item.title),\r\n IconChevronDown({})));\r\n }\r\n return undefined;\r\n }, []);\r\n const navCardWithLink = React.useCallback((item, index, i) => {\r\n if (item?.linkUrl?.length) {\r\n return (React.createElement(\"a\", { key: `dropdown-section-${i}-card-${index}`, href: item.linkUrl, className: \"nav-card\", target: item.opensInNewTab ? \"__blank\" : \"_self\" },\r\n React.createElement(Img, { className: \"navDropdown__image\", src: item.imageUrl, alt: item.title }),\r\n React.createElement(\"span\", { className: \"nav-card__textWrapper\" },\r\n React.createElement(\"div\", { className: \"nav-card__title\" },\r\n item.title,\r\n IconChevronDown({ width: 16, height: 16 })),\r\n item.description && (React.createElement(\"span\", { className: \"nav-card__text\" },\r\n React.createElement(\"p\", { className: \"nav-card__text--desc\", dangerouslySetInnerHTML: { __html: item.description } }))))));\r\n }\r\n return undefined;\r\n }, []);\r\n const navCardWithMoreLink = React.useCallback((item, index, i) => {\r\n if (item?.linkMoreUrl) {\r\n return (React.createElement(\"div\", { className: \"registerStyleWrapper\", key: `dropdown-section-${i}-card-${index}` },\r\n React.createElement(\"a\", { className: `nav-card ${(item.type === \"register\" || item.type === \"login\") ? \"registerStyle\" : \"\"}`, href: \"#\", target: item.opensInNewTab ? \"__blank\" : \"_self\" },\r\n React.createElement(\"img\", { src: item.imageUrl, alt: item.imageUrl }),\r\n React.createElement(\"div\", { className: \"titleWrapper\" },\r\n React.createElement(\"span\", null,\r\n React.createElement(\"p\", { className: \"nav-card__title\" }, item.title),\r\n IconChevronDown({ fill: \"#0E1D31\", width: 15 })),\r\n item.description && (React.createElement(\"p\", { className: \"nav-card__text\" }, item.description))))));\r\n }\r\n return undefined;\r\n }, []);\r\n const sectionItem = React.useCallback((item, index, i) => {\r\n const widget = navWidget(item, index, i);\r\n const cardWithLink = navCardWithLink(item, index, i);\r\n const cardWithMore = navCardWithMoreLink(item, index, i);\r\n if (widget) {\r\n return widget;\r\n }\r\n if (cardWithLink) {\r\n return cardWithLink;\r\n }\r\n if (cardWithMore) {\r\n return cardWithMore;\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, []);\r\n const validItem = (section) => {\r\n if (section.sectionItems[0].linkUrl === \"\") {\r\n return false;\r\n }\r\n return true;\r\n };\r\n const handleValidMenuItems = useCallback(() => {\r\n let response = false;\r\n if (data) {\r\n response = validItem(data?.sections[0]);\r\n if (!response) {\r\n return undefined;\r\n }\r\n return data.sections.map((section, i) => (React.createElement(\"div\", { className: \"navDropdown__section\", key: `dropdown-section-${i}` },\r\n React.createElement(\"p\", { className: \"navDropdown__title\" }, section.title),\r\n React.createElement(\"div\", { className: `navDropdown__cards ${section.sectionItems[0].code === \"\" ? \"navDropdown__cards--two-col\" : \"navDropdown__cards--two-col-coloured\"}` }, section.sectionItems && section.sectionItems.map((item, index) => sectionItem(item, index, i))))));\r\n }\r\n return undefined;\r\n }, [data, sectionItem]);\r\n const mouseInHandler = useCallback(() => mouseOver && mouseOver(true), []);\r\n const mouseOutHandler = useCallback(() => mouseOver && mouseOver(false), []);\r\n const overlayRef = React.useRef(null);\r\n return (React.createElement(\"div\", { className: `navDropdown navDropdown__cols-${colsLength} navDropdown__${dropdownType} ${data?.article ? \"navDropdown__article\" : \"\"} ${data?.title ? \"active\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"navDropdown__content\" }, data && (React.createElement(ContainerFW, null,\r\n dropdownType === \"widget\" && (React.createElement(\"h3\", { className: \"navDropdown__widget-heading\" },\r\n data.title,\r\n React.createElement(\"span\", { onClick: click }, IconClose()))),\r\n React.createElement(Container, null,\r\n React.createElement(ClickWrapper, { func: click },\r\n React.createElement(\"div\", { ref: overlayRef, className: \"sectionWrapper\", onMouseEnter: mouseInHandler, onMouseLeave: mouseOutHandler },\r\n React.createElement(\"div\", { className: \"navDropdown__headerWrapper\" },\r\n React.createElement(\"span\", { onClick: click, className: \"navDropdown__backIcon\" }, IconChevronDown({ fill: \"#000\", height: 24, width: 24 })),\r\n React.createElement(\"h5\", { className: \"navDropdown__headerWrapper__heading\" }, data.title)),\r\n handleValidMenuItems(),\r\n children ? children : undefined))))))));\r\n};\r\nexport default React.memo(NavDropdown);\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../../../ButtonV2\";\r\nexport const LoginButtons = ({ activeMenu, navigationItems, activeMenuHandler }) => (React.createElement(\"div\", { className: \"loginButtonsWrapper\" }, navigationItems.length > 0 &&\r\n navigationItems.map((item, i) => item.type !== \"text\" && (React.createElement(\"div\", { key: `navigation-menu__item--${i}`, className: \"navigation__magnifying\" },\r\n React.createElement(\"div\", { key: `navigation-menu__item--${i}`, className: `navigation__item navigation__item--button ${activeMenu === item.title\r\n ? \"navigation__item--current\"\r\n : \"\"}` }, item.link ? React.createElement(ButtonV2, { design: \"cta-medium-wbg\", href: item.link }, item.title) :\r\n React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", classes: \"login-button\", onClick: activeMenuHandler(item.title, \"widget\") }, item.title)))))));\r\n","import React from \"react\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nimport { IconMagnifyingGlass } from \"../../svgIcons\";\r\nimport NavDropdown from \"../Navigation/NavDropdown/NavDropdown\";\r\nimport { SearchInput } from \"../../GlobalSearch\";\r\nexport const SearcherWidgets = ({ searchItems, searchPlaceholder }) => {\r\n const [activeWidget, setActiveWidget] = React.useState(undefined);\r\n const [data, setData] = React.useState(\"\");\r\n const searchActiveValue = activeWidget === \"search\" ? undefined : \"search\";\r\n const searchFieldHandler = React.useCallback(e => setData(e.target.value), []);\r\n const handleOnSearchClick = React.useCallback(() => {\r\n window.open(`${window.location.origin}/${window.location.href.split(\"/\")[3]}/search-results?searchterms=${data}`, \"_self\", \"noreferrer\");\r\n }, [data]);\r\n const clickHandler = React.useCallback((e) => {\r\n const currentView = pageViewStyle.getView();\r\n const mustTriggerSearch = (currentView === \"small\" || activeWidget === \"search\") && e.key === \"Enter\";\r\n if (mustTriggerSearch) {\r\n window.open(`${window.location.origin}/${window.location.href.split(\"/\")[3]}/search-results?searchterms=${data}`, \"_self\", \"noreferrer\");\r\n }\r\n activeWidget === \"search\" &&\r\n e.key === \"Enter\" && console.warn(data);\r\n }, [activeWidget, data]);\r\n const activeWidgetHandler = (val) => React.useCallback((event) => {\r\n event.preventDefault();\r\n setActiveWidget(val === activeWidget ? undefined : val);\r\n const bodyElement = document.body;\r\n if (val === \"search\") {\r\n bodyElement\r\n .classList.remove(\"mobile-nav-active\");\r\n bodyElement\r\n .classList.remove(\"menu-active\");\r\n bodyElement\r\n .querySelector(\".navDropdown.active\")\r\n ?.classList.remove(\"active\");\r\n bodyElement\r\n .classList.add(\"search-active\");\r\n }\r\n else {\r\n bodyElement\r\n .classList.remove(\"search-active\");\r\n }\r\n }, [val]);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"a\", { className: \"search-trigger\", onClick: activeWidgetHandler(searchActiveValue) }, IconMagnifyingGlass()),\r\n React.createElement(NavDropdown, { data: activeWidget === \"search\" ? searchItems : undefined, dropdownType: \"widget\", click: activeWidgetHandler(searchActiveValue) },\r\n React.createElement(\"div\", { className: \"searchWrapper\" },\r\n React.createElement(SearchInput, { onSearch: clickHandler, onChange: searchFieldHandler, searchPlaceholder: searchPlaceholder, searchValue: data }),\r\n React.createElement(\"a\", { className: \"searchWrapper__searchIcon\", onClick: handleOnSearchClick }, IconMagnifyingGlass())))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { IconChevronDown } from \"../../../svgIcons\";\r\nimport { Img } from \"../../../Img\";\r\nconst calcCols = (param, optionalParam) => (optionalParam ? param + 1 : param);\r\nconst NavDropdownHover = ({ click, data, children, sectionWrapperRef, }) => {\r\n const colsLength = calcCols(data?.sections.length, data?.article);\r\n const navWidget = React.useCallback((item, index, i) => {\r\n if (typeof item?.icon === \"string\" && item?.icon?.length > 0) {\r\n return (React.createElement(\"a\", { href: item.linkUrl, key: `dropdown-section-${i}-card-${index}`, className: \"nav-widget\" },\r\n React.createElement(Img, { src: item.icon, className: \"nav-widget__icon\", alt: item.title }),\r\n React.createElement(\"p\", { className: \"nav-widget__title\" }, item.title),\r\n IconChevronDown({})));\r\n }\r\n return undefined;\r\n }, []);\r\n const navCardWithLink = React.useCallback((item, index, i) => {\r\n if (item?.linkUrl?.length) {\r\n return (React.createElement(\"a\", { key: `dropdown-section-${i}-card-${index}`, href: item.linkUrl, className: \"nav-card\", target: item.opensInNewTab ? \"__blank\" : \"_self\" },\r\n React.createElement(Img, { className: \"navDropdown__image\", src: item.imageUrl, alt: item.title }),\r\n React.createElement(\"span\", { className: \"nav-card__textWrapper\" },\r\n React.createElement(\"div\", { className: \"nav-card__title\" },\r\n item.title,\r\n IconChevronDown({ width: 16, height: 16 })),\r\n item.description && (React.createElement(\"span\", { className: \"nav-card__text\" },\r\n React.createElement(\"p\", { className: \"nav-card__text--desc\", dangerouslySetInnerHTML: { __html: item.description } }))))));\r\n }\r\n return undefined;\r\n }, []);\r\n const navCardWithMoreLink = React.useCallback((item, index, i) => {\r\n if (item?.linkMoreUrl) {\r\n return (React.createElement(\"div\", { className: \"registerStyleWrapper\", key: `dropdown-section-${i}-card-${index}` },\r\n React.createElement(\"a\", { className: `nav-card ${(item.type === \"register\" || item.type === \"login\") ? \"registerStyle\" : \"\"}`, href: \"#\", target: item.opensInNewTab ? \"__blank\" : \"_self\" },\r\n React.createElement(\"img\", { src: item.imageUrl, alt: item.imageUrl }),\r\n React.createElement(\"div\", { className: \"titleWrapper\" },\r\n React.createElement(\"span\", null,\r\n React.createElement(\"p\", { className: \"nav-card__title\" }, item.title),\r\n IconChevronDown({ fill: \"#0E1D31\", width: 15 })),\r\n item.description && (React.createElement(\"p\", { className: \"nav-card__text\" }, item.description))))));\r\n }\r\n return undefined;\r\n }, []);\r\n const sectionItem = React.useCallback((item, index, i) => {\r\n const widget = navWidget(item, index, i);\r\n const cardWithLink = navCardWithLink(item, index, i);\r\n const cardWithMore = navCardWithMoreLink(item, index, i);\r\n if (widget) {\r\n return widget;\r\n }\r\n if (cardWithLink) {\r\n return cardWithLink;\r\n }\r\n if (cardWithMore) {\r\n return cardWithMore;\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, []);\r\n const validItem = (section) => {\r\n if (section.sectionItems[0].linkUrl === \"\") {\r\n return false;\r\n }\r\n return true;\r\n };\r\n const handleValidMenuItems = useCallback(() => {\r\n let response = false;\r\n if (data) {\r\n response = validItem(data?.sections[0]);\r\n if (!response) {\r\n return undefined;\r\n }\r\n return data.sections.map((section, i) => (React.createElement(\"div\", { className: \"navDropdown__section\", key: `dropdown-section-${i}` },\r\n React.createElement(\"p\", { className: \"navDropdown__title\" }, section.title),\r\n React.createElement(\"div\", { className: `navDropdown__cards ${section.sectionItems[0]?.code === \"\" ? \"navDropdown__cards--two-col\" : \"navDropdown__cards--two-col-coloured\"}` }, section.sectionItems && section.sectionItems.map((item, index) => sectionItem(item, index, i))))));\r\n }\r\n return undefined;\r\n }, [data, sectionItem]);\r\n return (React.createElement(\"div\", { className: `navDropdown navDropdown-hover navDropdown__cols-${colsLength}` },\r\n React.createElement(\"div\", { className: \"navDropdown__content\" }, data && (React.createElement(\"div\", { ref: sectionWrapperRef, className: \"sectionWrapper\" },\r\n React.createElement(\"span\", { className: \"navDropdown__headerWrapper\" },\r\n React.createElement(\"span\", { onClick: click, className: \"navDropdown__backIcon\" }, IconChevronDown({ fill: \"#000\", height: 24, width: 24 })),\r\n React.createElement(\"h5\", { className: \"navDropdown__headerWrapper__heading\" }, data.title)),\r\n handleValidMenuItems(),\r\n children ? children : undefined)))));\r\n};\r\nexport default React.memo(NavDropdownHover);\r\n","import React, { useState, useCallback, useEffect } from \"react\";\r\nimport NavDropdown from \"./NavDropdown/NavDropdown\";\r\nimport { Logo } from \"../../Logo/Logo\";\r\nimport { LoginButtons } from \"./NavDropdown/loginAction/LoginButtons\";\r\nimport { IconChevronDown, IconClose, IconGlobe } from \"../../svgIcons\";\r\nimport { SearcherWidgets } from \"../viewHeaders/SearcherWidgets\";\r\nimport { usePageViewStyle } from \"../../../hooks/index\";\r\nimport NavDropdownHover from \"./NavDropdown/NavDropdownHover\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nexport const Navigation = (props) => {\r\n const [dropdownData, setDropdownData] = useState();\r\n const [dropdownType, setDropdownType] = useState();\r\n const [activeMenu, setActiveMenu] = useState(\"\");\r\n const [mouseOverDropdown, setMouseOverDropdown] = useState(false);\r\n const [mouseOverMenu, setMouseOverMenu] = useState(true);\r\n const [data, setData] = React.useState(\"\");\r\n const { isLarge, isSmall, isMedium } = usePageViewStyle();\r\n const [largeView, setLargeView] = useState(false);\r\n useEffect(() => {\r\n setLargeView(isLarge);\r\n }, [isLarge]);\r\n useEffect(() => {\r\n if (!mouseOverDropdown && !mouseOverMenu) {\r\n setDropdownData(undefined);\r\n setActiveMenu(\"\");\r\n }\r\n }, [mouseOverDropdown, mouseOverMenu]);\r\n const activeMenuHandler = useCallback((val, type) => useCallback((e) => {\r\n const body = document.getElementsByTagName(\"body\")[0];\r\n e.preventDefault();\r\n setActiveMenu(\"\");\r\n body.classList.remove(\"menu-active\");\r\n body.classList.remove(\"search-active\");\r\n setDropdownData(undefined);\r\n setMouseOverMenu(true);\r\n const triggerDropdown = () => setTimeout(() => {\r\n body.classList.add(\"menu-active\");\r\n setActiveMenu(val);\r\n if (val === \"language\") {\r\n setDropdownData(props.widgets.language);\r\n }\r\n else {\r\n setDropdownData([...props.navigationItems].find((item) => item.title === val));\r\n }\r\n setDropdownType(type);\r\n }, 200);\r\n if (val !== \"\" && val !== activeMenu) {\r\n document\r\n .querySelector(\".navDropdown.active\")\r\n ?.classList.remove(\"active\");\r\n triggerDropdown();\r\n }\r\n }, [activeMenu, type, val]), []);\r\n const handleCloseDropDown = useCallback(() => {\r\n document.getElementsByTagName(\"body\")[0].classList.remove(\"mobile-nav-active\");\r\n }, []);\r\n const handleMouseOut = useCallback(() => {\r\n if (!isLarge) {\r\n return;\r\n }\r\n setMouseOverMenu(false);\r\n }, [isLarge]);\r\n const handleMouseIn = useCallback(() => {\r\n setMouseOverMenu(false);\r\n setDropdownData(undefined);\r\n }, []);\r\n const handleOnMenuActive = (menuitem) => activeMenuHandler(menuitem, undefined);\r\n const iconElement = (language) => {\r\n if (language.currentIcon && !/english/i.test(language.currentIcon)) {\r\n return React.createElement(\"img\", { alt: language.currentCulture, src: language.currentIcon, width: \"16px\", height: \"16px\" });\r\n }\r\n else {\r\n return IconGlobe();\r\n }\r\n };\r\n const renderButtons = useCallback(() => {\r\n const handleLanguage = () => {\r\n setDropdownData(props.widgets.language);\r\n setDropdownType(\"widget\");\r\n };\r\n return largeView ?\r\n React.createElement(React.Fragment, null,\r\n React.createElement(SearcherWidgets, { searchItems: props.searchWidgetProps.searchItems, searchPlaceholder: props.searchPlaceholder }),\r\n React.createElement(LoginButtons, { activeMenu: activeMenu, activeMenuHandler: activeMenuHandler, navigationItems: props.navigationItems }),\r\n React.createElement(\"div\", { className: \"navigation__widget navigation__widget--lang languageText\", onClick: handleLanguage },\r\n iconElement(props.widgets.language),\r\n props.widgets.language.currentCulture)) : React.createElement(LoginButtons, { activeMenu: activeMenu, activeMenuHandler: activeMenuHandler, navigationItems: props.navigationItems });\r\n }, [largeView, props.searchWidgetProps.searchItems, props.searchPlaceholder, props.widgets.language, props.navigationItems, activeMenu, activeMenuHandler]);\r\n const clickHandler = React.useCallback((e) => {\r\n const currentView = pageViewStyle.getView();\r\n const mustTriggerSearch = currentView === \"small\" && e.key === \"Enter\";\r\n if (mustTriggerSearch) {\r\n window.open(`${window.location.origin}/${window.location.href.split(\"/\")[3]}/search-results?searchterms=${data}`, \"_self\", \"noreferrer\");\r\n }\r\n e.key === \"Enter\" && console.warn(data);\r\n }, [data]);\r\n const searchFieldHandler = React.useCallback(e => setData(e.target.value), []);\r\n return (React.createElement(\"div\", { className: \"navigation__container\" },\r\n React.createElement(Logo, { logoHref: props.logoHref ? props.logoHref : \"/\", imageUrl: props.imageUrl ? props.imageUrl : undefined, imageUrlReverse: props.imageUrlReverse ? props.imageUrlReverse : undefined }),\r\n React.createElement(\"div\", { className: \"navigation__list\" },\r\n React.createElement(\"div\", { className: \"navigation__menuWrapper\" },\r\n React.createElement(\"div\", { className: \"navigation__widgets__inputWrapper navigation__widgets__inputWrapper--mobile\" },\r\n React.createElement(\"input\", { className: \"navigation__search active\", type: \"search\", placeholder: \"Search site\", onKeyDown: clickHandler, onChange: searchFieldHandler, value: data }),\r\n React.createElement(\"a\", { className: \"clear-search\", onClick: handleCloseDropDown }, IconClose())),\r\n React.createElement(\"div\", { className: \"navigation__menuTitleWrapper\" },\r\n React.createElement(\"p\", { className: \"navigation__menuTitleWrapper__menuTitle\" }, props.menuTitle),\r\n React.createElement(\"a\", { onClick: handleCloseDropDown }, IconClose())),\r\n props.navigationItems.length > 0 &&\r\n props.navigationItems.map((item, i) => item.type === \"text\" && (React.createElement(\"div\", { key: `navigation-menu__item--${i}`, className: `navigation__item ${activeMenu === item.title\r\n ? \"navigation__item--current\"\r\n : \"\"}`, onMouseEnter: handleMouseIn },\r\n React.createElement(\"span\", { className: \"navigation__link\", onClick: (isSmall || isMedium) ? handleOnMenuActive(item.title) : undefined, onMouseLeave: handleMouseOut },\r\n item.title,\r\n IconChevronDown({ fill: \"#0E1D31\" })),\r\n isLarge && React.createElement(NavDropdownHover, { click: activeMenuHandler(\"\", undefined), dropdownType: item.type, data: item })))))),\r\n React.createElement(\"div\", { className: \"loginAndSearchWrapper\" }, renderButtons()),\r\n React.createElement(NavDropdown, { click: activeMenuHandler(\"\", undefined), dropdownType: dropdownType, data: dropdownData, mouseOver: setMouseOverDropdown })));\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport NavDropdown from \"../Navigation/NavDropdown/NavDropdown\";\r\nimport ClickWrapper from \"../ClickWrapper\";\r\nimport { IconClose, IconGlobe } from \"../../svgIcons\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nexport const NavigationWidgets = ({ language, click }) => {\r\n const [activeWidget, setActiveWidget] = React.useState(undefined);\r\n const [data, setData] = React.useState(\"\");\r\n const searchActiveValue = activeWidget === \"language\" ? undefined : \"language\";\r\n const outsideClickHandler = React.useCallback(() => {\r\n setActiveWidget(undefined);\r\n }, []);\r\n const searchFieldHandler = React.useCallback(e => setData(e.target.value), [data]);\r\n const clickHandler = React.useCallback((e) => {\r\n const currentView = pageViewStyle.getView();\r\n const mustTriggerSearch = (currentView === \"small\" || activeWidget === \"search\") && e.key === \"Enter\";\r\n if (mustTriggerSearch) {\r\n window.open(`${window.location.origin}/${window.location.href.split(\"/\")[3]}/search-results?searchterms=${data}`, \"_self\", \"noreferrer\");\r\n }\r\n activeWidget === \"search\" &&\r\n e.key === \"Enter\" && console.warn(data);\r\n }, [activeWidget, data]);\r\n const activeWidgetHandler = (val) => React.useCallback((event) => {\r\n event.preventDefault();\r\n setActiveWidget(val === activeWidget ? undefined : val);\r\n if (val === \"search\") {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.add(\"search-active\");\r\n }\r\n else {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"search-active\");\r\n if (val === \"language\") {\r\n if (document.querySelector(\".navDropdown__menuLink.active\") ||\r\n document.querySelector(\".navDropdown__button.active\")) {\r\n document\r\n .querySelector(\".navDropdown.active\")\r\n ?.classList.remove(\"active\");\r\n document\r\n .querySelector(\".navigation__item--current\")\r\n ?.classList.remove(\"navigation__item--current\");\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"menu-active\");\r\n }\r\n document\r\n .querySelector(\".navDropdown.active\")\r\n ?.classList.remove(\"active\");\r\n document\r\n .querySelector(\".navigation__item--current\")\r\n ?.classList.remove(\"navigation__item--current\");\r\n }\r\n else {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"menu-active\");\r\n }\r\n }\r\n }, [val]);\r\n const handleCloseDropDown = React.useCallback((e) => {\r\n click && click(e);\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"mobile-nav-active\");\r\n }, []);\r\n const iconElement = useMemo(() => {\r\n if (language.currentIcon && !/english/i.test(language.currentIcon)) {\r\n return React.createElement(\"img\", { alt: language.currentCulture, src: language.currentIcon, width: \"16px\", height: \"16px\" });\r\n }\r\n else {\r\n return IconGlobe();\r\n }\r\n }, [language.currentIcon, language.currentCulture]);\r\n return (React.createElement(ClickWrapper, { func: outsideClickHandler },\r\n React.createElement(\"div\", { className: `navigation__widgets ${activeWidget ? `${activeWidget}--active` : \"\"} ` },\r\n React.createElement(\"div\", { className: \"navigation__widgets__inputWrapper\" },\r\n React.createElement(\"input\", { className: `navigation__search ${activeWidget === \"search\" ? \"active\" : \"\"}`, type: \"search\", placeholder: \"Search site\", onKeyDown: clickHandler, onChange: searchFieldHandler, value: data }),\r\n React.createElement(\"a\", { className: \"clear-search\", onClick: handleCloseDropDown }, IconClose()))),\r\n React.createElement(\"div\", { className: \"navigation__widget navigation__widget--lang languageText\", onClick: activeWidgetHandler(searchActiveValue) },\r\n iconElement,\r\n language.currentCulture),\r\n React.createElement(NavDropdown, { data: activeWidget === \"language\" ? language : undefined, dropdownType: \"widget\", click: activeWidgetHandler(searchActiveValue) })));\r\n};\r\n","import * as React from \"react\";\r\nimport NavDropdown from \"../Navigation/NavDropdown/NavDropdown\";\r\nimport { NavigationWidgets } from \"../NavigationWidgets\";\r\nexport const SecondaryNavigation = (props) => {\r\n const [dropdownData, setDropdownData] = React.useState(undefined);\r\n const dropdownHandler = (data) => React.useCallback((e) => {\r\n e.preventDefault();\r\n if (document.querySelector(\".navDropdown__menuLink.active\") ||\r\n document.querySelector(\".navDropdown__button.active\") ||\r\n document.querySelector(\".navDropdown__widget.active\")) {\r\n document\r\n .querySelector(\".navDropdown.active\")\r\n ?.classList.remove(\"active\");\r\n document\r\n .querySelector(\".navigation__item--current\")\r\n ?.classList.remove(\"navigation__item--current\");\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"menu-active\");\r\n }\r\n if (data) {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.add(\"menu-active\");\r\n }\r\n else {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"menu-active\");\r\n }\r\n setDropdownData(data);\r\n }, [data]);\r\n const itemWithDropdown = (item) => (React.createElement(React.Fragment, null,\r\n React.createElement(\"a\", { href: \"#\", onClick: dropdownHandler(item === dropdownData ? undefined : item) }, item.title),\r\n React.createElement(NavDropdown, { click: dropdownHandler(undefined), dropdownType: \"widget\", data: dropdownData })));\r\n return (React.createElement(\"div\", { className: \"secondary-navigation__container\" },\r\n React.createElement(\"div\", { className: \"secondary-navigation__items\" },\r\n props.data.map((item, i) => (React.createElement(\"div\", { className: \"secondary-navigation__item\", key: `secondary-menu__item--${i}` }, item.sections.length > 0 ? itemWithDropdown(item) : (React.createElement(\"a\", { href: item.href, className: \"\" }, item.title))))),\r\n React.createElement(NavigationWidgets, { language: props.widgets.language, click: props.click }))));\r\n};\r\n","import React from \"react\";\r\nimport { Logo } from \"../../Logo/Logo\";\r\nimport { MobileTrigger } from \"../MobileTrigger\";\r\nimport { NavigationWidgets } from \"../NavigationWidgets\";\r\nexport const MobileHeader = ({ logoHref, imageUrl, imageUrlReverse, language }) => (React.createElement(\"div\", { className: \"g-mobile-header__navigation g-mobile-header__wrapper\" },\r\n React.createElement(Logo, { logoHref: logoHref ? logoHref : \"/\", imageUrl: imageUrl ? imageUrl : undefined, imageUrlReverse: imageUrlReverse ? imageUrlReverse : undefined }),\r\n React.createElement(NavigationWidgets, { language: language }),\r\n React.createElement(MobileTrigger, null)));\r\n","import React from \"react\";\r\nimport { Logo } from \"../../Logo/Logo\";\r\nimport { MobileTrigger } from \"../MobileTrigger\";\r\nimport { NavigationWidgets } from \"../NavigationWidgets\";\r\nimport { SearcherWidgets } from \"./SearcherWidgets\";\r\nexport const TabletHeader = ({ widgets, searchWidgetProps, imageUrl, imageUrlReverse, logoHref, searchPlaceholder }) => (React.createElement(\"div\", { className: \"g-tablet-header__navigation\" },\r\n React.createElement(Logo, { logoHref: logoHref ? logoHref : \"/\", imageUrl: imageUrl ? imageUrl : undefined, imageUrlReverse: imageUrlReverse ? imageUrlReverse : undefined }),\r\n React.createElement(\"div\", { className: \"optionsWrapper\" },\r\n React.createElement(SearcherWidgets, { searchItems: searchWidgetProps.searchItems, searchPlaceholder: searchPlaceholder }),\r\n React.createElement(NavigationWidgets, { language: widgets.language }),\r\n React.createElement(MobileTrigger, null))));\r\n","import React from \"react\";\r\nimport { Navigation } from \"../Navigation\";\r\nexport const DesktopHeader = ({ secondaryNavigation, widgets, navigationItems, menuTitle, searchWidgetProps, logoHref, imageUrl, imageUrlReverse, searchPlaceholder }) => (React.createElement(\"div\", { className: \"g-header__navigation-container\" },\r\n React.createElement(Navigation, { navigationItems: navigationItems, data: secondaryNavigation.data, widgets: widgets, menuTitle: menuTitle, searchWidgetProps: searchWidgetProps, logoHref: logoHref, imageUrl: imageUrl, imageUrlReverse: imageUrlReverse, searchPlaceholder: searchPlaceholder })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { MobileHeader } from \"../viewHeaders/MobileHeader\";\r\nimport { TabletHeader } from \"../viewHeaders/TabletHeader\";\r\nimport { DesktopHeader } from \"../viewHeaders/DesktopHeader\";\r\nimport { RiskWarningRibbon } from \"../../RiskWarningRibbon\";\r\nexport const NavigationHeader = (props) => (React.createElement(\"div\", { className: \"g-header\" },\r\n React.createElement(\"div\", { className: \"g-header__overlay\" }),\r\n React.createElement(ContainerFW, { className: \"g-container--new\" },\r\n (props.riskWarningMessage !== \"\" && props.riskWarningMessage !== undefined) && React.createElement(RiskWarningRibbon, { descriptionHtml: props.riskWarningMessage }),\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"g-header__navigation\" },\r\n React.createElement(MobileHeader, { imageUrl: props.imgUrl, imageUrlReverse: props.imgUrlReverse, logoHref: props.logoHref, language: props.widgets.language }),\r\n React.createElement(TabletHeader, { imageUrl: props.imgUrl, imageUrlReverse: props.imgUrlReverse, logoHref: props.logoHref, widgets: props.widgets, searchWidgetProps: props.searchWidgetProps, searchPlaceholder: props.searchPlaceholder }),\r\n React.createElement(DesktopHeader, { imageUrl: props.imgUrl, imageUrlReverse: props.imgUrlReverse, navigationItems: props.navigationItems, secondaryNavigation: props.secondaryNavigation, widgets: props.widgets, menuTitle: props.menuTitle, searchWidgetProps: props.searchWidgetProps, logoHref: props.logoHref, searchPlaceholder: props.searchPlaceholder }))))));\r\n","import React from \"react\";\r\nconst getClassName = (design, className) => `${design ? `${design}` : \"\"}${className ? ` ${className}` : \"\"}`;\r\nexport const Heading = ({ design, style, children, className }) => {\r\n const headingClassName = getClassName(design, className);\r\n if (design?.includes(\"h6\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h6\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n if (design?.includes(\"h5\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h5\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n if (design?.includes(\"h4\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h4\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n if (design?.includes(\"h3\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h3\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n if (design?.includes(\"h1\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h1\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n if (design?.includes(\"jumbo\")) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h1\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n }\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"h2\", { className: headingClassName, style: style },\r\n \" \",\r\n children)));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { sanitizeUrl } from \"../../utils\";\r\nexport const BaseImg = ({ src, alt, className, style, loading = \"lazy\", onError, onClick, srcset, sizes, }) => {\r\n const handleError = useCallback((event) => {\r\n if (typeof onError === \"function\") {\r\n onError(event);\r\n return;\r\n }\r\n const target = event.target;\r\n console.warn(`Could not load image with src ${target.src}!`);\r\n }, [onError]);\r\n if (!src) {\r\n return React.createElement(React.Fragment, null);\r\n }\r\n return (React.createElement(\"img\", { loading: loading, src: sanitizeUrl(src), alt: alt, className: className, style: style, onError: handleError, onClick: onClick, srcSet: srcset, sizes: sizes }));\r\n};\r\n","import React from \"react\";\r\nimport { BaseImg } from \"./BaseImg\";\r\nimport { ResponsiveImg } from \"./ResponsiveImg\";\r\nexport const Img = ({ src, alt, className, style, loading = \"lazy\", onError, onClick, srcset, sizes, sources, }) => (React.createElement(ResponsiveImg, { sources: sources },\r\n React.createElement(BaseImg, { src: src, alt: alt, className: className, style: style, loading: loading, onError: onError, onClick: onClick, srcset: srcset, sizes: sizes })));\r\n","import React from \"react\";\r\nexport const ResponsiveImg = ({ sources, children, }) => {\r\n const hasSources = Array.isArray(sources) && sources?.length;\r\n if (!hasSources) {\r\n return React.createElement(React.Fragment, null, children);\r\n }\r\n return (React.createElement(\"picture\", null,\r\n sources.map(({ srcset, sizes, media, type }, index) => (React.createElement(\"source\", { key: index, srcSet: srcset, sizes: sizes, media: media, type: type }))),\r\n children));\r\n};\r\n","import React from \"react\";\r\nconst removeLeadingTilda = (string) => string.replace(\"~\", \"\");\r\nconst generateSrcsetAttribute = ({ largeViewImageUrl, mediumViewImageUrl, smallViewImageUrl, srcsetWidthDescriptors }) => {\r\n const descriptorsArray = srcsetWidthDescriptors?.split(\",\");\r\n if (!descriptorsArray || !descriptorsArray.length) {\r\n return \"\";\r\n }\r\n return `\r\n ${smallViewImageUrl} ${removeLeadingTilda(descriptorsArray[0])},\r\n ${mediumViewImageUrl} ${removeLeadingTilda(descriptorsArray[1])},\r\n ${largeViewImageUrl} ${removeLeadingTilda(descriptorsArray[2])}\r\n `;\r\n};\r\nconst checkIsHelperDataValid = (helperProps) => {\r\n const NUM_IMAGES = 3;\r\n if (!helperProps) {\r\n return false;\r\n }\r\n if (Object.values(helperProps).some(propValue => !propValue)) {\r\n return false;\r\n }\r\n const { srcsetWidthDescriptors, } = helperProps;\r\n const descriptorsArray = srcsetWidthDescriptors?.split(\",\");\r\n if (!descriptorsArray || descriptorsArray.length < NUM_IMAGES || descriptorsArray.filter(descriptor => descriptor).length < NUM_IMAGES) {\r\n return false;\r\n }\r\n return true;\r\n};\r\nexport function ResponsiveImgDecorator(Component) {\r\n return function Decorator(props) {\r\n let htmlSrcset = \"\";\r\n if (props.helperProps && checkIsHelperDataValid(props.helperProps)) {\r\n htmlSrcset = generateSrcsetAttribute(props.helperProps);\r\n }\r\n if (!props.helperProps?.sizesDescriptor || !htmlSrcset) {\r\n return React.createElement(Component, { ...props });\r\n }\r\n return React.createElement(Component, { ...props, srcset: htmlSrcset, sizes: props.helperProps.sizesDescriptor });\r\n };\r\n}\r\n","import React, { useEffect, useState, useCallback, useMemo } from \"react\";\r\nimport { IconChevronDown } from \"../../svgIcons\";\r\nfunction getIncrementingArr(arrayLength) {\r\n return Array.from(Array(arrayLength).keys());\r\n}\r\nexport const JobBoardPagination = ({ numOfPages, currentPage, setCurrentPage, onPageChange, isSmallScreen, linkPagination, scrollTopOnPageChange = true }) => {\r\n const [btnPageIndexArr, setBtnPageIndexArr] = useState([]);\r\n const nextPage = useCallback(function () {\r\n if (currentPage < numOfPages - 1) {\r\n const argumentPageNext = linkPagination ? currentPage + 1 : (prev) => prev + 1;\r\n setCurrentPage && setCurrentPage(argumentPageNext);\r\n onPageChange && onPageChange(currentPage + 1);\r\n scrollTopOnPageChange && window.scrollTo({ top: 0, left: 0 });\r\n }\r\n }, [currentPage, linkPagination, numOfPages, onPageChange, scrollTopOnPageChange, setCurrentPage]);\r\n const previousPage = useCallback(function () {\r\n if (currentPage > 0) {\r\n const argumentPagePrev = linkPagination ? currentPage - 1 : (prev) => prev - 1;\r\n setCurrentPage && setCurrentPage(argumentPagePrev);\r\n onPageChange && onPageChange(currentPage - 1);\r\n scrollTopOnPageChange && window.scrollTo({ top: 0, left: 0 });\r\n }\r\n }, [currentPage, linkPagination, onPageChange, scrollTopOnPageChange, setCurrentPage]);\r\n const changePage = useCallback(function (index) {\r\n return (e) => {\r\n e.preventDefault();\r\n setCurrentPage && setCurrentPage(index);\r\n onPageChange && onPageChange(index);\r\n scrollTopOnPageChange && window.scrollTo({ top: 0, left: 0 });\r\n };\r\n }, [onPageChange, scrollTopOnPageChange, setCurrentPage]);\r\n const numOfSlots = useMemo(() => (isSmallScreen ? 4 : 7), [isSmallScreen]);\r\n useEffect(() => {\r\n const incremntingArr = getIncrementingArr(numOfPages);\r\n let dotsLeftShow = false;\r\n let dotsRightShow = false;\r\n if (numOfPages > numOfSlots) {\r\n const halfNumOfSlots = Math.floor(numOfSlots / 2);\r\n if (currentPage >= halfNumOfSlots) {\r\n dotsLeftShow = true;\r\n }\r\n if (currentPage <= numOfPages - halfNumOfSlots - 1) {\r\n dotsRightShow = true;\r\n }\r\n const maxSlotsWithoutCurrentPage = numOfSlots - 1 - (dotsLeftShow ? 1 : 0) - (dotsRightShow ? 1 : 0);\r\n let leftSideSlots = 0;\r\n let rightSideSlots = 0;\r\n let i = 1;\r\n let y = 0;\r\n while (y < maxSlotsWithoutCurrentPage) {\r\n if (incremntingArr[currentPage - i] ||\r\n incremntingArr[currentPage - i] === 0) {\r\n leftSideSlots++;\r\n y++;\r\n }\r\n if (incremntingArr[currentPage + i]) {\r\n rightSideSlots++;\r\n y++;\r\n }\r\n i++;\r\n }\r\n incremntingArr.splice(0, currentPage - leftSideSlots);\r\n const currentPageIndex = incremntingArr.findIndex((val) => val === currentPage);\r\n incremntingArr.splice(currentPageIndex + rightSideSlots + 1, incremntingArr.length - 1);\r\n }\r\n setBtnPageIndexArr(incremntingArr);\r\n }, [numOfPages, numOfSlots, currentPage, linkPagination]);\r\n return (React.createElement(\"div\", { className: \"jobBoard__paginationBtns\" },\r\n React.createElement(\"span\", { className: `jobBoard__paginationArrow ${currentPage <= 0 && \"jobBoard__paginationArrow--disable\"}`, onClick: previousPage }, IconChevronDown({})),\r\n btnPageIndexArr.map((pageIndexValue) => {\r\n if (linkPagination) {\r\n return React.createElement(\"a\", { href: `?page=${pageIndexValue + 1}`, className: `jobBoard__paginationBtn ${currentPage === pageIndexValue && \"jobBoard__paginationBtn--active\"}`, key: pageIndexValue, onClick: changePage(pageIndexValue) }, pageIndexValue + 1);\r\n }\r\n return React.createElement(\"button\", { className: `jobBoard__paginationBtn ${currentPage === pageIndexValue && \"jobBoard__paginationBtn--active\"}`, key: pageIndexValue, onClick: changePage(pageIndexValue) }, pageIndexValue + 1);\r\n }),\r\n React.createElement(\"span\", { className: `jobBoard__nextPaginationArrow ${currentPage >= numOfPages - 1 && \"jobBoard__paginationArrow--disable\"}`, onClick: nextPage }, IconChevronDown({}))));\r\n};\r\n","import * as React from \"react\";\r\nexport const LoadingSpinner = () => (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"lds-spinner\" },\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null))));\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const Logo = (props) => {\r\n const logo = (url, cls) => React.createElement(Img, { loading: \"eager\", src: url, alt: props.alt ? props.alt : \"ThinkMarkets\", className: `${cls} ${props.classes ? props.classes : \"\"}`, style: props.style ? props.style : {} });\r\n const lightLogo = logo(props.imageUrl, \"logo-light\");\r\n const darkLogo = props.imageUrlReverse && logo(props.imageUrlReverse, \"logo-dark\");\r\n const logoWithSource = React.createElement(React.Fragment, null,\r\n lightLogo,\r\n darkLogo);\r\n return (React.createElement(\"div\", { className: `logo-wrapper${props.imageUrlReverse ? \"\" : \" logo-wrapper--single-logo\"}` },\r\n React.createElement(\"a\", { href: props.logoHref }, logoWithSource)));\r\n};\r\n","import React, { useState, useCallback, useEffect } from \"react\";\r\nexport const RiskWarningRibbon = ({ descriptionHtml, isLanding }) => {\r\n const [expanded, setExpanded] = useState(true);\r\n const exp = useCallback(() => {\r\n setExpanded(e => !e);\r\n }, []);\r\n useEffect(() => {\r\n if (descriptionHtml !== undefined && descriptionHtml !== \"\" && !isLanding) {\r\n document.body.classList.add(\"has-risk-warning\");\r\n }\r\n }, [descriptionHtml, isLanding]);\r\n const toRenderOrNot = () => descriptionHtml !== undefined && descriptionHtml !== \"\";\r\n return toRenderOrNot() ?\r\n React.createElement(\"div\", { className: `risk-warning-ribbon centered-container ${isLanding ? \"risk-warning-ribbon--landing\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"risk-warning-ribbon__container\" },\r\n React.createElement(\"div\", { className: \"flex\" },\r\n React.createElement(\"div\", { className: `risk-warning-ribbon__content ${expanded ? \"risk-warning-ribbon__content-ellipsis\" : \"\"}`, dangerouslySetInnerHTML: {\r\n __html: descriptionHtml\r\n } }),\r\n React.createElement(\"span\", { className: \"risk-warning-ribbon__arrow-container hide-large-ndb\", onClick: exp },\r\n React.createElement(\"svg\", { className: `risk-warning-ribbon__arrow risk-warning-ribbon__arrow-light ${!expanded ? \"rotate\" : \"\"}`, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"6\", viewBox: \"0 0 8 4\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M4 4L6.03983e-07 2.22545e-07L8 -4.76837e-07L4 4Z\", fill: \"#E7E8EA\" })),\r\n React.createElement(\"svg\", { className: `risk-warning-ribbon__arrow risk-warning-ribbon__arrow-dark ${!expanded ? \"rotate\" : \"\"}`, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"6\", viewBox: \"0 0 8 4\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M4 4L6.03983e-07 2.22545e-07L8 -4.76837e-07L4 4Z\", fill: \"#0E1D31\" })))))) : React.createElement(React.Fragment, null);\r\n};\r\n","const mouseClickEvents = [\"mousedown\", \"click\", \"mouseup\"];\r\nexport const simulateMouseClick = (element) => {\r\n mouseClickEvents.forEach(mouseEventType => element.dispatchEvent(new MouseEvent(mouseEventType, {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true,\r\n buttons: 1\r\n })));\r\n};\r\nexport const simulateMouseClickOnZendeskChatIcon = (e) => {\r\n const el = e.target.closest(\"A\");\r\n if (el && e.currentTarget.contains(el)) {\r\n const element = document.querySelector(\"a[class=\\\"chat-toggle\\\"]\");\r\n simulateMouseClick(element);\r\n }\r\n};\r\nexport const handleOnUrlCalls = (providedUrl) => {\r\n window.open(providedUrl, \"_blank\");\r\n};\r\nexport const handleCardClick = (cardUrl) => () => {\r\n if (cardUrl) {\r\n handleOnUrlCalls(cardUrl);\r\n }\r\n};\r\nexport const determineContactItemType = (itemUrl) => itemUrl?.match(/^([A-Za-z]+):/)?.[1];\r\n","import * as React from \"react\";\r\nexport const ContainerFW = props => React.createElement(\"div\", { style: { backgroundColor: props.backgroundColor }, className: `g-container g-container--fullwidth${props.className ? ` ${props.className}` : \"\"}` }, props.children);\r\n","import * as React from \"react\";\r\nexport const Container = props => React.createElement(\"div\", { className: `g-container ${props.className ? ` ${props.className}` : \"\"}` }, props.children);\r\n","import * as React from \"react\";\r\nexport const Col = props => React.createElement(\"div\", { className: \"g-col\" }, props.children);\r\n","import * as React from \"react\";\r\nexport const RowMain = props => React.createElement(\"div\", { className: `g-row ${props.className}` }, props.children);\r\nexport const Cols2 = props => React.createElement(RowMain, { className: \"g-row--2-columns\" }, props.children);\r\nexport const Cols3 = props => React.createElement(RowMain, { className: \"g-row--3-columns\" }, props.children);\r\nexport const Cols4 = props => React.createElement(RowMain, { className: \"g-row--4-columns\" }, props.children);\r\nexport const Cols5 = props => React.createElement(RowMain, { className: \"g-row--5-columns\" }, props.children);\r\nexport const Cols6 = props => React.createElement(RowMain, { className: \"g-row--6-columns\" }, props.children);\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../Containers\";\r\nimport { Col } from \"../Grid\";\r\nexport const WidgetsContainer = ({ className, children, colsCount, backgroundColor }) => React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(Container, null, React.createElement(\"div\", { className: `g-row g-row--${colsCount}-columns ${className ? className : \"\"}` }, children && children.map((child, i) => React.createElement(Col, { key: `section-widget-${i}-${Math.ceil(Math.random() * 100)}` }, child)))));\r\n","import React from \"react\";\r\nexport const CaretDown = () => (React.createElement(\"svg\", { width: \"8\", height: \"6\", viewBox: \"0 0 8 6\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M4.00045 0.480469L6.90979 0.480469C7.15984 0.480469 7.39965 0.579801 7.57646 0.756612C7.94465 1.1248 7.94464 1.72175 7.57646 2.08994L4.70756 4.95884C4.31704 5.34936 3.68387 5.34936 3.29334 4.95884L0.424479 2.08995C0.05629 1.72176 0.0562909 1.1248 0.424483 0.75661C0.601295 0.579799 0.841102 0.480469 1.09115 0.480469L4.00045 0.480469Z\", fill: \"currentColor\" })));\r\n","import React from \"react\";\r\nexport const CaretUp = () => (React.createElement(\"svg\", { width: \"8\", height: \"6\", viewBox: \"0 0 8 6\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M3.99955 5.51953L1.09021 5.51953C0.840158 5.51953 0.600351 5.4202 0.423541 5.24339C0.0553542 4.8752 0.0553552 4.27825 0.423542 3.91006L3.29244 1.04116C3.68296 0.650634 4.31613 0.650636 4.70666 1.04116L7.57552 3.91005C7.94371 4.27824 7.94371 4.8752 7.57552 5.24339C7.39871 5.4202 7.1589 5.51953 6.90885 5.51953L3.99955 5.51953Z\", fill: \"currentColor\" })));\r\n","import React from \"react\";\r\nexport const GrayCheckMark = (React.createElement(\"svg\", { width: \"22\", height: \"22\", viewBox: \"0 0 22 22\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"rect\", { width: \"22\", height: \"22\", rx: \"11\", fill: \"#283646\", fillOpacity: \"1\" }),\r\n React.createElement(\"path\", { d: \"M5.61328 11.1941L6.67958 10.1059L9.4465 12.8346L15.303 7L16.3857 8.08817L9.4465 15L5.61328 11.1941Z\", fill: \"white\" })));\r\n","import React from \"react\";\r\nexport const GreenCheckIcon = (color) => (React.createElement(\"svg\", { width: \"12\", height: \"10\", viewBox: \"0 0 12 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { id: \"Vector 379\", d: \"M1 4.54574L4.62265 8.33268L11 1.66607\", stroke: color, strokeWidth: \"1.7\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import React from \"react\";\r\nexport const IconHamburger = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M4 5H20V7H4V5ZM4 11H20V13H4V11ZM4 17H20V19H4V17Z\", fill: \"inherit\" })));\r\n","import React from \"react\";\r\nexport const MultiplesSectorsIcon = ({ fill = \"none\", height = \"48\", width = \"48\" }) => (React.createElement(\"svg\", { height: height, width: width, fill: fill, viewBox: \"0 0 48 48\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_21472_55574)\" },\r\n React.createElement(\"path\", { d: \"M36.0002 6.00134H32.3082C28.9947 6.00134 26.3086 8.68744 26.3086 12.0009V15.693C26.3086 19.0064 28.9947 21.6925 32.3082 21.6925H36.0002C39.3137 21.6925 41.9998 19.0064 41.9998 15.693V12.0009C41.9998 8.68744 39.3137 6.00134 36.0002 6.00134Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M36.0002 26.3076H32.3082C28.9947 26.3076 26.3086 28.9937 26.3086 32.3072V35.9992C26.3086 39.3127 28.9947 41.9988 32.3082 41.9988H36.0002C39.3137 41.9988 41.9998 39.3127 41.9998 35.9992V32.3072C41.9998 28.9937 39.3137 26.3076 36.0002 26.3076Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M15.6936 6.00134H12.0015C8.68805 6.00134 6.00195 8.68744 6.00195 12.0009V15.693C6.00195 19.0064 8.68805 21.6925 12.0015 21.6925H15.6936C19.007 21.6925 21.6931 19.0064 21.6931 15.693V12.0009C21.6931 8.68744 19.007 6.00134 15.6936 6.00134Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M14.7707 26.3075C10.9495 26.3075 7.84815 29.4088 7.84815 33.2301C7.84815 34.6331 8.27273 35.9438 8.99268 37.0329L6.38979 39.6358C5.85444 40.1711 5.85444 41.0572 6.38979 41.5926C6.66669 41.8695 7.01744 41.9987 7.36818 41.9987C7.71893 41.9987 8.06967 41.8695 8.34657 41.5926L10.9495 38.9897C12.0386 39.7096 13.3493 40.1342 14.7523 40.1342C18.5735 40.1342 21.6748 37.0329 21.6748 33.2116C21.6748 29.3904 18.5735 26.2891 14.7523 26.2891L14.7707 26.3075Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_21472_55574\" },\r\n React.createElement(\"rect\", { height: \"36\", width: \"36\", fill: \"white\", transform: \"translate(6 6)\" })))));\r\n","import * as React from \"react\";\r\nexport const PlusIcon = () => (React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 17 16\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M4.5 8h4m0 0h4m-4 0V4m0 4v4\", stroke: \"#0E1D31\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import * as React from \"react\";\r\nexport const accountTypesTick = (React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M0 4.19412L1.0663 3.10595L3.83322 5.83459L9.68968 0L10.7724 1.08817L3.83322 8L0 4.19412Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nexport const IconChat = () => (React.createElement(\"svg\", { width: \"36\", height: \"36\", viewBox: \"0 0 36 36\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { id: \"chat\", clipPath: \"url(#clip0_8252_5914)\" },\r\n React.createElement(\"ellipse\", { id: \"Ellipse 91\", cx: \"18\", cy: \"19.375\", rx: \"9\", ry: \"3\", fill: \"#5EE15A\" }),\r\n React.createElement(\"g\", { id: \"k\" },\r\n React.createElement(\"path\", { id: \"Vector\", d: \"M27.2411 6.93359H8.76237C3.92095 6.93359 -0.0150146 10.8696 -0.0150146 15.711V23.1025C-0.0150146 27.9439 3.92095 31.8798 8.76237 31.8798H23.3421C24.4323 31.8798 25.5041 32.1755 26.428 32.7299L31.1031 35.5386C31.6205 35.8528 32.1934 36.0006 32.7662 36.0006C33.3391 36.0006 33.8565 35.8528 34.3554 35.5756C35.3902 35.0028 36 33.9495 36 32.7668V15.711C36 10.8696 32.064 6.93359 27.2226 6.93359H27.2411ZM10.6472 20.7926C9.88957 20.7926 9.2613 20.1643 9.2613 19.4067C9.2613 18.6491 9.87109 18.0208 10.6287 18.0208H10.6472C11.4048 18.0208 12.0331 18.6491 12.0331 19.4067C12.0331 20.1643 11.4048 20.7926 10.6472 20.7926ZM18.0387 20.7926C17.2811 20.7926 16.6528 20.1643 16.6528 19.4067C16.6528 18.6491 17.2626 18.0208 18.0202 18.0208H18.0387C18.7963 18.0208 19.4246 18.6491 19.4246 19.4067C19.4246 20.1643 18.7963 20.7926 18.0387 20.7926ZM25.4302 20.7926C24.6725 20.7926 24.0443 20.1643 24.0443 19.4067C24.0443 18.6491 24.6541 18.0208 25.4117 18.0208H25.4302C26.1878 18.0208 26.8161 18.6491 26.8161 19.4067C26.8161 20.1643 26.1878 20.7926 25.4302 20.7926Z\", fill: \"#0E1D31\" }))),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_8252_5914\" },\r\n React.createElement(\"rect\", { width: \"36\", height: \"36\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const IconChevronDown = ({ fill, height = \"24\", width = \"24\" }) => (React.createElement(\"svg\", { width: width, height: height, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M17.29 11.29a.996.996 0 0 0-1.41 0L12 15.17l-3.88-3.88a.997.997 0 1 0-1.41 1.41l4.59 4.59a.994.994 0 0 0 1.41 0l4.59-4.59c.38-.38.38-1.02-.01-1.41z\", fill: fill ? fill : \"currentColor\" })));\r\n","import React from \"react\";\r\nexport const IconClose = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#y2qswdlpka)\" },\r\n React.createElement(\"path\", { d: \"m12 10.586 4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z\", fill: \"currentColor\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"y2qswdlpka\" },\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React from \"react\";\r\nconst DarkStarSet = () => (React.createElement(\"svg\", { height: \"16\", width: \"81\", fill: \"none\", viewBox: \"0 0 81 16\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_4471_232172)\" },\r\n React.createElement(\"path\", { d: \"M14.1477 7.99207C14.4677 7.67823 14.5785 7.22286 14.4431 6.79825C14.3077 6.37364 13.9447 6.06595 13.5016 6.00442L10.8986 5.62288C10.8186 5.61058 10.7509 5.56135 10.714 5.4875L9.5509 3.12446C9.35398 2.72447 8.95399 2.47217 8.50477 2.47217C8.05554 2.47217 7.65555 2.72447 7.45863 3.12446L6.29557 5.4875C6.25865 5.56135 6.19096 5.61058 6.11096 5.62288L3.50793 6.00442C3.06486 6.06595 2.70179 6.37364 2.5664 6.79825C2.43102 7.22286 2.54179 7.68439 2.86178 7.99207L4.74483 9.82589C4.80021 9.88127 4.83098 9.96127 4.81252 10.0413L4.36945 12.6382C4.29561 13.0812 4.47406 13.5181 4.83098 13.7766C5.03405 13.9243 5.27405 13.9981 5.51405 13.9981C5.69866 13.9981 5.88327 13.9551 6.05558 13.8627L8.38784 12.6382C8.45553 12.6012 8.54169 12.6012 8.61553 12.6382L10.9478 13.8627C11.3416 14.072 11.8155 14.0412 12.1785 13.7766C12.5416 13.512 12.7201 13.0751 12.6401 12.6382L12.197 10.0413C12.1847 9.96127 12.2093 9.88127 12.2647 9.82589L14.1477 7.98592V7.99207Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"g\", { clipPath: \"url(#clip1_4471_232172)\" },\r\n React.createElement(\"path\", { d: \"M30.1477 7.99207C30.4677 7.67823 30.5785 7.22286 30.4431 6.79825C30.3077 6.37364 29.9447 6.06595 29.5016 6.00442L26.8986 5.62288C26.8186 5.61058 26.7509 5.56135 26.714 5.4875L25.5509 3.12446C25.354 2.72447 24.954 2.47217 24.5048 2.47217C24.0555 2.47217 23.6555 2.72447 23.4586 3.12446L22.2956 5.4875C22.2586 5.56135 22.191 5.61058 22.111 5.62288L19.5079 6.00442C19.0649 6.06595 18.7018 6.37364 18.5664 6.79825C18.431 7.22286 18.5418 7.68439 18.8618 7.99207L20.7448 9.82589C20.8002 9.88127 20.831 9.96127 20.8125 10.0413L20.3694 12.6382C20.2956 13.0812 20.4741 13.5181 20.831 13.7766C21.0341 13.9243 21.274 13.9981 21.514 13.9981C21.6987 13.9981 21.8833 13.9551 22.0556 13.8627L24.3878 12.6382C24.4555 12.6012 24.5417 12.6012 24.6155 12.6382L26.9478 13.8627C27.3416 14.072 27.8155 14.0412 28.1785 13.7766C28.5416 13.512 28.7201 13.0751 28.6401 12.6382L28.197 10.0413C28.1847 9.96127 28.2093 9.88127 28.2647 9.82589L30.1477 7.98592V7.99207Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"g\", { clipPath: \"url(#clip2_4471_232172)\" },\r\n React.createElement(\"path\", { d: \"M46.1477 7.99207C46.4677 7.67823 46.5785 7.22286 46.4431 6.79825C46.3077 6.37364 45.9447 6.06595 45.5016 6.00442L42.8986 5.62288C42.8186 5.61058 42.7509 5.56135 42.714 5.4875L41.5509 3.12446C41.354 2.72447 40.954 2.47217 40.5048 2.47217C40.0555 2.47217 39.6555 2.72447 39.4586 3.12446L38.2956 5.4875C38.2586 5.56135 38.191 5.61058 38.111 5.62288L35.5079 6.00442C35.0649 6.06595 34.7018 6.37364 34.5664 6.79825C34.431 7.22286 34.5418 7.68439 34.8618 7.99207L36.7448 9.82589C36.8002 9.88127 36.831 9.96127 36.8125 10.0413L36.3694 12.6382C36.2956 13.0812 36.4741 13.5181 36.831 13.7766C37.0341 13.9243 37.274 13.9981 37.514 13.9981C37.6987 13.9981 37.8833 13.9551 38.0556 13.8627L40.3878 12.6382C40.4555 12.6012 40.5417 12.6012 40.6155 12.6382L42.9478 13.8627C43.3416 14.072 43.8155 14.0412 44.1785 13.7766C44.5416 13.512 44.7201 13.0751 44.6401 12.6382L44.197 10.0413C44.1847 9.96127 44.2093 9.88127 44.2647 9.82589L46.1477 7.98592V7.99207Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"g\", { clipPath: \"url(#clip3_4471_232172)\" },\r\n React.createElement(\"path\", { d: \"M62.1477 7.99207C62.4677 7.67823 62.5785 7.22286 62.4431 6.79825C62.3077 6.37364 61.9447 6.06595 61.5016 6.00442L58.8986 5.62288C58.8186 5.61058 58.7509 5.56135 58.714 5.4875L57.5509 3.12446C57.354 2.72447 56.954 2.47217 56.5048 2.47217C56.0555 2.47217 55.6555 2.72447 55.4586 3.12446L54.2956 5.4875C54.2586 5.56135 54.191 5.61058 54.111 5.62288L51.5079 6.00442C51.0649 6.06595 50.7018 6.37364 50.5664 6.79825C50.431 7.22286 50.5418 7.68439 50.8618 7.99207L52.7448 9.82589C52.8002 9.88127 52.831 9.96127 52.8125 10.0413L52.3694 12.6382C52.2956 13.0812 52.4741 13.5181 52.831 13.7766C53.0341 13.9243 53.274 13.9981 53.514 13.9981C53.6987 13.9981 53.8833 13.9551 54.0556 13.8627L56.3878 12.6382C56.4555 12.6012 56.5417 12.6012 56.6155 12.6382L58.9478 13.8627C59.3416 14.072 59.8155 14.0412 60.1785 13.7766C60.5416 13.512 60.7201 13.0751 60.6401 12.6382L60.197 10.0413C60.1847 9.96127 60.2093 9.88127 60.2647 9.82589L62.1477 7.98592V7.99207Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"g\", { clipPath: \"url(#clip4_4471_232172)\" },\r\n React.createElement(\"path\", { d: \"M78.1477 7.99207C78.4677 7.67823 78.5785 7.22286 78.4431 6.79825C78.3077 6.37364 77.9447 6.06595 77.5016 6.00442L74.8986 5.62288C74.8186 5.61058 74.7509 5.56135 74.714 5.4875L73.5509 3.12446C73.354 2.72447 72.954 2.47217 72.5048 2.47217C72.0555 2.47217 71.6555 2.72447 71.4586 3.12446L70.2956 5.4875C70.2586 5.56135 70.191 5.61058 70.111 5.62288L67.5079 6.00442C67.0649 6.06595 66.7018 6.37364 66.5664 6.79825C66.431 7.22286 66.5418 7.68439 66.8618 7.99207L68.7448 9.82589C68.8002 9.88127 68.831 9.96127 68.8125 10.0413L68.3694 12.6382C68.2956 13.0812 68.4741 13.5181 68.831 13.7766C69.0341 13.9243 69.274 13.9981 69.514 13.9981C69.6987 13.9981 69.8833 13.9551 70.0556 13.8627L72.3878 12.6382C72.4555 12.6012 72.5417 12.6012 72.6155 12.6382L74.9478 13.8627C75.3416 14.072 75.8155 14.0412 76.1785 13.7766C76.5416 13.512 76.7201 13.0751 76.6401 12.6382L76.197 10.0413C76.1847 9.96127 76.2093 9.88127 76.2647 9.82589L78.1477 7.98592V7.99207Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_4471_232172\" },\r\n React.createElement(\"rect\", { height: \"12\", width: \"12\", fill: \"white\", transform: \"translate(2.5 2)\" })),\r\n React.createElement(\"clipPath\", { id: \"clip1_4471_232172\" },\r\n React.createElement(\"rect\", { height: \"12\", width: \"12\", fill: \"white\", transform: \"translate(18.5 2)\" })),\r\n React.createElement(\"clipPath\", { id: \"clip2_4471_232172\" },\r\n React.createElement(\"rect\", { height: \"12\", width: \"12\", fill: \"white\", transform: \"translate(34.5 2)\" })),\r\n React.createElement(\"clipPath\", { id: \"clip3_4471_232172\" },\r\n React.createElement(\"rect\", { height: \"12\", width: \"12\", fill: \"white\", transform: \"translate(50.5 2)\" })),\r\n React.createElement(\"clipPath\", { id: \"clip4_4471_232172\" },\r\n React.createElement(\"rect\", { height: \"12\", width: \"12\", fill: \"white\", transform: \"translate(66.5 2)\" })))));\r\nexport default DarkStarSet;\r\n","import React from \"react\";\r\nexport const downloadExternalIcon = ({ fill = \"none\", height = \"24\", width = \"24\" }) => (React.createElement(\"svg\", { height: height, width: width, fill: fill, viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { id: \"Functional icons/external link\" },\r\n React.createElement(\"g\", { id: \"Union\" },\r\n React.createElement(\"path\", { d: \"M20 3C20.5523 3 21 3.44772 21 4V10C21 10.5523 20.5523 11 20 11C19.4477 11 19 10.5523 19 10L18.9999 6.413L11.9142 13.4999C11.5237 13.8905 10.8905 13.8905 10.4999 13.5C10.1094 13.1095 10.1094 12.4763 10.4999 12.0858L17.5849 5H14C13.4477 5 13 4.55228 13 4C13 3.44772 13.4477 3 14 3H20Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M9 6C9.55228 6 10 6.44772 10 7C10 7.55228 9.55228 8 9 8H5V19H16V15C16 14.4477 16.4477 14 17 14C17.5523 14 18 14.4477 18 15V20C18 20.5523 17.5523 21 17 21H4C3.44772 21 3 20.5523 3 20V7C3 6.44772 3.44772 6 4 6H9Z\", fill: \"#0E1D31\" })))));\r\n","import React from \"react\";\r\nexport const IconGlobe = () => (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_5833_13325)\" },\r\n React.createElement(\"path\", { d: \"M15.5583 5.37914L15.5288 5.30061C14.9693 3.74969 13.9485 2.42454 12.5939 1.47239C11.2393 0.510429 9.64908 0 8 0C6.3411 0 4.75092 0.500614 3.39632 1.45276C2.04172 2.40491 1.03067 3.73006 0.46135 5.2908L0.441718 5.35951C-0.147239 7.05767 -0.147239 8.9227 0.441718 10.611L0.471166 10.6896C1.03067 12.2503 2.04172 13.5755 3.39632 14.5276C4.75092 15.4798 6.3411 15.9804 8 15.9804C9.6589 15.9804 11.2491 15.4699 12.6037 14.5276C13.9583 13.5755 14.9693 12.2503 15.5288 10.6896L15.5485 10.611C16.1374 8.91288 16.1374 7.04785 15.5485 5.35951L15.5583 5.37914ZM11.6515 6.3411H14.292C14.5767 7.43068 14.5767 8.57914 14.292 9.66871H11.6515C11.8184 8.55951 11.8184 7.44049 11.6515 6.3411ZM9.76687 1.74724C10.5521 1.97301 11.308 2.34601 11.9558 2.84663C12.6528 3.3865 13.2417 4.0638 13.6736 4.82945H11.308C10.9742 3.71043 10.454 2.66994 9.75706 1.74724H9.76687ZM9.76687 14.2528C10.4638 13.3202 10.984 12.2798 11.3178 11.1607H13.6834C13.2515 11.9264 12.6626 12.6135 11.9656 13.1436C11.3178 13.6442 10.562 14.0172 9.77669 14.2429L9.76687 14.2528ZM6.23313 1.74724C5.5362 2.67975 5.01595 3.71043 4.68221 4.82945H2.31656C2.74847 4.0638 3.33742 3.37669 4.03436 2.84663C4.68221 2.34601 5.43804 1.97301 6.22331 1.74724H6.23313ZM10.2675 8C10.2675 8.55951 10.2184 9.11902 10.1202 9.66871H5.87975C5.68344 8.55951 5.68344 7.44049 5.87975 6.3411H10.1202C10.2184 6.8908 10.2675 7.45031 10.2675 8.00982V8ZM6.28221 4.82945C6.65522 3.77914 7.24417 2.79755 8 1.99264C8.76564 2.80736 9.3546 3.77914 9.71779 4.82945H6.27239H6.28221ZM4.69203 11.1607C5.02577 12.2798 5.54601 13.3202 6.24295 14.2528C5.45767 14.027 4.70184 13.654 4.05399 13.1534C3.35706 12.6135 2.7681 11.9362 2.3362 11.1706H4.70184L4.69203 11.1607ZM9.72761 11.1607C9.3546 12.211 8.76565 13.1926 8.00982 13.9975C7.24417 13.1828 6.65522 12.211 6.29202 11.1607H9.73742H9.72761ZM4.35828 9.6589H1.71779C1.58037 9.11902 1.50184 8.55951 1.50184 7.99018C1.50184 7.43068 1.57055 6.87117 1.71779 6.32147H4.35828C4.19141 7.43068 4.19141 8.54969 4.35828 9.64908V9.6589Z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_5833_13325\" },\r\n React.createElement(\"rect\", { width: \"16\", height: \"16\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const handIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"14\", height: \"14\", viewBox: \"0 0 14 14\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M4.66578 8.49997L3.60245 7.48731C3.22799 7.13066 2.63186 7.15778 2.29134 7.54698C1.98359 7.89867 1.99265 8.42641 2.31228 8.76737L5.77842 12.4646C5.99899 12.6999 6.30652 12.8333 6.62899 12.8333C7.2619 12.8333 8.30245 12.8333 9.33244 12.8333C10.7324 12.8333 11.6658 11.6667 11.6658 10.5C11.6658 10.5 11.6658 6.50001 11.6658 5.5\", stroke: \"#3E4A5A\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M9.91602 5.83334C9.91602 5.83334 9.91602 5.76035 9.91602 5.5C9.91602 4.16667 11.666 4.16667 11.666 5.5\", stroke: \"#3E4A5A\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M8.16602 5.83398C8.16602 5.83398 8.16602 5.35468 8.16602 4.83399C8.16602 3.50065 9.91602 3.50065 9.91602 4.83399C9.91602 4.96416 9.91602 5.37048 9.91602 5.50065C9.91602 5.761 9.91602 5.83398 9.91602 5.83398\", stroke: \"#3E4A5A\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M6.41602 5.83336C6.41602 5.83336 6.41602 5.02588 6.41602 4.375C6.41602 3.04167 8.16602 3.04167 8.16602 4.375C8.16602 4.375 8.16602 4.70316 8.16602 4.83333C8.16602 5.35403 8.16602 5.83336 8.16602 5.83336\", stroke: \"#3E4A5A\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M4.66602 8.49933V2.04102C4.66602 1.55776 5.05776 1.16602 5.54102 1.16602C6.02425 1.16602 6.41602 1.55718 6.41602 2.04043C6.41602 2.735 6.41602 3.69859 6.41602 4.37435C6.41602 5.02522 6.41602 5.83268 6.41602 5.83268\", stroke: \"#3E4A5A\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import React from \"react\";\r\nexport const IconArrowLeft = (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M10.3294 6.38871C9.94286 6.0129 9.32626 6.01688 8.94464 6.39765L3.98879 11.3425C3.59722 11.7332 3.59722 12.3676 3.98879 12.7583L8.97604 17.7345C9.35467 18.1123 9.96594 18.1178 10.3513 17.7469C10.7472 17.366 10.7538 16.7345 10.366 16.3454L7.07285 13.0406L19.0098 13.0406C19.5567 13.0406 20 12.5973 20 12.0504C20 11.5035 19.5567 11.0601 19.0098 11.0601L7.07285 11.0601L10.3392 7.79378C10.7284 7.40464 10.7239 6.77236 10.3294 6.38871Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nexport const IconCalendar = (React.createElement(\"svg\", { width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6 31.9982V18.2002H36.1048V31.9982C36.1048 33.6616 35.444 35.2569 34.2678 36.4331C33.0916 37.6093 31.4964 38.2701 29.833 38.2701H12.2718C10.6084 38.2701 9.01317 37.6093 7.83698 36.4331C6.66078 35.2569 6 33.6616 6 31.9982ZM14.1534 25.7264C14.6524 25.7264 15.131 25.5282 15.4838 25.1753C15.8367 24.8224 16.0349 24.3439 16.0349 23.8448C16.0349 23.3458 15.8367 22.8672 15.4838 22.5144C15.131 22.1615 14.6524 21.9633 14.1534 21.9633C13.6544 21.9633 13.1758 22.1615 12.8229 22.5144C12.4701 22.8672 12.2718 23.3458 12.2718 23.8448C12.2718 24.3439 12.4701 24.8224 12.8229 25.1753C13.1758 25.5282 13.6544 25.7264 14.1534 25.7264ZM16.0349 30.1167C16.0349 29.6177 15.8367 29.1391 15.4838 28.7862C15.131 28.4334 14.6524 28.2351 14.1534 28.2351C13.6544 28.2351 13.1758 28.4334 12.8229 28.7862C12.4701 29.1391 12.2718 29.6177 12.2718 30.1167C12.2718 30.6157 12.4701 31.0943 12.8229 31.4471C13.1758 31.8 13.6544 31.9982 14.1534 31.9982C14.6524 31.9982 15.131 31.8 15.4838 31.4471C15.8367 31.0943 16.0349 30.6157 16.0349 30.1167ZM21.0524 31.9982C21.5514 31.9982 22.03 31.8 22.3829 31.4471C22.7357 31.0943 22.9339 30.6157 22.9339 30.1167C22.9339 29.6177 22.7357 29.1391 22.3829 28.7862C22.03 28.4334 21.5514 28.2351 21.0524 28.2351C20.5534 28.2351 20.0748 28.4334 19.7219 28.7862C19.3691 29.1391 19.1708 29.6177 19.1708 30.1167C19.1708 30.6157 19.3691 31.0943 19.7219 31.4471C20.0748 31.8 20.5534 31.9982 21.0524 31.9982ZM22.9339 23.8448C22.9339 23.3458 22.7357 22.8672 22.3829 22.5144C22.03 22.1615 21.5514 21.9633 21.0524 21.9633C20.5534 21.9633 20.0748 22.1615 19.7219 22.5144C19.3691 22.8672 19.1708 23.3458 19.1708 23.8448C19.1708 24.3439 19.3691 24.8224 19.7219 25.1753C20.0748 25.5282 20.5534 25.7264 21.0524 25.7264C21.5514 25.7264 22.03 25.5282 22.3829 25.1753C22.7357 24.8224 22.9339 24.3439 22.9339 23.8448ZM27.9514 25.7264C28.4504 25.7264 28.929 25.5282 29.2819 25.1753C29.6347 24.8224 29.833 24.3439 29.833 23.8448C29.833 23.3458 29.6347 22.8672 29.2819 22.5144C28.929 22.1615 28.4504 21.9633 27.9514 21.9633C27.4524 21.9633 26.9738 22.1615 26.621 22.5144C26.2681 22.8672 26.0699 23.3458 26.0699 23.8448C26.0699 24.3439 26.2681 24.8224 26.621 25.1753C26.9738 25.5282 27.4524 25.7264 27.9514 25.7264Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M36.1048 16.5822C35.5444 13.0643 32.3741 11.0107 28.7005 11.0107H13.1344C9.46079 11.0107 6.56038 13.0643 6 16.5822H36.1048Z\", fill: \"#5EE15A\" }),\r\n React.createElement(\"rect\", { x: \"12.0184\", y: \"8.28711\", width: \"3.79423\", height: \"7.88033\", rx: \"1\", fill: \"#5EE15A\" }),\r\n React.createElement(\"rect\", { x: \"26.0222\", y: \"8.28711\", width: \"3.79423\", height: \"7.88033\", rx: \"1\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M26.375 34.1875C26.375 29.8766 29.8766 26.375 34.1875 26.375C38.4984 26.375 42 29.8766 42 34.1875C42 38.4984 38.4984 42 34.1875 42C29.8766 42 26.375 38.4984 26.375 34.1875Z\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M34.1875 30.165C33.7468 30.165 33.3862 30.5256 33.3862 30.9663V34.1714C33.3862 34.4359 33.5224 34.6923 33.7468 34.8365L36.1507 36.4391C36.2869 36.5272 36.4391 36.5753 36.5914 36.5753C36.8478 36.5753 37.1042 36.4471 37.2564 36.2147C37.5048 35.8461 37.4007 35.3493 37.0321 35.1009L34.9888 33.7388V30.9663C34.9888 30.5256 34.6282 30.165 34.1875 30.165Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nexport const IconFb = (React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_16364_158923)\" },\r\n React.createElement(\"path\", { d: \"M11.6667 11.2503H13.75L14.5833 7.91699H11.6667V6.25033C11.6667 5.39199 11.6667 4.58366 13.3333 4.58366H14.5833V1.78366C14.3117 1.74783 13.2858 1.66699 12.2025 1.66699C9.94001 1.66699 8.33334 3.04783 8.33334 5.58366V7.91699H5.83334V11.2503H8.33334V18.3337H11.6667V11.2503Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_16364_158923\" },\r\n React.createElement(\"rect\", { width: \"20\", height: \"20\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const FlameIcon = () => (React.createElement(\"svg\", { width: \"12\", height: \"14\", viewBox: \"0 0 12 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6.55493 13.5371C8.63887 13.1194 11.3333 11.6202 11.3333 7.74371C11.3333 4.21598 8.75113 1.86686 6.89433 0.787476C6.48233 0.547956 6 0.862949 6 1.33952V2.55851C6 3.51975 5.59587 5.27432 4.47288 6.00411C3.89955 6.37671 3.28035 5.81904 3.21067 5.13883L3.15345 4.58027C3.08693 3.93093 2.42561 3.53674 1.90664 3.93264C0.974313 4.64387 0 5.88931 0 7.74371C0 12.4844 3.52593 13.6696 5.28887 13.6696C5.3914 13.6696 5.4992 13.6666 5.6114 13.6601C4.74087 13.5857 3.33333 13.0456 3.33333 11.299C3.33333 9.93284 4.33005 9.00858 5.08733 8.55931C5.291 8.43844 5.5294 8.59538 5.5294 8.83218V9.22498C5.5294 9.52558 5.64567 9.99551 5.9224 10.3172C6.2356 10.6812 6.69527 10.2998 6.73233 9.82111C6.74407 9.67011 6.89593 9.57384 7.02673 9.65031C7.45427 9.90018 8 10.4339 8 11.299C8 12.6644 7.24733 13.2924 6.55493 13.5371Z\", fill: \"currentColor\" })));\r\n","import React from \"react\";\r\nexport const IconIn = (React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_16364_158925)\" },\r\n React.createElement(\"path\", { d: \"M15.2792 15.2825H13.0583V11.8017C13.0583 10.9717 13.0417 9.90333 11.9 9.90333C10.7425 9.90333 10.5658 10.8067 10.5658 11.7408V15.2825H8.34417V8.125H10.4775V9.1H10.5067C10.805 8.53833 11.53 7.94417 12.6133 7.94417C14.8633 7.94417 15.28 9.42583 15.28 11.3533V15.2825H15.2792ZM5.83583 7.14583C5.6663 7.14605 5.49838 7.11281 5.34172 7.04801C5.18506 6.9832 5.04272 6.88812 4.92288 6.7682C4.80304 6.64828 4.70804 6.50588 4.64334 6.34918C4.57864 6.19247 4.5455 6.02454 4.54583 5.855C4.546 5.59986 4.62182 5.3505 4.7637 5.13846C4.90558 4.92641 5.10716 4.76119 5.34294 4.66371C5.57872 4.56623 5.83811 4.54085 6.08832 4.59078C6.33852 4.64072 6.5683 4.76373 6.74859 4.94426C6.92888 5.12478 7.0516 5.35472 7.10121 5.60498C7.15082 5.85525 7.12511 6.11461 7.02732 6.35026C6.92953 6.58592 6.76406 6.78728 6.55183 6.92889C6.33959 7.0705 6.09097 7.146 5.83583 7.14583ZM6.94917 15.2825H4.72167V8.125H6.95V15.2825H6.94917ZM16.3917 2.5H3.6075C2.99417 2.5 2.5 2.98333 2.5 3.58083V16.4192C2.5 17.0167 2.995 17.5 3.60667 17.5H16.3883C17 17.5 17.5 17.0167 17.5 16.4192V3.58083C17.5 2.98333 17 2.5 16.3883 2.5H16.3917Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_16364_158925\" },\r\n React.createElement(\"rect\", { width: \"20\", height: \"20\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const IconNoResults = (React.createElement(\"svg\", { width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_16819_137445)\" },\r\n React.createElement(\"path\", { d: \"M36.0005 6.00122H32.3084C28.9949 6.00122 26.3088 8.68732 26.3088 12.0008V15.6928C26.3088 19.0063 28.9949 21.6924 32.3084 21.6924H36.0005C39.3139 21.6924 42 19.0063 42 15.6928V12.0008C42 8.68732 39.3139 6.00122 36.0005 6.00122Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M36.0005 26.3074H32.3084C28.9949 26.3074 26.3088 28.9935 26.3088 32.3069V35.999C26.3088 39.3125 28.9949 41.9986 32.3084 41.9986H36.0005C39.3139 41.9986 42 39.3125 42 35.999V32.3069C42 28.9935 39.3139 26.3074 36.0005 26.3074Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M15.6942 6.00122H12.0021C8.68866 6.00122 6.00256 8.68732 6.00256 12.0008V15.6928C6.00256 19.0063 8.68866 21.6924 12.0021 21.6924H15.6942C19.0076 21.6924 21.6937 19.0063 21.6937 15.6928V12.0008C21.6937 8.68732 19.0076 6.00122 15.6942 6.00122Z\", fill: \"#CFD2D6\" }),\r\n React.createElement(\"path\", { d: \"M14.7712 26.3075C10.95 26.3075 7.84864 29.4088 7.84864 33.2301C7.84864 34.6331 8.27322 35.9438 8.99317 37.0329L6.39028 39.6358C5.85493 40.1711 5.85493 41.0572 6.39028 41.5926C6.66718 41.8695 7.01793 41.9987 7.36867 41.9987C7.71941 41.9987 8.07016 41.8695 8.34706 41.5926L10.95 38.9897C12.0391 39.7096 13.3498 40.1342 14.7528 40.1342C18.574 40.1342 21.6753 37.0329 21.6753 33.2116C21.6753 29.3904 18.574 26.2891 14.7528 26.2891L14.7712 26.3075Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_16819_137445\" },\r\n React.createElement(\"rect\", { width: \"36\", height: \"36\", fill: \"white\", transform: \"translate(6 6)\" })))));\r\n","import React from \"react\";\r\nexport const IconTw = (React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6.66668 1.66699H0.833344L7.71739 10.8457L1.2083 18.3336H3.41666L8.74026 12.2095L13.3333 18.3337H19.1667L11.9931 8.76891L18.1668 1.66699H15.9584L10.9703 7.40514L6.66668 1.66699ZM14.1667 16.667L4.16668 3.33366H5.83334L15.8333 16.667H14.1667Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nexport const IconMagnifyingGlass = () => (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M11.3335 11.3335L14.0002 14.0002\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M2 7.33333C2 10.2789 4.38781 12.6667 7.33333 12.6667C8.80867 12.6667 10.1441 12.0677 11.1096 11.0995C12.0718 10.1348 12.6667 8.80353 12.6667 7.33333C12.6667 4.38781 10.2789 2 7.33333 2C4.38781 2 2 4.38781 2 7.33333Z\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import { useState, useEffect } from \"react\";\r\nexport function getMarketSentiment(symbols, securityKey) {\r\n return fetch(`https://api.thinkmarkets.com/tm/getBBI?${securityKey ? `securityKey=${securityKey}` : \"\"}${symbols ? `&symbols=${symbols}` : \"\"}`);\r\n}\r\nexport function useMarketSentiment(symbols = \"USDJPY,USDCAD,EURUSD,US30,GER30,XAUUSD,GBPUSD,AUDUSD\", securityKey = \"zzz9bbb59df534b077c0e9a7e425ea97ffc\") {\r\n const [marketSentiments, setMarketSentiments] = useState([]);\r\n const [error, setError] = useState(undefined);\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const response = await getMarketSentiment(symbols, securityKey);\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}, statusText: ${response.statusText}`);\r\n }\r\n const data = await response.json();\r\n setMarketSentiments(data);\r\n }\r\n catch (error) {\r\n setError(error);\r\n }\r\n };\r\n void fetchData();\r\n }, [symbols, securityKey]);\r\n return {\r\n marketSentiments,\r\n error\r\n };\r\n}\r\n","import { useState } from \"react\";\r\nexport const usePagination = (items, itemsPerPage) => {\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const currentPageItems = items.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage);\r\n const numOfPages = Math.ceil(items.length / itemsPerPage);\r\n return {\r\n itemsPerPage,\r\n currentPage,\r\n currentPageItems,\r\n numOfPages,\r\n setCurrentPage\r\n };\r\n};\r\n","import { useEffect, useState } from \"react\";\r\nimport { pageViewStyle } from \"../pageViewStyle\";\r\nexport const usePageViewStyle = () => {\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const onViewUpdate = (newView) => {\r\n setView(newView);\r\n };\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, []);\r\n return { viewStyle: view, isSmall: view === \"small\", isMedium: view === \"medium\", isLarge: view === \"large\" };\r\n};\r\n","import { debounce } from \"debounce\";\r\nexport const viewSizes = {\r\n smallMaxWidth: 600,\r\n mediumMaxWidth: 1024,\r\n};\r\nclass PageViewStyle {\r\n constructor(window) {\r\n this.getView = () => this.view;\r\n this.subscribe = (callback) => {\r\n if (this.subscribers.length > this.maxSubscribers) {\r\n throw new Error(\"Maximum subscribers limit reached! Check if something is not unsubscribing.\");\r\n }\r\n const subscruber = this.subscribers.find(s => callback === s);\r\n if (subscruber) {\r\n return false;\r\n }\r\n else {\r\n this.subscribers.push(callback);\r\n return callback;\r\n }\r\n };\r\n this.unsubscribe = (callback) => {\r\n const subscriberIndex = this.subscribers.indexOf(callback);\r\n if (subscriberIndex > -1) {\r\n this.subscribers.splice(subscriberIndex, 1);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n this.onResize = () => {\r\n this.setView(this.calculateView());\r\n };\r\n this.viewClasses = {\r\n small: \"small-view\",\r\n medium: \"medium-view\",\r\n large: \"large-view\",\r\n };\r\n this.window = window;\r\n this.maxSubscribers = 100;\r\n this.subscribers = [];\r\n if (this.window.document) {\r\n this.setView(this.calculateView());\r\n this.onResizeDebounced = debounce(this.onResize, 50);\r\n this.window.addEventListener(\"resize\", this.onResizeDebounced);\r\n }\r\n }\r\n setView(view) {\r\n if (this.view === view) {\r\n return;\r\n }\r\n this.window.document.documentElement.classList.remove(this.viewClasses[this.view]);\r\n this.window.document.documentElement.classList.add(this.viewClasses[view]);\r\n this.subscribers.forEach(s => s(view));\r\n this.view = view;\r\n }\r\n calculateView() {\r\n const width = this.window.innerWidth;\r\n if (width > viewSizes.mediumMaxWidth) {\r\n return \"large\";\r\n }\r\n else if (width <= viewSizes.mediumMaxWidth && width > viewSizes.smallMaxWidth) {\r\n return \"medium\";\r\n }\r\n else {\r\n return \"small\";\r\n }\r\n }\r\n}\r\nexport const pageViewStyle = globalThis.pageviewstyle?.pageViewStyle || new PageViewStyle(globalThis);\r\n","export const capitalizeString = (string) => string.charAt(0).toUpperCase() + string.slice(1);\r\n","export const checkIsNumber = (value) => typeof value === \"number\" && !Number.isNaN(value);\r\n","export function duplicateArrayItems(arr, times) {\r\n return Array.from({ length: times }, () => arr).reduce((acc, curr) => acc.concat(curr), []);\r\n}\r\n","export const getClassConditionalAppend = (extraClassName) => extraClassName ? ` ${extraClassName}` : \"\";\r\n","export function getColors(backgroundColor) {\r\n let bgColor;\r\n let textColor;\r\n const white = \"#FFFFFF\";\r\n const dark = \"#0E1D31\";\r\n const nab = \"#F2F6F6\";\r\n const nad = \"#D3E2E2\";\r\n if (backgroundColor === \"white\") {\r\n bgColor = white;\r\n textColor = dark;\r\n return { bgColor, textColor };\r\n }\r\n if (backgroundColor === \"dark\") {\r\n bgColor = dark;\r\n textColor = white;\r\n return { bgColor, textColor };\r\n }\r\n if (backgroundColor === \"neutralaccentbackground\") {\r\n bgColor = nab;\r\n textColor = dark;\r\n return { bgColor, textColor };\r\n }\r\n if (backgroundColor === \"neutralaccentdefault\") {\r\n bgColor = nad;\r\n textColor = dark;\r\n return { bgColor, textColor };\r\n }\r\n if (backgroundColor === \"none\") {\r\n bgColor = undefined;\r\n textColor = {};\r\n return { bgColor, textColor };\r\n }\r\n if (typeof backgroundColor === \"string\" && backgroundColor.length > 0) {\r\n bgColor = backgroundColor;\r\n textColor = white;\r\n return { bgColor, textColor };\r\n }\r\n bgColor = undefined;\r\n textColor = {};\r\n return { bgColor, textColor };\r\n}\r\n","export const CONTAINER_CLASS_PER_MAX_WIDTH = {\r\n \"1128px\": \"\",\r\n \"1400px\": \"g-container--new\"\r\n};\r\nexport const getContainerClassPerMaxWidth = (maxWidth) => {\r\n if (typeof maxWidth === \"undefined\") {\r\n return \"\";\r\n }\r\n const keyFound = Object.keys(CONTAINER_CLASS_PER_MAX_WIDTH).find(key => key === maxWidth);\r\n return keyFound ? CONTAINER_CLASS_PER_MAX_WIDTH[keyFound] : \"\";\r\n};\r\n","const VIDEO_TYPE_MAP = {\r\n mp4: \"video/mp4\",\r\n webm: \"video/webm\"\r\n};\r\nexport const getVideoType = (videoSrc) => {\r\n const extension = videoSrc.split(\".\").pop();\r\n return extension && VIDEO_TYPE_MAP[extension];\r\n};\r\n","export const handleLinkTarget = (isExternalLocation) => {\r\n if (isExternalLocation) {\r\n return \"_blank\";\r\n }\r\n return \"_self\";\r\n};\r\n","export const sanitizeUrl = (url) => url.startsWith(\"~\") ? url.slice(1) : url;\r\n","const isValidName = (name) => !/[!@#$%&=_~<>?:1234567890]/.test(name) && name.length <= 300 && name.length > 0;\r\nconst isValidPhone = (phone) => /^\\+?[0-9]([-\\s]?\\d)*$/.test(phone) && phone.length >= 8 && phone.length <= 30;\r\nconst isValidEmail = (email) => /^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$/.test(email) && email.length <= 300;\r\nexport { isValidEmail, isValidName, isValidPhone };\r\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\nvar Rive = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n \n return (\nfunction(moduleArg = {}) {\n\nvar m = moduleArg, aa, ea;\nm.ready = new Promise((a, b) => {\n aa = a;\n ea = b;\n});\nfunction fa() {\n function a(g) {\n const n = d;\n c = b = 0;\n d = new Map();\n n.forEach(p => {\n try {\n p(g);\n } catch (l) {\n console.error(l);\n }\n });\n this.ob();\n e && e.Tb();\n }\n let b = 0, c = 0, d = new Map(), e = null, f = null;\n this.requestAnimationFrame = function(g) {\n b || (b = requestAnimationFrame(a.bind(this)));\n const n = ++c;\n d.set(n, g);\n return n;\n };\n this.cancelAnimationFrame = function(g) {\n d.delete(g);\n b && 0 == d.size && (cancelAnimationFrame(b), b = 0);\n };\n this.Rb = function(g) {\n f && (document.body.remove(f), f = null);\n g || (f = document.createElement(\"div\"), f.style.backgroundColor = \"black\", f.style.position = \"fixed\", f.style.right = 0, f.style.top = 0, f.style.color = \"white\", f.style.padding = \"4px\", f.innerHTML = \"RIVE FPS\", g = function(n) {\n f.innerHTML = \"RIVE FPS \" + n.toFixed(1);\n }, document.body.appendChild(f));\n e = new function() {\n let n = 0, p = 0;\n this.Tb = function() {\n var l = performance.now();\n p ? (++n, l -= p, 1000 < l && (g(1000 * n / l), n = p = 0)) : (p = l, n = 0);\n };\n }();\n };\n this.Ob = function() {\n f && (document.body.remove(f), f = null);\n e = null;\n };\n this.ob = function() {\n };\n}\nfunction ha(a) {\n console.assert(!0);\n const b = new Map();\n let c = -Infinity;\n this.push = function(d) {\n d = d + ((1 << a) - 1) >> a;\n b.has(d) && clearTimeout(b.get(d));\n b.set(d, setTimeout(function() {\n b.delete(d);\n 0 == b.length ? c = -Infinity : d == c && (c = Math.max(...b.keys()), console.assert(c < d));\n }, 1000));\n c = Math.max(d, c);\n return c << a;\n };\n}\nconst ia = m.onRuntimeInitialized;\nm.onRuntimeInitialized = function() {\n ia && ia();\n let a = m.decodeAudio;\n m.decodeAudio = function(e, f) {\n e = a(e);\n f(e);\n };\n let b = m.decodeFont;\n m.decodeFont = function(e, f) {\n e = b(e);\n f(e);\n };\n const c = m.FileAssetLoader;\n m.ptrToAsset = e => {\n let f = m.ptrToFileAsset(e);\n return f.isImage ? m.ptrToImageAsset(e) : f.isFont ? m.ptrToFontAsset(e) : f.isAudio ? m.ptrToAudioAsset(e) : f;\n };\n m.CustomFileAssetLoader = c.extend(\"CustomFileAssetLoader\", {__construct:function({loadContents:e}) {\n this.__parent.__construct.call(this);\n this.Gb = e;\n }, loadContents:function(e, f) {\n e = m.ptrToAsset(e);\n return this.Gb(e, f);\n },});\n m.CDNFileAssetLoader = c.extend(\"CDNFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n }, loadContents:function(e) {\n let f = m.ptrToAsset(e);\n e = f.cdnUuid;\n if (\"\" === e) {\n return !1;\n }\n (function(g, n) {\n var p = new XMLHttpRequest();\n p.responseType = \"arraybuffer\";\n p.onreadystatechange = function() {\n 4 == p.readyState && 200 == p.status && n(p);\n };\n p.open(\"GET\", g, !0);\n p.send(null);\n })(f.cdnBaseUrl + \"/\" + e, g => {\n f.decode(new Uint8Array(g.response));\n });\n return !0;\n },});\n m.FallbackFileAssetLoader = c.extend(\"FallbackFileAssetLoader\", {__construct:function() {\n this.__parent.__construct.call(this);\n this.kb = [];\n }, addLoader:function(e) {\n this.kb.push(e);\n }, loadContents:function(e, f) {\n for (let g of this.kb) {\n if (g.loadContents(e, f)) {\n return !0;\n }\n }\n return !1;\n },});\n let d = m.computeAlignment;\n m.computeAlignment = function(e, f, g, n, p = 1.0) {\n return d.call(this, e, f, g, n, p);\n };\n};\nconst ja = \"createConicGradient createImageData createLinearGradient createPattern createRadialGradient getContextAttributes getImageData getLineDash getTransform isContextLost isPointInPath isPointInStroke measureText\".split(\" \"), ka = new function() {\n function a() {\n if (!b) {\n var k = document.createElement(\"canvas\"), t = {alpha:1, depth:0, stencil:0, antialias:0, premultipliedAlpha:1, preserveDrawingBuffer:0, powerPreference:\"high-performance\", failIfMajorPerformanceCaveat:0, enableExtensionsByDefault:1, explicitSwapControl:1, renderViaOffscreenBackBuffer:1,};\n let r;\n if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {\n if (r = k.getContext(\"webgl\", t), c = 1, !r) {\n return console.log(\"No WebGL support. Image mesh will not be drawn.\"), !1;\n }\n } else {\n if (r = k.getContext(\"webgl2\", t)) {\n c = 2;\n } else {\n if (r = k.getContext(\"webgl\", t)) {\n c = 1;\n } else {\n return console.log(\"No WebGL support. Image mesh will not be drawn.\"), !1;\n }\n }\n }\n r = new Proxy(r, {get(D, w) {\n if (D.isContextLost()) {\n if (p || (console.error(\"Cannot render the mesh because the GL Context was lost. Tried to invoke \", w), p = !0), \"function\" === typeof D[w]) {\n return function() {\n };\n }\n } else {\n return \"function\" === typeof D[w] ? function(...M) {\n return D[w].apply(D, M);\n } : D[w];\n }\n }, set(D, w, M) {\n if (D.isContextLost()) {\n p || (console.error(\"Cannot render the mesh because the GL Context was lost. Tried to set property \" + w), p = !0);\n } else {\n return D[w] = M, !0;\n }\n },});\n d = Math.min(r.getParameter(r.MAX_RENDERBUFFER_SIZE), r.getParameter(r.MAX_TEXTURE_SIZE));\n function B(D, w, M) {\n w = r.createShader(w);\n r.shaderSource(w, M);\n r.compileShader(w);\n M = r.getShaderInfoLog(w);\n if (0 < (M || \"\").length) {\n throw M;\n }\n r.attachShader(D, w);\n }\n k = r.createProgram();\n B(k, r.VERTEX_SHADER, \"attribute vec2 vertex;\\n attribute vec2 uv;\\n uniform vec4 mat;\\n uniform vec2 translate;\\n varying vec2 st;\\n void main() {\\n st = uv;\\n gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\\n }\");\n B(k, r.FRAGMENT_SHADER, \"precision highp float;\\n uniform sampler2D image;\\n varying vec2 st;\\n void main() {\\n gl_FragColor = texture2D(image, st);\\n }\");\n r.bindAttribLocation(k, 0, \"vertex\");\n r.bindAttribLocation(k, 1, \"uv\");\n r.linkProgram(k);\n t = r.getProgramInfoLog(k);\n if (0 < (t || \"\").trim().length) {\n throw t;\n }\n e = r.getUniformLocation(k, \"mat\");\n f = r.getUniformLocation(k, \"translate\");\n r.useProgram(k);\n r.bindBuffer(r.ARRAY_BUFFER, r.createBuffer());\n r.enableVertexAttribArray(0);\n r.enableVertexAttribArray(1);\n r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, r.createBuffer());\n r.uniform1i(r.getUniformLocation(k, \"image\"), 0);\n r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0);\n b = r;\n }\n return !0;\n }\n let b = null, c = 0, d = 0, e = null, f = null, g = 0, n = 0, p = !1;\n a();\n this.hc = function() {\n a();\n return d;\n };\n this.Mb = function(k) {\n b.deleteTexture && b.deleteTexture(k);\n };\n this.Lb = function(k) {\n if (!a()) {\n return null;\n }\n const t = b.createTexture();\n if (!t) {\n return null;\n }\n b.bindTexture(b.TEXTURE_2D, t);\n b.texImage2D(b.TEXTURE_2D, 0, b.RGBA, b.RGBA, b.UNSIGNED_BYTE, k);\n b.texParameteri(b.TEXTURE_2D, b.TEXTURE_WRAP_S, b.CLAMP_TO_EDGE);\n b.texParameteri(b.TEXTURE_2D, b.TEXTURE_WRAP_T, b.CLAMP_TO_EDGE);\n b.texParameteri(b.TEXTURE_2D, b.TEXTURE_MAG_FILTER, b.LINEAR);\n 2 == c ? (b.texParameteri(b.TEXTURE_2D, b.TEXTURE_MIN_FILTER, b.LINEAR_MIPMAP_LINEAR), b.generateMipmap(b.TEXTURE_2D)) : b.texParameteri(b.TEXTURE_2D, b.TEXTURE_MIN_FILTER, b.LINEAR);\n return t;\n };\n const l = new ha(8), u = new ha(8), v = new ha(10), x = new ha(10);\n this.Qb = function(k, t, r, B, D) {\n if (a()) {\n var w = l.push(k), M = u.push(t);\n if (b.canvas) {\n if (b.canvas.width != w || b.canvas.height != M) {\n b.canvas.width = w, b.canvas.height = M;\n }\n b.viewport(0, M - t, k, t);\n b.disable(b.SCISSOR_TEST);\n b.clearColor(0, 0, 0, 0);\n b.clear(b.COLOR_BUFFER_BIT);\n b.enable(b.SCISSOR_TEST);\n r.sort((H, ba) => ba.wb - H.wb);\n w = v.push(B);\n g != w && (b.bufferData(b.ARRAY_BUFFER, 8 * w, b.DYNAMIC_DRAW), g = w);\n w = 0;\n for (var T of r) {\n b.bufferSubData(b.ARRAY_BUFFER, w, T.Ta), w += 4 * T.Ta.length;\n }\n console.assert(w == 4 * B);\n for (var ca of r) {\n b.bufferSubData(b.ARRAY_BUFFER, w, ca.Db), w += 4 * ca.Db.length;\n }\n console.assert(w == 8 * B);\n w = x.push(D);\n n != w && (b.bufferData(b.ELEMENT_ARRAY_BUFFER, 2 * w, b.DYNAMIC_DRAW), n = w);\n T = 0;\n for (var ra of r) {\n b.bufferSubData(b.ELEMENT_ARRAY_BUFFER, T, ra.indices), T += 2 * ra.indices.length;\n }\n console.assert(T == 2 * D);\n ra = 0;\n ca = !0;\n w = T = 0;\n for (const H of r) {\n H.image.Ka != ra && (b.bindTexture(b.TEXTURE_2D, H.image.Ja || null), ra = H.image.Ka);\n H.mc ? (b.scissor(H.Ya, M - H.Za - H.jb, H.Ac, H.jb), ca = !0) : ca && (b.scissor(0, M - t, k, t), ca = !1);\n r = 2 / k;\n const ba = -2 / t;\n b.uniform4f(e, H.ha[0] * r * H.Ba, H.ha[1] * ba * H.Ca, H.ha[2] * r * H.Ba, H.ha[3] * ba * H.Ca);\n b.uniform2f(f, H.ha[4] * r * H.Ba + r * (H.Ya - H.ic * H.Ba) - 1, H.ha[5] * ba * H.Ca + ba * (H.Za - H.jc * H.Ca) + 1);\n b.vertexAttribPointer(0, 2, b.FLOAT, !1, 0, w);\n b.vertexAttribPointer(1, 2, b.FLOAT, !1, 0, w + 4 * B);\n b.drawElements(b.TRIANGLES, H.indices.length, b.UNSIGNED_SHORT, T);\n w += 4 * H.Ta.length;\n T += 2 * H.indices.length;\n }\n console.assert(w == 4 * B);\n console.assert(T == 2 * D);\n }\n }\n };\n this.canvas = function() {\n return a() && b.canvas;\n };\n}(), la = m.onRuntimeInitialized;\nm.onRuntimeInitialized = function() {\n function a(q) {\n switch(q) {\n case l.srcOver:\n return \"source-over\";\n case l.screen:\n return \"screen\";\n case l.overlay:\n return \"overlay\";\n case l.darken:\n return \"darken\";\n case l.lighten:\n return \"lighten\";\n case l.colorDodge:\n return \"color-dodge\";\n case l.colorBurn:\n return \"color-burn\";\n case l.hardLight:\n return \"hard-light\";\n case l.softLight:\n return \"soft-light\";\n case l.difference:\n return \"difference\";\n case l.exclusion:\n return \"exclusion\";\n case l.multiply:\n return \"multiply\";\n case l.hue:\n return \"hue\";\n case l.saturation:\n return \"saturation\";\n case l.color:\n return \"color\";\n case l.luminosity:\n return \"luminosity\";\n }\n }\n function b(q) {\n return \"rgba(\" + ((16711680 & q) >>> 16) + \",\" + ((65280 & q) >>> 8) + \",\" + ((255 & q) >>> 0) + \",\" + ((4278190080 & q) >>> 24) / 255 + \")\";\n }\n function c() {\n 0 < M.length && (ka.Qb(w.drawWidth(), w.drawHeight(), M, T, ca), M = [], ca = T = 0, w.reset(512, 512));\n for (const q of D) {\n for (const y of q.H) {\n y();\n }\n q.H = [];\n }\n D.clear();\n }\n la && la();\n var d = m.RenderPaintStyle;\n const e = m.RenderPath, f = m.RenderPaint, g = m.Renderer, n = m.StrokeCap, p = m.StrokeJoin, l = m.BlendMode, u = d.fill, v = d.stroke, x = m.FillRule.evenOdd;\n let k = 1;\n var t = m.RenderImage.extend(\"CanvasRenderImage\", {__construct:function({la:q, xa:y} = {}) {\n this.__parent.__construct.call(this);\n this.Ka = k;\n k = k + 1 & 2147483647 || 1;\n this.la = q;\n this.xa = y;\n }, __destruct:function() {\n this.Ja && (ka.Mb(this.Ja), URL.revokeObjectURL(this.Wa));\n this.__parent.__destruct.call(this);\n }, decode:function(q) {\n var y = this;\n y.xa && y.xa(y);\n var F = new Image();\n y.Wa = URL.createObjectURL(new Blob([q], {type:\"image/png\",}));\n F.onload = function() {\n y.Fb = F;\n y.Ja = ka.Lb(F);\n y.size(F.width, F.height);\n y.la && y.la(y);\n };\n F.src = y.Wa;\n },}), r = e.extend(\"CanvasRenderPath\", {__construct:function() {\n this.__parent.__construct.call(this);\n this.T = new Path2D();\n }, rewind:function() {\n this.T = new Path2D();\n }, addPath:function(q, y, F, G, A, I, J) {\n var K = this.T, X = K.addPath;\n q = q.T;\n const Q = new DOMMatrix();\n Q.a = y;\n Q.b = F;\n Q.c = G;\n Q.d = A;\n Q.e = I;\n Q.f = J;\n X.call(K, q, Q);\n }, fillRule:function(q) {\n this.Va = q;\n }, moveTo:function(q, y) {\n this.T.moveTo(q, y);\n }, lineTo:function(q, y) {\n this.T.lineTo(q, y);\n }, cubicTo:function(q, y, F, G, A, I) {\n this.T.bezierCurveTo(q, y, F, G, A, I);\n }, close:function() {\n this.T.closePath();\n },}), B = f.extend(\"CanvasRenderPaint\", {color:function(q) {\n this.Xa = b(q);\n }, thickness:function(q) {\n this.Ib = q;\n }, join:function(q) {\n switch(q) {\n case p.miter:\n this.Ia = \"miter\";\n break;\n case p.round:\n this.Ia = \"round\";\n break;\n case p.bevel:\n this.Ia = \"bevel\";\n }\n }, cap:function(q) {\n switch(q) {\n case n.butt:\n this.Ha = \"butt\";\n break;\n case n.round:\n this.Ha = \"round\";\n break;\n case n.square:\n this.Ha = \"square\";\n }\n }, style:function(q) {\n this.Hb = q;\n }, blendMode:function(q) {\n this.Eb = a(q);\n }, clearGradient:function() {\n this.ja = null;\n }, linearGradient:function(q, y, F, G) {\n this.ja = {yb:q, zb:y, bb:F, cb:G, Ra:[],};\n }, radialGradient:function(q, y, F, G) {\n this.ja = {yb:q, zb:y, bb:F, cb:G, Ra:[], ec:!0,};\n }, addStop:function(q, y) {\n this.ja.Ra.push({color:q, stop:y,});\n }, completeGradient:function() {\n }, draw:function(q, y, F) {\n let G = this.Hb;\n var A = this.Xa, I = this.ja;\n q.globalCompositeOperation = this.Eb;\n if (null != I) {\n A = I.yb;\n var J = I.zb;\n const X = I.bb;\n var K = I.cb;\n const Q = I.Ra;\n I.ec ? (I = X - A, K -= J, A = q.createRadialGradient(A, J, 0, A, J, Math.sqrt(I * I + K * K))) : A = q.createLinearGradient(A, J, X, K);\n for (let da = 0, R = Q.length; da < R; da++) {\n J = Q[da], A.addColorStop(J.stop, b(J.color));\n }\n this.Xa = A;\n this.ja = null;\n }\n switch(G) {\n case v:\n q.strokeStyle = A;\n q.lineWidth = this.Ib;\n q.lineCap = this.Ha;\n q.lineJoin = this.Ia;\n q.stroke(y);\n break;\n case u:\n q.fillStyle = A, q.fill(y, F);\n }\n },});\n const D = new Set();\n let w = null, M = [], T = 0, ca = 0;\n var ra = m.CanvasRenderer = g.extend(\"Renderer\", {__construct:function(q) {\n this.__parent.__construct.call(this);\n this.S = [1, 0, 0, 1, 0, 0];\n this.C = q.getContext(\"2d\");\n this.Ua = q;\n this.H = [];\n }, save:function() {\n this.S.push(...this.S.slice(this.S.length - 6));\n this.H.push(this.C.save.bind(this.C));\n }, restore:function() {\n const q = this.S.length - 6;\n if (6 > q) {\n throw \"restore() called without matching save().\";\n }\n this.S.splice(q);\n this.H.push(this.C.restore.bind(this.C));\n }, transform:function(q, y, F, G, A, I) {\n const J = this.S, K = J.length - 6;\n J.splice(K, 6, J[K] * q + J[K + 2] * y, J[K + 1] * q + J[K + 3] * y, J[K] * F + J[K + 2] * G, J[K + 1] * F + J[K + 3] * G, J[K] * A + J[K + 2] * I + J[K + 4], J[K + 1] * A + J[K + 3] * I + J[K + 5]);\n this.H.push(this.C.transform.bind(this.C, q, y, F, G, A, I));\n }, rotate:function(q) {\n const y = Math.sin(q);\n q = Math.cos(q);\n this.transform(q, y, -y, q, 0, 0);\n }, _drawPath:function(q, y) {\n this.H.push(y.draw.bind(y, this.C, q.T, q.Va === x ? \"evenodd\" : \"nonzero\"));\n }, _drawRiveImage:function(q, y, F) {\n var G = q.Fb;\n if (G) {\n var A = this.C, I = a(y);\n this.H.push(function() {\n A.globalCompositeOperation = I;\n A.globalAlpha = F;\n A.drawImage(G, 0, 0);\n A.globalAlpha = 1;\n });\n }\n }, _getMatrix:function(q) {\n const y = this.S, F = y.length - 6;\n for (let G = 0; 6 > G; ++G) {\n q[G] = y[F + G];\n }\n }, _drawImageMesh:function(q, y, F, G, A, I, J, K, X, Q) {\n var da = this.C.canvas.width, R = this.C.canvas.height;\n const Yb = X - J, Zb = Q - K;\n J = Math.max(J, 0);\n K = Math.max(K, 0);\n X = Math.min(X, da);\n Q = Math.min(Q, R);\n const Ga = X - J, Ha = Q - K;\n console.assert(Ga <= Math.min(Yb, da));\n console.assert(Ha <= Math.min(Zb, R));\n if (!(0 >= Ga || 0 >= Ha)) {\n X = Ga < Yb || Ha < Zb;\n da = Q = 1;\n var sa = Math.ceil(Ga * Q), ta = Math.ceil(Ha * da);\n R = ka.hc();\n sa > R && (Q *= R / sa, sa = R);\n ta > R && (da *= R / ta, ta = R);\n w || (w = new m.DynamicRectanizer(R), w.reset(512, 512));\n R = w.addRect(sa, ta);\n 0 > R && (c(), D.add(this), R = w.addRect(sa, ta), console.assert(0 <= R));\n var $b = R & 65535, ac = R >> 16;\n M.push({ha:this.S.slice(this.S.length - 6), image:q, Ya:$b, Za:ac, ic:J, jc:K, Ac:sa, jb:ta, Ba:Q, Ca:da, Ta:new Float32Array(G), Db:new Float32Array(A), indices:new Uint16Array(I), mc:X, wb:q.Ka << 1 | (X ? 1 : 0),});\n T += G.length;\n ca += I.length;\n var za = this.C, qd = a(y);\n this.H.push(function() {\n za.save();\n za.resetTransform();\n za.globalCompositeOperation = qd;\n za.globalAlpha = F;\n const bc = ka.canvas();\n bc && za.drawImage(bc, $b, ac, sa, ta, J, K, Ga, Ha);\n za.restore();\n });\n }\n }, _clipPath:function(q) {\n this.H.push(this.C.clip.bind(this.C, q.T, q.Va === x ? \"evenodd\" : \"nonzero\"));\n }, clear:function() {\n D.add(this);\n this.H.push(this.C.clearRect.bind(this.C, 0, 0, this.Ua.width, this.Ua.height));\n }, flush:function() {\n }, translate:function(q, y) {\n this.transform(1, 0, 0, 1, q, y);\n },});\n m.makeRenderer = function(q) {\n const y = new ra(q), F = y.C;\n return new Proxy(y, {get(G, A) {\n if (\"function\" === typeof G[A]) {\n return function(...I) {\n return G[A].apply(G, I);\n };\n }\n if (\"function\" === typeof F[A]) {\n if (-1 < ja.indexOf(A)) {\n throw Error(\"RiveException: Method call to '\" + A + \"()' is not allowed, as the renderer cannot immediately pass through the return values of any canvas 2d context methods.\");\n }\n return function(...I) {\n y.H.push(F[A].bind(F, ...I));\n };\n }\n return G[A];\n }, set(G, A, I) {\n if (A in F) {\n return y.H.push(() => {\n F[A] = I;\n }), !0;\n }\n },});\n };\n m.decodeImage = function(q, y) {\n (new t({la:y})).decode(q);\n };\n m.renderFactory = {makeRenderPaint:function() {\n return new B();\n }, makeRenderPath:function() {\n return new r();\n }, makeRenderImage:function() {\n let q = ba;\n return new t({xa:() => {\n q.total++;\n }, la:() => {\n q.loaded++;\n if (q.loaded === q.total) {\n const y = q.ready;\n y && (y(), q.ready = null);\n }\n },});\n },};\n let H = m.load, ba = null;\n m.load = function(q, y, F = !0) {\n const G = new m.FallbackFileAssetLoader();\n void 0 !== y && G.addLoader(y);\n F && (y = new m.CDNFileAssetLoader(), G.addLoader(y));\n return new Promise(function(A) {\n let I = null;\n ba = {total:0, loaded:0, ready:function() {\n A(I);\n },};\n I = H(q, G);\n 0 == ba.total && A(I);\n });\n };\n let rd = m.RendererWrapper.prototype.align;\n m.RendererWrapper.prototype.align = function(q, y, F, G, A = 1.0) {\n rd.call(this, q, y, F, G, A);\n };\n d = new fa();\n m.requestAnimationFrame = d.requestAnimationFrame.bind(d);\n m.cancelAnimationFrame = d.cancelAnimationFrame.bind(d);\n m.enableFPSCounter = d.Rb.bind(d);\n m.disableFPSCounter = d.Ob;\n d.ob = c;\n m.resolveAnimationFrame = c;\n m.cleanup = function() {\n w && w.delete();\n };\n};\nvar ma = Object.assign({}, m), na = \"./this.program\", oa = \"object\" == typeof window, pa = \"function\" == typeof importScripts, qa = \"\", ua, va;\nif (oa || pa) {\n pa ? qa = self.location.href : \"undefined\" != typeof document && document.currentScript && (qa = document.currentScript.src), _scriptDir && (qa = _scriptDir), 0 !== qa.indexOf(\"blob:\") ? qa = qa.substr(0, qa.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : qa = \"\", pa && (va = a => {\n var b = new XMLHttpRequest();\n b.open(\"GET\", a, !1);\n b.responseType = \"arraybuffer\";\n b.send(null);\n return new Uint8Array(b.response);\n }), ua = (a, b, c) => {\n var d = new XMLHttpRequest();\n d.open(\"GET\", a, !0);\n d.responseType = \"arraybuffer\";\n d.onload = () => {\n 200 == d.status || 0 == d.status && d.response ? b(d.response) : c();\n };\n d.onerror = c;\n d.send(null);\n };\n}\nvar wa = m.print || console.log.bind(console), xa = m.printErr || console.error.bind(console);\nObject.assign(m, ma);\nma = null;\nm.thisProgram && (na = m.thisProgram);\nvar ya;\nm.wasmBinary && (ya = m.wasmBinary);\nvar noExitRuntime = m.noExitRuntime || !0;\n\"object\" != typeof WebAssembly && Aa(\"no native wasm support detected\");\nvar Ba, z, Ca = !1, C, E, Da, Ea, L, N, Fa, Ia;\nfunction Ja() {\n var a = Ba.buffer;\n m.HEAP8 = C = new Int8Array(a);\n m.HEAP16 = Da = new Int16Array(a);\n m.HEAP32 = L = new Int32Array(a);\n m.HEAPU8 = E = new Uint8Array(a);\n m.HEAPU16 = Ea = new Uint16Array(a);\n m.HEAPU32 = N = new Uint32Array(a);\n m.HEAPF32 = Fa = new Float32Array(a);\n m.HEAPF64 = Ia = new Float64Array(a);\n}\nvar Ka, La = [], Ma = [], Na = [];\nfunction Oa() {\n var a = m.preRun.shift();\n La.unshift(a);\n}\nvar Pa = 0, Qa = null, Ra = null;\nfunction Aa(a) {\n if (m.onAbort) {\n m.onAbort(a);\n }\n a = \"Aborted(\" + a + \")\";\n xa(a);\n Ca = !0;\n a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n ea(a);\n throw a;\n}\nfunction Sa(a) {\n return a.startsWith(\"data:application/octet-stream;base64,\");\n}\nvar Ta;\nTa = \"canvas_advanced.wasm\";\nif (!Sa(Ta)) {\n var Ua = Ta;\n Ta = m.locateFile ? m.locateFile(Ua, qa) : qa + Ua;\n}\nfunction Va(a) {\n if (a == Ta && ya) {\n return new Uint8Array(ya);\n }\n if (va) {\n return va(a);\n }\n throw \"both async and sync fetching of the wasm failed\";\n}\nfunction Wa(a) {\n if (!ya && (oa || pa)) {\n if (\"function\" == typeof fetch && !a.startsWith(\"file://\")) {\n return fetch(a, {credentials:\"same-origin\"}).then(b => {\n if (!b.ok) {\n throw \"failed to load wasm binary file at '\" + a + \"'\";\n }\n return b.arrayBuffer();\n }).catch(() => Va(a));\n }\n if (ua) {\n return new Promise((b, c) => {\n ua(a, d => b(new Uint8Array(d)), c);\n });\n }\n }\n return Promise.resolve().then(() => Va(a));\n}\nfunction Xa(a, b, c) {\n return Wa(a).then(d => WebAssembly.instantiate(d, b)).then(d => d).then(c, d => {\n xa(\"failed to asynchronously prepare wasm: \" + d);\n Aa(d);\n });\n}\nfunction Ya(a, b) {\n var c = Ta;\n return ya || \"function\" != typeof WebAssembly.instantiateStreaming || Sa(c) || c.startsWith(\"file://\") || \"function\" != typeof fetch ? Xa(c, a, b) : fetch(c, {credentials:\"same-origin\"}).then(d => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n xa(\"wasm streaming compile failed: \" + e);\n xa(\"falling back to ArrayBuffer instantiation\");\n return Xa(c, a, b);\n }));\n}\nvar Za, $a, db = {447324:(a, b, c, d, e) => {\n if (\"undefined\" === typeof window || void 0 === (window.AudioContext || window.webkitAudioContext)) {\n return 0;\n }\n if (\"undefined\" === typeof window.h) {\n window.h = {Aa:0};\n window.h.I = {};\n window.h.I.ya = a;\n window.h.I.capture = b;\n window.h.I.La = c;\n window.h.ga = {};\n window.h.ga.stopped = d;\n window.h.ga.xb = e;\n let f = window.h;\n f.D = [];\n f.yc = function(g) {\n for (var n = 0; n < f.D.length; ++n) {\n if (null == f.D[n]) {\n return f.D[n] = g, n;\n }\n }\n f.D.push(g);\n return f.D.length - 1;\n };\n f.Cb = function(g) {\n for (f.D[g] = null; 0 < f.D.length;) {\n if (null == f.D[f.D.length - 1]) {\n f.D.pop();\n } else {\n break;\n }\n }\n };\n f.Sc = function(g) {\n for (var n = 0; n < f.D.length; ++n) {\n if (f.D[n] == g) {\n return f.Cb(n);\n }\n }\n };\n f.ra = function(g) {\n return f.D[g];\n };\n f.Bb = [\"touchend\", \"click\"];\n f.unlock = function() {\n for (var g = 0; g < f.D.length; ++g) {\n var n = f.D[g];\n null != n && null != n.J && n.state === f.ga.xb && n.J.resume().then(() => {\n ab(n.pb);\n }, p => {\n console.error(\"Failed to resume audiocontext\", p);\n });\n }\n f.Bb.map(function(p) {\n document.removeEventListener(p, f.unlock, !0);\n });\n };\n f.Bb.map(function(g) {\n document.addEventListener(g, f.unlock, !0);\n });\n }\n window.h.Aa += 1;\n return 1;\n}, 449502:() => {\n \"undefined\" !== typeof window.h && (--window.h.Aa, 0 === window.h.Aa && delete window.h);\n}, 449666:() => void 0 !== navigator.mediaDevices && void 0 !== navigator.mediaDevices.getUserMedia, 449770:() => {\n try {\n var a = new (window.AudioContext || window.webkitAudioContext)(), b = a.sampleRate;\n a.close();\n return b;\n } catch (c) {\n return 0;\n }\n}, 449941:(a, b, c, d, e, f) => {\n if (\"undefined\" === typeof window.h) {\n return -1;\n }\n var g = {}, n = {};\n a == window.h.I.ya && 0 != c && (n.sampleRate = c);\n g.J = new (window.AudioContext || window.webkitAudioContext)(n);\n g.J.suspend();\n g.state = window.h.ga.stopped;\n c = 0;\n a != window.h.I.ya && (c = b);\n g.Z = g.J.createScriptProcessor(d, c, b);\n g.Z.onaudioprocess = function(p) {\n if (null == g.sa || 0 == g.sa.length) {\n g.sa = new Float32Array(Fa.buffer, e, d * b);\n }\n if (a == window.h.I.capture || a == window.h.I.La) {\n for (var l = 0; l < b; l += 1) {\n for (var u = p.inputBuffer.getChannelData(l), v = g.sa, x = 0; x < d; x += 1) {\n v[x * b + l] = u[x];\n }\n }\n bb(f, d, e);\n }\n if (a == window.h.I.ya || a == window.h.I.La) {\n for (cb(f, d, e), l = 0; l < p.outputBuffer.numberOfChannels; ++l) {\n for (u = p.outputBuffer.getChannelData(l), v = g.sa, x = 0; x < d; x += 1) {\n u[x] = v[x * b + l];\n }\n }\n } else {\n for (l = 0; l < p.outputBuffer.numberOfChannels; ++l) {\n p.outputBuffer.getChannelData(l).fill(0.0);\n }\n }\n };\n a != window.h.I.capture && a != window.h.I.La || navigator.mediaDevices.getUserMedia({audio:!0, video:!1}).then(function(p) {\n g.Da = g.J.createMediaStreamSource(p);\n g.Da.connect(g.Z);\n g.Z.connect(g.J.destination);\n }).catch(function(p) {\n console.log(\"Failed to get user media: \" + p);\n });\n a == window.h.I.ya && g.Z.connect(g.J.destination);\n g.pb = f;\n return window.h.yc(g);\n}, 452818:a => window.h.ra(a).J.sampleRate, 452891:a => {\n a = window.h.ra(a);\n void 0 !== a.Z && (a.Z.onaudioprocess = function() {\n }, a.Z.disconnect(), a.Z = void 0);\n void 0 !== a.Da && (a.Da.disconnect(), a.Da = void 0);\n a.J.close();\n a.J = void 0;\n a.pb = void 0;\n}, 453291:a => {\n window.h.Cb(a);\n}, 453341:a => {\n a = window.h.ra(a);\n a.J.resume();\n a.state = window.h.ga.xb;\n}, 453480:a => {\n a = window.h.ra(a);\n a.J.suspend();\n a.state = window.h.ga.stopped;\n}}, eb = a => {\n for (; 0 < a.length;) {\n a.shift()(m);\n }\n}, fb = (a, b) => {\n for (var c = 0, d = a.length - 1; 0 <= d; d--) {\n var e = a[d];\n \".\" === e ? a.splice(d, 1) : \"..\" === e ? (a.splice(d, 1), c++) : c && (a.splice(d, 1), c--);\n }\n if (b) {\n for (; c; c--) {\n a.unshift(\"..\");\n }\n }\n return a;\n}, gb = a => {\n var b = \"/\" === a.charAt(0), c = \"/\" === a.substr(-1);\n (a = fb(a.split(\"/\").filter(d => !!d), !b).join(\"/\")) || b || (a = \".\");\n a && c && (a += \"/\");\n return (b ? \"/\" : \"\") + a;\n}, hb = a => {\n var b = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);\n a = b[0];\n b = b[1];\n if (!a && !b) {\n return \".\";\n }\n b && (b = b.substr(0, b.length - 1));\n return a + b;\n}, ib = a => {\n if (\"/\" === a) {\n return \"/\";\n }\n a = gb(a);\n a = a.replace(/\\/$/, \"\");\n var b = a.lastIndexOf(\"/\");\n return -1 === b ? a : a.substr(b + 1);\n}, jb = () => {\n if (\"object\" == typeof crypto && \"function\" == typeof crypto.getRandomValues) {\n return a => crypto.getRandomValues(a);\n }\n Aa(\"initRandomDevice\");\n}, kb = a => (kb = jb())(a);\nfunction lb() {\n for (var a = \"\", b = !1, c = arguments.length - 1; -1 <= c && !b; c--) {\n b = 0 <= c ? arguments[c] : \"/\";\n if (\"string\" != typeof b) {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n }\n if (!b) {\n return \"\";\n }\n a = b + \"/\" + a;\n b = \"/\" === b.charAt(0);\n }\n a = fb(a.split(\"/\").filter(d => !!d), !b).join(\"/\");\n return (b ? \"/\" : \"\") + a || \".\";\n}\nvar mb = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, nb = (a, b, c) => {\n var d = b + c;\n for (c = b; a[c] && !(c >= d);) {\n ++c;\n }\n if (16 < c - b && a.buffer && mb) {\n return mb.decode(a.subarray(b, c));\n }\n for (d = \"\"; b < c;) {\n var e = a[b++];\n if (e & 128) {\n var f = a[b++] & 63;\n if (192 == (e & 224)) {\n d += String.fromCharCode((e & 31) << 6 | f);\n } else {\n var g = a[b++] & 63;\n e = 224 == (e & 240) ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;\n 65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n }\n } else {\n d += String.fromCharCode(e);\n }\n }\n return d;\n}, ob = [], pb = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 127 >= d ? b++ : 2047 >= d ? b += 2 : 55296 <= d && 57343 >= d ? (b += 4, ++c) : b += 3;\n }\n return b;\n}, qb = (a, b, c, d) => {\n if (!(0 < d)) {\n return 0;\n }\n var e = c;\n d = c + d - 1;\n for (var f = 0; f < a.length; ++f) {\n var g = a.charCodeAt(f);\n if (55296 <= g && 57343 >= g) {\n var n = a.charCodeAt(++f);\n g = 65536 + ((g & 1023) << 10) | n & 1023;\n }\n if (127 >= g) {\n if (c >= d) {\n break;\n }\n b[c++] = g;\n } else {\n if (2047 >= g) {\n if (c + 1 >= d) {\n break;\n }\n b[c++] = 192 | g >> 6;\n } else {\n if (65535 >= g) {\n if (c + 2 >= d) {\n break;\n }\n b[c++] = 224 | g >> 12;\n } else {\n if (c + 3 >= d) {\n break;\n }\n b[c++] = 240 | g >> 18;\n b[c++] = 128 | g >> 12 & 63;\n }\n b[c++] = 128 | g >> 6 & 63;\n }\n b[c++] = 128 | g & 63;\n }\n }\n b[c] = 0;\n return c - e;\n};\nfunction rb(a, b) {\n var c = Array(pb(a) + 1);\n a = qb(a, c, 0, c.length);\n b && (c.length = a);\n return c;\n}\nvar sb = [];\nfunction tb(a, b) {\n sb[a] = {input:[], F:[], V:b};\n ub(a, vb);\n}\nvar vb = {open:function(a) {\n var b = sb[a.node.za];\n if (!b) {\n throw new O(43);\n }\n a.s = b;\n a.seekable = !1;\n}, close:function(a) {\n a.s.V.qa(a.s);\n}, qa:function(a) {\n a.s.V.qa(a.s);\n}, read:function(a, b, c, d) {\n if (!a.s || !a.s.V.ib) {\n throw new O(60);\n }\n for (var e = 0, f = 0; f < d; f++) {\n try {\n var g = a.s.V.ib(a.s);\n } catch (n) {\n throw new O(29);\n }\n if (void 0 === g && 0 === e) {\n throw new O(6);\n }\n if (null === g || void 0 === g) {\n break;\n }\n e++;\n b[c + f] = g;\n }\n e && (a.node.timestamp = Date.now());\n return e;\n}, write:function(a, b, c, d) {\n if (!a.s || !a.s.V.Oa) {\n throw new O(60);\n }\n try {\n for (var e = 0; e < d; e++) {\n a.s.V.Oa(a.s, b[c + e]);\n }\n } catch (f) {\n throw new O(29);\n }\n d && (a.node.timestamp = Date.now());\n return e;\n},}, wb = {ib:function() {\n a: {\n if (!ob.length) {\n var a = null;\n \"undefined\" != typeof window && \"function\" == typeof window.prompt ? (a = window.prompt(\"Input: \"), null !== a && (a += \"\\n\")) : \"function\" == typeof readline && (a = readline(), null !== a && (a += \"\\n\"));\n if (!a) {\n a = null;\n break a;\n }\n ob = rb(a, !0);\n }\n a = ob.shift();\n }\n return a;\n}, Oa:function(a, b) {\n null === b || 10 === b ? (wa(nb(a.F, 0)), a.F = []) : 0 != b && a.F.push(b);\n}, qa:function(a) {\n a.F && 0 < a.F.length && (wa(nb(a.F, 0)), a.F = []);\n}, bc:function() {\n return {Fc:25856, Hc:5, Ec:191, Gc:35387, Dc:[3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]};\n}, cc:function() {\n return 0;\n}, dc:function() {\n return [24, 80];\n},}, xb = {Oa:function(a, b) {\n null === b || 10 === b ? (xa(nb(a.F, 0)), a.F = []) : 0 != b && a.F.push(b);\n}, qa:function(a) {\n a.F && 0 < a.F.length && (xa(nb(a.F, 0)), a.F = []);\n},};\nfunction yb(a, b) {\n var c = a.j ? a.j.length : 0;\n c >= b || (b = Math.max(b, c * (1048576 > c ? 2.0 : 1.125) >>> 0), 0 != c && (b = Math.max(b, 256)), c = a.j, a.j = new Uint8Array(b), 0 < a.v && a.j.set(c.subarray(0, a.v), 0));\n}\nvar P = {O:null, U() {\n return P.createNode(null, \"/\", 16895, 0);\n}, createNode(a, b, c, d) {\n if (24576 === (c & 61440) || 4096 === (c & 61440)) {\n throw new O(63);\n }\n P.O || (P.O = {dir:{node:{Y:P.l.Y, P:P.l.P, ka:P.l.ka, va:P.l.va, ub:P.l.ub, Ab:P.l.Ab, vb:P.l.vb, sb:P.l.sb, Ea:P.l.Ea}, stream:{ba:P.m.ba}}, file:{node:{Y:P.l.Y, P:P.l.P}, stream:{ba:P.m.ba, read:P.m.read, write:P.m.write, pa:P.m.pa, lb:P.m.lb, nb:P.m.nb}}, link:{node:{Y:P.l.Y, P:P.l.P, ma:P.l.ma}, stream:{}}, $a:{node:{Y:P.l.Y, P:P.l.P}, stream:zb}});\n c = Ab(a, b, c, d);\n 16384 === (c.mode & 61440) ? (c.l = P.O.dir.node, c.m = P.O.dir.stream, c.j = {}) : 32768 === (c.mode & 61440) ? (c.l = P.O.file.node, c.m = P.O.file.stream, c.v = 0, c.j = null) : 40960 === (c.mode & 61440) ? (c.l = P.O.link.node, c.m = P.O.link.stream) : 8192 === (c.mode & 61440) && (c.l = P.O.$a.node, c.m = P.O.$a.stream);\n c.timestamp = Date.now();\n a && (a.j[b] = c, a.timestamp = c.timestamp);\n return c;\n}, Kc(a) {\n return a.j ? a.j.subarray ? a.j.subarray(0, a.v) : new Uint8Array(a.j) : new Uint8Array(0);\n}, l:{Y(a) {\n var b = {};\n b.Jc = 8192 === (a.mode & 61440) ? a.id : 1;\n b.Mc = a.id;\n b.mode = a.mode;\n b.Oc = 1;\n b.uid = 0;\n b.Lc = 0;\n b.za = a.za;\n 16384 === (a.mode & 61440) ? b.size = 4096 : 32768 === (a.mode & 61440) ? b.size = a.v : 40960 === (a.mode & 61440) ? b.size = a.link.length : b.size = 0;\n b.Bc = new Date(a.timestamp);\n b.Nc = new Date(a.timestamp);\n b.Ic = new Date(a.timestamp);\n b.Jb = 4096;\n b.Cc = Math.ceil(b.size / b.Jb);\n return b;\n}, P(a, b) {\n void 0 !== b.mode && (a.mode = b.mode);\n void 0 !== b.timestamp && (a.timestamp = b.timestamp);\n if (void 0 !== b.size && (b = b.size, a.v != b)) {\n if (0 == b) {\n a.j = null, a.v = 0;\n } else {\n var c = a.j;\n a.j = new Uint8Array(b);\n c && a.j.set(c.subarray(0, Math.min(b, a.v)));\n a.v = b;\n }\n }\n}, ka() {\n throw Bb[44];\n}, va(a, b, c, d) {\n return P.createNode(a, b, c, d);\n}, ub(a, b, c) {\n if (16384 === (a.mode & 61440)) {\n try {\n var d = Cb(b, c);\n } catch (f) {\n }\n if (d) {\n for (var e in d.j) {\n throw new O(55);\n }\n }\n }\n delete a.parent.j[a.name];\n a.parent.timestamp = Date.now();\n a.name = c;\n b.j[c] = a;\n b.timestamp = a.parent.timestamp;\n a.parent = b;\n}, Ab(a, b) {\n delete a.j[b];\n a.timestamp = Date.now();\n}, vb(a, b) {\n var c = Cb(a, b), d;\n for (d in c.j) {\n throw new O(55);\n }\n delete a.j[b];\n a.timestamp = Date.now();\n}, sb(a) {\n var b = [\".\", \"..\"], c;\n for (c in a.j) {\n a.j.hasOwnProperty(c) && b.push(c);\n }\n return b;\n}, Ea(a, b, c) {\n a = P.createNode(a, b, 41471, 0);\n a.link = c;\n return a;\n}, ma(a) {\n if (40960 !== (a.mode & 61440)) {\n throw new O(28);\n }\n return a.link;\n},}, m:{read(a, b, c, d, e) {\n var f = a.node.j;\n if (e >= a.node.v) {\n return 0;\n }\n a = Math.min(a.node.v - e, d);\n if (8 < a && f.subarray) {\n b.set(f.subarray(e, e + a), c);\n } else {\n for (d = 0; d < a; d++) {\n b[c + d] = f[e + d];\n }\n }\n return a;\n}, write(a, b, c, d, e, f) {\n b.buffer === C.buffer && (f = !1);\n if (!d) {\n return 0;\n }\n a = a.node;\n a.timestamp = Date.now();\n if (b.subarray && (!a.j || a.j.subarray)) {\n if (f) {\n return a.j = b.subarray(c, c + d), a.v = d;\n }\n if (0 === a.v && 0 === e) {\n return a.j = b.slice(c, c + d), a.v = d;\n }\n if (e + d <= a.v) {\n return a.j.set(b.subarray(c, c + d), e), d;\n }\n }\n yb(a, e + d);\n if (a.j.subarray && b.subarray) {\n a.j.set(b.subarray(c, c + d), e);\n } else {\n for (f = 0; f < d; f++) {\n a.j[e + f] = b[c + f];\n }\n }\n a.v = Math.max(a.v, e + d);\n return d;\n}, ba(a, b, c) {\n 1 === c ? b += a.position : 2 === c && 32768 === (a.node.mode & 61440) && (b += a.node.v);\n if (0 > b) {\n throw new O(28);\n }\n return b;\n}, pa(a, b, c) {\n yb(a.node, b + c);\n a.node.v = Math.max(a.node.v, b + c);\n}, lb(a, b, c, d, e) {\n if (32768 !== (a.node.mode & 61440)) {\n throw new O(43);\n }\n a = a.node.j;\n if (e & 2 || a.buffer !== C.buffer) {\n if (0 < c || c + b < a.length) {\n a.subarray ? a = a.subarray(c, c + b) : a = Array.prototype.slice.call(a, c, c + b);\n }\n c = !0;\n Aa();\n b = void 0;\n if (!b) {\n throw new O(48);\n }\n C.set(a, b);\n } else {\n c = !1, b = a.byteOffset;\n }\n return {o:b, M:c};\n}, nb(a, b, c, d) {\n P.m.write(a, b, 0, d, c, !1);\n return 0;\n},},};\nfunction Db(a, b) {\n var c = 0;\n a && (c |= 365);\n b && (c |= 146);\n return c;\n}\nvar Eb = null, Fb = {}, Gb = [], Hb = 1, Ib = null, Jb = !0, O = null, Bb = {}, Lb = (a, b = {}) => {\n a = lb(a);\n if (!a) {\n return {path:\"\", node:null};\n }\n b = Object.assign({gb:!0, Qa:0}, b);\n if (8 < b.Qa) {\n throw new O(32);\n }\n a = a.split(\"/\").filter(g => !!g);\n for (var c = Eb, d = \"/\", e = 0; e < a.length; e++) {\n var f = e === a.length - 1;\n if (f && b.parent) {\n break;\n }\n c = Cb(c, a[e]);\n d = gb(d + \"/\" + a[e]);\n c.wa && (!f || f && b.gb) && (c = c.wa.root);\n if (!f || b.fb) {\n for (f = 0; 40960 === (c.mode & 61440);) {\n if (c = Kb(d), d = lb(hb(d), c), c = Lb(d, {Qa:b.Qa + 1}).node, 40 < f++) {\n throw new O(32);\n }\n }\n }\n }\n return {path:d, node:c};\n}, Mb = a => {\n for (var b;;) {\n if (a === a.parent) {\n return a = a.U.mb, b ? \"/\" !== a[a.length - 1] ? `${a}/${b}` : a + b : a;\n }\n b = b ? `${a.name}/${b}` : a.name;\n a = a.parent;\n }\n}, Nb = (a, b) => {\n for (var c = 0, d = 0; d < b.length; d++) {\n c = (c << 5) - c + b.charCodeAt(d) | 0;\n }\n return (a + c >>> 0) % Ib.length;\n}, Cb = (a, b) => {\n var c;\n if (c = (c = Ob(a, \"x\")) ? c : a.l.ka ? 0 : 2) {\n throw new O(c, a);\n }\n for (c = Ib[Nb(a.id, b)]; c; c = c.lc) {\n var d = c.name;\n if (c.parent.id === a.id && d === b) {\n return c;\n }\n }\n return a.l.ka(a, b);\n}, Ab = (a, b, c, d) => {\n a = new Pb(a, b, c, d);\n b = Nb(a.parent.id, a.name);\n a.lc = Ib[b];\n return Ib[b] = a;\n}, Qb = a => {\n var b = [\"r\", \"w\", \"rw\"][a & 3];\n a & 512 && (b += \"w\");\n return b;\n}, Ob = (a, b) => {\n if (Jb) {\n return 0;\n }\n if (!b.includes(\"r\") || a.mode & 292) {\n if (b.includes(\"w\") && !(a.mode & 146) || b.includes(\"x\") && !(a.mode & 73)) {\n return 2;\n }\n } else {\n return 2;\n }\n return 0;\n}, Rb = (a, b) => {\n try {\n return Cb(a, b), 20;\n } catch (c) {\n }\n return Ob(a, \"wx\");\n}, Sb = () => {\n for (var a = 0; 4096 >= a; a++) {\n if (!Gb[a]) {\n return a;\n }\n }\n throw new O(33);\n}, Tb = a => {\n a = Gb[a];\n if (!a) {\n throw new O(8);\n }\n return a;\n}, Vb = (a, b = -1) => {\n Ub || (Ub = function() {\n this.h = {};\n }, Ub.prototype = {}, Object.defineProperties(Ub.prototype, {object:{get() {\n return this.node;\n }, set(c) {\n this.node = c;\n }}, flags:{get() {\n return this.h.flags;\n }, set(c) {\n this.h.flags = c;\n },}, position:{get() {\n return this.h.position;\n }, set(c) {\n this.h.position = c;\n },},}));\n a = Object.assign(new Ub(), a);\n -1 == b && (b = Sb());\n a.X = b;\n return Gb[b] = a;\n}, zb = {open:a => {\n a.m = Fb[a.node.za].m;\n a.m.open && a.m.open(a);\n}, ba:() => {\n throw new O(70);\n},}, ub = (a, b) => {\n Fb[a] = {m:b};\n}, Wb = (a, b) => {\n var c = \"/\" === b, d = !b;\n if (c && Eb) {\n throw new O(10);\n }\n if (!c && !d) {\n var e = Lb(b, {gb:!1});\n b = e.path;\n e = e.node;\n if (e.wa) {\n throw new O(10);\n }\n if (16384 !== (e.mode & 61440)) {\n throw new O(54);\n }\n }\n b = {type:a, Qc:{}, mb:b, kc:[]};\n a = a.U(b);\n a.U = b;\n b.root = a;\n c ? Eb = a : e && (e.wa = b, e.U && e.U.kc.push(b));\n}, S = (a, b, c) => {\n var d = Lb(a, {parent:!0}).node;\n a = ib(a);\n if (!a || \".\" === a || \"..\" === a) {\n throw new O(28);\n }\n var e = Rb(d, a);\n if (e) {\n throw new O(e);\n }\n if (!d.l.va) {\n throw new O(63);\n }\n return d.l.va(d, a, b, c);\n}, Xb = (a, b, c) => {\n \"undefined\" == typeof c && (c = b, b = 438);\n S(a, b | 8192, c);\n}, cc = (a, b) => {\n if (!lb(a)) {\n throw new O(44);\n }\n var c = Lb(b, {parent:!0}).node;\n if (!c) {\n throw new O(44);\n }\n b = ib(b);\n var d = Rb(c, b);\n if (d) {\n throw new O(d);\n }\n if (!c.l.Ea) {\n throw new O(63);\n }\n c.l.Ea(c, b, a);\n}, Kb = a => {\n a = Lb(a).node;\n if (!a) {\n throw new O(44);\n }\n if (!a.l.ma) {\n throw new O(28);\n }\n return lb(Mb(a.parent), a.l.ma(a));\n}, ec = (a, b, c) => {\n if (\"\" === a) {\n throw new O(44);\n }\n if (\"string\" == typeof b) {\n var d = {r:0, \"r+\":2, w:577, \"w+\":578, a:1089, \"a+\":1090,}[b];\n if (\"undefined\" == typeof d) {\n throw Error(`Unknown file open mode: ${b}`);\n }\n b = d;\n }\n c = b & 64 ? (\"undefined\" == typeof c ? 438 : c) & 4095 | 32768 : 0;\n if (\"object\" == typeof a) {\n var e = a;\n } else {\n a = gb(a);\n try {\n e = Lb(a, {fb:!(b & 131072)}).node;\n } catch (f) {\n }\n }\n d = !1;\n if (b & 64) {\n if (e) {\n if (b & 128) {\n throw new O(20);\n }\n } else {\n e = S(a, c, 0), d = !0;\n }\n }\n if (!e) {\n throw new O(44);\n }\n 8192 === (e.mode & 61440) && (b &= -513);\n if (b & 65536 && 16384 !== (e.mode & 61440)) {\n throw new O(54);\n }\n if (!d && (c = e ? 40960 === (e.mode & 61440) ? 32 : 16384 === (e.mode & 61440) && (\"r\" !== Qb(b) || b & 512) ? 31 : Ob(e, Qb(b)) : 44)) {\n throw new O(c);\n }\n if (b & 512 && !d) {\n c = e;\n c = \"string\" == typeof c ? Lb(c, {fb:!0}).node : c;\n if (!c.l.P) {\n throw new O(63);\n }\n if (16384 === (c.mode & 61440)) {\n throw new O(31);\n }\n if (32768 !== (c.mode & 61440)) {\n throw new O(28);\n }\n if (d = Ob(c, \"w\")) {\n throw new O(d);\n }\n c.l.P(c, {size:0, timestamp:Date.now()});\n }\n b &= -131713;\n e = Vb({node:e, path:Mb(e), flags:b, seekable:!0, position:0, m:e.m, zc:[], error:!1});\n e.m.open && e.m.open(e);\n !m.logReadFiles || b & 1 || (dc || (dc = {}), a in dc || (dc[a] = 1));\n return e;\n}, fc = (a, b, c) => {\n if (null === a.X) {\n throw new O(8);\n }\n if (!a.seekable || !a.m.ba) {\n throw new O(70);\n }\n if (0 != c && 1 != c && 2 != c) {\n throw new O(28);\n }\n a.position = a.m.ba(a, b, c);\n a.zc = [];\n}, gc = () => {\n O || (O = function(a, b) {\n this.name = \"ErrnoError\";\n this.node = b;\n this.pc = function(c) {\n this.aa = c;\n };\n this.pc(a);\n this.message = \"FS error\";\n }, O.prototype = Error(), O.prototype.constructor = O, [44].forEach(a => {\n Bb[a] = new O(a);\n Bb[a].stack = \"\";\n }));\n}, hc, jc = (a, b, c) => {\n a = gb(\"/dev/\" + a);\n var d = Db(!!b, !!c);\n ic || (ic = 64);\n var e = ic++ << 8 | 0;\n ub(e, {open:f => {\n f.seekable = !1;\n }, close:() => {\n c && c.buffer && c.buffer.length && c(10);\n }, read:(f, g, n, p) => {\n for (var l = 0, u = 0; u < p; u++) {\n try {\n var v = b();\n } catch (x) {\n throw new O(29);\n }\n if (void 0 === v && 0 === l) {\n throw new O(6);\n }\n if (null === v || void 0 === v) {\n break;\n }\n l++;\n g[n + u] = v;\n }\n l && (f.node.timestamp = Date.now());\n return l;\n }, write:(f, g, n, p) => {\n for (var l = 0; l < p; l++) {\n try {\n c(g[n + l]);\n } catch (u) {\n throw new O(29);\n }\n }\n p && (f.node.timestamp = Date.now());\n return l;\n }});\n Xb(a, d, e);\n}, ic, kc = {}, Ub, dc, lc = void 0;\nfunction mc() {\n lc += 4;\n return L[lc - 4 >> 2];\n}\nfunction nc(a) {\n if (void 0 === a) {\n return \"_unknown\";\n }\n a = a.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var b = a.charCodeAt(0);\n return 48 <= b && 57 >= b ? `_${a}` : a;\n}\nfunction oc(a, b) {\n a = nc(a);\n return {[a]:function() {\n return b.apply(this, arguments);\n }}[a];\n}\nfunction pc() {\n this.M = [void 0];\n this.hb = [];\n}\nvar U = new pc(), qc = void 0;\nfunction V(a) {\n throw new qc(a);\n}\nvar rc = a => {\n a || V(\"Cannot use deleted val. handle = \" + a);\n return U.get(a).value;\n}, sc = a => {\n switch(a) {\n case void 0:\n return 1;\n case null:\n return 2;\n case !0:\n return 3;\n case !1:\n return 4;\n default:\n return U.pa({tb:1, value:a});\n }\n};\nfunction tc(a) {\n var b = Error, c = oc(a, function(d) {\n this.name = a;\n this.message = d;\n d = Error(d).stack;\n void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n c.prototype = Object.create(b.prototype);\n c.prototype.constructor = c;\n c.prototype.toString = function() {\n return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n };\n return c;\n}\nvar uc = void 0, vc = void 0;\nfunction W(a) {\n for (var b = \"\"; E[a];) {\n b += vc[E[a++]];\n }\n return b;\n}\nvar wc = [];\nfunction xc() {\n for (; wc.length;) {\n var a = wc.pop();\n a.g.fa = !1;\n a[\"delete\"]();\n }\n}\nvar yc = void 0, zc = {};\nfunction Ac(a, b) {\n for (void 0 === b && V(\"ptr should not be undefined\"); a.A;) {\n b = a.na(b), a = a.A;\n }\n return b;\n}\nvar Bc = {};\nfunction Cc(a) {\n a = Dc(a);\n var b = W(a);\n Ec(a);\n return b;\n}\nfunction Fc(a, b) {\n var c = Bc[a];\n void 0 === c && V(b + \" has unknown type \" + Cc(a));\n return c;\n}\nfunction Gc() {\n}\nvar Hc = !1;\nfunction Ic(a) {\n --a.count.value;\n 0 === a.count.value && (a.G ? a.L.W(a.G) : a.u.i.W(a.o));\n}\nfunction Jc(a, b, c) {\n if (b === c) {\n return a;\n }\n if (void 0 === c.A) {\n return null;\n }\n a = Jc(a, b, c.A);\n return null === a ? null : c.Pb(a);\n}\nvar Kc = {};\nfunction Lc(a, b) {\n b = Ac(a, b);\n return zc[b];\n}\nvar Mc = void 0;\nfunction Nc(a) {\n throw new Mc(a);\n}\nfunction Oc(a, b) {\n b.u && b.o || Nc(\"makeClassHandle requires ptr and ptrType\");\n !!b.L !== !!b.G && Nc(\"Both smartPtrType and smartPtr must be specified\");\n b.count = {value:1};\n return Pc(Object.create(a, {g:{value:b,},}));\n}\nfunction Pc(a) {\n if (\"undefined\" === typeof FinalizationRegistry) {\n return Pc = b => b, a;\n }\n Hc = new FinalizationRegistry(b => {\n Ic(b.g);\n });\n Pc = b => {\n var c = b.g;\n c.G && Hc.register(b, {g:c}, b);\n return b;\n };\n Gc = b => {\n Hc.unregister(b);\n };\n return Pc(a);\n}\nvar Qc = {};\nfunction Rc(a) {\n for (; a.length;) {\n var b = a.pop();\n a.pop()(b);\n }\n}\nfunction Sc(a) {\n return this.fromWireType(L[a >> 2]);\n}\nvar Tc = {}, Uc = {};\nfunction Y(a, b, c) {\n function d(n) {\n n = c(n);\n n.length !== a.length && Nc(\"Mismatched type converter count\");\n for (var p = 0; p < a.length; ++p) {\n Vc(a[p], n[p]);\n }\n }\n a.forEach(function(n) {\n Uc[n] = b;\n });\n var e = Array(b.length), f = [], g = 0;\n b.forEach((n, p) => {\n Bc.hasOwnProperty(n) ? e[p] = Bc[n] : (f.push(n), Tc.hasOwnProperty(n) || (Tc[n] = []), Tc[n].push(() => {\n e[p] = Bc[n];\n ++g;\n g === f.length && d(e);\n }));\n });\n 0 === f.length && d(e);\n}\nfunction Wc(a) {\n switch(a) {\n case 1:\n return 0;\n case 2:\n return 1;\n case 4:\n return 2;\n case 8:\n return 3;\n default:\n throw new TypeError(`Unknown type size: ${a}`);\n }\n}\nfunction Xc(a, b, c = {}) {\n var d = b.name;\n a || V(`type \"${d}\" must have a positive integer typeid pointer`);\n if (Bc.hasOwnProperty(a)) {\n if (c.$b) {\n return;\n }\n V(`Cannot register type '${d}' twice`);\n }\n Bc[a] = b;\n delete Uc[a];\n Tc.hasOwnProperty(a) && (b = Tc[a], delete Tc[a], b.forEach(e => e()));\n}\nfunction Vc(a, b, c = {}) {\n if (!(\"argPackAdvance\" in b)) {\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n }\n Xc(a, b, c);\n}\nfunction Yc(a) {\n V(a.g.u.i.name + \" instance already deleted\");\n}\nfunction Zc() {\n}\nfunction $c(a, b, c) {\n if (void 0 === a[b].B) {\n var d = a[b];\n a[b] = function() {\n a[b].B.hasOwnProperty(arguments.length) || V(`Function '${c}' called with an invalid number of arguments (${arguments.length}) - expects one of (${a[b].B})!`);\n return a[b].B[arguments.length].apply(this, arguments);\n };\n a[b].B = [];\n a[b].B[d.ea] = d;\n }\n}\nfunction ad(a, b, c) {\n m.hasOwnProperty(a) ? ((void 0 === c || void 0 !== m[a].B && void 0 !== m[a].B[c]) && V(`Cannot register public name '${a}' twice`), $c(m, a, a), m.hasOwnProperty(c) && V(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`), m[a].B[c] = b) : (m[a] = b, void 0 !== c && (m[a].Pc = c));\n}\nfunction bd(a, b, c, d, e, f, g, n) {\n this.name = a;\n this.constructor = b;\n this.N = c;\n this.W = d;\n this.A = e;\n this.Ub = f;\n this.na = g;\n this.Pb = n;\n this.qb = [];\n}\nfunction cd(a, b, c) {\n for (; b !== c;) {\n b.na || V(`Expected null or instance of ${c.name}, got an instance of ${b.name}`), a = b.na(a), b = b.A;\n }\n return a;\n}\nfunction dd(a, b) {\n if (null === b) {\n return this.Na && V(`null is not a valid ${this.name}`), 0;\n }\n b.g || V(`Cannot pass \"${ed(b)}\" as a ${this.name}`);\n b.g.o || V(`Cannot pass deleted object as a pointer of type ${this.name}`);\n return cd(b.g.o, b.g.u.i, this.i);\n}\nfunction fd(a, b) {\n if (null === b) {\n this.Na && V(`null is not a valid ${this.name}`);\n if (this.ua) {\n var c = this.Pa();\n null !== a && a.push(this.W, c);\n return c;\n }\n return 0;\n }\n b.g || V(`Cannot pass \"${ed(b)}\" as a ${this.name}`);\n b.g.o || V(`Cannot pass deleted object as a pointer of type ${this.name}`);\n !this.ta && b.g.u.ta && V(`Cannot convert argument of type ${b.g.L ? b.g.L.name : b.g.u.name} to parameter type ${this.name}`);\n c = cd(b.g.o, b.g.u.i, this.i);\n if (this.ua) {\n switch(void 0 === b.g.G && V(\"Passing raw pointer to smart pointer is illegal\"), this.tc) {\n case 0:\n b.g.L === this ? c = b.g.G : V(`Cannot convert argument of type ${b.g.L ? b.g.L.name : b.g.u.name} to parameter type ${this.name}`);\n break;\n case 1:\n c = b.g.G;\n break;\n case 2:\n if (b.g.L === this) {\n c = b.g.G;\n } else {\n var d = b.clone();\n c = this.oc(c, sc(function() {\n d[\"delete\"]();\n }));\n null !== a && a.push(this.W, c);\n }\n break;\n default:\n V(\"Unsupporting sharing policy\");\n }\n }\n return c;\n}\nfunction gd(a, b) {\n if (null === b) {\n return this.Na && V(`null is not a valid ${this.name}`), 0;\n }\n b.g || V(`Cannot pass \"${ed(b)}\" as a ${this.name}`);\n b.g.o || V(`Cannot pass deleted object as a pointer of type ${this.name}`);\n b.g.u.ta && V(`Cannot convert argument of type ${b.g.u.name} to parameter type ${this.name}`);\n return cd(b.g.o, b.g.u.i, this.i);\n}\nfunction hd(a, b, c, d) {\n this.name = a;\n this.i = b;\n this.Na = c;\n this.ta = d;\n this.ua = !1;\n this.W = this.oc = this.Pa = this.rb = this.tc = this.nc = void 0;\n void 0 !== b.A ? this.toWireType = fd : (this.toWireType = d ? dd : gd, this.K = null);\n}\nfunction jd(a, b, c) {\n m.hasOwnProperty(a) || Nc(\"Replacing nonexistant public symbol\");\n void 0 !== m[a].B && void 0 !== c ? m[a].B[c] = b : (m[a] = b, m[a].ea = c);\n}\nvar kd = [], ld = a => {\n var b = kd[a];\n b || (a >= kd.length && (kd.length = a + 1), kd[a] = b = Ka.get(a));\n return b;\n}, md = (a, b) => {\n var c = [];\n return function() {\n c.length = 0;\n Object.assign(c, arguments);\n if (a.includes(\"j\")) {\n var d = m[\"dynCall_\" + a];\n d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);\n } else {\n d = ld(b).apply(null, c);\n }\n return d;\n };\n};\nfunction Z(a, b) {\n a = W(a);\n var c = a.includes(\"j\") ? md(a, b) : ld(b);\n \"function\" != typeof c && V(`unknown function pointer with signature ${a}: ${b}`);\n return c;\n}\nvar nd = void 0;\nfunction od(a, b) {\n function c(f) {\n e[f] || Bc[f] || (Uc[f] ? Uc[f].forEach(c) : (d.push(f), e[f] = !0));\n }\n var d = [], e = {};\n b.forEach(c);\n throw new nd(`${a}: ` + d.map(Cc).join([\", \"]));\n}\nfunction pd(a, b, c, d, e) {\n var f = b.length;\n 2 > f && V(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n var g = null !== b[1] && null !== c, n = !1;\n for (c = 1; c < b.length; ++c) {\n if (null !== b[c] && void 0 === b[c].K) {\n n = !0;\n break;\n }\n }\n var p = \"void\" !== b[0].name, l = f - 2, u = Array(l), v = [], x = [];\n return function() {\n arguments.length !== l && V(`function ${a} called with ${arguments.length} arguments, expected ${l} args!`);\n x.length = 0;\n v.length = g ? 2 : 1;\n v[0] = e;\n if (g) {\n var k = b[1].toWireType(x, this);\n v[1] = k;\n }\n for (var t = 0; t < l; ++t) {\n u[t] = b[t + 2].toWireType(x, arguments[t]), v.push(u[t]);\n }\n t = d.apply(null, v);\n if (n) {\n Rc(x);\n } else {\n for (var r = g ? 1 : 2; r < b.length; r++) {\n var B = 1 === r ? k : u[r - 2];\n null !== b[r].K && b[r].K(B);\n }\n }\n k = p ? b[0].fromWireType(t) : void 0;\n return k;\n };\n}\nfunction sd(a, b) {\n for (var c = [], d = 0; d < a; d++) {\n c.push(N[b + 4 * d >> 2]);\n }\n return c;\n}\nfunction td(a, b, c) {\n a instanceof Object || V(`${c} with invalid \"this\": ${a}`);\n a instanceof b.i.constructor || V(`${c} incompatible with \"this\" of type ${a.constructor.name}`);\n a.g.o || V(`cannot call emscripten binding method ${c} on deleted object`);\n return cd(a.g.o, a.g.u.i, b.i);\n}\nfunction ud(a) {\n a >= U.h && 0 === --U.get(a).tb && U.Zb(a);\n}\nfunction vd(a, b, c) {\n switch(b) {\n case 0:\n return function(d) {\n return this.fromWireType((c ? C : E)[d]);\n };\n case 1:\n return function(d) {\n return this.fromWireType((c ? Da : Ea)[d >> 1]);\n };\n case 2:\n return function(d) {\n return this.fromWireType((c ? L : N)[d >> 2]);\n };\n default:\n throw new TypeError(\"Unknown integer type: \" + a);\n }\n}\nfunction ed(a) {\n if (null === a) {\n return \"null\";\n }\n var b = typeof a;\n return \"object\" === b || \"array\" === b || \"function\" === b ? a.toString() : \"\" + a;\n}\nfunction wd(a, b) {\n switch(b) {\n case 2:\n return function(c) {\n return this.fromWireType(Fa[c >> 2]);\n };\n case 3:\n return function(c) {\n return this.fromWireType(Ia[c >> 3]);\n };\n default:\n throw new TypeError(\"Unknown float type: \" + a);\n }\n}\nfunction xd(a, b, c) {\n switch(b) {\n case 0:\n return c ? function(d) {\n return C[d];\n } : function(d) {\n return E[d];\n };\n case 1:\n return c ? function(d) {\n return Da[d >> 1];\n } : function(d) {\n return Ea[d >> 1];\n };\n case 2:\n return c ? function(d) {\n return L[d >> 2];\n } : function(d) {\n return N[d >> 2];\n };\n default:\n throw new TypeError(\"Unknown integer type: \" + a);\n }\n}\nvar yd = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, zd = (a, b) => {\n var c = a >> 1;\n for (var d = c + b / 2; !(c >= d) && Ea[c];) {\n ++c;\n }\n c <<= 1;\n if (32 < c - a && yd) {\n return yd.decode(E.subarray(a, c));\n }\n c = \"\";\n for (d = 0; !(d >= b / 2); ++d) {\n var e = Da[a + 2 * d >> 1];\n if (0 == e) {\n break;\n }\n c += String.fromCharCode(e);\n }\n return c;\n}, Ad = (a, b, c) => {\n void 0 === c && (c = 2147483647);\n if (2 > c) {\n return 0;\n }\n c -= 2;\n var d = b;\n c = c < 2 * a.length ? c / 2 : a.length;\n for (var e = 0; e < c; ++e) {\n Da[b >> 1] = a.charCodeAt(e), b += 2;\n }\n Da[b >> 1] = 0;\n return b - d;\n}, Bd = a => 2 * a.length, Cd = (a, b) => {\n for (var c = 0, d = \"\"; !(c >= b / 4);) {\n var e = L[a + 4 * c >> 2];\n if (0 == e) {\n break;\n }\n ++c;\n 65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n }\n return d;\n}, Dd = (a, b, c) => {\n void 0 === c && (c = 2147483647);\n if (4 > c) {\n return 0;\n }\n var d = b;\n c = d + c - 4;\n for (var e = 0; e < a.length; ++e) {\n var f = a.charCodeAt(e);\n if (55296 <= f && 57343 >= f) {\n var g = a.charCodeAt(++e);\n f = 65536 + ((f & 1023) << 10) | g & 1023;\n }\n L[b >> 2] = f;\n b += 4;\n if (b + 4 > c) {\n break;\n }\n }\n L[b >> 2] = 0;\n return b - d;\n}, Ed = a => {\n for (var b = 0, c = 0; c < a.length; ++c) {\n var d = a.charCodeAt(c);\n 55296 <= d && 57343 >= d && ++c;\n b += 4;\n }\n return b;\n}, Fd = {};\nfunction Gd(a) {\n var b = Fd[a];\n return void 0 === b ? W(a) : b;\n}\nvar Hd = [];\nfunction Id(a) {\n var b = Hd.length;\n Hd.push(a);\n return b;\n}\nfunction Jd(a, b) {\n for (var c = Array(a), d = 0; d < a; ++d) {\n c[d] = Fc(N[b + 4 * d >> 2], \"parameter \" + d);\n }\n return c;\n}\nvar Kd = [], Ld = [], Md = {}, Od = () => {\n if (!Nd) {\n var a = {USER:\"web_user\", LOGNAME:\"web_user\", PATH:\"/\", PWD:\"/\", HOME:\"/home/web_user\", LANG:(\"object\" == typeof navigator && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _:na || \"./this.program\"}, b;\n for (b in Md) {\n void 0 === Md[b] ? delete a[b] : a[b] = Md[b];\n }\n var c = [];\n for (b in a) {\n c.push(`${b}=${a[b]}`);\n }\n Nd = c;\n }\n return Nd;\n}, Nd, Pd = a => 0 === a % 4 && (0 !== a % 100 || 0 === a % 400), Qd = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Rd = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Sd = (a, b, c, d) => {\n function e(k, t, r) {\n for (k = \"number\" == typeof k ? k.toString() : k || \"\"; k.length < t;) {\n k = r[0] + k;\n }\n return k;\n }\n function f(k, t) {\n return e(k, t, \"0\");\n }\n function g(k, t) {\n function r(D) {\n return 0 > D ? -1 : 0 < D ? 1 : 0;\n }\n var B;\n 0 === (B = r(k.getFullYear() - t.getFullYear())) && 0 === (B = r(k.getMonth() - t.getMonth())) && (B = r(k.getDate() - t.getDate()));\n return B;\n }\n function n(k) {\n switch(k.getDay()) {\n case 0:\n return new Date(k.getFullYear() - 1, 11, 29);\n case 1:\n return k;\n case 2:\n return new Date(k.getFullYear(), 0, 3);\n case 3:\n return new Date(k.getFullYear(), 0, 2);\n case 4:\n return new Date(k.getFullYear(), 0, 1);\n case 5:\n return new Date(k.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(k.getFullYear() - 1, 11, 30);\n }\n }\n function p(k) {\n var t = k.ca;\n for (k = new Date((new Date(k.da + 1900, 0, 1)).getTime()); 0 < t;) {\n var r = k.getMonth(), B = (Pd(k.getFullYear()) ? Qd : Rd)[r];\n if (t > B - k.getDate()) {\n t -= B - k.getDate() + 1, k.setDate(1), 11 > r ? k.setMonth(r + 1) : (k.setMonth(0), k.setFullYear(k.getFullYear() + 1));\n } else {\n k.setDate(k.getDate() + t);\n break;\n }\n }\n r = new Date(k.getFullYear() + 1, 0, 4);\n t = n(new Date(k.getFullYear(), 0, 4));\n r = n(r);\n return 0 >= g(t, k) ? 0 >= g(r, k) ? k.getFullYear() + 1 : k.getFullYear() : k.getFullYear() - 1;\n }\n var l = L[d + 40 >> 2];\n d = {wc:L[d >> 2], vc:L[d + 4 >> 2], Fa:L[d + 8 >> 2], Sa:L[d + 12 >> 2], Ga:L[d + 16 >> 2], da:L[d + 20 >> 2], R:L[d + 24 >> 2], ca:L[d + 28 >> 2], Rc:L[d + 32 >> 2], uc:L[d + 36 >> 2], xc:l ? l ? nb(E, l) : \"\" : \"\"};\n c = c ? nb(E, c) : \"\";\n l = {\"%c\":\"%a %b %d %H:%M:%S %Y\", \"%D\":\"%m/%d/%y\", \"%F\":\"%Y-%m-%d\", \"%h\":\"%b\", \"%r\":\"%I:%M:%S %p\", \"%R\":\"%H:%M\", \"%T\":\"%H:%M:%S\", \"%x\":\"%m/%d/%y\", \"%X\":\"%H:%M:%S\", \"%Ec\":\"%c\", \"%EC\":\"%C\", \"%Ex\":\"%m/%d/%y\", \"%EX\":\"%H:%M:%S\", \"%Ey\":\"%y\", \"%EY\":\"%Y\", \"%Od\":\"%d\", \"%Oe\":\"%e\", \"%OH\":\"%H\", \"%OI\":\"%I\", \"%Om\":\"%m\", \"%OM\":\"%M\", \"%OS\":\"%S\", \"%Ou\":\"%u\", \"%OU\":\"%U\", \"%OV\":\"%V\", \"%Ow\":\"%w\", \"%OW\":\"%W\", \"%Oy\":\"%y\",};\n for (var u in l) {\n c = c.replace(new RegExp(u, \"g\"), l[u]);\n }\n var v = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"), x = \"January February March April May June July August September October November December\".split(\" \");\n l = {\"%a\":k => v[k.R].substring(0, 3), \"%A\":k => v[k.R], \"%b\":k => x[k.Ga].substring(0, 3), \"%B\":k => x[k.Ga], \"%C\":k => f((k.da + 1900) / 100 | 0, 2), \"%d\":k => f(k.Sa, 2), \"%e\":k => e(k.Sa, 2, \" \"), \"%g\":k => p(k).toString().substring(2), \"%G\":k => p(k), \"%H\":k => f(k.Fa, 2), \"%I\":k => {\n k = k.Fa;\n 0 == k ? k = 12 : 12 < k && (k -= 12);\n return f(k, 2);\n }, \"%j\":k => {\n for (var t = 0, r = 0; r <= k.Ga - 1; t += (Pd(k.da + 1900) ? Qd : Rd)[r++]) {\n }\n return f(k.Sa + t, 3);\n }, \"%m\":k => f(k.Ga + 1, 2), \"%M\":k => f(k.vc, 2), \"%n\":() => \"\\n\", \"%p\":k => 0 <= k.Fa && 12 > k.Fa ? \"AM\" : \"PM\", \"%S\":k => f(k.wc, 2), \"%t\":() => \"\\t\", \"%u\":k => k.R || 7, \"%U\":k => f(Math.floor((k.ca + 7 - k.R) / 7), 2), \"%V\":k => {\n var t = Math.floor((k.ca + 7 - (k.R + 6) % 7) / 7);\n 2 >= (k.R + 371 - k.ca - 2) % 7 && t++;\n if (t) {\n 53 == t && (r = (k.R + 371 - k.ca) % 7, 4 == r || 3 == r && Pd(k.da) || (t = 1));\n } else {\n t = 52;\n var r = (k.R + 7 - k.ca - 1) % 7;\n (4 == r || 5 == r && Pd(k.da % 400 - 1)) && t++;\n }\n return f(t, 2);\n }, \"%w\":k => k.R, \"%W\":k => f(Math.floor((k.ca + 7 - (k.R + 6) % 7) / 7), 2), \"%y\":k => (k.da + 1900).toString().substring(2), \"%Y\":k => k.da + 1900, \"%z\":k => {\n k = k.uc;\n var t = 0 <= k;\n k = Math.abs(k) / 60;\n return (t ? \"+\" : \"-\") + String(\"0000\" + (k / 60 * 100 + k % 60)).slice(-4);\n }, \"%Z\":k => k.xc, \"%%\":() => \"%\"};\n c = c.replace(/%%/g, \"\\x00\\x00\");\n for (u in l) {\n c.includes(u) && (c = c.replace(new RegExp(u, \"g\"), l[u](d)));\n }\n c = c.replace(/\\0\\0/g, \"%\");\n u = rb(c, !1);\n if (u.length > b) {\n return 0;\n }\n C.set(u, a);\n return u.length - 1;\n};\nfunction Pb(a, b, c, d) {\n a || (a = this);\n this.parent = a;\n this.U = a.U;\n this.wa = null;\n this.id = Hb++;\n this.name = b;\n this.mode = c;\n this.l = {};\n this.m = {};\n this.za = d;\n}\nObject.defineProperties(Pb.prototype, {read:{get:function() {\n return 365 === (this.mode & 365);\n}, set:function(a) {\n a ? this.mode |= 365 : this.mode &= -366;\n}}, write:{get:function() {\n return 146 === (this.mode & 146);\n}, set:function(a) {\n a ? this.mode |= 146 : this.mode &= -147;\n}}});\ngc();\nIb = Array(4096);\nWb(P, \"/\");\nS(\"/tmp\", 16895, 0);\nS(\"/home\", 16895, 0);\nS(\"/home/web_user\", 16895, 0);\n(() => {\n S(\"/dev\", 16895, 0);\n ub(259, {read:() => 0, write:(d, e, f, g) => g,});\n Xb(\"/dev/null\", 259);\n tb(1280, wb);\n tb(1536, xb);\n Xb(\"/dev/tty\", 1280);\n Xb(\"/dev/tty1\", 1536);\n var a = new Uint8Array(1024), b = 0, c = () => {\n 0 === b && (b = kb(a).byteLength);\n return a[--b];\n };\n jc(\"random\", c);\n jc(\"urandom\", c);\n S(\"/dev/shm\", 16895, 0);\n S(\"/dev/shm/tmp\", 16895, 0);\n})();\n(() => {\n S(\"/proc\", 16895, 0);\n var a = S(\"/proc/self\", 16895, 0);\n S(\"/proc/self/fd\", 16895, 0);\n Wb({U:() => {\n var b = Ab(a, \"fd\", 16895, 73);\n b.l = {ka:(c, d) => {\n var e = Tb(+d);\n c = {parent:null, U:{mb:\"fake\"}, l:{ma:() => e.path},};\n return c.parent = c;\n }};\n return b;\n }}, \"/proc/self/fd\");\n})();\nObject.assign(pc.prototype, {get(a) {\n return this.M[a];\n}, has(a) {\n return void 0 !== this.M[a];\n}, pa(a) {\n var b = this.hb.pop() || this.M.length;\n this.M[b] = a;\n return b;\n}, Zb(a) {\n this.M[a] = void 0;\n this.hb.push(a);\n}});\nqc = m.BindingError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"BindingError\";\n }\n};\nU.M.push({value:void 0}, {value:null}, {value:!0}, {value:!1},);\nU.h = U.M.length;\nm.count_emval_handles = function() {\n for (var a = 0, b = U.h; b < U.M.length; ++b) {\n void 0 !== U.M[b] && ++a;\n }\n return a;\n};\nuc = m.PureVirtualError = tc(\"PureVirtualError\");\nfor (var Td = Array(256), Ud = 0; 256 > Ud; ++Ud) {\n Td[Ud] = String.fromCharCode(Ud);\n}\nvc = Td;\nm.getInheritedInstanceCount = function() {\n return Object.keys(zc).length;\n};\nm.getLiveInheritedInstances = function() {\n var a = [], b;\n for (b in zc) {\n zc.hasOwnProperty(b) && a.push(zc[b]);\n }\n return a;\n};\nm.flushPendingDeletes = xc;\nm.setDelayFunction = function(a) {\n yc = a;\n wc.length && yc && yc(xc);\n};\nMc = m.InternalError = class extends Error {\n constructor(a) {\n super(a);\n this.name = \"InternalError\";\n }\n};\nZc.prototype.isAliasOf = function(a) {\n if (!(this instanceof Zc && a instanceof Zc)) {\n return !1;\n }\n var b = this.g.u.i, c = this.g.o, d = a.g.u.i;\n for (a = a.g.o; b.A;) {\n c = b.na(c), b = b.A;\n }\n for (; d.A;) {\n a = d.na(a), d = d.A;\n }\n return b === d && c === a;\n};\nZc.prototype.clone = function() {\n this.g.o || Yc(this);\n if (this.g.ia) {\n return this.g.count.value += 1, this;\n }\n var a = Pc, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.g;\n a = a(c.call(b, d, {g:{value:{count:e.count, fa:e.fa, ia:e.ia, o:e.o, u:e.u, G:e.G, L:e.L,},}}));\n a.g.count.value += 1;\n a.g.fa = !1;\n return a;\n};\nZc.prototype[\"delete\"] = function() {\n this.g.o || Yc(this);\n this.g.fa && !this.g.ia && V(\"Object already scheduled for deletion\");\n Gc(this);\n Ic(this.g);\n this.g.ia || (this.g.G = void 0, this.g.o = void 0);\n};\nZc.prototype.isDeleted = function() {\n return !this.g.o;\n};\nZc.prototype.deleteLater = function() {\n this.g.o || Yc(this);\n this.g.fa && !this.g.ia && V(\"Object already scheduled for deletion\");\n wc.push(this);\n 1 === wc.length && yc && yc(xc);\n this.g.fa = !0;\n return this;\n};\nhd.prototype.Vb = function(a) {\n this.rb && (a = this.rb(a));\n return a;\n};\nhd.prototype.ab = function(a) {\n this.W && this.W(a);\n};\nhd.prototype.argPackAdvance = 8;\nhd.prototype.readValueFromPointer = Sc;\nhd.prototype.deleteObject = function(a) {\n if (null !== a) {\n a[\"delete\"]();\n }\n};\nhd.prototype.fromWireType = function(a) {\n function b() {\n return this.ua ? Oc(this.i.N, {u:this.nc, o:c, L:this, G:a,}) : Oc(this.i.N, {u:this, o:a,});\n }\n var c = this.Vb(a);\n if (!c) {\n return this.ab(a), null;\n }\n var d = Lc(this.i, c);\n if (void 0 !== d) {\n if (0 === d.g.count.value) {\n return d.g.o = c, d.g.G = a, d.clone();\n }\n d = d.clone();\n this.ab(a);\n return d;\n }\n d = this.i.Ub(c);\n d = Kc[d];\n if (!d) {\n return b.call(this);\n }\n d = this.ta ? d.Kb : d.pointerType;\n var e = Jc(c, this.i, d.i);\n return null === e ? b.call(this) : this.ua ? Oc(d.i.N, {u:d, o:e, L:this, G:a,}) : Oc(d.i.N, {u:d, o:e,});\n};\nnd = m.UnboundTypeError = tc(\"UnboundTypeError\");\nvar Xd = {__syscall_fcntl64:function(a, b, c) {\n lc = c;\n try {\n var d = Tb(a);\n switch(b) {\n case 0:\n var e = mc();\n return 0 > e ? -28 : Vb(d, e).X;\n case 1:\n case 2:\n return 0;\n case 3:\n return d.flags;\n case 4:\n return e = mc(), d.flags |= e, 0;\n case 5:\n return e = mc(), Da[e + 0 >> 1] = 2, 0;\n case 6:\n case 7:\n return 0;\n case 16:\n case 8:\n return -28;\n case 9:\n return L[Vd() >> 2] = 28, -1;\n default:\n return -28;\n }\n } catch (f) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== f.name) {\n throw f;\n }\n return -f.aa;\n }\n}, __syscall_ioctl:function(a, b, c) {\n lc = c;\n try {\n var d = Tb(a);\n switch(b) {\n case 21509:\n return d.s ? 0 : -59;\n case 21505:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.bc) {\n b = [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];\n var e = mc();\n L[e >> 2] = 25856;\n L[e + 4 >> 2] = 5;\n L[e + 8 >> 2] = 191;\n L[e + 12 >> 2] = 35387;\n for (var f = 0; 32 > f; f++) {\n C[e + f + 17 >> 0] = b[f] || 0;\n }\n }\n return 0;\n case 21510:\n case 21511:\n case 21512:\n return d.s ? 0 : -59;\n case 21506:\n case 21507:\n case 21508:\n if (!d.s) {\n return -59;\n }\n if (d.s.V.cc) {\n for (e = mc(), b = [], f = 0; 32 > f; f++) {\n b.push(C[e + f + 17 >> 0]);\n }\n }\n return 0;\n case 21519:\n if (!d.s) {\n return -59;\n }\n e = mc();\n return L[e >> 2] = 0;\n case 21520:\n return d.s ? -28 : -59;\n case 21531:\n e = mc();\n if (!d.m.ac) {\n throw new O(59);\n }\n return d.m.ac(d, b, e);\n case 21523:\n if (!d.s) {\n return -59;\n }\n d.s.V.dc && (f = [24, 80], e = mc(), Da[e >> 1] = f[0], Da[e + 2 >> 1] = f[1]);\n return 0;\n case 21524:\n return d.s ? 0 : -59;\n case 21515:\n return d.s ? 0 : -59;\n default:\n return -28;\n }\n } catch (g) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return -g.aa;\n }\n}, __syscall_openat:function(a, b, c, d) {\n lc = d;\n try {\n b = b ? nb(E, b) : \"\";\n var e = b;\n if (\"/\" === e.charAt(0)) {\n b = e;\n } else {\n var f = -100 === a ? \"/\" : Tb(a).path;\n if (0 == e.length) {\n throw new O(44);\n }\n b = gb(f + \"/\" + e);\n }\n var g = d ? mc() : 0;\n return ec(b, c, g).X;\n } catch (n) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== n.name) {\n throw n;\n }\n return -n.aa;\n }\n}, _embind_create_inheriting_constructor:function(a, b, c) {\n a = W(a);\n b = Fc(b, \"wrapper\");\n c = rc(c);\n var d = [].slice, e = b.i, f = e.N, g = e.A.N, n = e.A.constructor;\n a = oc(a, function() {\n e.A.qb.forEach(function(l) {\n if (this[l] === g[l]) {\n throw new uc(`Pure virtual function ${l} must be implemented in JavaScript`);\n }\n }.bind(this));\n Object.defineProperty(this, \"__parent\", {value:f});\n this.__construct.apply(this, d.call(arguments));\n });\n f.__construct = function() {\n this === f && V(\"Pass correct 'this' to __construct\");\n var l = n.implement.apply(void 0, [this].concat(d.call(arguments)));\n Gc(l);\n var u = l.g;\n l.notifyOnDestruction();\n u.ia = !0;\n Object.defineProperties(this, {g:{value:u}});\n Pc(this);\n l = u.o;\n l = Ac(e, l);\n zc.hasOwnProperty(l) ? V(`Tried to register registered instance: ${l}`) : zc[l] = this;\n };\n f.__destruct = function() {\n this === f && V(\"Pass correct 'this' to __destruct\");\n Gc(this);\n var l = this.g.o;\n l = Ac(e, l);\n zc.hasOwnProperty(l) ? delete zc[l] : V(`Tried to unregister unregistered instance: ${l}`);\n };\n a.prototype = Object.create(f);\n for (var p in c) {\n a.prototype[p] = c[p];\n }\n return sc(a);\n}, _embind_finalize_value_object:function(a) {\n var b = Qc[a];\n delete Qc[a];\n var c = b.Pa, d = b.W, e = b.eb, f = e.map(g => g.Yb).concat(e.map(g => g.rc));\n Y([a], f, g => {\n var n = {};\n e.forEach((p, l) => {\n var u = g[l], v = p.Wb, x = p.Xb, k = g[l + e.length], t = p.qc, r = p.sc;\n n[p.Sb] = {read:B => u.fromWireType(v(x, B)), write:(B, D) => {\n var w = [];\n t(r, B, k.toWireType(w, D));\n Rc(w);\n }};\n });\n return [{name:b.name, fromWireType:function(p) {\n var l = {}, u;\n for (u in n) {\n l[u] = n[u].read(p);\n }\n d(p);\n return l;\n }, toWireType:function(p, l) {\n for (var u in n) {\n if (!(u in l)) {\n throw new TypeError(`Missing field: \"${u}\"`);\n }\n }\n var v = c();\n for (u in n) {\n n[u].write(v, l[u]);\n }\n null !== p && p.push(d, v);\n return v;\n }, argPackAdvance:8, readValueFromPointer:Sc, K:d,}];\n });\n}, _embind_register_bigint:function() {\n}, _embind_register_bool:function(a, b, c, d, e) {\n var f = Wc(c);\n b = W(b);\n Vc(a, {name:b, fromWireType:function(g) {\n return !!g;\n }, toWireType:function(g, n) {\n return n ? d : e;\n }, argPackAdvance:8, readValueFromPointer:function(g) {\n if (1 === c) {\n var n = C;\n } else if (2 === c) {\n n = Da;\n } else if (4 === c) {\n n = L;\n } else {\n throw new TypeError(\"Unknown boolean type size: \" + b);\n }\n return this.fromWireType(n[g >> f]);\n }, K:null,});\n}, _embind_register_class:function(a, b, c, d, e, f, g, n, p, l, u, v, x) {\n u = W(u);\n f = Z(e, f);\n n && (n = Z(g, n));\n l && (l = Z(p, l));\n x = Z(v, x);\n var k = nc(u);\n ad(k, function() {\n od(`Cannot construct ${u} due to unbound types`, [d]);\n });\n Y([a, b, c], d ? [d] : [], function(t) {\n t = t[0];\n if (d) {\n var r = t.i;\n var B = r.N;\n } else {\n B = Zc.prototype;\n }\n t = oc(k, function() {\n if (Object.getPrototypeOf(this) !== D) {\n throw new qc(\"Use 'new' to construct \" + u);\n }\n if (void 0 === w.$) {\n throw new qc(u + \" has no accessible constructor\");\n }\n var T = w.$[arguments.length];\n if (void 0 === T) {\n throw new qc(`Tried to invoke ctor of ${u} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(w.$).toString()}) parameters instead!`);\n }\n return T.apply(this, arguments);\n });\n var D = Object.create(B, {constructor:{value:t},});\n t.prototype = D;\n var w = new bd(u, t, D, x, r, f, n, l);\n w.A && (void 0 === w.A.oa && (w.A.oa = []), w.A.oa.push(w));\n r = new hd(u, w, !0, !1);\n B = new hd(u + \"*\", w, !1, !1);\n var M = new hd(u + \" const*\", w, !1, !0);\n Kc[a] = {pointerType:B, Kb:M};\n jd(k, t);\n return [r, B, M];\n });\n}, _embind_register_class_class_function:function(a, b, c, d, e, f, g) {\n var n = sd(c, d);\n b = W(b);\n f = Z(e, f);\n Y([], [a], function(p) {\n function l() {\n od(`Cannot call ${u} due to unbound types`, n);\n }\n p = p[0];\n var u = `${p.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n var v = p.i.constructor;\n void 0 === v[b] ? (l.ea = c - 1, v[b] = l) : ($c(v, b, u), v[b].B[c - 1] = l);\n Y([], n, function(x) {\n x = pd(u, [x[0], null].concat(x.slice(1)), null, f, g);\n void 0 === v[b].B ? (x.ea = c - 1, v[b] = x) : v[b].B[c - 1] = x;\n if (p.i.oa) {\n for (const k of p.i.oa) {\n k.constructor.hasOwnProperty(b) || (k.constructor[b] = x);\n }\n }\n return [];\n });\n return [];\n });\n}, _embind_register_class_class_property:function(a, b, c, d, e, f, g, n) {\n b = W(b);\n f = Z(e, f);\n Y([], [a], function(p) {\n p = p[0];\n var l = `${p.name}.${b}`, u = {get() {\n od(`Cannot access ${l} due to unbound types`, [c]);\n }, enumerable:!0, configurable:!0};\n u.set = n ? () => {\n od(`Cannot access ${l} due to unbound types`, [c]);\n } : () => {\n V(`${l} is a read-only property`);\n };\n Object.defineProperty(p.i.constructor, b, u);\n Y([], [c], function(v) {\n v = v[0];\n var x = {get() {\n return v.fromWireType(f(d));\n }, enumerable:!0};\n n && (n = Z(g, n), x.set = k => {\n var t = [];\n n(d, v.toWireType(t, k));\n Rc(t);\n });\n Object.defineProperty(p.i.constructor, b, x);\n return [];\n });\n return [];\n });\n}, _embind_register_class_constructor:function(a, b, c, d, e, f) {\n var g = sd(b, c);\n e = Z(d, e);\n Y([], [a], function(n) {\n n = n[0];\n var p = `constructor ${n.name}`;\n void 0 === n.i.$ && (n.i.$ = []);\n if (void 0 !== n.i.$[b - 1]) {\n throw new qc(`Cannot register multiple constructors with identical number of parameters (${b - 1}) for class '${n.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n }\n n.i.$[b - 1] = () => {\n od(`Cannot construct ${n.name} due to unbound types`, g);\n };\n Y([], g, function(l) {\n l.splice(1, 0, null);\n n.i.$[b - 1] = pd(p, l, null, e, f);\n return [];\n });\n return [];\n });\n}, _embind_register_class_function:function(a, b, c, d, e, f, g, n) {\n var p = sd(c, d);\n b = W(b);\n f = Z(e, f);\n Y([], [a], function(l) {\n function u() {\n od(`Cannot call ${v} due to unbound types`, p);\n }\n l = l[0];\n var v = `${l.name}.${b}`;\n b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n n && l.i.qb.push(b);\n var x = l.i.N, k = x[b];\n void 0 === k || void 0 === k.B && k.className !== l.name && k.ea === c - 2 ? (u.ea = c - 2, u.className = l.name, x[b] = u) : ($c(x, b, v), x[b].B[c - 2] = u);\n Y([], p, function(t) {\n t = pd(v, t, l, f, g);\n void 0 === x[b].B ? (t.ea = c - 2, x[b] = t) : x[b].B[c - 2] = t;\n return [];\n });\n return [];\n });\n}, _embind_register_class_property:function(a, b, c, d, e, f, g, n, p, l) {\n b = W(b);\n e = Z(d, e);\n Y([], [a], function(u) {\n u = u[0];\n var v = `${u.name}.${b}`, x = {get() {\n od(`Cannot access ${v} due to unbound types`, [c, g]);\n }, enumerable:!0, configurable:!0};\n x.set = p ? () => {\n od(`Cannot access ${v} due to unbound types`, [c, g]);\n } : () => {\n V(v + \" is a read-only property\");\n };\n Object.defineProperty(u.i.N, b, x);\n Y([], p ? [c, g] : [c], function(k) {\n var t = k[0], r = {get() {\n var D = td(this, u, v + \" getter\");\n return t.fromWireType(e(f, D));\n }, enumerable:!0};\n if (p) {\n p = Z(n, p);\n var B = k[1];\n r.set = function(D) {\n var w = td(this, u, v + \" setter\"), M = [];\n p(l, w, B.toWireType(M, D));\n Rc(M);\n };\n }\n Object.defineProperty(u.i.N, b, r);\n return [];\n });\n return [];\n });\n}, _embind_register_emval:function(a, b) {\n b = W(b);\n Vc(a, {name:b, fromWireType:function(c) {\n var d = rc(c);\n ud(c);\n return d;\n }, toWireType:function(c, d) {\n return sc(d);\n }, argPackAdvance:8, readValueFromPointer:Sc, K:null,});\n}, _embind_register_enum:function(a, b, c, d) {\n function e() {\n }\n c = Wc(c);\n b = W(b);\n e.values = {};\n Vc(a, {name:b, constructor:e, fromWireType:function(f) {\n return this.constructor.values[f];\n }, toWireType:function(f, g) {\n return g.value;\n }, argPackAdvance:8, readValueFromPointer:vd(b, c, d), K:null,});\n ad(b, e);\n}, _embind_register_enum_value:function(a, b, c) {\n var d = Fc(a, \"enum\");\n b = W(b);\n a = d.constructor;\n d = Object.create(d.constructor.prototype, {value:{value:c}, constructor:{value:oc(`${d.name}_${b}`, function() {\n })},});\n a.values[c] = d;\n a[b] = d;\n}, _embind_register_float:function(a, b, c) {\n c = Wc(c);\n b = W(b);\n Vc(a, {name:b, fromWireType:function(d) {\n return d;\n }, toWireType:function(d, e) {\n return e;\n }, argPackAdvance:8, readValueFromPointer:wd(b, c), K:null,});\n}, _embind_register_function:function(a, b, c, d, e, f) {\n var g = sd(b, c);\n a = W(a);\n e = Z(d, e);\n ad(a, function() {\n od(`Cannot call ${a} due to unbound types`, g);\n }, b - 1);\n Y([], g, function(n) {\n jd(a, pd(a, [n[0], null].concat(n.slice(1)), null, e, f), b - 1);\n return [];\n });\n}, _embind_register_integer:function(a, b, c, d, e) {\n b = W(b);\n -1 === e && (e = 4294967295);\n e = Wc(c);\n var f = n => n;\n if (0 === d) {\n var g = 32 - 8 * c;\n f = n => n << g >>> g;\n }\n c = b.includes(\"unsigned\") ? function(n, p) {\n return p >>> 0;\n } : function(n, p) {\n return p;\n };\n Vc(a, {name:b, fromWireType:f, toWireType:c, argPackAdvance:8, readValueFromPointer:xd(b, e, 0 !== d), K:null,});\n}, _embind_register_memory_view:function(a, b, c) {\n function d(f) {\n f >>= 2;\n var g = N;\n return new e(g.buffer, g[f + 1], g[f]);\n }\n var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array,][b];\n c = W(c);\n Vc(a, {name:c, fromWireType:d, argPackAdvance:8, readValueFromPointer:d,}, {$b:!0,});\n}, _embind_register_std_string:function(a, b) {\n b = W(b);\n var c = \"std::string\" === b;\n Vc(a, {name:b, fromWireType:function(d) {\n var e = N[d >> 2], f = d + 4;\n if (c) {\n for (var g = f, n = 0; n <= e; ++n) {\n var p = f + n;\n if (n == e || 0 == E[p]) {\n g = g ? nb(E, g, p - g) : \"\";\n if (void 0 === l) {\n var l = g;\n } else {\n l += String.fromCharCode(0), l += g;\n }\n g = p + 1;\n }\n }\n } else {\n l = Array(e);\n for (n = 0; n < e; ++n) {\n l[n] = String.fromCharCode(E[f + n]);\n }\n l = l.join(\"\");\n }\n Ec(d);\n return l;\n }, toWireType:function(d, e) {\n e instanceof ArrayBuffer && (e = new Uint8Array(e));\n var f = \"string\" == typeof e;\n f || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || V(\"Cannot pass non-string to std::string\");\n var g = c && f ? pb(e) : e.length;\n var n = Wd(4 + g + 1), p = n + 4;\n N[n >> 2] = g;\n if (c && f) {\n qb(e, E, p, g + 1);\n } else {\n if (f) {\n for (f = 0; f < g; ++f) {\n var l = e.charCodeAt(f);\n 255 < l && (Ec(p), V(\"String has UTF-16 code units that do not fit in 8 bits\"));\n E[p + f] = l;\n }\n } else {\n for (f = 0; f < g; ++f) {\n E[p + f] = e[f];\n }\n }\n }\n null !== d && d.push(Ec, n);\n return n;\n }, argPackAdvance:8, readValueFromPointer:Sc, K:function(d) {\n Ec(d);\n },});\n}, _embind_register_std_wstring:function(a, b, c) {\n c = W(c);\n if (2 === b) {\n var d = zd;\n var e = Ad;\n var f = Bd;\n var g = () => Ea;\n var n = 1;\n } else {\n 4 === b && (d = Cd, e = Dd, f = Ed, g = () => N, n = 2);\n }\n Vc(a, {name:c, fromWireType:function(p) {\n for (var l = N[p >> 2], u = g(), v, x = p + 4, k = 0; k <= l; ++k) {\n var t = p + 4 + k * b;\n if (k == l || 0 == u[t >> n]) {\n x = d(x, t - x), void 0 === v ? v = x : (v += String.fromCharCode(0), v += x), x = t + b;\n }\n }\n Ec(p);\n return v;\n }, toWireType:function(p, l) {\n \"string\" != typeof l && V(`Cannot pass non-string to C++ string type ${c}`);\n var u = f(l), v = Wd(4 + u + b);\n N[v >> 2] = u >> n;\n e(l, v + 4, u + b);\n null !== p && p.push(Ec, v);\n return v;\n }, argPackAdvance:8, readValueFromPointer:Sc, K:function(p) {\n Ec(p);\n },});\n}, _embind_register_value_object:function(a, b, c, d, e, f) {\n Qc[a] = {name:W(b), Pa:Z(c, d), W:Z(e, f), eb:[],};\n}, _embind_register_value_object_field:function(a, b, c, d, e, f, g, n, p, l) {\n Qc[a].eb.push({Sb:W(b), Yb:c, Wb:Z(d, e), Xb:f, rc:g, qc:Z(n, p), sc:l,});\n}, _embind_register_void:function(a, b) {\n b = W(b);\n Vc(a, {fc:!0, name:b, argPackAdvance:0, fromWireType:function() {\n }, toWireType:function() {\n },});\n}, _emscripten_get_now_is_monotonic:() => !0, _emval_as:function(a, b, c) {\n a = rc(a);\n b = Fc(b, \"emval::as\");\n var d = [], e = sc(d);\n N[c >> 2] = e;\n return b.toWireType(d, a);\n}, _emval_call_method:function(a, b, c, d, e) {\n a = Hd[a];\n b = rc(b);\n c = Gd(c);\n var f = [];\n N[d >> 2] = sc(f);\n return a(b, c, f, e);\n}, _emval_call_void_method:function(a, b, c, d) {\n a = Hd[a];\n b = rc(b);\n c = Gd(c);\n a(b, c, null, d);\n}, _emval_decref:ud, _emval_get_method_caller:function(a, b) {\n var c = Jd(a, b), d = c[0];\n b = d.name + \"_$\" + c.slice(1).map(function(g) {\n return g.name;\n }).join(\"_\") + \"$\";\n var e = Kd[b];\n if (void 0 !== e) {\n return e;\n }\n var f = Array(a - 1);\n e = Id((g, n, p, l) => {\n for (var u = 0, v = 0; v < a - 1; ++v) {\n f[v] = c[v + 1].readValueFromPointer(l + u), u += c[v + 1].argPackAdvance;\n }\n g = g[n].apply(g, f);\n for (v = 0; v < a - 1; ++v) {\n c[v + 1].Nb && c[v + 1].Nb(f[v]);\n }\n if (!d.fc) {\n return d.toWireType(p, g);\n }\n });\n return Kd[b] = e;\n}, _emval_get_module_property:function(a) {\n a = Gd(a);\n return sc(m[a]);\n}, _emval_get_property:function(a, b) {\n a = rc(a);\n b = rc(b);\n return sc(a[b]);\n}, _emval_incref:function(a) {\n 4 < a && (U.get(a).tb += 1);\n}, _emval_new_cstring:function(a) {\n return sc(Gd(a));\n}, _emval_new_object:function() {\n return sc({});\n}, _emval_run_destructors:function(a) {\n var b = rc(a);\n Rc(b);\n ud(a);\n}, _emval_set_property:function(a, b, c) {\n a = rc(a);\n b = rc(b);\n c = rc(c);\n a[b] = c;\n}, _emval_take_value:function(a, b) {\n a = Fc(a, \"_emval_take_value\");\n a = a.readValueFromPointer(b);\n return sc(a);\n}, abort:() => {\n Aa(\"\");\n}, emscripten_asm_const_int:(a, b, c) => {\n Ld.length = 0;\n var d;\n for (c >>= 2; d = E[b++];) {\n c += 105 != d & c, Ld.push(105 == d ? L[c] : Ia[c++ >> 1]), ++c;\n }\n return db[a].apply(null, Ld);\n}, emscripten_date_now:function() {\n return Date.now();\n}, emscripten_get_now:() => performance.now(), emscripten_memcpy_big:(a, b, c) => E.copyWithin(a, b, b + c), emscripten_resize_heap:a => {\n var b = E.length;\n a >>>= 0;\n if (2147483648 < a) {\n return !1;\n }\n for (var c = 1; 4 >= c; c *= 2) {\n var d = b * (1 + 0.2 / c);\n d = Math.min(d, a + 100663296);\n var e = Math;\n d = Math.max(a, d);\n a: {\n e = e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - Ba.buffer.byteLength + 65535 >>> 16;\n try {\n Ba.grow(e);\n Ja();\n var f = 1;\n break a;\n } catch (g) {\n }\n f = void 0;\n }\n if (f) {\n return !0;\n }\n }\n return !1;\n}, environ_get:(a, b) => {\n var c = 0;\n Od().forEach(function(d, e) {\n var f = b + c;\n e = N[a + 4 * e >> 2] = f;\n for (f = 0; f < d.length; ++f) {\n C[e++ >> 0] = d.charCodeAt(f);\n }\n C[e >> 0] = 0;\n c += d.length + 1;\n });\n return 0;\n}, environ_sizes_get:(a, b) => {\n var c = Od();\n N[a >> 2] = c.length;\n var d = 0;\n c.forEach(function(e) {\n d += e.length + 1;\n });\n N[b >> 2] = d;\n return 0;\n}, fd_close:function(a) {\n try {\n var b = Tb(a);\n if (null === b.X) {\n throw new O(8);\n }\n b.Ma && (b.Ma = null);\n try {\n b.m.close && b.m.close(b);\n } catch (c) {\n throw c;\n } finally {\n Gb[b.X] = null;\n }\n b.X = null;\n return 0;\n } catch (c) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== c.name) {\n throw c;\n }\n return c.aa;\n }\n}, fd_read:function(a, b, c, d) {\n try {\n a: {\n var e = Tb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var n = N[a >> 2], p = N[a + 4 >> 2];\n a += 8;\n var l = e, u = n, v = p, x = f, k = C;\n if (0 > v || 0 > x) {\n throw new O(28);\n }\n if (null === l.X) {\n throw new O(8);\n }\n if (1 === (l.flags & 2097155)) {\n throw new O(8);\n }\n if (16384 === (l.node.mode & 61440)) {\n throw new O(31);\n }\n if (!l.m.read) {\n throw new O(28);\n }\n var t = \"undefined\" != typeof x;\n if (!t) {\n x = l.position;\n } else if (!l.seekable) {\n throw new O(70);\n }\n var r = l.m.read(l, k, u, v, x);\n t || (l.position += r);\n var B = r;\n if (0 > B) {\n var D = -1;\n break a;\n }\n b += B;\n if (B < p) {\n break;\n }\n \"undefined\" !== typeof f && (f += B);\n }\n D = b;\n }\n N[d >> 2] = D;\n return 0;\n } catch (w) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== w.name) {\n throw w;\n }\n return w.aa;\n }\n}, fd_seek:function(a, b, c, d, e) {\n b = c + 2097152 >>> 0 < 4194305 - !!b ? (b >>> 0) + 4294967296 * c : NaN;\n try {\n if (isNaN(b)) {\n return 61;\n }\n var f = Tb(a);\n fc(f, b, d);\n $a = [f.position >>> 0, (Za = f.position, 1.0 <= +Math.abs(Za) ? 0.0 < Za ? +Math.floor(Za / 4294967296.0) >>> 0 : ~~+Math.ceil((Za - +(~~Za >>> 0)) / 4294967296.0) >>> 0 : 0)];\n L[e >> 2] = $a[0];\n L[e + 4 >> 2] = $a[1];\n f.Ma && 0 === b && 0 === d && (f.Ma = null);\n return 0;\n } catch (g) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== g.name) {\n throw g;\n }\n return g.aa;\n }\n}, fd_write:function(a, b, c, d) {\n try {\n a: {\n var e = Tb(a);\n a = b;\n for (var f, g = b = 0; g < c; g++) {\n var n = N[a >> 2], p = N[a + 4 >> 2];\n a += 8;\n var l = e, u = n, v = p, x = f, k = C;\n if (0 > v || 0 > x) {\n throw new O(28);\n }\n if (null === l.X) {\n throw new O(8);\n }\n if (0 === (l.flags & 2097155)) {\n throw new O(8);\n }\n if (16384 === (l.node.mode & 61440)) {\n throw new O(31);\n }\n if (!l.m.write) {\n throw new O(28);\n }\n l.seekable && l.flags & 1024 && fc(l, 0, 2);\n var t = \"undefined\" != typeof x;\n if (!t) {\n x = l.position;\n } else if (!l.seekable) {\n throw new O(70);\n }\n var r = l.m.write(l, k, u, v, x, void 0);\n t || (l.position += r);\n var B = r;\n if (0 > B) {\n var D = -1;\n break a;\n }\n b += B;\n \"undefined\" !== typeof f && (f += B);\n }\n D = b;\n }\n N[d >> 2] = D;\n return 0;\n } catch (w) {\n if (\"undefined\" == typeof kc || \"ErrnoError\" !== w.name) {\n throw w;\n }\n return w.aa;\n }\n}, strftime_l:(a, b, c, d) => Sd(a, b, c, d)};\n(function() {\n function a(c) {\n z = c = c.exports;\n Ba = z.memory;\n Ja();\n Ka = z.__indirect_function_table;\n Ma.unshift(z.__wasm_call_ctors);\n Pa--;\n m.monitorRunDependencies && m.monitorRunDependencies(Pa);\n if (0 == Pa && (null !== Qa && (clearInterval(Qa), Qa = null), Ra)) {\n var d = Ra;\n Ra = null;\n d();\n }\n return c;\n }\n var b = {env:Xd, wasi_snapshot_preview1:Xd,};\n Pa++;\n m.monitorRunDependencies && m.monitorRunDependencies(Pa);\n if (m.instantiateWasm) {\n try {\n return m.instantiateWasm(b, a);\n } catch (c) {\n xa(\"Module.instantiateWasm callback failed with error: \" + c), ea(c);\n }\n }\n Ya(b, function(c) {\n a(c.instance);\n }).catch(ea);\n return {};\n})();\nvar Ec = a => (Ec = z.free)(a), Wd = a => (Wd = z.malloc)(a), ab = m._ma_device__on_notification_unlocked = a => (ab = m._ma_device__on_notification_unlocked = z.ma_device__on_notification_unlocked)(a);\nm._ma_malloc_emscripten = (a, b) => (m._ma_malloc_emscripten = z.ma_malloc_emscripten)(a, b);\nm._ma_free_emscripten = (a, b) => (m._ma_free_emscripten = z.ma_free_emscripten)(a, b);\nvar bb = m._ma_device_process_pcm_frames_capture__webaudio = (a, b, c) => (bb = m._ma_device_process_pcm_frames_capture__webaudio = z.ma_device_process_pcm_frames_capture__webaudio)(a, b, c), cb = m._ma_device_process_pcm_frames_playback__webaudio = (a, b, c) => (cb = m._ma_device_process_pcm_frames_playback__webaudio = z.ma_device_process_pcm_frames_playback__webaudio)(a, b, c), Vd = () => (Vd = z.__errno_location)(), Dc = a => (Dc = z.__getTypeName)(a);\nm.__embind_initialize_bindings = () => (m.__embind_initialize_bindings = z._embind_initialize_bindings)();\nm.dynCall_iiji = (a, b, c, d, e) => (m.dynCall_iiji = z.dynCall_iiji)(a, b, c, d, e);\nm.dynCall_jiji = (a, b, c, d, e) => (m.dynCall_jiji = z.dynCall_jiji)(a, b, c, d, e);\nm.dynCall_iiiji = (a, b, c, d, e, f) => (m.dynCall_iiiji = z.dynCall_iiiji)(a, b, c, d, e, f);\nm.dynCall_iij = (a, b, c, d) => (m.dynCall_iij = z.dynCall_iij)(a, b, c, d);\nm.dynCall_jii = (a, b, c) => (m.dynCall_jii = z.dynCall_jii)(a, b, c);\nm.dynCall_viijii = (a, b, c, d, e, f, g) => (m.dynCall_viijii = z.dynCall_viijii)(a, b, c, d, e, f, g);\nm.dynCall_iiiiij = (a, b, c, d, e, f, g) => (m.dynCall_iiiiij = z.dynCall_iiiiij)(a, b, c, d, e, f, g);\nm.dynCall_iiiiijj = (a, b, c, d, e, f, g, n, p) => (m.dynCall_iiiiijj = z.dynCall_iiiiijj)(a, b, c, d, e, f, g, n, p);\nm.dynCall_iiiiiijj = (a, b, c, d, e, f, g, n, p, l) => (m.dynCall_iiiiiijj = z.dynCall_iiiiiijj)(a, b, c, d, e, f, g, n, p, l);\nvar Yd;\nRa = function Zd() {\n Yd || $d();\n Yd || (Ra = Zd);\n};\nfunction $d() {\n function a() {\n if (!Yd && (Yd = !0, m.calledRun = !0, !Ca)) {\n m.noFSInit || hc || (hc = !0, gc(), m.stdin = m.stdin, m.stdout = m.stdout, m.stderr = m.stderr, m.stdin ? jc(\"stdin\", m.stdin) : cc(\"/dev/tty\", \"/dev/stdin\"), m.stdout ? jc(\"stdout\", null, m.stdout) : cc(\"/dev/tty\", \"/dev/stdout\"), m.stderr ? jc(\"stderr\", null, m.stderr) : cc(\"/dev/tty1\", \"/dev/stderr\"), ec(\"/dev/stdin\", 0), ec(\"/dev/stdout\", 1), ec(\"/dev/stderr\", 1));\n Jb = !1;\n eb(Ma);\n aa(m);\n if (m.onRuntimeInitialized) {\n m.onRuntimeInitialized();\n }\n if (m.postRun) {\n for (\"function\" == typeof m.postRun && (m.postRun = [m.postRun]); m.postRun.length;) {\n var b = m.postRun.shift();\n Na.unshift(b);\n }\n }\n eb(Na);\n }\n }\n if (!(0 < Pa)) {\n if (m.preRun) {\n for (\"function\" == typeof m.preRun && (m.preRun = [m.preRun]); m.preRun.length;) {\n Oa();\n }\n }\n eb(La);\n 0 < Pa || (m.setStatus ? (m.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n m.setStatus(\"\");\n }, 1);\n a();\n }, 1)) : a());\n }\n}\nif (m.preInit) {\n for (\"function\" == typeof m.preInit && (m.preInit = [m.preInit]); 0 < m.preInit.length;) {\n m.preInit.pop()();\n }\n}\n$d();\n\n\n\n return moduleArg.ready\n}\n\n);\n})();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Rive);\n\n/***/ }),\n/* 2 */\n/***/ ((module) => {\n\nmodule.exports = /*#__PURE__*/JSON.parse('{\"name\":\"@rive-app/canvas\",\"version\":\"2.26.3\",\"description\":\"Rive\\'s canvas based web api.\",\"main\":\"rive.js\",\"homepage\":\"https://rive.app\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/rive-app/rive-wasm/tree/master/js\"},\"keywords\":[\"rive\",\"animation\"],\"author\":\"Rive\",\"contributors\":[\"Luigi Rosso (https://rive.app)\",\"Maxwell Talbot (https://rive.app)\",\"Arthur Vivian (https://rive.app)\",\"Umberto Sonnino (https://rive.app)\",\"Matthew Sullivan (mailto:matt.j.sullivan@gmail.com)\"],\"license\":\"MIT\",\"files\":[\"rive.js\",\"rive.js.map\",\"rive.wasm\",\"rive_fallback.wasm\",\"rive.d.ts\",\"rive_advanced.mjs.d.ts\"],\"typings\":\"rive.d.ts\",\"dependencies\":{},\"browser\":{\"fs\":false,\"path\":false}}');\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Animation: () => (/* reexport safe */ _Animation__WEBPACK_IMPORTED_MODULE_0__.Animation)\n/* harmony export */ });\n/* harmony import */ var _Animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n\n\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Animation: () => (/* binding */ Animation)\n/* harmony export */ });\n/**\n * Represents an animation that can be played on an Artboard.\n * Wraps animations and instances from the runtime and keeps track of playback state.\n *\n * The `Animation` class manages the state and behavior of a single animation instance,\n * including its current time, loop count, and ability to scrub to a specific time.\n *\n * The class provides methods to advance the animation, apply its interpolated keyframe\n * values to the Artboard, and clean up the underlying animation instance when the\n * animation is no longer needed.\n */\nvar Animation = /** @class */ (function () {\n /**\n * Constructs a new animation\n * @constructor\n * @param {any} animation: runtime animation object\n * @param {any} instance: runtime animation instance object\n */\n function Animation(animation, artboard, runtime, playing) {\n this.animation = animation;\n this.artboard = artboard;\n this.playing = playing;\n this.loopCount = 0;\n /**\n * The time to which the animation should move to on the next render.\n * If not null, the animation will scrub to this time instead of advancing by the given time.\n */\n this.scrubTo = null;\n this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n }\n Object.defineProperty(Animation.prototype, \"name\", {\n /**\n * Returns the animation's name\n */\n get: function () {\n return this.animation.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animation.prototype, \"time\", {\n /**\n * Returns the animation's name\n */\n get: function () {\n return this.instance.time;\n },\n /**\n * Sets the animation's current time\n */\n set: function (value) {\n this.instance.time = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animation.prototype, \"loopValue\", {\n /**\n * Returns the animation's loop type\n */\n get: function () {\n return this.animation.loopValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animation.prototype, \"needsScrub\", {\n /**\n * Indicates whether the animation needs to be scrubbed.\n * @returns `true` if the animation needs to be scrubbed, `false` otherwise.\n */\n get: function () {\n return this.scrubTo !== null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Advances the animation by the give time. If the animation needs scrubbing,\n * time is ignored and the stored scrub value is used.\n * @param time the time to advance the animation by if no scrubbing required\n */\n Animation.prototype.advance = function (time) {\n if (this.scrubTo === null) {\n this.instance.advance(time);\n }\n else {\n this.instance.time = 0;\n this.instance.advance(this.scrubTo);\n this.scrubTo = null;\n }\n };\n /**\n * Apply interpolated keyframe values to the artboard. This should be called after calling\n * .advance() on an animation instance so that new values are applied to properties.\n *\n * Note: This does not advance the artboard, which updates all objects on the artboard\n * @param mix - Mix value for the animation from 0 to 1\n */\n Animation.prototype.apply = function (mix) {\n this.instance.apply(mix);\n };\n /**\n * Deletes the backing Wasm animation instance; once this is called, this\n * animation is no more.\n */\n Animation.prototype.cleanup = function () {\n this.instance.delete();\n };\n return Animation;\n}());\n\n\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BLANK_URL: () => (/* reexport safe */ _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__.BLANK_URL),\n/* harmony export */ registerTouchInteractions: () => (/* reexport safe */ _registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__.registerTouchInteractions),\n/* harmony export */ sanitizeUrl: () => (/* reexport safe */ _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__.sanitizeUrl)\n/* harmony export */ });\n/* harmony import */ var _registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);\n/* harmony import */ var _sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\n\n\n\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ registerTouchInteractions: () => (/* binding */ registerTouchInteractions)\n/* harmony export */ });\nvar _this = undefined;\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nvar getClientCoordinates = function (event, isTouchScrollEnabled) {\n var _a, _b;\n if ([\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n ((_a = event.touches) === null || _a === void 0 ? void 0 : _a.length)) {\n // This flag, if false, prevents touch events on the canvas default behavior\n // which may prevent scrolling if a drag motion on the canvas is performed\n if (!isTouchScrollEnabled) {\n event.preventDefault();\n }\n return {\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n };\n }\n else if (event.type === \"touchend\" &&\n ((_b = event.changedTouches) === null || _b === void 0 ? void 0 : _b.length)) {\n return {\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n };\n }\n else {\n return {\n clientX: event.clientX,\n clientY: event.clientY,\n };\n }\n};\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nvar registerTouchInteractions = function (_a) {\n var canvas = _a.canvas, artboard = _a.artboard, _b = _a.stateMachines, stateMachines = _b === void 0 ? [] : _b, renderer = _a.renderer, rive = _a.rive, fit = _a.fit, alignment = _a.alignment, _c = _a.isTouchScrollEnabled, isTouchScrollEnabled = _c === void 0 ? false : _c, _d = _a.layoutScaleFactor, layoutScaleFactor = _d === void 0 ? 1.0 : _d;\n if (!canvas ||\n !stateMachines.length ||\n !renderer ||\n !rive ||\n !artboard ||\n typeof window === \"undefined\") {\n return null;\n }\n /**\n * After a touchend event, some browsers may fire synthetic mouse events\n * (mouseover, mousedown, mousemove, mouseup) if the touch interaction did not cause\n * any default action (such as scrolling).\n *\n * This is done to simulate the behavior of a mouse for applications that do not support\n * touch events.\n *\n * We're keeping track of the previous event to not send the synthetic mouse events if the\n * touch event was a click (touchstart -> touchend).\n *\n * This is only needed when `isTouchScrollEnabled` is false\n * When true, `preventDefault()` is called which prevents this behaviour.\n **/\n var _prevEventType = null;\n var _syntheticEventsActive = false;\n var processEventCallback = function (event) {\n // Exit early out of all synthetic mouse events\n // https://stackoverflow.com/questions/9656990/how-to-prevent-simulated-mouse-events-in-mobile-browsers\n // https://stackoverflow.com/questions/25572070/javascript-touchend-versus-click-dilemma\n if (_syntheticEventsActive && event instanceof MouseEvent) {\n // Synthetic event finished\n if (event.type == \"mouseup\") {\n _syntheticEventsActive = false;\n }\n return;\n }\n // Test if it's a \"touch click\". This could cause the browser to send\n // synthetic mouse events.\n _syntheticEventsActive =\n isTouchScrollEnabled &&\n event.type === \"touchend\" &&\n _prevEventType === \"touchstart\";\n _prevEventType = event.type;\n var boundingRect = event.currentTarget.getBoundingClientRect();\n var _a = getClientCoordinates(event, isTouchScrollEnabled), clientX = _a.clientX, clientY = _a.clientY;\n if (!clientX && !clientY) {\n return;\n }\n var canvasX = clientX - boundingRect.left;\n var canvasY = clientY - boundingRect.top;\n var forwardMatrix = rive.computeAlignment(fit, alignment, {\n minX: 0,\n minY: 0,\n maxX: boundingRect.width,\n maxY: boundingRect.height,\n }, artboard.bounds, layoutScaleFactor);\n var invertedMatrix = new rive.Mat2D();\n forwardMatrix.invert(invertedMatrix);\n var canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n var transformedVector = rive.mapXY(invertedMatrix, canvasCoordinatesVector);\n var transformedX = transformedVector.x();\n var transformedY = transformedVector.y();\n transformedVector.delete();\n invertedMatrix.delete();\n canvasCoordinatesVector.delete();\n forwardMatrix.delete();\n switch (event.type) {\n /**\n * There's a 2px buffer for a hitRadius when translating the pointer coordinates\n * down to the state machine. In cases where the hitbox is about that much away\n * from the Artboard border, we don't have exact precision on determining pointer\n * exit. We're therefore adding to the translated coordinates on mouseout of a canvas\n * to ensure that we report the mouse has truly exited the hitarea.\n * https://github.com/rive-app/rive-cpp/blob/master/src/animation/state_machine_instance.cpp#L336\n *\n * We add/subtract 10000 to account for when the graphic goes beyond the canvas bound\n * due to for example, a fit: 'cover'. Not perfect, but helps reliably (for now) ensure\n * we report going out of bounds when the mouse is out of the canvas\n */\n case \"mouseout\":\n for (var _i = 0, stateMachines_1 = stateMachines; _i < stateMachines_1.length; _i++) {\n var stateMachine = stateMachines_1[_i];\n stateMachine.pointerMove(transformedX, transformedY);\n }\n break;\n // Pointer moving/hovering on the canvas\n case \"touchmove\":\n case \"mouseover\":\n case \"mousemove\": {\n for (var _b = 0, stateMachines_2 = stateMachines; _b < stateMachines_2.length; _b++) {\n var stateMachine = stateMachines_2[_b];\n stateMachine.pointerMove(transformedX, transformedY);\n }\n break;\n }\n // Pointer click initiated but not released yet on the canvas\n case \"touchstart\":\n case \"mousedown\": {\n for (var _c = 0, stateMachines_3 = stateMachines; _c < stateMachines_3.length; _c++) {\n var stateMachine = stateMachines_3[_c];\n stateMachine.pointerDown(transformedX, transformedY);\n }\n break;\n }\n // Pointer click released on the canvas\n case \"touchend\":\n case \"mouseup\": {\n for (var _d = 0, stateMachines_4 = stateMachines; _d < stateMachines_4.length; _d++) {\n var stateMachine = stateMachines_4[_d];\n stateMachine.pointerUp(transformedX, transformedY);\n }\n break;\n }\n default:\n }\n };\n var callback = processEventCallback.bind(_this);\n canvas.addEventListener(\"mouseover\", callback);\n canvas.addEventListener(\"mouseout\", callback);\n canvas.addEventListener(\"mousemove\", callback);\n canvas.addEventListener(\"mousedown\", callback);\n canvas.addEventListener(\"mouseup\", callback);\n canvas.addEventListener(\"touchmove\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchstart\", callback, {\n passive: isTouchScrollEnabled,\n });\n canvas.addEventListener(\"touchend\", callback);\n return function () {\n canvas.removeEventListener(\"mouseover\", callback);\n canvas.removeEventListener(\"mouseout\", callback);\n canvas.removeEventListener(\"mousemove\", callback);\n canvas.removeEventListener(\"mousedown\", callback);\n canvas.removeEventListener(\"mouseup\", callback);\n canvas.removeEventListener(\"touchmove\", callback);\n canvas.removeEventListener(\"touchstart\", callback);\n canvas.removeEventListener(\"touchend\", callback);\n };\n};\n\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BLANK_URL: () => (/* binding */ BLANK_URL),\n/* harmony export */ sanitizeUrl: () => (/* binding */ sanitizeUrl)\n/* harmony export */ });\n// Reference: https://github.com/braintree/sanitize-url/tree/main\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar htmlCtrlEntityRegex = /&(newline|tab);/gi;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^.+(:|:)/gim;\nvar relativeFirstCharacters = [\".\", \"/\"];\nvar BLANK_URL = \"about:blank\";\nfunction isRelativeUrlWithoutProtocol(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return BLANK_URL;\n }\n var sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return BLANK_URL;\n }\n return sanitizedUrl;\n}\n\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.\n(() => {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Alignment: () => (/* binding */ Alignment),\n/* harmony export */ EventType: () => (/* binding */ EventType),\n/* harmony export */ Fit: () => (/* binding */ Fit),\n/* harmony export */ Layout: () => (/* binding */ Layout),\n/* harmony export */ LoopType: () => (/* binding */ LoopType),\n/* harmony export */ Rive: () => (/* binding */ Rive),\n/* harmony export */ RiveEventType: () => (/* binding */ RiveEventType),\n/* harmony export */ RiveFile: () => (/* binding */ RiveFile),\n/* harmony export */ RuntimeLoader: () => (/* binding */ RuntimeLoader),\n/* harmony export */ StateMachineInput: () => (/* binding */ StateMachineInput),\n/* harmony export */ StateMachineInputType: () => (/* binding */ StateMachineInputType),\n/* harmony export */ Testing: () => (/* binding */ Testing),\n/* harmony export */ decodeAudio: () => (/* binding */ decodeAudio),\n/* harmony export */ decodeFont: () => (/* binding */ decodeFont),\n/* harmony export */ decodeImage: () => (/* binding */ decodeImage)\n/* harmony export */ });\n/* harmony import */ var _rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var package_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5);\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\nvar RiveError = /** @class */ (function (_super) {\n __extends(RiveError, _super);\n function RiveError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isHandledError = true;\n return _this;\n }\n return RiveError;\n}(Error));\n// #regions helpers\nvar resolveErrorMessage = function (error) {\n return error && error.isHandledError\n ? error.message\n : \"Problem loading file; may be corrupt!\";\n};\n// #region layout\n// Fit options for the canvas\nvar Fit;\n(function (Fit) {\n Fit[\"Cover\"] = \"cover\";\n Fit[\"Contain\"] = \"contain\";\n Fit[\"Fill\"] = \"fill\";\n Fit[\"FitWidth\"] = \"fitWidth\";\n Fit[\"FitHeight\"] = \"fitHeight\";\n Fit[\"None\"] = \"none\";\n Fit[\"ScaleDown\"] = \"scaleDown\";\n Fit[\"Layout\"] = \"layout\";\n})(Fit || (Fit = {}));\n// Alignment options for the canvas\nvar Alignment;\n(function (Alignment) {\n Alignment[\"Center\"] = \"center\";\n Alignment[\"TopLeft\"] = \"topLeft\";\n Alignment[\"TopCenter\"] = \"topCenter\";\n Alignment[\"TopRight\"] = \"topRight\";\n Alignment[\"CenterLeft\"] = \"centerLeft\";\n Alignment[\"CenterRight\"] = \"centerRight\";\n Alignment[\"BottomLeft\"] = \"bottomLeft\";\n Alignment[\"BottomCenter\"] = \"bottomCenter\";\n Alignment[\"BottomRight\"] = \"bottomRight\";\n})(Alignment || (Alignment = {}));\n// Alignment options for Rive animations in a HTML canvas\nvar Layout = /** @class */ (function () {\n function Layout(params) {\n var _a, _b, _c, _d, _e, _f, _g;\n this.fit = (_a = params === null || params === void 0 ? void 0 : params.fit) !== null && _a !== void 0 ? _a : Fit.Contain;\n this.alignment = (_b = params === null || params === void 0 ? void 0 : params.alignment) !== null && _b !== void 0 ? _b : Alignment.Center;\n this.layoutScaleFactor = (_c = params === null || params === void 0 ? void 0 : params.layoutScaleFactor) !== null && _c !== void 0 ? _c : 1;\n this.minX = (_d = params === null || params === void 0 ? void 0 : params.minX) !== null && _d !== void 0 ? _d : 0;\n this.minY = (_e = params === null || params === void 0 ? void 0 : params.minY) !== null && _e !== void 0 ? _e : 0;\n this.maxX = (_f = params === null || params === void 0 ? void 0 : params.maxX) !== null && _f !== void 0 ? _f : 0;\n this.maxY = (_g = params === null || params === void 0 ? void 0 : params.maxY) !== null && _g !== void 0 ? _g : 0;\n }\n // Alternative constructor to build a Layout from an interface/object\n Layout.new = function (_a) {\n var fit = _a.fit, alignment = _a.alignment, minX = _a.minX, minY = _a.minY, maxX = _a.maxX, maxY = _a.maxY;\n console.warn(\"This function is deprecated: please use `new Layout({})` instead\");\n return new Layout({ fit: fit, alignment: alignment, minX: minX, minY: minY, maxX: maxX, maxY: maxY });\n };\n /**\n * Makes a copy of the layout, replacing any specified parameters\n */\n Layout.prototype.copyWith = function (_a) {\n var fit = _a.fit, alignment = _a.alignment, layoutScaleFactor = _a.layoutScaleFactor, minX = _a.minX, minY = _a.minY, maxX = _a.maxX, maxY = _a.maxY;\n return new Layout({\n fit: fit !== null && fit !== void 0 ? fit : this.fit,\n alignment: alignment !== null && alignment !== void 0 ? alignment : this.alignment,\n layoutScaleFactor: layoutScaleFactor !== null && layoutScaleFactor !== void 0 ? layoutScaleFactor : this.layoutScaleFactor,\n minX: minX !== null && minX !== void 0 ? minX : this.minX,\n minY: minY !== null && minY !== void 0 ? minY : this.minY,\n maxX: maxX !== null && maxX !== void 0 ? maxX : this.maxX,\n maxY: maxY !== null && maxY !== void 0 ? maxY : this.maxY,\n });\n };\n // Returns fit for the Wasm runtime format\n Layout.prototype.runtimeFit = function (rive) {\n if (this.cachedRuntimeFit)\n return this.cachedRuntimeFit;\n var fit;\n if (this.fit === Fit.Cover)\n fit = rive.Fit.cover;\n else if (this.fit === Fit.Contain)\n fit = rive.Fit.contain;\n else if (this.fit === Fit.Fill)\n fit = rive.Fit.fill;\n else if (this.fit === Fit.FitWidth)\n fit = rive.Fit.fitWidth;\n else if (this.fit === Fit.FitHeight)\n fit = rive.Fit.fitHeight;\n else if (this.fit === Fit.ScaleDown)\n fit = rive.Fit.scaleDown;\n else if (this.fit === Fit.Layout)\n fit = rive.Fit.layout;\n else\n fit = rive.Fit.none;\n this.cachedRuntimeFit = fit;\n return fit;\n };\n // Returns alignment for the Wasm runtime format\n Layout.prototype.runtimeAlignment = function (rive) {\n if (this.cachedRuntimeAlignment)\n return this.cachedRuntimeAlignment;\n var alignment;\n if (this.alignment === Alignment.TopLeft)\n alignment = rive.Alignment.topLeft;\n else if (this.alignment === Alignment.TopCenter)\n alignment = rive.Alignment.topCenter;\n else if (this.alignment === Alignment.TopRight)\n alignment = rive.Alignment.topRight;\n else if (this.alignment === Alignment.CenterLeft)\n alignment = rive.Alignment.centerLeft;\n else if (this.alignment === Alignment.CenterRight)\n alignment = rive.Alignment.centerRight;\n else if (this.alignment === Alignment.BottomLeft)\n alignment = rive.Alignment.bottomLeft;\n else if (this.alignment === Alignment.BottomCenter)\n alignment = rive.Alignment.bottomCenter;\n else if (this.alignment === Alignment.BottomRight)\n alignment = rive.Alignment.bottomRight;\n else\n alignment = rive.Alignment.center;\n this.cachedRuntimeAlignment = alignment;\n return alignment;\n };\n return Layout;\n}());\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nvar RuntimeLoader = /** @class */ (function () {\n // Class is never instantiated\n function RuntimeLoader() {\n }\n // Loads the runtime\n RuntimeLoader.loadRuntime = function () {\n _rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n // Loads Wasm bundle\n locateFile: function () { return RuntimeLoader.wasmURL; },\n })\n .then(function (rive) {\n var _a;\n RuntimeLoader.runtime = rive;\n // Fire all the callbacks\n while (RuntimeLoader.callBackQueue.length > 0) {\n (_a = RuntimeLoader.callBackQueue.shift()) === null || _a === void 0 ? void 0 : _a(RuntimeLoader.runtime);\n }\n })\n .catch(function (error) {\n // Capture specific error details\n var errorDetails = {\n message: (error === null || error === void 0 ? void 0 : error.message) || \"Unknown error\",\n type: (error === null || error === void 0 ? void 0 : error.name) || \"Error\",\n // Some browsers may provide additional WebAssembly-specific details\n wasmError: error instanceof WebAssembly.CompileError ||\n error instanceof WebAssembly.RuntimeError,\n originalError: error,\n };\n // Log detailed error for debugging\n console.debug(\"Rive WASM load error details:\", errorDetails);\n // In case unpkg fails, or the wasm was not supported, we try to load the fallback module from jsdelivr.\n // This `rive_fallback.wasm` is compiled to support older architecture.\n // TODO: (Gordon): preemptively test browser support and load the correct wasm file. Then use jsdelvr only if unpkg fails.\n var backupJsdelivrUrl = \"https://cdn.jsdelivr.net/npm/\".concat(package_json__WEBPACK_IMPORTED_MODULE_1__.name, \"@\").concat(package_json__WEBPACK_IMPORTED_MODULE_1__.version, \"/rive_fallback.wasm\");\n if (RuntimeLoader.wasmURL.toLowerCase() !== backupJsdelivrUrl) {\n console.warn(\"Failed to load WASM from \".concat(RuntimeLoader.wasmURL, \" (\").concat(errorDetails.message, \"), trying jsdelivr as a backup\"));\n RuntimeLoader.setWasmUrl(backupJsdelivrUrl);\n RuntimeLoader.loadRuntime();\n }\n else {\n var errorMessage = [\n \"Could not load Rive WASM file from \".concat(RuntimeLoader.wasmURL, \" or \").concat(backupJsdelivrUrl, \".\"),\n \"Possible reasons:\",\n \"- Network connection is down\",\n \"- WebAssembly is not supported in this environment\",\n \"- The WASM file is corrupted or incompatible\",\n \"\\nError details:\",\n \"- Type: \".concat(errorDetails.type),\n \"- Message: \".concat(errorDetails.message),\n \"- WebAssembly-specific error: \".concat(errorDetails.wasmError),\n \"\\nTo resolve, you may need to:\",\n \"1. Check your network connection\",\n \"2. Set a new WASM source via RuntimeLoader.setWasmUrl()\",\n \"3. Call RuntimeLoader.loadRuntime() again\",\n ].join(\"\\n\");\n console.error(errorMessage);\n }\n });\n };\n // Provides a runtime instance via a callback\n RuntimeLoader.getInstance = function (callback) {\n // If it's not loading, start loading runtime\n if (!RuntimeLoader.isLoading) {\n RuntimeLoader.isLoading = true;\n RuntimeLoader.loadRuntime();\n }\n if (!RuntimeLoader.runtime) {\n RuntimeLoader.callBackQueue.push(callback);\n }\n else {\n callback(RuntimeLoader.runtime);\n }\n };\n // Provides a runtime instance via a promise\n RuntimeLoader.awaitInstance = function () {\n return new Promise(function (resolve) {\n return RuntimeLoader.getInstance(function (rive) { return resolve(rive); });\n });\n };\n // Manually sets the wasm url\n RuntimeLoader.setWasmUrl = function (url) {\n RuntimeLoader.wasmURL = url;\n };\n // Gets the current wasm url\n RuntimeLoader.getWasmUrl = function () {\n return RuntimeLoader.wasmURL;\n };\n // Flag to indicate that loading has started/completed\n RuntimeLoader.isLoading = false;\n // List of callbacks for the runtime that come in while loading\n RuntimeLoader.callBackQueue = [];\n // Path to the Wasm file; default path works for testing only;\n // if embedded wasm is used then this is never used.\n RuntimeLoader.wasmURL = \"https://unpkg.com/\".concat(package_json__WEBPACK_IMPORTED_MODULE_1__.name, \"@\").concat(package_json__WEBPACK_IMPORTED_MODULE_1__.version, \"/rive.wasm\");\n return RuntimeLoader;\n}());\n\n// #endregion\n// #region state machines\nvar StateMachineInputType;\n(function (StateMachineInputType) {\n StateMachineInputType[StateMachineInputType[\"Number\"] = 56] = \"Number\";\n StateMachineInputType[StateMachineInputType[\"Trigger\"] = 58] = \"Trigger\";\n StateMachineInputType[StateMachineInputType[\"Boolean\"] = 59] = \"Boolean\";\n})(StateMachineInputType || (StateMachineInputType = {}));\n/**\n * An input for a state machine\n */\nvar StateMachineInput = /** @class */ (function () {\n function StateMachineInput(type, runtimeInput) {\n this.type = type;\n this.runtimeInput = runtimeInput;\n }\n Object.defineProperty(StateMachineInput.prototype, \"name\", {\n /**\n * Returns the name of the input\n */\n get: function () {\n return this.runtimeInput.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateMachineInput.prototype, \"value\", {\n /**\n * Returns the current value of the input\n */\n get: function () {\n return this.runtimeInput.value;\n },\n /**\n * Sets the value of the input\n */\n set: function (value) {\n this.runtimeInput.value = value;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Fires a trigger; does nothing on Number or Boolean input types\n */\n StateMachineInput.prototype.fire = function () {\n if (this.type === StateMachineInputType.Trigger) {\n this.runtimeInput.fire();\n }\n };\n /**\n * Deletes the input\n */\n StateMachineInput.prototype.delete = function () {\n this.runtimeInput = null;\n };\n return StateMachineInput;\n}());\n\nvar RiveEventType;\n(function (RiveEventType) {\n RiveEventType[RiveEventType[\"General\"] = 128] = \"General\";\n RiveEventType[RiveEventType[\"OpenUrl\"] = 131] = \"OpenUrl\";\n})(RiveEventType || (RiveEventType = {}));\nvar StateMachine = /** @class */ (function () {\n /**\n * @constructor\n * @param stateMachine runtime state machine object\n * @param instance runtime state machine instance object\n */\n function StateMachine(stateMachine, runtime, playing, artboard) {\n this.stateMachine = stateMachine;\n this.playing = playing;\n this.artboard = artboard;\n /**\n * Caches the inputs from the runtime\n */\n this.inputs = [];\n this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n this.initInputs(runtime);\n }\n Object.defineProperty(StateMachine.prototype, \"name\", {\n get: function () {\n return this.stateMachine.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateMachine.prototype, \"statesChanged\", {\n /**\n * Returns a list of state names that have changed on this frame\n */\n get: function () {\n var names = [];\n for (var i = 0; i < this.instance.stateChangedCount(); i++) {\n names.push(this.instance.stateChangedNameByIndex(i));\n }\n return names;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Advances the state machine instance by a given time.\n * @param time - the time to advance the animation by in seconds\n */\n StateMachine.prototype.advance = function (time) {\n this.instance.advance(time);\n };\n /**\n * Advances the state machine instance by a given time and apply changes to artboard.\n * @param time - the time to advance the animation by in seconds\n */\n StateMachine.prototype.advanceAndApply = function (time) {\n this.instance.advanceAndApply(time);\n };\n /**\n * Returns the number of events reported from the last advance call\n * @returns Number of events reported\n */\n StateMachine.prototype.reportedEventCount = function () {\n return this.instance.reportedEventCount();\n };\n /**\n * Returns a RiveEvent object emitted from the last advance call at the given index\n * of a list of potentially multiple events. If an event at the index is not found,\n * undefined is returned.\n * @param i index of the event reported in a list of potentially multiple events\n * @returns RiveEvent or extended RiveEvent object returned, or undefined\n */\n StateMachine.prototype.reportedEventAt = function (i) {\n return this.instance.reportedEventAt(i);\n };\n /**\n * Fetches references to the state machine's inputs and caches them\n * @param runtime an instance of the runtime; needed for the SMIInput types\n */\n StateMachine.prototype.initInputs = function (runtime) {\n // Fetch the inputs from the runtime if we don't have them\n for (var i = 0; i < this.instance.inputCount(); i++) {\n var input = this.instance.input(i);\n this.inputs.push(this.mapRuntimeInput(input, runtime));\n }\n };\n /**\n * Maps a runtime input to it's appropriate type\n * @param input\n */\n StateMachine.prototype.mapRuntimeInput = function (input, runtime) {\n if (input.type === runtime.SMIInput.bool) {\n return new StateMachineInput(StateMachineInputType.Boolean, input.asBool());\n }\n else if (input.type === runtime.SMIInput.number) {\n return new StateMachineInput(StateMachineInputType.Number, input.asNumber());\n }\n else if (input.type === runtime.SMIInput.trigger) {\n return new StateMachineInput(StateMachineInputType.Trigger, input.asTrigger());\n }\n };\n /**\n * Deletes the backing Wasm state machine instance; once this is called, this\n * state machine is no more.\n */\n StateMachine.prototype.cleanup = function () {\n this.inputs.forEach(function (input) {\n input.delete();\n });\n this.inputs.length = 0;\n this.instance.delete();\n };\n return StateMachine;\n}());\n// #endregion\n// #region animator\n/**\n * Manages animation\n */\nvar Animator = /** @class */ (function () {\n /**\n * Constructs a new animator\n * @constructor\n * @param runtime Rive runtime; needed to instance animations & state machines\n * @param artboard the artboard that holds all animations and state machines\n * @param animations optional list of animations\n * @param stateMachines optional list of state machines\n */\n function Animator(runtime, artboard, eventManager, animations, stateMachines) {\n if (animations === void 0) { animations = []; }\n if (stateMachines === void 0) { stateMachines = []; }\n this.runtime = runtime;\n this.artboard = artboard;\n this.eventManager = eventManager;\n this.animations = animations;\n this.stateMachines = stateMachines;\n }\n /**\n * Adds animations and state machines by their names. If names are shared\n * between animations & state machines, then the first one found will be\n * created. Best not to use the same names for these in your Rive file.\n * @param animatable the name(s) of animations and state machines to add\n * @returns a list of names of the playing animations and state machines\n */\n Animator.prototype.add = function (animatables, playing, fireEvent) {\n if (fireEvent === void 0) { fireEvent = true; }\n animatables = mapToStringArray(animatables);\n // If animatables is empty, play or pause everything\n if (animatables.length === 0) {\n this.animations.forEach(function (a) { return (a.playing = playing); });\n this.stateMachines.forEach(function (m) { return (m.playing = playing); });\n }\n else {\n // Play/pause already instanced items, or create new instances\n var instancedAnimationNames = this.animations.map(function (a) { return a.name; });\n var instancedMachineNames = this.stateMachines.map(function (m) { return m.name; });\n for (var i = 0; i < animatables.length; i++) {\n var aIndex = instancedAnimationNames.indexOf(animatables[i]);\n var mIndex = instancedMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0 || mIndex >= 0) {\n if (aIndex >= 0) {\n // Animation is instanced, play/pause it\n this.animations[aIndex].playing = playing;\n }\n else {\n // State machine is instanced, play/pause it\n this.stateMachines[mIndex].playing = playing;\n }\n }\n else {\n // Try to create a new animation instance\n var anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n var newAnimation = new _animation__WEBPACK_IMPORTED_MODULE_2__.Animation(anim, this.artboard, this.runtime, playing);\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n }\n else {\n // Try to create a new state machine instance\n var sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n var newStateMachine = new StateMachine(sm, this.runtime, playing, this.artboard);\n this.stateMachines.push(newStateMachine);\n }\n }\n }\n }\n }\n // Fire play/paused events for animations\n if (fireEvent) {\n if (playing) {\n this.eventManager.fire({\n type: EventType.Play,\n data: this.playing,\n });\n }\n else {\n this.eventManager.fire({\n type: EventType.Pause,\n data: this.paused,\n });\n }\n }\n return playing ? this.playing : this.paused;\n };\n /**\n * Adds linear animations by their names.\n * @param animatables the name(s) of animations to add\n * @param playing whether animations should play on instantiation\n */\n Animator.prototype.initLinearAnimations = function (animatables, playing) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n var instancedAnimationNames = this.animations.map(function (a) { return a.name; });\n for (var i = 0; i < animatables.length; i++) {\n var aIndex = instancedAnimationNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.animations[aIndex].playing = playing;\n }\n else {\n // Try to create a new animation instance\n var anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n var newAnimation = new _animation__WEBPACK_IMPORTED_MODULE_2__.Animation(anim, this.artboard, this.runtime, playing);\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n }\n }\n }\n };\n /**\n * Adds state machines by their names.\n * @param animatables the name(s) of state machines to add\n * @param playing whether state machines should play on instantiation\n */\n Animator.prototype.initStateMachines = function (animatables, playing) {\n // Play/pause already instanced items, or create new instances\n // This validation is kept to maintain compatibility with current behavior.\n // But given that it this is called during artboard initialization\n // it should probably be safe to remove.\n var instancedStateMachineNames = this.stateMachines.map(function (a) { return a.name; });\n for (var i = 0; i < animatables.length; i++) {\n var aIndex = instancedStateMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0) {\n this.stateMachines[aIndex].playing = playing;\n }\n else {\n // Try to create a new state machine instance\n var sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n var newStateMachine = new StateMachine(sm, this.runtime, playing, this.artboard);\n this.stateMachines.push(newStateMachine);\n }\n else {\n // In order to maintain compatibility with current behavior, if a state machine is not found\n // we look for an animation with the same name\n this.initLinearAnimations([animatables[i]], playing);\n }\n }\n }\n };\n /**\n * Play the named animations/state machines\n * @param animatables the names of the animations/machines to play; plays all if empty\n * @returns a list of the playing items\n */\n Animator.prototype.play = function (animatables) {\n return this.add(animatables, true);\n };\n /**\n * Pauses named animations and state machines, or everything if nothing is\n * specified\n * @param animatables names of the animations and state machines to pause\n * @returns a list of names of the animations and state machines paused\n */\n Animator.prototype.pause = function (animatables) {\n return this.add(animatables, false);\n };\n /**\n * Set time of named animations\n * @param animations names of the animations to scrub\n * @param value time scrub value, a floating point number to which the playhead is jumped\n * @returns a list of names of the animations that were scrubbed\n */\n Animator.prototype.scrub = function (animatables, value) {\n var forScrubbing = this.animations.filter(function (a) {\n return animatables.includes(a.name);\n });\n forScrubbing.forEach(function (a) { return (a.scrubTo = value); });\n return forScrubbing.map(function (a) { return a.name; });\n };\n Object.defineProperty(Animator.prototype, \"playing\", {\n /**\n * Returns a list of names of all animations and state machines currently\n * playing\n */\n get: function () {\n return this.animations\n .filter(function (a) { return a.playing; })\n .map(function (a) { return a.name; })\n .concat(this.stateMachines.filter(function (m) { return m.playing; }).map(function (m) { return m.name; }));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animator.prototype, \"paused\", {\n /**\n * Returns a list of names of all animations and state machines currently\n * paused\n */\n get: function () {\n return this.animations\n .filter(function (a) { return !a.playing; })\n .map(function (a) { return a.name; })\n .concat(this.stateMachines.filter(function (m) { return !m.playing; }).map(function (m) { return m.name; }));\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Stops and removes all named animations and state machines\n * @param animatables animations and state machines to remove\n * @returns a list of names of removed items\n */\n Animator.prototype.stop = function (animatables) {\n var _this = this;\n animatables = mapToStringArray(animatables);\n // If nothing's specified, wipe them out, all of them\n var removedNames = [];\n // Stop everything\n if (animatables.length === 0) {\n removedNames = this.animations\n .map(function (a) { return a.name; })\n .concat(this.stateMachines.map(function (m) { return m.name; }));\n // Clean up before emptying the arrays\n this.animations.forEach(function (a) { return a.cleanup(); });\n this.stateMachines.forEach(function (m) { return m.cleanup(); });\n // Empty out the arrays\n this.animations.splice(0, this.animations.length);\n this.stateMachines.splice(0, this.stateMachines.length);\n }\n else {\n // Remove only the named animations/state machines\n var animationsToRemove = this.animations.filter(function (a) {\n return animatables.includes(a.name);\n });\n animationsToRemove.forEach(function (a) {\n a.cleanup();\n _this.animations.splice(_this.animations.indexOf(a), 1);\n });\n var machinesToRemove = this.stateMachines.filter(function (m) {\n return animatables.includes(m.name);\n });\n machinesToRemove.forEach(function (m) {\n m.cleanup();\n _this.stateMachines.splice(_this.stateMachines.indexOf(m), 1);\n });\n removedNames = animationsToRemove\n .map(function (a) { return a.name; })\n .concat(machinesToRemove.map(function (m) { return m.name; }));\n }\n this.eventManager.fire({\n type: EventType.Stop,\n data: removedNames,\n });\n // Return the list of animations removed\n return removedNames;\n };\n Object.defineProperty(Animator.prototype, \"isPlaying\", {\n /**\n * Returns true if at least one animation is active\n */\n get: function () {\n return (this.animations.reduce(function (acc, curr) { return acc || curr.playing; }, false) ||\n this.stateMachines.reduce(function (acc, curr) { return acc || curr.playing; }, false));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animator.prototype, \"isPaused\", {\n /**\n * Returns true if all animations are paused and there's at least one animation\n */\n get: function () {\n return (!this.isPlaying &&\n (this.animations.length > 0 || this.stateMachines.length > 0));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animator.prototype, \"isStopped\", {\n /**\n * Returns true if there are no playing or paused animations/state machines\n */\n get: function () {\n return this.animations.length === 0 && this.stateMachines.length === 0;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * If there are no animations or state machines, add the first one found\n * @returns the name of the animation or state machine instanced\n */\n Animator.prototype.atLeastOne = function (playing, fireEvent) {\n if (fireEvent === void 0) { fireEvent = true; }\n var instancedName;\n if (this.animations.length === 0 && this.stateMachines.length === 0) {\n if (this.artboard.animationCount() > 0) {\n // Add the first animation\n this.add([(instancedName = this.artboard.animationByIndex(0).name)], playing, fireEvent);\n }\n else if (this.artboard.stateMachineCount() > 0) {\n // Add the first state machine\n this.add([(instancedName = this.artboard.stateMachineByIndex(0).name)], playing, fireEvent);\n }\n }\n return instancedName;\n };\n /**\n * Checks if any animations have looped and if so, fire the appropriate event\n */\n Animator.prototype.handleLooping = function () {\n for (var _i = 0, _a = this.animations.filter(function (a) { return a.playing; }); _i < _a.length; _i++) {\n var animation = _a[_i];\n // Emit if the animation looped\n if (animation.loopValue === 0 && animation.loopCount) {\n animation.loopCount = 0;\n // This is a one-shot; if it has ended, delete the instance\n this.stop(animation.name);\n }\n else if (animation.loopValue === 1 && animation.loopCount) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.Loop },\n });\n animation.loopCount = 0;\n }\n // Wasm indicates a loop at each time the animation\n // changes direction, so a full loop/lap occurs every\n // two loop counts\n else if (animation.loopValue === 2 && animation.loopCount > 1) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.PingPong },\n });\n animation.loopCount = 0;\n }\n }\n };\n /**\n * Checks if states have changed in state machines and fires a statechange\n * event\n */\n Animator.prototype.handleStateChanges = function () {\n var statesChanged = [];\n for (var _i = 0, _a = this.stateMachines.filter(function (sm) { return sm.playing; }); _i < _a.length; _i++) {\n var stateMachine = _a[_i];\n statesChanged.push.apply(statesChanged, stateMachine.statesChanged);\n }\n if (statesChanged.length > 0) {\n this.eventManager.fire({\n type: EventType.StateChange,\n data: statesChanged,\n });\n }\n };\n Animator.prototype.handleAdvancing = function (time) {\n this.eventManager.fire({\n type: EventType.Advance,\n data: time,\n });\n };\n return Animator;\n}());\n// #endregion\n// #region events\n/**\n * Supported event types triggered in Rive\n */\nvar EventType;\n(function (EventType) {\n EventType[\"Load\"] = \"load\";\n EventType[\"LoadError\"] = \"loaderror\";\n EventType[\"Play\"] = \"play\";\n EventType[\"Pause\"] = \"pause\";\n EventType[\"Stop\"] = \"stop\";\n EventType[\"Loop\"] = \"loop\";\n EventType[\"Draw\"] = \"draw\";\n EventType[\"Advance\"] = \"advance\";\n EventType[\"StateChange\"] = \"statechange\";\n EventType[\"RiveEvent\"] = \"riveevent\";\n EventType[\"AudioStatusChange\"] = \"audiostatuschange\";\n})(EventType || (EventType = {}));\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nvar LoopType;\n(function (LoopType) {\n LoopType[\"OneShot\"] = \"oneshot\";\n LoopType[\"Loop\"] = \"loop\";\n LoopType[\"PingPong\"] = \"pingpong\";\n})(LoopType || (LoopType = {}));\n// Manages Rive events and listeners\nvar EventManager = /** @class */ (function () {\n function EventManager(listeners) {\n if (listeners === void 0) { listeners = []; }\n this.listeners = listeners;\n }\n // Gets listeners of specified type\n EventManager.prototype.getListeners = function (type) {\n return this.listeners.filter(function (e) { return e.type === type; });\n };\n // Adds a listener\n EventManager.prototype.add = function (listener) {\n if (!this.listeners.includes(listener)) {\n this.listeners.push(listener);\n }\n };\n /**\n * Removes a listener\n * @param listener the listener with the callback to be removed\n */\n EventManager.prototype.remove = function (listener) {\n // We can't simply look for the listener as it'll be a different instance to\n // one originally subscribed. Find all the listeners of the right type and\n // then check their callbacks which should match.\n for (var i = 0; i < this.listeners.length; i++) {\n var currentListener = this.listeners[i];\n if (currentListener.type === listener.type) {\n if (currentListener.callback === listener.callback) {\n this.listeners.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * Clears all listeners of specified type, or every listener if no type is\n * specified\n * @param type the type of listeners to clear, or all listeners if not\n * specified\n */\n EventManager.prototype.removeAll = function (type) {\n var _this = this;\n if (!type) {\n this.listeners.splice(0, this.listeners.length);\n }\n else {\n this.listeners\n .filter(function (l) { return l.type === type; })\n .forEach(function (l) { return _this.remove(l); });\n }\n };\n // Fires an event\n EventManager.prototype.fire = function (event) {\n var eventListeners = this.getListeners(event.type);\n eventListeners.forEach(function (listener) { return listener.callback(event); });\n };\n return EventManager;\n}());\n// Manages a queue of tasks\nvar TaskQueueManager = /** @class */ (function () {\n function TaskQueueManager(eventManager) {\n this.eventManager = eventManager;\n this.queue = [];\n }\n // Adds a task top the queue\n TaskQueueManager.prototype.add = function (task) {\n this.queue.push(task);\n };\n // Processes all tasks in the queue\n TaskQueueManager.prototype.process = function () {\n while (this.queue.length > 0) {\n var task = this.queue.shift();\n if (task === null || task === void 0 ? void 0 : task.action) {\n task.action();\n }\n if (task === null || task === void 0 ? void 0 : task.event) {\n this.eventManager.fire(task.event);\n }\n }\n };\n return TaskQueueManager;\n}());\n// #endregion\n// #region Audio\nvar SystemAudioStatus;\n(function (SystemAudioStatus) {\n SystemAudioStatus[SystemAudioStatus[\"AVAILABLE\"] = 0] = \"AVAILABLE\";\n SystemAudioStatus[SystemAudioStatus[\"UNAVAILABLE\"] = 1] = \"UNAVAILABLE\";\n})(SystemAudioStatus || (SystemAudioStatus = {}));\n// Class to handle audio context availability and status changes\nvar AudioManager = /** @class */ (function (_super) {\n __extends(AudioManager, _super);\n function AudioManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._started = false;\n _this._enabled = false;\n _this._status = SystemAudioStatus.UNAVAILABLE;\n return _this;\n }\n AudioManager.prototype.delay = function (time) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) { return setTimeout(resolve, time); })];\n });\n });\n };\n AudioManager.prototype.timeout = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (_, reject) { return setTimeout(reject, 50); })];\n });\n });\n };\n // Alerts animations on status changes and removes the listeners to avoid alerting twice.\n AudioManager.prototype.reportToListeners = function () {\n this.fire({ type: EventType.AudioStatusChange });\n this.removeAll();\n };\n /**\n * The audio context has been resolved.\n * Alert any listeners that we can now play audio.\n * Rive will now play audio at the configured volume.\n */\n AudioManager.prototype.enableAudio = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._enabled) {\n this._enabled = true;\n this._status = SystemAudioStatus.AVAILABLE;\n this.reportToListeners();\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Check if we are able to play audio.\n *\n * We currently check the audio context, when resume() returns before a timeout we know that the\n * audio context is running and we can enable audio.\n */\n AudioManager.prototype.testAudio = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(this._status === SystemAudioStatus.UNAVAILABLE &&\n this._audioContext !== null)) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.race([this._audioContext.resume(), this.timeout()])];\n case 2:\n _b.sent();\n this.enableAudio();\n return [3 /*break*/, 4];\n case 3:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Establish audio for use with rive.\n * We both test if we can use audio intermittently and listen for user interaction.\n * The aim is to enable audio playback as soon as the browser allows this.\n */\n AudioManager.prototype._establishAudio = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._started) return [3 /*break*/, 5];\n this._started = true;\n if (!(typeof window == \"undefined\")) return [3 /*break*/, 1];\n this.enableAudio();\n return [3 /*break*/, 5];\n case 1:\n this._audioContext = new AudioContext();\n this.listenForUserAction();\n _a.label = 2;\n case 2:\n if (!(this._status === SystemAudioStatus.UNAVAILABLE)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.testAudio()];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.delay(1000)];\n case 4:\n _a.sent();\n return [3 /*break*/, 2];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AudioManager.prototype.listenForUserAction = function () {\n var _this = this;\n // NOTE: AudioContexts are ready immediately if requested in a ui callback\n // we *could* re request one in this listener.\n var _clickListener = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // note this has \"better\" results than calling `await this.testAudio()`\n // as we force audio to be enabled in the current thread, rather than chancing\n // the thread to be passed over for some other async context\n this.enableAudio();\n return [2 /*return*/];\n });\n }); };\n // NOTE: we should test this on mobile/pads\n document.addEventListener(\"pointerdown\", _clickListener, {\n once: true,\n });\n };\n /**\n * Establish the audio context for rive, this lets rive know that we can play audio.\n */\n AudioManager.prototype.establishAudio = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._establishAudio();\n return [2 /*return*/];\n });\n });\n };\n Object.defineProperty(AudioManager.prototype, \"systemVolume\", {\n get: function () {\n if (this._status === SystemAudioStatus.UNAVAILABLE) {\n // We do an immediate test to avoid depending on the delay of the running test\n this.testAudio();\n return 0;\n }\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AudioManager.prototype, \"status\", {\n get: function () {\n return this._status;\n },\n enumerable: false,\n configurable: true\n });\n return AudioManager;\n}(EventManager));\nvar audioManager = new AudioManager();\nvar FakeResizeObserver = /** @class */ (function () {\n function FakeResizeObserver() {\n }\n FakeResizeObserver.prototype.observe = function () { };\n FakeResizeObserver.prototype.unobserve = function () { };\n FakeResizeObserver.prototype.disconnect = function () { };\n return FakeResizeObserver;\n}());\nvar MyResizeObserver = globalThis.ResizeObserver || FakeResizeObserver;\n/**\n * This class takes care of any observers that will be attached to an animation.\n * It should be treated as a singleton because observers are much more performant\n * when used for observing multiple elements by a single instance.\n */\nvar ObjectObservers = /** @class */ (function () {\n function ObjectObservers() {\n var _this = this;\n this._elementsMap = new Map();\n /**\n * Resize observers trigger both when the element changes its size and also when the\n * element is added or removed from the document.\n */\n this._onObservedEntry = function (entry) {\n var observed = _this._elementsMap.get(entry.target);\n if (observed !== null) {\n observed.onResize(entry.target.clientWidth == 0 || entry.target.clientHeight == 0);\n }\n else {\n _this._resizeObserver.unobserve(entry.target);\n }\n };\n this._onObserved = function (entries) {\n entries.forEach(_this._onObservedEntry);\n };\n this._resizeObserver = new MyResizeObserver(this._onObserved);\n }\n // Adds an observable element\n ObjectObservers.prototype.add = function (element, onResize) {\n var observed = {\n onResize: onResize,\n element: element,\n };\n this._elementsMap.set(element, observed);\n this._resizeObserver.observe(element);\n return observed;\n };\n // Removes an observable element\n ObjectObservers.prototype.remove = function (observed) {\n this._resizeObserver.unobserve(observed.element);\n this._elementsMap.delete(observed.element);\n };\n return ObjectObservers;\n}());\nvar observers = new ObjectObservers();\nvar RiveFile = /** @class */ (function () {\n function RiveFile(params) {\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n this.enableRiveAssetCDN = true;\n this.referenceCount = 0;\n this.destroyed = false;\n this.src = params.src;\n this.buffer = params.buffer;\n if (params.assetLoader)\n this.assetLoader = params.assetLoader;\n this.enableRiveAssetCDN =\n typeof params.enableRiveAssetCDN == \"boolean\"\n ? params.enableRiveAssetCDN\n : true;\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad)\n this.on(EventType.Load, params.onLoad);\n if (params.onLoadError)\n this.on(EventType.LoadError, params.onLoadError);\n }\n RiveFile.prototype.initData = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, loader, _b;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this.src) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, loadRiveFile(this.src)];\n case 1:\n _a.buffer = _d.sent();\n _d.label = 2;\n case 2:\n if (this.destroyed) {\n return [2 /*return*/];\n }\n if (this.assetLoader) {\n loader = new this.runtime.CustomFileAssetLoader({\n loadContents: this.assetLoader,\n });\n }\n // Load the Rive file\n _b = this;\n return [4 /*yield*/, this.runtime.load(new Uint8Array(this.buffer), loader, this.enableRiveAssetCDN)];\n case 3:\n // Load the Rive file\n _b.file = _d.sent();\n if (this.destroyed) {\n (_c = this.file) === null || _c === void 0 ? void 0 : _c.delete();\n this.file = null;\n return [2 /*return*/];\n }\n if (this.file !== null) {\n this.eventManager.fire({\n type: EventType.Load,\n data: this,\n });\n }\n else {\n this.eventManager.fire({\n type: EventType.LoadError,\n data: null,\n });\n throw new Error(RiveFile.fileLoadErrorMessage);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n RiveFile.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer) {\n throw new Error(RiveFile.missingErrorMessage);\n }\n _a = this;\n return [4 /*yield*/, RuntimeLoader.awaitInstance()];\n case 1:\n _a.runtime = _b.sent();\n if (this.destroyed) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.initData()];\n case 2:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n RiveFile.prototype.on = function (type, callback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n };\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n RiveFile.prototype.off = function (type, callback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n };\n RiveFile.prototype.cleanup = function () {\n var _a;\n this.referenceCount -= 1;\n if (this.referenceCount <= 0) {\n this.removeAllRiveEventListeners();\n (_a = this.file) === null || _a === void 0 ? void 0 : _a.delete();\n this.file = null;\n this.destroyed = true;\n }\n };\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n RiveFile.prototype.removeAllRiveEventListeners = function (type) {\n this.eventManager.removeAll(type);\n };\n RiveFile.prototype.getInstance = function () {\n if (this.file !== null) {\n this.referenceCount += 1;\n return this.file;\n }\n };\n // Error message for missing source or buffer\n RiveFile.missingErrorMessage = \"Rive source file or data buffer required\";\n // Error message for file load error\n RiveFile.fileLoadErrorMessage = \"The file failed to load\";\n return RiveFile;\n}());\n\nvar Rive = /** @class */ (function () {\n function Rive(params) {\n var _this = this;\n var _a;\n // Tracks if a Rive file is loaded\n this.loaded = false;\n // Tracks if a Rive file is destroyed\n this.destroyed = false;\n // Reference of an object that handles any observers for the animation\n this._observed = null;\n /**\n * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n * commands (e.g. contents) can be called as soon as the file is loaded.\n * However, playback commands need to be queued and run in order once initial\n * animations and autoplay has been sorted out. This applies to play, pause,\n * and start.\n */\n this.readyForPlaying = false;\n // Runtime artboard\n this.artboard = null;\n // place to clear up event listeners\n this.eventCleanup = null;\n this.shouldDisableRiveListeners = false;\n this.automaticallyHandleEvents = false;\n // Allow the runtime to automatically load assets hosted in Rive's runtime.\n this.enableRiveAssetCDN = true;\n // Keep a local value of the set volume to update it asynchronously\n this._volume = 1;\n // Keep a local value of the set width to update it asynchronously\n this._artboardWidth = undefined;\n // Keep a local value of the set height to update it asynchronously\n this._artboardHeight = undefined;\n // Keep a local value of the device pixel ratio used in rendering and canvas/artboard resizing\n this._devicePixelRatioUsed = 1;\n // Whether the canvas element's size is 0\n this._hasZeroSize = false;\n // Audio event listener\n this._audioEventListener = null;\n // draw method bound to the class\n this._boundDraw = null;\n // Durations to generate a frame for the last second. Used for performance profiling.\n this.durations = [];\n this.frameTimes = [];\n this.frameCount = 0;\n this.isTouchScrollEnabled = false;\n this.onCanvasResize = function (hasZeroSize) {\n var toggledDisplay = _this._hasZeroSize !== hasZeroSize;\n _this._hasZeroSize = hasZeroSize;\n if (!hasZeroSize) {\n if (toggledDisplay) {\n _this.resizeDrawingSurfaceToCanvas();\n }\n }\n else if (!_this._layout.maxX || !_this._layout.maxY) {\n _this.resizeToCanvas();\n }\n };\n /**\n * Used be draw to track when a second of active rendering time has passed.\n * Used for debugging purposes\n */\n this.renderSecondTimer = 0;\n this._boundDraw = this.draw.bind(this);\n this.canvas = params.canvas;\n if (params.canvas.constructor === HTMLCanvasElement) {\n this._observed = observers.add(this.canvas, this.onCanvasResize);\n }\n this.src = params.src;\n this.buffer = params.buffer;\n this.riveFile = params.riveFile;\n this.layout = (_a = params.layout) !== null && _a !== void 0 ? _a : new Layout();\n this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\n this.isTouchScrollEnabled = !!params.isTouchScrollEnabled;\n this.automaticallyHandleEvents = !!params.automaticallyHandleEvents;\n this.enableRiveAssetCDN =\n params.enableRiveAssetCDN === undefined\n ? true\n : params.enableRiveAssetCDN;\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad)\n this.on(EventType.Load, params.onLoad);\n if (params.onLoadError)\n this.on(EventType.LoadError, params.onLoadError);\n if (params.onPlay)\n this.on(EventType.Play, params.onPlay);\n if (params.onPause)\n this.on(EventType.Pause, params.onPause);\n if (params.onStop)\n this.on(EventType.Stop, params.onStop);\n if (params.onLoop)\n this.on(EventType.Loop, params.onLoop);\n if (params.onStateChange)\n this.on(EventType.StateChange, params.onStateChange);\n if (params.onAdvance)\n this.on(EventType.Advance, params.onAdvance);\n /**\n * @deprecated Use camelCase'd versions instead.\n */\n if (params.onload && !params.onLoad)\n this.on(EventType.Load, params.onload);\n if (params.onloaderror && !params.onLoadError)\n this.on(EventType.LoadError, params.onloaderror);\n if (params.onplay && !params.onPlay)\n this.on(EventType.Play, params.onplay);\n if (params.onpause && !params.onPause)\n this.on(EventType.Pause, params.onpause);\n if (params.onstop && !params.onStop)\n this.on(EventType.Stop, params.onstop);\n if (params.onloop && !params.onLoop)\n this.on(EventType.Loop, params.onloop);\n if (params.onstatechange && !params.onStateChange)\n this.on(EventType.StateChange, params.onstatechange);\n /**\n * Asset loading\n */\n if (params.assetLoader)\n this.assetLoader = params.assetLoader;\n // Hook up the task queue\n this.taskQueue = new TaskQueueManager(this.eventManager);\n this.init({\n src: this.src,\n buffer: this.buffer,\n riveFile: this.riveFile,\n autoplay: params.autoplay,\n animations: params.animations,\n stateMachines: params.stateMachines,\n artboard: params.artboard,\n useOffscreenRenderer: params.useOffscreenRenderer,\n });\n }\n // Alternative constructor to build a Rive instance from an interface/object\n Rive.new = function (params) {\n console.warn(\"This function is deprecated: please use `new Rive({})` instead\");\n return new Rive(params);\n };\n // Event handler for when audio context becomes available\n Rive.prototype.onSystemAudioChanged = function () {\n this.volume = this._volume;\n };\n // Initializes the Rive object either from constructor or load()\n Rive.prototype.init = function (_a) {\n var _this = this;\n var src = _a.src, buffer = _a.buffer, riveFile = _a.riveFile, animations = _a.animations, stateMachines = _a.stateMachines, artboard = _a.artboard, _b = _a.autoplay, autoplay = _b === void 0 ? false : _b, _c = _a.useOffscreenRenderer, useOffscreenRenderer = _c === void 0 ? false : _c;\n if (this.destroyed) {\n return;\n }\n this.src = src;\n this.buffer = buffer;\n this.riveFile = riveFile;\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer && !this.riveFile) {\n throw new RiveError(Rive.missingErrorMessage);\n }\n // List of animations that should be initialized.\n var startingAnimationNames = mapToStringArray(animations);\n // List of state machines that should be initialized\n var startingStateMachineNames = mapToStringArray(stateMachines);\n // Ensure loaded is marked as false if loading new file\n this.loaded = false;\n this.readyForPlaying = false;\n // Ensure the runtime is loaded\n RuntimeLoader.awaitInstance()\n .then(function (runtime) {\n if (_this.destroyed) {\n return;\n }\n _this.runtime = runtime;\n _this.removeRiveListeners();\n _this.deleteRiveRenderer();\n // Get the canvas where you want to render the animation and create a renderer\n _this.renderer = _this.runtime.makeRenderer(_this.canvas, useOffscreenRenderer);\n // Initial size adjustment based on devicePixelRatio if no width/height are\n // specified explicitly\n if (!(_this.canvas.width || _this.canvas.height)) {\n _this.resizeDrawingSurfaceToCanvas();\n }\n // Load Rive data from a source uri or a data buffer\n _this.initData(artboard, startingAnimationNames, startingStateMachineNames, autoplay)\n .then(function () { return _this.setupRiveListeners(); })\n .catch(function (e) {\n console.error(e);\n });\n })\n .catch(function (e) {\n console.error(e);\n });\n };\n /**\n * Setup Rive Listeners on the canvas\n * @param riveListenerOptions - Enables TouchEvent events on the canvas. Set to true to allow\n * touch scrolling on the canvas element on touch-enabled devices\n * i.e. { isTouchScrollEnabled: true }\n */\n Rive.prototype.setupRiveListeners = function (riveListenerOptions) {\n var _this = this;\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n if (!this.shouldDisableRiveListeners) {\n var activeStateMachines = (this.animator.stateMachines || [])\n .filter(function (sm) { return sm.playing && _this.runtime.hasListeners(sm.instance); })\n .map(function (sm) { return sm.instance; });\n var touchScrollEnabledOption = this.isTouchScrollEnabled;\n if (riveListenerOptions &&\n \"isTouchScrollEnabled\" in riveListenerOptions) {\n touchScrollEnabledOption = riveListenerOptions.isTouchScrollEnabled;\n }\n this.eventCleanup = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.registerTouchInteractions)({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachines,\n renderer: this.renderer,\n rive: this.runtime,\n fit: this._layout.runtimeFit(this.runtime),\n alignment: this._layout.runtimeAlignment(this.runtime),\n isTouchScrollEnabled: touchScrollEnabledOption,\n layoutScaleFactor: this._layout.layoutScaleFactor,\n });\n }\n };\n /**\n * Remove Rive Listeners setup on the canvas\n */\n Rive.prototype.removeRiveListeners = function () {\n if (this.eventCleanup) {\n this.eventCleanup();\n this.eventCleanup = null;\n }\n };\n /**\n * If the instance has audio and the system audio is not ready\n * we hook the instance to the audio manager\n */\n Rive.prototype.initializeAudio = function () {\n var _this = this;\n var _a;\n // Initialize audio if needed\n if (audioManager.status == SystemAudioStatus.UNAVAILABLE) {\n if (((_a = this.artboard) === null || _a === void 0 ? void 0 : _a.hasAudio) && this._audioEventListener === null) {\n this._audioEventListener = {\n type: EventType.AudioStatusChange,\n callback: function () { return _this.onSystemAudioChanged(); },\n };\n audioManager.add(this._audioEventListener);\n audioManager.establishAudio();\n }\n }\n };\n Rive.prototype.initArtboardSize = function () {\n if (!this.artboard)\n return;\n // Use preset values if they are not undefined\n this._artboardWidth = this.artboard.width =\n this._artboardWidth || this.artboard.width;\n this._artboardHeight = this.artboard.height =\n this._artboardHeight || this.artboard.height;\n };\n // Initializes runtime with Rive data and preps for playing\n Rive.prototype.initData = function (artboardName, animationNames, stateMachineNames, autoplay) {\n return __awaiter(this, void 0, void 0, function () {\n var error_1, msg;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 3, , 4]);\n if (!(this.riveFile == null)) return [3 /*break*/, 2];\n this.riveFile = new RiveFile({\n src: this.src,\n buffer: this.buffer,\n enableRiveAssetCDN: this.enableRiveAssetCDN,\n assetLoader: this.assetLoader,\n });\n return [4 /*yield*/, this.riveFile.init()];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n // Check for riveFile in case it has been cleaned up while initializing;\n if (!this.riveFile) {\n throw new RiveError(Rive.cleanupErrorMessage);\n }\n this.file = this.riveFile.getInstance();\n // Initialize and draw frame\n this.initArtboard(artboardName, animationNames, stateMachineNames, autoplay);\n // Initialize the artboard size\n this.initArtboardSize();\n // Check for audio\n this.initializeAudio();\n // Everything's set up, emit a load event\n this.loaded = true;\n this.eventManager.fire({\n type: EventType.Load,\n data: (_a = this.src) !== null && _a !== void 0 ? _a : \"buffer\",\n });\n // Flag ready for playback commands and clear the task queue; this order\n // is important or it may infinitely recurse\n this.readyForPlaying = true;\n this.taskQueue.process();\n this.drawFrame();\n return [2 /*return*/, Promise.resolve()];\n case 3:\n error_1 = _b.sent();\n msg = resolveErrorMessage(error_1);\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return [2 /*return*/, Promise.reject(msg)];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n // Initialize for playback\n Rive.prototype.initArtboard = function (artboardName, animationNames, stateMachineNames, autoplay) {\n if (!this.file) {\n return;\n }\n // Fetch the artboard\n var rootArtboard = artboardName\n ? this.file.artboardByName(artboardName)\n : this.file.defaultArtboard();\n // Check we have a working artboard\n if (!rootArtboard) {\n var msg = \"Invalid artboard name or no default artboard\";\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return;\n }\n this.artboard = rootArtboard;\n rootArtboard.volume = this._volume * audioManager.systemVolume;\n // Check that the artboard has at least 1 animation\n if (this.artboard.animationCount() < 1) {\n var msg = \"Artboard has no animations\";\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n throw msg;\n }\n // Initialize the animator\n this.animator = new Animator(this.runtime, this.artboard, this.eventManager);\n // Initialize the animations; as loaded hasn't happened yet, we need to\n // suppress firing the play/pause events until the load event has fired. To\n // do this we tell the animator to suppress firing events, and add event\n // firing to the task queue.\n var instanceNames;\n if (animationNames.length > 0 || stateMachineNames.length > 0) {\n instanceNames = animationNames.concat(stateMachineNames);\n this.animator.initLinearAnimations(animationNames, autoplay);\n this.animator.initStateMachines(stateMachineNames, autoplay);\n }\n else {\n instanceNames = [this.animator.atLeastOne(autoplay, false)];\n }\n // Queue up firing the playback events\n this.taskQueue.add({\n event: {\n type: autoplay ? EventType.Play : EventType.Pause,\n data: instanceNames,\n },\n });\n };\n // Draws the current artboard frame\n Rive.prototype.drawFrame = function () {\n var _a;\n if ((_a = document === null || document === void 0 ? void 0 : document.timeline) === null || _a === void 0 ? void 0 : _a.currentTime) {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n this._boundDraw(document.timeline.currentTime);\n }\n }\n else {\n this.startRendering();\n }\n };\n /**\n * Draw rendering loop; renders animation frames at the correct time interval.\n * @param time the time at which to render a frame\n */\n Rive.prototype.draw = function (time, onSecond) {\n // Clear the frameRequestId, as we're now rendering a fresh frame\n this.frameRequestId = null;\n var before = performance.now();\n // On the first pass, make sure lastTime has a valid value\n if (!this.lastRenderTime) {\n this.lastRenderTime = time;\n }\n // Handle the onSecond callback\n this.renderSecondTimer += time - this.lastRenderTime;\n if (this.renderSecondTimer > 5000) {\n this.renderSecondTimer = 0;\n onSecond === null || onSecond === void 0 ? void 0 : onSecond();\n }\n // Calculate the elapsed time between frames in seconds\n var elapsedTime = (time - this.lastRenderTime) / 1000;\n this.lastRenderTime = time;\n // - Advance non-paused animations by the elapsed number of seconds\n // - Advance any animations that require scrubbing\n // - Advance to the first frame even when autoplay is false\n var activeAnimations = this.animator.animations\n .filter(function (a) { return a.playing || a.needsScrub; })\n // The scrubbed animations must be applied first to prevent weird artifacts\n // if the playing animations conflict with the scrubbed animating attribuates.\n .sort(function (first) { return (first.needsScrub ? -1 : 1); });\n for (var _i = 0, activeAnimations_1 = activeAnimations; _i < activeAnimations_1.length; _i++) {\n var animation = activeAnimations_1[_i];\n animation.advance(elapsedTime);\n if (animation.instance.didLoop) {\n animation.loopCount += 1;\n }\n animation.apply(1.0);\n }\n // - Advance non-paused state machines by the elapsed number of seconds\n // - Advance to the first frame even when autoplay is false\n var activeStateMachines = this.animator.stateMachines.filter(function (a) { return a.playing; });\n for (var _a = 0, activeStateMachines_1 = activeStateMachines; _a < activeStateMachines_1.length; _a++) {\n var stateMachine = activeStateMachines_1[_a];\n // Check for events before the current frame's state machine advance\n var numEventsReported = stateMachine.reportedEventCount();\n if (numEventsReported) {\n for (var i = 0; i < numEventsReported; i++) {\n var event_1 = stateMachine.reportedEventAt(i);\n if (event_1) {\n if (event_1.type === RiveEventType.OpenUrl) {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event_1,\n });\n // Handle the event side effect if explicitly enabled\n if (this.automaticallyHandleEvents) {\n var newAnchorTag = document.createElement(\"a\");\n var _b = event_1, url = _b.url, target = _b.target;\n var sanitizedUrl = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.sanitizeUrl)(url);\n url && newAnchorTag.setAttribute(\"href\", sanitizedUrl);\n target && newAnchorTag.setAttribute(\"target\", target);\n if (sanitizedUrl && sanitizedUrl !== _utils__WEBPACK_IMPORTED_MODULE_3__.BLANK_URL) {\n newAnchorTag.click();\n }\n }\n }\n else {\n this.eventManager.fire({\n type: EventType.RiveEvent,\n data: event_1,\n });\n }\n }\n }\n }\n stateMachine.advanceAndApply(elapsedTime);\n // stateMachine.instance.apply(this.artboard);\n }\n // Once the animations have been applied to the artboard, advance it\n // by the elapsed time.\n if (this.animator.stateMachines.length == 0) {\n this.artboard.advance(elapsedTime);\n }\n var renderer = this.renderer;\n // Canvas must be wiped to prevent artifacts\n renderer.clear();\n renderer.save();\n // Update the renderer alignment if necessary\n this.alignRenderer();\n // Do not draw on 0 canvas size\n if (!this._hasZeroSize) {\n this.artboard.draw(renderer);\n }\n renderer.restore();\n renderer.flush();\n // Check for any animations that looped\n this.animator.handleLooping();\n // Check for any state machines that had a state change\n this.animator.handleStateChanges();\n // Report advanced time\n this.animator.handleAdvancing(elapsedTime);\n // Add duration to create frame to durations array\n this.frameCount++;\n var after = performance.now();\n this.frameTimes.push(after);\n this.durations.push(after - before);\n while (this.frameTimes[0] <= after - 1000) {\n this.frameTimes.shift();\n this.durations.shift();\n }\n // Calling requestAnimationFrame will rerun draw() at the correct rate:\n // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n if (this.animator.isPlaying) {\n // Request a new rendering frame\n this.startRendering();\n }\n else if (this.animator.isPaused) {\n // Reset the end time so on playback it starts at the correct frame\n this.lastRenderTime = 0;\n }\n else if (this.animator.isStopped) {\n // Reset animation instances, artboard and time\n // TODO: implement this properly when we have instancing\n // this.initArtboard();\n // this.drawFrame();\n this.lastRenderTime = 0;\n }\n };\n /**\n * Align the renderer\n */\n Rive.prototype.alignRenderer = function () {\n var _a = this, renderer = _a.renderer, runtime = _a.runtime, _layout = _a._layout, artboard = _a.artboard;\n // Align things up safe in the knowledge we can restore if changed\n renderer.align(_layout.runtimeFit(runtime), _layout.runtimeAlignment(runtime), {\n minX: _layout.minX,\n minY: _layout.minY,\n maxX: _layout.maxX,\n maxY: _layout.maxY,\n }, artboard.bounds, this._devicePixelRatioUsed * _layout.layoutScaleFactor);\n };\n Object.defineProperty(Rive.prototype, \"fps\", {\n get: function () {\n return this.durations.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"frameTime\", {\n get: function () {\n if (this.durations.length === 0) {\n return 0;\n }\n return (this.durations.reduce(function (a, b) { return a + b; }, 0) / this.durations.length).toFixed(4);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Cleans up all Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances,\n * renderer instance, file and runtime.\n *\n * Once this is called, you will need to initialise a new instance of the\n * Rive class\n */\n Rive.prototype.cleanup = function () {\n var _a;\n this.destroyed = true;\n // Stop the renderer if it hasn't already been stopped.\n this.stopRendering();\n // Clean up any artboard, animation or state machine instances.\n this.cleanupInstances();\n // Remove from observer\n if (this._observed !== null) {\n observers.remove(this._observed);\n }\n this.removeRiveListeners();\n if (this.file) {\n (_a = this.riveFile) === null || _a === void 0 ? void 0 : _a.cleanup();\n this.file = null;\n }\n this.riveFile = null;\n this.deleteRiveRenderer();\n if (this._audioEventListener !== null) {\n audioManager.remove(this._audioEventListener);\n this._audioEventListener = null;\n }\n };\n /**\n * Cleans up the Renderer object. Only call this API if you no longer\n * need to render Rive content in your session.\n */\n Rive.prototype.deleteRiveRenderer = function () {\n var _a;\n (_a = this.renderer) === null || _a === void 0 ? void 0 : _a.delete();\n this.renderer = null;\n };\n /**\n * Cleans up any Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances.\n *\n * Once this is called, things will need to be reinitialized or bad things\n * might happen.\n */\n Rive.prototype.cleanupInstances = function () {\n if (this.eventCleanup !== null) {\n this.eventCleanup();\n }\n // Delete all animation and state machine instances\n this.stop();\n if (this.artboard) {\n this.artboard.delete();\n this.artboard = null;\n }\n };\n /**\n * Tries to query the setup Artboard for a text run node with the given name.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - TextValueRun node or undefined if the text run cannot be queried\n */\n Rive.prototype.retrieveTextRun = function (textRunName) {\n var _a;\n if (!textRunName) {\n console.warn(\"No text run name provided\");\n return;\n }\n if (!this.artboard) {\n console.warn(\"Tried to access text run, but the Artboard is null\");\n return;\n }\n var textRun = this.artboard.textRun(textRunName);\n if (!textRun) {\n console.warn(\"Could not access a text run with name '\".concat(textRunName, \"' in the '\").concat((_a = this.artboard) === null || _a === void 0 ? void 0 : _a.name, \"' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime.\"));\n return;\n }\n return textRun;\n };\n /**\n * Returns a string from a given text run node name, or undefined if the text run\n * cannot be queried.\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @returns - String value of the text run node or undefined\n */\n Rive.prototype.getTextRunValue = function (textRunName) {\n var textRun = this.retrieveTextRun(textRunName);\n return textRun ? textRun.text : undefined;\n };\n /**\n * Sets a text value for a given text run node name if possible\n *\n * @param textRunName - Name of the text run node associated with a text object\n * @param textRunValue - String value to set on the text run node\n */\n Rive.prototype.setTextRunValue = function (textRunName, textRunValue) {\n var textRun = this.retrieveTextRun(textRunName);\n if (textRun) {\n textRun.text = textRunValue;\n }\n };\n // Plays specified animations; if none specified, it unpauses everything.\n Rive.prototype.play = function (animationNames, autoplay) {\n var _this = this;\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, queue up the play\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: function () { return _this.play(animationNames, autoplay); },\n });\n return;\n }\n this.animator.play(animationNames);\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.setupRiveListeners();\n this.startRendering();\n };\n // Pauses specified animations; if none specified, pauses all.\n Rive.prototype.pause = function (animationNames) {\n var _this = this;\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: function () { return _this.pause(animationNames); },\n });\n return;\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.animator.pause(animationNames);\n };\n Rive.prototype.scrub = function (animationNames, value) {\n var _this = this;\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: function () { return _this.scrub(animationNames, value); },\n });\n return;\n }\n // Scrub the animation time; we draw a single frame here so that if\n // nothing's currently playing, the scrubbed animation is still rendered/\n this.animator.scrub(animationNames, value || 0);\n this.drawFrame();\n };\n // Stops specified animations; if none specifies, stops them all.\n Rive.prototype.stop = function (animationNames) {\n var _this = this;\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: function () { return _this.stop(animationNames); },\n });\n return;\n }\n // If there is no artboard, this.animator will be undefined\n if (this.animator) {\n this.animator.stop(animationNames);\n }\n if (this.eventCleanup) {\n this.eventCleanup();\n }\n };\n /**\n * Resets the animation\n * @param artboard the name of the artboard, or default if none given\n * @param animations the names of animations for playback\n * @param stateMachines the names of state machines for playback\n * @param autoplay whether to autoplay when reset, defaults to false\n *\n */\n Rive.prototype.reset = function (params) {\n var _a;\n // Get the current artboard, animations, state machines, and playback states\n var artBoardName = params === null || params === void 0 ? void 0 : params.artboard;\n var animationNames = mapToStringArray(params === null || params === void 0 ? void 0 : params.animations);\n var stateMachineNames = mapToStringArray(params === null || params === void 0 ? void 0 : params.stateMachines);\n var autoplay = (_a = params === null || params === void 0 ? void 0 : params.autoplay) !== null && _a !== void 0 ? _a : false;\n // Stop everything and clean up\n this.cleanupInstances();\n // Reinitialize an artboard instance with the state\n this.initArtboard(artBoardName, animationNames, stateMachineNames, autoplay);\n this.taskQueue.process();\n };\n // Loads a new Rive file, keeping listeners in place\n Rive.prototype.load = function (params) {\n this.file = null;\n // Stop all animations\n this.stop();\n // Reinitialize\n this.init(params);\n };\n Object.defineProperty(Rive.prototype, \"layout\", {\n /**\n * Returns the current layout. Note that layout should be treated as\n * immutable. If you want to change the layout, create a new one use the\n * layout setter\n */\n get: function () {\n return this._layout;\n },\n // Sets a new layout\n set: function (layout) {\n this._layout = layout;\n // If the maxX or maxY are 0, then set them to the canvas width and height\n if (!layout.maxX || !layout.maxY) {\n this.resizeToCanvas();\n }\n if (this.loaded && !this.animator.isPlaying) {\n this.drawFrame();\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets the layout bounds to the current canvas size; this is typically called\n * when the canvas is resized\n */\n Rive.prototype.resizeToCanvas = function () {\n this._layout = this.layout.copyWith({\n minX: 0,\n minY: 0,\n maxX: this.canvas.width,\n maxY: this.canvas.height,\n });\n };\n /**\n * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n * and resize the layout to match the new drawing surface afterwards.\n * Useful function for consumers to include in a window resize listener.\n *\n * This method will set the {@link devicePixelRatioUsed} property.\n *\n * Optionally, you can provide a {@link customDevicePixelRatio} to provide a\n * custom value.\n */\n Rive.prototype.resizeDrawingSurfaceToCanvas = function (customDevicePixelRatio) {\n if (this.canvas instanceof HTMLCanvasElement && !!window) {\n var _a = this.canvas.getBoundingClientRect(), width = _a.width, height = _a.height;\n var dpr = customDevicePixelRatio || window.devicePixelRatio || 1;\n this.devicePixelRatioUsed = dpr;\n this.canvas.width = dpr * width;\n this.canvas.height = dpr * height;\n this.resizeToCanvas();\n this.drawFrame();\n if (this.layout.fit === Fit.Layout) {\n var scaleFactor = this._layout.layoutScaleFactor;\n this.artboard.width = width / scaleFactor;\n this.artboard.height = height / scaleFactor;\n }\n }\n };\n Object.defineProperty(Rive.prototype, \"source\", {\n // Returns the animation source, which may be undefined\n get: function () {\n return this.src;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"activeArtboard\", {\n /**\n * Returns the name of the active artboard\n */\n get: function () {\n return this.artboard ? this.artboard.name : \"\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"animationNames\", {\n // Returns a list of animation names on the chosen artboard\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n var animationNames = [];\n for (var i = 0; i < this.artboard.animationCount(); i++) {\n animationNames.push(this.artboard.animationByIndex(i).name);\n }\n return animationNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"stateMachineNames\", {\n /**\n * Returns a list of state machine names from the current artboard\n */\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded || !this.artboard) {\n return [];\n }\n var stateMachineNames = [];\n for (var i = 0; i < this.artboard.stateMachineCount(); i++) {\n stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n }\n return stateMachineNames;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the inputs for the specified instanced state machine, or an empty\n * list if the name is invalid or the state machine is not instanced\n * @param name the state machine name\n * @returns the inputs for the named state machine\n */\n Rive.prototype.stateMachineInputs = function (name) {\n // If the file's not loaded, early out, nothing to pause\n if (!this.loaded) {\n return;\n }\n var stateMachine = this.animator.stateMachines.find(function (m) { return m.name === name; });\n return stateMachine === null || stateMachine === void 0 ? void 0 : stateMachine.inputs;\n };\n // Returns the input with the provided name at the given path\n Rive.prototype.retrieveInputAtPath = function (name, path) {\n if (!name) {\n console.warn(\"No input name provided for path '\".concat(path, \"'\"));\n return;\n }\n if (!this.artboard) {\n console.warn(\"Tried to access input: '\".concat(name, \"', at path: '\").concat(path, \"', but the Artboard is null\"));\n return;\n }\n var input = this.artboard.inputByPath(name, path);\n if (!input) {\n console.warn(\"Could not access an input with name: '\".concat(name, \"', at path:'\").concat(path, \"'\"));\n return;\n }\n return input;\n };\n /**\n * Set the boolean input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n Rive.prototype.setBooleanStateAtPath = function (inputName, value, path) {\n var input = this.retrieveInputAtPath(inputName, path);\n if (!input)\n return;\n if (input.type === StateMachineInputType.Boolean) {\n input.asBool().value = value;\n }\n else {\n console.warn(\"Input with name: '\".concat(inputName, \"', at path:'\").concat(path, \"' is not a boolean\"));\n }\n };\n /**\n * Set the number input with the provided name at the given path with value\n * @param input the state machine input name\n * @param value the value to set the input to\n * @param path the path the input is located at an artboard level\n */\n Rive.prototype.setNumberStateAtPath = function (inputName, value, path) {\n var input = this.retrieveInputAtPath(inputName, path);\n if (!input)\n return;\n if (input.type === StateMachineInputType.Number) {\n input.asNumber().value = value;\n }\n else {\n console.warn(\"Input with name: '\".concat(inputName, \"', at path:'\").concat(path, \"' is not a number\"));\n }\n };\n /**\n * Fire the trigger with the provided name at the given path\n * @param input the state machine input name\n * @param path the path the input is located at an artboard level\n */\n Rive.prototype.fireStateAtPath = function (inputName, path) {\n var input = this.retrieveInputAtPath(inputName, path);\n if (!input)\n return;\n if (input.type === StateMachineInputType.Trigger) {\n input.asTrigger().fire();\n }\n else {\n console.warn(\"Input with name: '\".concat(inputName, \"', at path:'\").concat(path, \"' is not a trigger\"));\n }\n };\n // Returns the TextValueRun object for the provided name at the given path\n Rive.prototype.retrieveTextAtPath = function (name, path) {\n if (!name) {\n console.warn(\"No text name provided for path '\".concat(path, \"'\"));\n return;\n }\n if (!path) {\n console.warn(\"No path provided for text '\".concat(name, \"'\"));\n return;\n }\n if (!this.artboard) {\n console.warn(\"Tried to access text: '\".concat(name, \"', at path: '\").concat(path, \"', but the Artboard is null\"));\n return;\n }\n var text = this.artboard.textByPath(name, path);\n if (!text) {\n console.warn(\"Could not access text with name: '\".concat(name, \"', at path:'\").concat(path, \"'\"));\n return;\n }\n return text;\n };\n /**\n * Retrieves the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param path The path to the text run within the artboard\n * @returns The text value of the text run, or undefined if not found\n *\n * @example\n * // Get the text value for a text run named \"title\" at one nested artboard deep\n * const titleText = riveInstance.getTextRunValueAtPath(\"title\", \"artboard1\");\n *\n * @example\n * // Get the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * const subtitleText = riveInstance.getTextRunValueAtPath(\"subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n Rive.prototype.getTextRunValueAtPath = function (textName, path) {\n var run = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\"Could not get text with name: '\".concat(textName, \"', at path:'\").concat(path, \"'\"));\n return;\n }\n return run.text;\n };\n /**\n * Sets the text value for a specified text run at a given path\n * @param textName The name of the text run\n * @param value The new text value to set\n * @param path The path to the text run within the artboard\n * @returns void\n *\n * @example\n * // Set the text value for a text run named \"title\" at one nested artboard deep\n * riveInstance.setTextRunValueAtPath(\"title\", \"New Title\", \"artboard1\");\n *\n * @example\n * // Set the text value for a text run named \"subtitle\" within a nested group two artboards deep\n * riveInstance.setTextRunValueAtPath(\"subtitle\", \"New Subtitle\", \"group/nestedGroup\");\n *\n * @remarks\n * If the text run cannot be found at the specified path, a warning will be logged to the console.\n */\n Rive.prototype.setTextRunValueAtPath = function (textName, value, path) {\n var run = this.retrieveTextAtPath(textName, path);\n if (!run) {\n console.warn(\"Could not set text with name: '\".concat(textName, \"', at path:'\").concat(path, \"'\"));\n return;\n }\n run.text = value;\n };\n Object.defineProperty(Rive.prototype, \"playingStateMachineNames\", {\n // Returns a list of playing machine names\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter(function (m) { return m.playing; })\n .map(function (m) { return m.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"playingAnimationNames\", {\n // Returns a list of playing animation names\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations.filter(function (a) { return a.playing; }).map(function (a) { return a.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"pausedAnimationNames\", {\n // Returns a list of paused animation names\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations\n .filter(function (a) { return !a.playing; })\n .map(function (a) { return a.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"pausedStateMachineNames\", {\n /**\n * Returns a list of paused machine names\n * @returns a list of state machine names that are paused\n */\n get: function () {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter(function (m) { return !m.playing; })\n .map(function (m) { return m.name; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"isPlaying\", {\n /**\n * @returns true if any animation is playing\n */\n get: function () {\n return this.animator.isPlaying;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"isPaused\", {\n /**\n * @returns true if all instanced animations are paused\n */\n get: function () {\n return this.animator.isPaused;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"isStopped\", {\n /**\n * @returns true if no animations are playing or paused\n */\n get: function () {\n return this.animator.isStopped;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"bounds\", {\n /**\n * @returns the bounds of the current artboard, or undefined if the artboard\n * isn't loaded yet.\n */\n get: function () {\n return this.artboard ? this.artboard.bounds : undefined;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n Rive.prototype.on = function (type, callback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n };\n /**\n * Unsubscribes from a Rive-generated event\n * @param type the type of event to unsubscribe from\n * @param callback the callback to unsubscribe\n */\n Rive.prototype.off = function (type, callback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n };\n /**\n * Unsubscribes from a Rive-generated event\n * @deprecated\n * @param callback the callback to unsubscribe from\n */\n Rive.prototype.unsubscribe = function (type, callback) {\n console.warn(\"This function is deprecated: please use `off()` instead.\");\n this.off(type, callback);\n };\n /**\n * Unsubscribes all Rive listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n Rive.prototype.removeAllRiveEventListeners = function (type) {\n this.eventManager.removeAll(type);\n };\n /**\n * Unsubscribes all listeners from an event type, or everything if no type is\n * given\n * @deprecated\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n Rive.prototype.unsubscribeAll = function (type) {\n console.warn(\"This function is deprecated: please use `removeAllRiveEventListeners()` instead.\");\n this.removeAllRiveEventListeners(type);\n };\n /**\n * Stops the rendering loop; this is different from pausing in that it doesn't\n * change the state of any animation. It stops rendering from occurring. This\n * is designed for situations such as when Rive isn't visible.\n *\n * The only way to start rendering again is to call `startRendering`.\n * Animations that are marked as playing will start from the position that\n * they would have been at if rendering had not been stopped.\n */\n Rive.prototype.stopRendering = function () {\n if (this.loaded && this.frameRequestId) {\n if (this.runtime.cancelAnimationFrame) {\n this.runtime.cancelAnimationFrame(this.frameRequestId);\n }\n else {\n cancelAnimationFrame(this.frameRequestId);\n }\n this.frameRequestId = null;\n }\n };\n /**\n * Starts the rendering loop if it has been previously stopped. If the\n * renderer is already active, then this will have zero effect.\n */\n Rive.prototype.startRendering = function () {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n if (this.runtime.requestAnimationFrame) {\n this.frameRequestId = this.runtime.requestAnimationFrame(this._boundDraw);\n }\n else {\n this.frameRequestId = requestAnimationFrame(this._boundDraw);\n }\n }\n };\n /**\n * Enables frames-per-second (FPS) reporting for the runtime\n * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n * the page with the FPS reading\n * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n */\n Rive.prototype.enableFPSCounter = function (fpsCallback) {\n this.runtime.enableFPSCounter(fpsCallback);\n };\n /**\n * Disables frames-per-second (FPS) reporting for the runtime\n */\n Rive.prototype.disableFPSCounter = function () {\n this.runtime.disableFPSCounter();\n };\n Object.defineProperty(Rive.prototype, \"contents\", {\n /**\n * Returns the contents of a Rive file: the artboards, animations, and state machines\n */\n get: function () {\n if (!this.loaded) {\n return undefined;\n }\n var riveContents = {\n artboards: [],\n };\n for (var i = 0; i < this.file.artboardCount(); i++) {\n var artboard = this.file.artboardByIndex(i);\n var artboardContents = {\n name: artboard.name,\n animations: [],\n stateMachines: [],\n };\n for (var j = 0; j < artboard.animationCount(); j++) {\n var animation = artboard.animationByIndex(j);\n artboardContents.animations.push(animation.name);\n }\n for (var k = 0; k < artboard.stateMachineCount(); k++) {\n var stateMachine = artboard.stateMachineByIndex(k);\n var name_1 = stateMachine.name;\n var instance = new this.runtime.StateMachineInstance(stateMachine, artboard);\n var inputContents = [];\n for (var l = 0; l < instance.inputCount(); l++) {\n var input = instance.input(l);\n inputContents.push({ name: input.name, type: input.type });\n }\n artboardContents.stateMachines.push({\n name: name_1,\n inputs: inputContents,\n });\n }\n riveContents.artboards.push(artboardContents);\n }\n return riveContents;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"volume\", {\n /**\n * Getter / Setter for the volume of the artboard\n */\n get: function () {\n if (this.artboard && this.artboard.volume !== this._volume) {\n this._volume = this.artboard.volume;\n }\n return this._volume;\n },\n set: function (value) {\n this._volume = value;\n if (this.artboard) {\n this.artboard.volume = value * audioManager.systemVolume;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"artboardWidth\", {\n /**\n * The width of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * width has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard width is\n * automatically set.\n */\n get: function () {\n var _a;\n if (this.artboard) {\n return this.artboard.width;\n }\n return (_a = this._artboardWidth) !== null && _a !== void 0 ? _a : 0;\n },\n set: function (value) {\n this._artboardWidth = value;\n if (this.artboard) {\n this.artboard.width = value;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rive.prototype, \"artboardHeight\", {\n /**\n * The height of the artboard.\n *\n * This will return 0 if the artboard is not loaded yet and a custom\n * height has not been set.\n *\n * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard height is\n * automatically set.\n */\n get: function () {\n var _a;\n if (this.artboard) {\n return this.artboard.height;\n }\n return (_a = this._artboardHeight) !== null && _a !== void 0 ? _a : 0;\n },\n set: function (value) {\n this._artboardHeight = value;\n if (this.artboard) {\n this.artboard.height = value;\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Reset the artboard size to its original values.\n */\n Rive.prototype.resetArtboardSize = function () {\n if (this.artboard) {\n this.artboard.resetArtboardSize();\n this._artboardWidth = this.artboard.width;\n this._artboardHeight = this.artboard.height;\n }\n else {\n // If the artboard isn't loaded, we need to reset the custom width and height\n this._artboardWidth = undefined;\n this._artboardHeight = undefined;\n }\n };\n Object.defineProperty(Rive.prototype, \"devicePixelRatioUsed\", {\n /**\n * The device pixel ratio used in rendering and canvas/artboard resizing.\n *\n * This value will be overidden by the device pixel ratio used in\n * {@link resizeDrawingSurfaceToCanvas}. If you use that method, do not set this value.\n */\n get: function () {\n return this._devicePixelRatioUsed;\n },\n set: function (value) {\n this._devicePixelRatioUsed = value;\n },\n enumerable: false,\n configurable: true\n });\n // Error message for missing source or buffer\n Rive.missingErrorMessage = \"Rive source file or data buffer required\";\n // Error message for removed rive file\n Rive.cleanupErrorMessage = \"Attempt to use file after calling cleanup.\";\n return Rive;\n}());\n\n// Loads Rive data from a URI via fetch.\nvar loadRiveFile = function (src) { return __awaiter(void 0, void 0, void 0, function () {\n var req, res, buffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n req = new Request(src);\n return [4 /*yield*/, fetch(req)];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, res.arrayBuffer()];\n case 2:\n buffer = _a.sent();\n return [2 /*return*/, buffer];\n }\n });\n}); };\n// #endregion\n// #region utility functions\n/*\n * Utility function to ensure an object is a string array\n */\nvar mapToStringArray = function (obj) {\n if (typeof obj === \"string\") {\n return [obj];\n }\n else if (obj instanceof Array) {\n return obj;\n }\n // If obj is undefined, return empty array\n return [];\n};\n// #endregion\n// #region testing utilities\n// Exports to only be used for tests\nvar Testing = {\n EventManager: EventManager,\n TaskQueueManager: TaskQueueManager,\n};\n// #endregion\n// #region asset loaders\n/**\n * Decodes bytes into an audio asset.\n *\n * Be sure to call `.unref()` on the audio once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nvar decodeAudio = function (bytes) {\n return new Promise(function (resolve) {\n return RuntimeLoader.getInstance(function (rive) {\n rive.decodeAudio(bytes, resolve);\n });\n });\n};\n/**\n * Decodes bytes into an image.\n *\n * Be sure to call `.unref()` on the image once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nvar decodeImage = function (bytes) {\n return new Promise(function (resolve) {\n return RuntimeLoader.getInstance(function (rive) {\n rive.decodeImage(bytes, resolve);\n });\n });\n};\n/**\n * Decodes bytes into a font.\n *\n * Be sure to call `.unref()` on the font once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nvar decodeFont = function (bytes) {\n return new Promise(function (resolve) {\n return RuntimeLoader.getInstance(function (rive) {\n rive.decodeFont(bytes, resolve);\n });\n });\n};\n// #endregion\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=rive.js.map","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addQuarters from \"../addQuarters/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1024__;","module.exports = __WEBPACK_EXTERNAL_MODULE__314__;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n } else {\n fetchApi = fetch\n }\n}\n\nif (typeof require !== 'undefined' && typeof window === 'undefined') {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import { l, k, c, b, d, e, f, g } from './chunk-DCAKKOYV.js';\n\nvar m=class{_dotLottie;_animationsMap=new Map;_themeMap=new Map;_stateMachinesMap=new Map;_manifest;get dotLottie(){return this._dotLottie}get animationsMap(){return this._animationsMap}get themeMap(){return this._themeMap}get stateMachinesMap(){return this._stateMachinesMap}get manifest(){return this._manifest}async loadFromUrl(i){let t=await fetch(i,{method:\"GET\",mode:\"cors\"});if(!t.ok)throw new Error(`Failed to load dotLottie from ${i} with status ${t.status}`);let a=t.headers.get(\"content-type\");if(a!=null&&a.includes(\"application/json\")){let e=await t.json();if(!l(e))throw new Error(`Invalid lottie JSON at ${i}`);let n=k(i);this._animationsMap.set(n,e);let p={activeAnimationId:n,animations:[{id:n}]};this._manifest=p;}else {this._dotLottie=await c(await t.arrayBuffer());let e=await b(this._dotLottie);if(!e)throw new Error(\"Manifest not found\");this._manifest=e;}}loadFromLottieJSON(i){if(!l(i))throw new Error(\"Invalid lottie JSON\");let t=\"my-animation\";this._animationsMap.set(t,i);let a={activeAnimationId:t,animations:[{id:t}]};this._manifest=a;}async loadFromArrayBuffer(i){this._dotLottie=await c(i);let t=await b(this._dotLottie);if(!t)throw new Error(\"Manifest not found\");this._manifest=t;}async getAnimation(i){if(this._animationsMap.get(i))return this._animationsMap.get(i);if(!this._dotLottie)return;let t=await d(this._dotLottie,i,{inlineAssets:!0});return t&&this._animationsMap.set(i,t),t}async getTheme(i){if(this._themeMap.get(i))return this._themeMap.get(i);if(!this._dotLottie)return;let t=await e(this._dotLottie,i);return t&&this._themeMap.set(i,t),t}async getStateMachines(){if(!this._dotLottie)return;let i=await f(this._dotLottie);for(let t in i)if(t){let a=i[t];if(a){let e=JSON.parse(a);if(e){let n=e.descriptor.id;this._stateMachinesMap.get(n)||this._stateMachinesMap.set(n,e);}}}return Array.from(this._stateMachinesMap.values())}async getStateMachine(i){if(this._stateMachinesMap.get(i))return this._stateMachinesMap.get(i);if(!this._dotLottie)return;let t=await g(this._dotLottie,i);return t&&this._stateMachinesMap.set(t.descriptor.id,t),t}};\n\nexport { m as a };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-74T7T5LL.js.map","var g=Object.create;var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var l=(b,a,c,e)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let d of i(a))!k.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(e=h(a,d))||e.enumerable});return b};var n=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?f(c,\"default\",{value:b,enumerable:!0}):c,b));\n\nexport { m as a, n as b };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-B7OIQIGJ.js.map","function a(){throw new Error(\"Cycle detected\")}function d(){if(e>1)e--;else {for(var t,i=!1;h!==void 0;){var o=h;for(h=void 0,c++;o!==void 0;){var n=o.o;if(o.o=void 0,o.f&=-3,!(8&o.f)&&S(o))try{o.c();}catch(_){i||(t=_,i=!0);}o=n;}}if(c=0,e--,i)throw t}}var r=void 0;var h=void 0,e=0,c=0,u=0;function l(t){if(r!==void 0){var i=t.n;if(i===void 0||i.t!==r)return i={i:0,S:t,p:r.s,n:void 0,t:r,e:void 0,x:void 0,r:i},r.s!==void 0&&(r.s.n=i),r.s=i,t.n=i,32&r.f&&t.S(i),i;if(i.i===-1)return i.i=0,i.n!==void 0&&(i.n.p=i.p,i.p!==void 0&&(i.p.n=i.n),i.p=r.s,i.n=void 0,r.s.n=i,r.s=i),i}}function s(t){this.v=t,this.i=0,this.n=void 0,this.t=void 0;}s.prototype.h=function(){return !0};s.prototype.S=function(t){this.t!==t&&t.e===void 0&&(t.x=this.t,this.t!==void 0&&(this.t.e=t),this.t=t);};s.prototype.U=function(t){if(this.t!==void 0){var i=t.e,o=t.x;i!==void 0&&(i.x=o,t.e=void 0),o!==void 0&&(o.e=i,t.x=void 0),t===this.t&&(this.t=o);}};s.prototype.subscribe=function(t){var i=this;return m(function(){var o=i.value,n=32&this.f;this.f&=-33;try{t(o);}finally{this.f|=n;}})};s.prototype.valueOf=function(){return this.value};s.prototype.toString=function(){return this.value+\"\"};s.prototype.toJSON=function(){return this.value};s.prototype.peek=function(){return this.v};Object.defineProperty(s.prototype,\"value\",{get:function(){var t=l(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(r instanceof f&&function(){throw new Error(\"Computed cannot have side-effects\")}(),t!==this.v){c>100&&a(),this.v=t,this.i++,u++,e++;try{for(var i=this.t;i!==void 0;i=i.x)i.t.N();}finally{d();}}}});function y(t){return new s(t)}function S(t){for(var i=t.s;i!==void 0;i=i.n)if(i.S.i!==i.i||!i.S.h()||i.S.i!==i.i)return !0;return !1}function w(t){for(var i=t.s;i!==void 0;i=i.n){var o=i.S.n;if(o!==void 0&&(i.r=o),i.S.n=i,i.i=-1,i.n===void 0){t.s=i;break}}}function b(t){for(var i=t.s,o=void 0;i!==void 0;){var n=i.p;i.i===-1?(i.S.U(i),n!==void 0&&(n.n=i.n),i.n!==void 0&&(i.n.p=n)):o=i,i.S.n=i.r,i.r!==void 0&&(i.r=void 0),i=n;}t.s=o;}function f(t){s.call(this,void 0),this.x=t,this.s=void 0,this.g=u-1,this.f=4;}(f.prototype=new s).h=function(){if(this.f&=-3,1&this.f)return !1;if((36&this.f)==32||(this.f&=-5,this.g===u))return !0;if(this.g=u,this.f|=1,this.i>0&&!S(this))return this.f&=-2,!0;var t=r;try{w(this),r=this;var i=this.x();(16&this.f||this.v!==i||this.i===0)&&(this.v=i,this.f&=-17,this.i++);}catch(o){this.v=o,this.f|=16,this.i++;}return r=t,b(this),this.f&=-2,!0};f.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var i=this.s;i!==void 0;i=i.n)i.S.S(i);}s.prototype.S.call(this,t);};f.prototype.U=function(t){if(this.t!==void 0&&(s.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var i=this.s;i!==void 0;i=i.n)i.S.U(i);}};f.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N();}};f.prototype.peek=function(){if(this.h()||a(),16&this.f)throw this.v;return this.v};Object.defineProperty(f.prototype,\"value\",{get:function(){1&this.f&&a();var t=l(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function x(t){var i=t.u;if(t.u=void 0,typeof i==\"function\"){e++;var o=r;r=void 0;try{i();}catch(n){throw t.f&=-2,t.f|=8,p(t),n}finally{r=o,d();}}}function p(t){for(var i=t.s;i!==void 0;i=i.n)i.S.U(i);t.x=void 0,t.s=void 0,x(t);}function T(t){if(r!==this)throw new Error(\"Out-of-order effect\");b(this),r=t,this.f&=-2,8&this.f&&p(this),d();}function v(t){this.x=t,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32;}v.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var i=this.x();typeof i==\"function\"&&(this.u=i);}finally{t();}};v.prototype.S=function(){1&this.f&&a(),this.f|=1,this.f&=-9,x(this),w(this),e++;var t=r;return r=this,T.bind(this,t)};v.prototype.N=function(){2&this.f||(this.f|=2,this.o=h,h=this);};v.prototype.d=function(){this.f|=8,1&this.f||p(this);};function m(t){var i=new v(t);try{i.c();}catch(o){throw i.d(),o}return i.d.bind(i)}var g=class{_state;_prevState;constructor(i){this._prevState=i,this._state=y(i);}setState(i){this._prevState=this._state.value,this._state.value=i;}subscribe(i){return this._state.subscribe(o=>i(o,this._prevState))}};\n\nexport { g as a };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-BHJSY5WG.js.map","var Vt={},ge=function(t,e,r,a,n){var i=new Worker(Vt[e]||(Vt[e]=URL.createObjectURL(new Blob([t+';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:\"text/javascript\"}))));return i.onmessage=function(s){var u=s.data,l=u.$e$;if(l){var o=new Error(l[0]);o.code=l[1],o.stack=l[2],n(o,null);}else n(null,u);},i.postMessage(r,a),i},O=Uint8Array,H=Uint16Array,Ct=Int32Array,At=new O([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),bt=new O([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),qt=new O([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Rt=function(t,e){for(var r=new H(31),a=0;a<31;++a)r[a]=e+=1<>1|(_&21845)<<1,R=(R&52428)>>2|(R&13107)<<2,R=(R&61680)>>4|(R&3855)<<4,ut[_]=((R&65280)>>8|(R&255)<<8)>>1;var R,_,K=function(t,e,r){for(var a=t.length,n=0,i=new H(e);n>l]=o;}else for(u=new H(a),n=0;n>15-t[n]);return u},tt=new O(288);for(_=0;_<144;++_)tt[_]=8;var _;for(_=144;_<256;++_)tt[_]=9;var _;for(_=256;_<280;++_)tt[_]=7;var _;for(_=280;_<288;++_)tt[_]=8;var _,Wt=new O(32);for(_=0;_<32;++_)Wt[_]=5;var _;var Gt=K(tt,9,1);var Zt=K(Wt,5,1),st=function(t){for(var e=t[0],r=1;re&&(e=t[r]);return e},N=function(t,e,r){var a=e/8|0;return (t[a]|t[a+1]<<8)>>(e&7)&r},ot=function(t,e){var r=e/8|0;return (t[r]|t[r+1]<<8|t[r+2]<<16)>>(e&7)},Kt=function(t){return (t+7)/8|0},lt=function(t,e,r){return (e==null||e<0)&&(e=0),(r==null||r>t.length)&&(r=t.length),new O(t.subarray(e,r))};var Yt=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,e,r){var a=new Error(e||Yt[t]);if(a.code=t,Error.captureStackTrace&&Error.captureStackTrace(a,E),!r)throw a;return a},Xt=function(t,e,r,a){var n=t.length,i=a?a.length:0;if(!n||e.f&&!e.l)return r||new O(0);var s=!r,u=s||e.i!=2,l=e.i;s&&(r=new O(n*3));var o=function(Ut){var Ft=r.length;if(Ut>Ft){var Bt=new O(Math.max(Ft*2,Ut));Bt.set(r),r=Bt;}},c=e.f||0,f=e.p||0,h=e.b||0,p=e.l,m=e.d,d=e.m,y=e.n,v=n*8;do{if(!p){c=N(t,f,1);var A=N(t,f+1,3);if(f+=3,A)if(A==1)p=Gt,m=Zt,d=9,y=5;else if(A==2){var C=N(t,f,31)+257,D=N(t,f+10,15)+4,V=C+N(t,f+5,31)+1;f+=14;for(var x=new O(V),q=new O(19),b=0;b>4;if(g<16)x[b++]=g;else {var T=0,at=0;for(g==16?(at=3+N(t,f,3),f+=2,T=x[b-1]):g==17?(at=3+N(t,f,7),f+=3):g==18&&(at=11+N(t,f,127),f+=7);at--;)x[b++]=T;}}var Tt=x.subarray(0,C),$=x.subarray(C);d=st(Tt),y=st($),p=K(Tt,d,1),m=K($,y,1);}else E(1);else {var g=Kt(f)+4,M=t[g-4]|t[g-3]<<8,S=g+M;if(S>n){l&&E(0);break}u&&o(h+M),r.set(t.subarray(g,S),h),e.b=h+=M,e.p=f=S*8,e.f=c;continue}if(f>v){l&&E(0);break}}u&&o(h+131072);for(var me=(1<>4;if(f+=T&15,f>v){l&&E(0);break}if(T||E(2),Z<256)r[h++]=Z;else if(Z==256){vt=f,p=null;break}else {var Nt=Z-254;if(Z>264){var b=Z-257,Q=At[b];Nt=N(t,f,(1<>4;yt||E(3),f+=yt&15;var $=Ht[gt];if(gt>3){var Q=bt[gt];$+=ot(t,f)&(1<v){l&&E(0);break}u&&o(h+131072);var jt=h+Nt;if(h<$){var Lt=i-$,ye=Math.min($,jt);for(Lt+h<0&&E(3);h>>0},_t=function(t,e){return F(t,e)+F(t,e+4)*4294967296};function Oe(t,e,r){return r||(r=e,e={}),typeof r!=\"function\"&&E(7),Ee(t,e,[xe],function(a){return Qt(xt(a.data[0],te(a.data[1])))},1,r)}function xt(t,e){return Xt(t,{i:2},e&&e.out,e&&e.dictionary)}var wt=typeof TextDecoder<\"u\"&&new TextDecoder,ze=0;try{wt.decode(we,{stream:!0}),ze=1;}catch{}var Se=function(t){for(var e=\"\",r=0;;){var a=t[r++],n=(a>127)+(a>223)+(a>239);if(r+n>t.length)return {s:e,r:lt(t,r-1)};n?n==3?(a=((a&15)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,e+=String.fromCharCode(55296|a>>10,56320|a&1023)):n&1?e+=String.fromCharCode((a&31)<<6|t[r++]&63):e+=String.fromCharCode((a&15)<<12|(t[r++]&63)<<6|t[r++]&63):e+=String.fromCharCode(a);}};function W(t,e){if(e){for(var r=\"\",a=0;a65558)return s(E(13,0,1),null),n;var l=P(t,u+8);if(l){var o=l,c=F(t,u+16),f=c==4294967295||o==65535;if(f){var h=F(t,u-12);f=F(t,h)==101075792,f&&(o=l=F(t,h+32),c=F(t,h+48));}for(var p=e&&e.filter,m=function(y){var v=De(t,c,f),A=v[0],g=v[1],M=v[2],S=v[3],C=v[4],D=v[5],V=Me(t,D);c=C;var x=function(b,L){b?(n(),s(b,null)):(L&&(i[S]=L),--l||s(null,i));};if(!p||p({name:S,size:g,originalSize:M,compression:A}))if(!A)x(null,lt(t,V,V+g));else if(A==8){var q=t.subarray(V,V+g);if(g<32e4)try{x(null,xt(q,{out:new O(M)}));}catch(b){x(b,null);}else a.push(Oe(q,{size:M},x));}else x(E(14,\"unknown compression type \"+A,1),null);else x(null,null);},d=0;d{if(r.path){let a=r.path.map(({key:n})=>n).join(\".\");e.nested[a]=[...e.nested[a]||[],r.message];}else e.root=[...e.root||[],r.message];return e},{nested:{}})}var Ne=class extends Error{issues;constructor(t){super(t[0].message),this.name=\"ValiError\",this.issues=t;}};function je(t,e){return {reason:t==null?void 0:t.reason,validation:e.validation,origin:(t==null?void 0:t.origin)||\"value\",message:e.message,input:e.input,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly}}function Le(t,e){return {reason:e,origin:t==null?void 0:t.origin,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly}}function J(t,e,r,a){if(!e||!e.length)return {output:t};let n,i,s=t;for(let u of e){let l=u(s);if(l.issue){n=n||Le(r,a);let o=je(n,l.issue);if(i?i.push(o):i=[o],n.abortEarly||n.abortPipeEarly)break}else s=l.output;}return i?{issues:i}:{output:s}}function B(t,e){return !t||typeof t==\"string\"?[t,e]:[void 0,t]}function k(t,e,r,a,n,i){return {issues:[{reason:e,validation:r,origin:(t==null?void 0:t.origin)||\"value\",message:a,input:n,issues:i,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly}]}}function ne(t=[]){return {schema:\"any\",async:!1,_parse(e,r){return J(e,t,r,\"any\")}}}function Y(t,e,r){let[a,n]=B(e,r);return {schema:\"array\",array:{item:t},async:!1,_parse(i,s){if(!Array.isArray(i))return k(s,\"type\",\"array\",a||\"Invalid type\",i);let u,l=[];for(let o=0;ou.length)return k(l,\"type\",\"tuple\",i||\"Invalid type\",u);let o,c=[];for(let f=0;f({...i,...s.object}),{}),a,n)}function ie(t,e,r,a){let[n,i]=B(r,a);return z(Object.entries(t.object).reduce((s,[u,l])=>e.includes(u)?s:{...s,[u]:l},{}),n,i)}function se(t,e,r){let a=t._parse(e,r);return a.issues?{success:!1,error:new Ne(a.issues),issues:a.issues}:{success:!0,data:a.output,output:a.output}}function ht(t,e){return r=>r>t?{issue:{validation:\"max_value\",message:e||\"Invalid value\",input:r}}:{output:r}}function dt(t,e){return r=>re in t?St(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,et=(t,e)=>function(){return e||(0, t[fe(t)[0]])((e={exports:{}}).exports,e),e.exports},Re=(t,e,r,a)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of fe(e))!Ce.call(t,n)&&n!==r&&St(t,n,{get:()=>e[n],enumerable:!(a=Pe(e,n))||a.enumerable});return t},$e=(t,e,r)=>(r=t!=null?Ve(ke(t)):{},Re(e||!t||!t.__esModule?St(r,\"default\",{value:t,enumerable:!0}):r,t)),Je=(t,e,r)=>(qe(t,typeof e!=\"symbol\"?e+\"\":e,r),r),He=et({\"../../node_modules/.pnpm/@rgba-image+copy@0.1.3/node_modules/@rgba-image/copy/dist/index.js\"(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.copy=void 0;var e=(r,a,n=0,i=0,s=r.width-n,u=r.height-i,l=0,o=0)=>{if(n=n|0,i=i|0,s=s|0,u=u|0,l=l|0,o=o|0,s<=0||u<=0)return;let c=new Uint32Array(r.data.buffer),f=new Uint32Array(a.data.buffer);for(let h=0;h=r.height)continue;let m=o+h;if(!(m<0||m>=a.height))for(let d=0;d=r.width)continue;let v=l+d;if(v<0||v>=a.width)continue;let A=p*r.width+y,g=m*a.width+v;f[g]=c[A];}}};t.copy=e;}}),We=et({\"../../node_modules/.pnpm/@rgba-image+create-image@0.1.1/node_modules/@rgba-image/create-image/dist/index.js\"(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.CreateImageFactory=(e=[0,0,0,0],r=4)=>{if(r=Math.floor(r),isNaN(r)||r<1)throw TypeError(\"channels should be a positive non-zero number\");if(!(\"length\"in e)||e.lengthi===0);return (i,s,u)=>{if(i===void 0||s===void 0)throw TypeError(\"Not enough arguments\");if(i=Math.floor(i),s=Math.floor(s),isNaN(i)||i<1||isNaN(s)||s<1)throw TypeError(\"Index or size is negative or greater than the allowed amount\");let l=i*s*r;if(u===void 0&&(u=new Uint8ClampedArray(l)),u instanceof Uint8ClampedArray){if(u.length!==l)throw TypeError(\"Index or size is negative or greater than the allowed amount\");if(!a)for(let o=0;o{if(i<=-s||i>=s||i==0)return 0;let u=i*Math.PI;return Math.sin(u)/u*Math.sin(u/s)/(u/s)},a=i=>Math.round(i*((1<{let c=o?2:3,f=1/u,h=Math.min(1,u),p=c/h,m=Math.floor((p+1)*2),d=new Int16Array((m+2)*s),y=0;for(let v=0;v>1]+=a(1-q);let b=0;for(;b0&&D[L]===0;)L--;let mt=g+b,nt=L-b+1;d[y++]=mt,d[y++]=nt,d.set(D.subarray(b,L+1),y),y+=nt;}return d};t.filters=n;}}),Ze=et({\"../../node_modules/.pnpm/@rgba-image+lanczos@0.1.1/node_modules/@rgba-image/lanczos/dist/convolve.js\"(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.convolve=void 0;var e=14,r=(a,n,i,s,u,l)=>{let o=0,c=0;for(let f=0;f0;M--){let S=l[h++];y=y+S*a[d]|0,v=v+S*a[d+1]|0,A=A+S*a[d+2]|0,g=g+S*a[d+3]|0,d=d+4|0;}n[c]=y+8192>>e,n[c+1]=v+8192>>e,n[c+2]=A+8192>>e,n[c+3]=g+8192>>e,c=c+s*4|0;}c=(f+1)*4|0,o=(f+1)*i*4|0;}};t.convolve=r;}}),Ke=et({\"../../node_modules/.pnpm/@rgba-image+lanczos@0.1.1/node_modules/@rgba-image/lanczos/dist/index.js\"(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.lanczos2=t.lanczos=void 0;var e=He(),r=We(),a=Ge(),n=Ze(),i=(l,o,c=!1)=>{let f=o.width/l.width,h=o.height/l.height,p=a.filters(l.width,o.width,f,0,c),m=a.filters(l.height,o.height,h,0,c),d=new Uint8ClampedArray(o.width*l.height*4);n.convolve(l.data,d,l.width,l.height,o.width,p),n.convolve(d,o.data,l.height,o.width,o.height,m);},s=(l,o,c=0,f=0,h=l.width-c,p=l.height-f,m=0,d=0,y=o.width-m,v=o.height-d)=>{if(c=c|0,f=f|0,h=h|0,p=p|0,m=m|0,d=d|0,y=y|0,v=v|0,h<=0||p<=0||y<=0||v<=0)return;if(c===0&&f===0&&h===l.width&&p===l.height&&m===0&&d===0&&y===o.width&&v===o.height){i(l,o);return}let A=r.createImage(h,p),g=r.createImage(y,v);e.copy(l,A,c,f),i(A,g),e.copy(g,o,0,0,g.width,g.height,m,d);};t.lanczos=s;var u=(l,o,c=0,f=0,h=l.width-c,p=l.height-f,m=0,d=0,y=o.width-m,v=o.height-d)=>{if(c=c|0,f=f|0,h=h|0,p=p|0,m=m|0,d=d|0,y=y|0,v=v|0,h<=0||p<=0||y<=0||v<=0)return;if(c===0&&f===0&&h===l.width&&p===l.height&&m===0&&d===0&&y===o.width&&v===o.height){i(l,o,!0);return}let A=r.createImage(h,p),g=r.createImage(y,v);e.copy(l,A,c,f),i(A,g,!0),e.copy(g,o,0,0,g.width,g.height,m,d);};t.lanczos2=u;}});var he=(t=>(t.Bounce=\"bounce\",t.Normal=\"normal\",t))(he||{}),Ye=ae(he),de=z({autoplay:w(ct()),defaultTheme:w(I()),direction:w(ft([Et(1),Et(-1)])),hover:w(ct()),id:I(),intermission:w(j()),loop:w(ft([ct(),j()])),playMode:w(Ye),speed:w(j()),themeColor:w(I())}),Xe=z({animations:Y(I()),id:I()}),Qe=z({activeAnimationId:w(I()),animations:Y(de),author:w(I()),custom:w(Ot(I(),ne())),description:w(I()),generator:w(I()),keywords:w(I()),revision:w(j()),themes:w(Y(Xe)),states:w(Y(I())),version:w(I())}),tr=ie(de,[\"id\"]),G=z({state:I()}),er=G,rr=X([G,z({ms:j()})]),nr=X([G,z({count:j()})]),ar=G,ir=G,sr=G,or=X([G,z({threshold:w(Y(j([dt(0),ht(1)])))})]),ur=z({onAfter:w(rr),onClick:w(er),onComplete:w(sr),onEnter:w(nr),onMouseEnter:w(ar),onMouseLeave:w(ir),onShow:w(or)}),lr=X([tr,z({playOnScroll:w(zt([j([dt(0),ht(1)]),j([dt(0),ht(1)])])),segments:w(ft([zt([j(),j()]),I()]))})]);X([ur,z({animationId:w(I()),playbackSettings:lr})]);var dr={jpeg:\"image/jpeg\",png:\"image/png\",gif:\"image/gif\",bmp:\"image/bmp\",svg:\"image/svg+xml\",webp:\"image/webp\",mpeg:\"audio/mpeg\",mp3:\"audio/mp3\"},oe={jpeg:[255,216,255],png:[137,80,78,71,13,10,26,10],gif:[71,73,70],bmp:[66,77],webp:[82,73,70,70,87,69,66,80],svg:[60,63,120],mp3:[73,68,51,3,0,0,0,0],mpeg:[73,68,51,3,0,0,0,0]};var pr=t=>{let e=null,r=[];if(!t)return null;let a=t.substring(t.indexOf(\",\")+1);typeof window>\"u\"?e=Buffer.from(a,\"base64\").toString(\"binary\"):e=atob(a);let n=new Uint8Array(e.length);for(let i=0;iu===s[l]))return dr[i]}return null};var Mt=class extends Error{constructor(t,e){super(t),Je(this,\"code\"),this.name=\"[dotlottie-js]\",this.code=e;}};function pe(t){let e;if(typeof window>\"u\")e=Buffer.from(t).toString(\"base64\");else {let a=Array.prototype.map.call(t,n=>String.fromCharCode(n)).join(\"\");e=window.btoa(a);}return `data:${pr(e)};base64,${e}`}function ue(t){return \"w\"in t&&\"h\"in t&&!(\"xt\"in t)&&\"p\"in t}function pt(t){return !(\"h\"in t)&&!(\"w\"in t)&&\"p\"in t&&\"e\"in t&&\"u\"in t&&\"id\"in t}async function rt(t,e=()=>!0){if(!(t instanceof Uint8Array))throw new Mt(\"DotLottie not found\",\"INVALID_DOTLOTTIE\");return await new Promise((a,n)=>{ee(t,{filter:e},(i,s)=>{i&&n(i),a(s);});})}async function Dt(t,e,r){if(!(t instanceof Uint8Array))throw new Mt(\"DotLottie not found\",\"INVALID_DOTLOTTIE\");return (await rt(t,n=>n.name===e&&(!r||r(n))))[e]}async function mr(t){let e=\"manifest.json\",a=(await rt(t,n=>n.name===e))[e];if(!(typeof a>\"u\"))return JSON.parse(W(a,!1))}async function vr(t){if(!(t instanceof Uint8Array))return {success:!1,error:\"DotLottie not found\"};let e=await mr(t);if(typeof e>\"u\")return {success:!1,error:\"Invalid .lottie file, manifest.json is missing\"};let r=se(Qe,e);return r.success?{success:!0}:{success:!1,error:`Invalid .lottie file, manifest.json structure is invalid, ${JSON.stringify(re(r.error).nested,null,2)}`}}async function Yr(t){let e=new Uint8Array(t),r=await vr(e);if(r.error)throw new Mt(r.error,\"INVALID_DOTLOTTIE\");return e}async function yr(t,e){let r=await rt(t,n=>{let i=n.name.replace(\"audio/\",\"\");return n.name.startsWith(\"audio/\")&&(!e||e({...n,name:i}))}),a={};for(let n in r){let i=r[n];if(i instanceof Uint8Array){let s=n.replace(\"audio/\",\"\");a[s]=pe(i);}}return a}async function gr(t,e){var n;let r=new Map;for(let[i,s]of Object.entries(e))for(let u of s.assets||[])if(pt(u)){let l=u.p;r.has(l)||r.set(l,new Set),(n=r.get(l))==null||n.add(i);}let a=await yr(t,i=>r.has(i.name));for(let[i,s]of r){let u=a[i];if(u)for(let l of s){let o=e[l];for(let c of (o==null?void 0:o.assets)||[])pt(c)&&c.p===i&&(c.p=u,c.u=\"\",c.e=1);}}}async function _r(t,e){let r=await rt(t,n=>{let i=n.name.replace(\"images/\",\"\");return n.name.startsWith(\"images/\")&&(!e||e({...n,name:i}))}),a={};for(let n in r){let i=r[n];if(i instanceof Uint8Array){let s=n.replace(\"images/\",\"\");a[s]=pe(i);}}return a}async function wr(t,e){var n;let r=new Map;for(let[i,s]of Object.entries(e))for(let u of s.assets||[])if(ue(u)){let l=u.p;r.has(l)||r.set(l,new Set),(n=r.get(l))==null||n.add(i);}let a=await _r(t,i=>r.has(i.name));for(let[i,s]of r){let u=a[i];if(u)for(let l of s){let o=e[l];for(let c of (o==null?void 0:o.assets)||[])ue(c)&&c.p===i&&(c.p=u,c.u=\"\",c.e=1);}}}async function Xr(t,e,{inlineAssets:r}={},a){let n=`animations/${e}.json`,i=await Dt(t,n,a);if(typeof i>\"u\")return;let s=JSON.parse(W(i,!1));if(!r)return s;let u={[e]:s};return await wr(t,u),await gr(t,u),s}async function Qr(t,e,r){let a=`themes/${e}.json`,n=await Dt(t,a,r);if(!(typeof n>\"u\"))return JSON.parse(W(n,!1))}async function tn(t,e){let r={},a=await rt(t,n=>{let i=n.name.replace(\"states/\",\"\").replace(\".json\",\"\");return n.name.startsWith(\"states/\")&&(!e||e({...n,name:i}))});for(let n in a){let i=a[n];if(i instanceof Uint8Array){let s=n.replace(\"states/\",\"\").replace(\".json\",\"\");r[s]=W(i,!1);}}return r}async function en(t,e,r){let a=`states/${e}.json`,n=await Dt(t,a,r);return typeof n>\"u\"?void 0:JSON.parse(W(n,!1))}$e(Ke());function on(t,e=\"dotLottie-common\"){return new Error(`[${e}]: ${t}`)}function un(t,e=\"dotLottie-common\",...r){console.error(`[${e}]:`,t,...r);}function ln(t,e=\"dotLottie-common\",...r){console.warn(`[${e}]:`,t,...r);}function cn(t=\"\"){let e=t.trim(),r=e.lastIndexOf(\"/\"),a=e.substring(r+1),n=a.indexOf(\".\");return n!==-1?a.substring(0,n):a}function kr(t){return [\"v\",\"ip\",\"op\",\"layers\",\"fr\",\"w\",\"h\"].every(r=>Object.prototype.hasOwnProperty.call(t,r))}function fn(t){let e=t.assets;return e?e.some(r=>pt(r)):!1}function hn(t){try{let e=JSON.parse(t);return kr(e)}catch{return !1}}function dn(t,e){let r=Object.keys(t).find(a=>t[a]===e);if(r===void 0)throw new Error(\"Value not found in the object.\");return r}function pn(t){return JSON.parse(JSON.stringify(t))}\n\nexport { tr as a, mr as b, Yr as c, Xr as d, Qr as e, tn as f, en as g, on as h, un as i, ln as j, cn as k, kr as l, fn as m, hn as n, dn as o, pn as p };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-DCAKKOYV.js.map","import { h } from './chunk-DCAKKOYV.js';\n\nasync function r(t,o){let[{DotLottieStateMachineManager:a}]=await Promise.all([import('./dotlottie-state-machine-manager-2E7RUGJG.js')]);if(!t.length)throw h(\"No state machines available inside this .lottie!\");return new a(t,o)}\n\nexport { r as a };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-GSRQSB3U.js.map","import { a as a$1 } from './chunk-74T7T5LL.js';\nimport { a as a$3 } from './chunk-GSRQSB3U.js';\nimport { a } from './chunk-BHJSY5WG.js';\nimport { p, a as a$2, j as j$1, i, h, m, n, l } from './chunk-DCAKKOYV.js';\n\nvar U={name:\"@dotlottie/common\",version:\"0.7.11\",type:\"module\",description:\"\",author:\"Afsal , Sam Osborne \",license:\"MIT\",engines:{node:\">18.0.0\"},module:\"dist/index.js\",main:\"dist/index.js\",types:\"dist/index.d.ts\",files:[\"dist\"],keywords:[],scripts:{build:\"tsup\",dev:\"tsup --watch\",lint:\"eslint .\",\"type-check\":\"tsc --noEmit\"},dependencies:{\"@dotlottie/dotlottie-js\":\"^0.7.0\",\"@preact/signals-core\":\"^1.2.3\",howler:\"^2.2.3\",\"lottie-web\":\"^5.12.2\",xstate:\"^4.38.1\"},devDependencies:{\"@lottiefiles/lottie-types\":\"^1.2.0\",\"@types/howler\":\"^2.2.8\",tsup:\"^7.2.0\",typescript:\"^4.7.4\"},publishConfig:{access:\"public\"}};var W=(l=>(l.Complete=\"complete\",l.DataFail=\"data_fail\",l.DataReady=\"data_ready\",l.Error=\"error\",l.Frame=\"frame\",l.Freeze=\"freeze\",l.LoopComplete=\"loopComplete\",l.Pause=\"pause\",l.Play=\"play\",l.Ready=\"ready\",l.Stop=\"stop\",l.VisibilityChange=\"visibilityChange\",l))(W||{}),K=(d=>(d.Completed=\"completed\",d.Error=\"error\",d.Fetching=\"fetching\",d.Frozen=\"frozen\",d.Initial=\"initial\",d.Loading=\"loading\",d.Paused=\"paused\",d.Playing=\"playing\",d.Ready=\"ready\",d.Stopped=\"stopped\",d))(K||{}),G=(e=>(e.Bounce=\"bounce\",e.Normal=\"normal\",e))(G||{}),u={autoplay:!1,direction:1,hover:!1,intermission:0,loop:!1,playMode:\"normal\",speed:1,defaultTheme:\"\"},Q={activeStateId:\"\",autoplay:!1,currentState:\"initial\",frame:0,seeker:0,direction:1,hover:!1,loop:!1,playMode:\"normal\",speed:1,background:\"transparent\",intermission:0,currentAnimationId:void 0,visibilityPercentage:0},j=class{_lottie;_src;_animationConfig;_prevUserPlaybackOptions={};_userPlaybackOptions;_hover=!1;_loop=!1;_counter=0;_intermission=0;_counterInterval=null;_container=null;_name;_mode=\"normal\";_background=\"transparent\";_animation;_defaultTheme;_activeAnimationId;_currentAnimationId;_testId;_listeners=new Map;_currentState=\"initial\";_stateBeforeFreeze=\"initial\";state=new a(Q);_light=!1;_worker=!1;_dotLottieLoader=new a$1;_activeStateId;_inInteractiveMode=!1;_scrollTicking=!1;_scrollCallback=void 0;_onShowIntersectionObserver=void 0;_visibilityPercentage=0;_audios=[];_stateMachineManager;constructor(t,e,i){typeof t==\"string\"?this._src=t:this._src=p(t),i!=null&&i.testId&&(this._testId=i.testId),this._defaultTheme=(i==null?void 0:i.defaultTheme)||\"\",this._userPlaybackOptions=this._validatePlaybackOptions(i||{}),typeof(i==null?void 0:i.activeAnimationId)==\"string\"&&(this._activeAnimationId=i.activeAnimationId),this._container=e||null,typeof(i==null?void 0:i.background)==\"string\"&&this.setBackground(i.background),typeof(i==null?void 0:i.activeStateId)<\"u\"&&(this._activeStateId=i.activeStateId);let{rendererSettings:n,...o}=i||{};this._animationConfig={loop:!1,autoplay:!1,renderer:\"svg\",rendererSettings:{clearCanvas:!0,progressiveLoad:!0,hideOnTransparent:!0,filterSize:{width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"},...n},...o},i!=null&&i.light&&(this._light=i.light),i!=null&&i.worker&&(this._worker=i.worker),this._listenToHover(),this._listenToVisibilityChange();}_listenToHover(){var i,n,o,a;let t=()=>{this._hover&&this.currentState!==\"playing\"&&this.play();},e=()=>{this._hover&&this.currentState===\"playing\"&&this.stop();};(i=this._container)==null||i.removeEventListener(\"mouseenter\",t),(n=this._container)==null||n.removeEventListener(\"mouseleave\",e),(o=this._container)==null||o.addEventListener(\"mouseleave\",e),(a=this._container)==null||a.addEventListener(\"mouseenter\",t);}_onVisibilityChange(){!this._lottie||typeof document>\"u\"||(document.hidden&&this.currentState===\"playing\"?this.freeze():this.currentState===\"frozen\"&&this.unfreeze());}_listenToVisibilityChange(){typeof document<\"u\"&&typeof document.hidden<\"u\"&&document.addEventListener(\"visibilitychange\",()=>this._onVisibilityChange());}_getOption(t){var i;if(typeof this._userPlaybackOptions[t]<\"u\")return this._userPlaybackOptions[t];let e=(i=this._dotLottieLoader.manifest)==null?void 0:i.animations.find(n=>n.id===this._currentAnimationId);return e&&typeof e[t]<\"u\"?e[t]:u[t]}_getPlaybackOptions(){let t={};for(let e in u)typeof u[e]<\"u\"&&(t[e]=this._getOption(e));return t}_setPlayerState(t){var i,n,o;let e=t(this._getPlaybackOptions());try{a$2._parse(e);}catch{j$1(`Invalid PlaybackOptions, ${JSON.stringify(e,null,2)}`);return}typeof e.defaultTheme<\"u\"&&(this._defaultTheme=e.defaultTheme),typeof e.playMode<\"u\"&&(this._mode=e.playMode),typeof e.intermission<\"u\"&&(this._intermission=e.intermission),typeof e.hover<\"u\"&&(this._hover=e.hover),typeof e.loop<\"u\"&&(this.clearCountTimer(),this._loop=e.loop,this._counter=0,(i=this._lottie)==null||i.setLoop(typeof e.loop==\"number\"?!0:e.loop)),typeof e.speed<\"u\"&&((n=this._lottie)==null||n.setSpeed(e.speed)),typeof e.autoplay<\"u\"&&this._lottie&&(this._lottie.autoplay=e.autoplay),typeof e.direction<\"u\"&&((o=this._lottie)==null||o.setDirection(e.direction));}_getOptionsFromAnimation(t){let{id:e,...i}=t;return {...u,...i}}_updateTestData(){!this._testId||!this._lottie||(window.dotLottiePlayer||(window.dotLottiePlayer={[this._testId]:{}}),window.dotLottiePlayer[this._testId]={direction:this._lottie.playDirection,currentState:this._currentState,loop:this.loop,mode:this._mode,speed:this._lottie.playSpeed});}setContainer(t){t!==this._container&&(this._container=t,this.setBackground(this._background),this._listenToHover());}get currentState(){return this._currentState}clearCountTimer(){this._counterInterval&&clearInterval(this._counterInterval);}setCurrentState(t){this._currentState=t,this._notify(),this._updateTestData();}static isPathJSON(t){var e;return ((e=t.split(\".\").pop())==null?void 0:e.toLowerCase())===\"json\"}get src(){return this._src}updateSrc(t){this._src!==t&&(typeof t==\"string\"?this._src=t:this._src=p(t),this._activeAnimationId=void 0,this._currentAnimationId=void 0,this.load());}get intermission(){return this._intermission}get hover(){return this._hover}setHover(t){typeof t==\"boolean\"&&(this._hover=t,this._userPlaybackOptions.hover=t,this._notify());}setIntermission(t){this._intermission=t,this._userPlaybackOptions.intermission=t,this._notify();}get mode(){return this._mode}get animations(){return this._dotLottieLoader.animationsMap}get themes(){return this._dotLottieLoader.themeMap}setMode(t){typeof t==\"string\"&&(this._mode=t,this._userPlaybackOptions.playMode=t,this._setPlayerState(()=>({playMode:t})),this._notify(),this._updateTestData());}get container(){if(this._container)return this._container}goToAndPlay(t,e,i){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"goToAndPlay() Can't use whilst loading.\");return}this._lottie.goToAndPlay(t,e,i),this.setCurrentState(\"playing\");}goToAndStop(t,e,i){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"goToAndStop() Can't use whilst loading.\");return}this._lottie.goToAndStop(t,e,i),this.setCurrentState(\"stopped\");}seek(t){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"seek() Can't use whilst loading.\");return}let e=t;typeof e==\"number\"&&(e=Math.round(e));let i=/^(\\d+)(%?)$/u.exec(e.toString());if(!i)return;let n=i[2]===\"%\"?this.totalFrames*Number(i[1])/100:i[1];n!==void 0&&(this._lottie.goToAndPlay(n,!0),this.currentState===\"playing\"?this.play():this.currentState===\"frozen\"?this.freeze():this.pause());}_areNumbersInRange(t,e){return t>=0&&t<=1&&e>=0&&e<=1}_updatePosition(t,e,i$1){let[n,o]=t!=null?t:[0,this.totalFrames-1],[a,h]=e!=null?e:[0,1];if(!this._areNumbersInRange(a,h)){i(\"threshold values must be between 0 and 1\");return}if(this.container){let{height:f,top:p}=this.container.getBoundingClientRect(),d=window.innerHeight-p,m=window.innerHeight+f,l=d/m,_=n+Math.round((l-a)/(h-a)*(o-n));i$1&&i$1(l),this.goToAndStop(_,!0),(_>=o||l>=h)&&this._handleAnimationComplete();}this._scrollTicking=!1;}_requestTick(t,e,i){this._scrollTicking||(requestAnimationFrame(()=>this._updatePosition(t,e,i)),this._scrollTicking=!0);}playOnScroll(t){this.stop(),this._scrollCallback&&this.stopPlayOnScroll(),this._scrollCallback=()=>this._requestTick(t==null?void 0:t.segments,t==null?void 0:t.threshold,t==null?void 0:t.positionCallback),window.addEventListener(\"scroll\",this._scrollCallback);}stopPlayOnScroll(){this._scrollCallback&&(window.removeEventListener(\"scroll\",this._scrollCallback),this._scrollCallback=void 0);}stopPlayOnShow(){this._onShowIntersectionObserver&&(this._onShowIntersectionObserver.disconnect(),this._onShowIntersectionObserver=void 0);}addIntersectionObserver(t){if(!this.container)throw h(\"Can't play on show, player container element not available.\");let e={root:null,rootMargin:\"0px\",threshold:t!=null&&t.threshold?t.threshold:[0,1]},i=n=>{n.forEach(o=>{var a,h;this._visibilityPercentage=o.intersectionRatio*100,o.isIntersecting?(t!=null&&t.callbackOnIntersect&&t.callbackOnIntersect(this._visibilityPercentage),(a=this._container)==null||a.dispatchEvent(new Event(\"visibilityChange\"))):t!=null&&t.callbackOnIntersect&&(t.callbackOnIntersect(0),(h=this._container)==null||h.dispatchEvent(new Event(\"visibilityChange\")));});};this._onShowIntersectionObserver=new IntersectionObserver(i,e),this._onShowIntersectionObserver.observe(this.container);}playOnShow(t){var e;if(this.stop(),!this.container)throw h(\"Can't play on show, player container element not available.\");this._onShowIntersectionObserver&&this.stopPlayOnShow(),this.addIntersectionObserver({threshold:(e=t==null?void 0:t.threshold)!=null?e:[],callbackOnIntersect:i=>{i===0?this.pause():this.play();}});}_validatePlaybackOptions(t){if(!t)return {};let e={};for(let[i,n]of Object.entries(t))switch(i){case\"autoplay\":typeof n==\"boolean\"&&(e.autoplay=n);break;case\"direction\":typeof n==\"number\"&&[1,-1].includes(n)&&(e.direction=n);break;case\"loop\":(typeof n==\"boolean\"||typeof n==\"number\")&&(e.loop=n);break;case\"playMode\":typeof n==\"string\"&&[\"normal\",\"bounce\"].includes(n)&&(e.playMode=n);break;case\"speed\":typeof n==\"number\"&&(e.speed=n);break;case\"themeColor\":typeof n==\"string\"&&(e.themeColor=n);break;case\"hover\":typeof n==\"boolean\"&&(e.hover=n);break;case\"intermission\":typeof n==\"number\"&&(e.intermission=n);break;case\"defaultTheme\":typeof n==\"string\"&&(e.defaultTheme=n);break;}return this._requireValidPlaybackOptions(e),e}_requireAnimationsInTheManifest(){var t;if(!((t=this._dotLottieLoader.manifest)!=null&&t.animations.length))throw h(\"No animations found in manifest.\")}_requireAnimationsToBeLoaded(){if(this._dotLottieLoader.animationsMap.size===0)throw h(\"No animations have been loaded.\")}async play(t,e){var i,n;if([\"initial\",\"loading\"].includes(this._currentState)){j$1(\"Player unable to play whilst loading.\");return}if(this._requireAnimationsInTheManifest(),this._requireAnimationsToBeLoaded(),this._lottie&&!t){this._lottie.playDirection===-1&&this._lottie.currentFrame===0?this._lottie.goToAndPlay(this._lottie.totalFrames,!0):this._lottie.play(),this.setCurrentState(\"playing\");return}if(typeof t==\"number\"){let o=(i=this._dotLottieLoader.manifest)==null?void 0:i.animations[t];if(!o)throw h(\"animation not found.\");typeof e==\"function\"?await this.render({id:o.id,...e(this._getPlaybackOptions(),this._getOptionsFromAnimation(o))}):await this.render({id:o.id});}if(typeof t==\"string\"){let o=(n=this._dotLottieLoader.manifest)==null?void 0:n.animations.find(a=>a.id===t);if(!o)throw h(\"animation not found.\");typeof e==\"function\"?await this.render({id:o.id,...e(this._getPlaybackOptions(),this._getOptionsFromAnimation(o))}):await this.render({id:o.id});}}playSegments(t,e){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"playSegments() Can't use whilst loading.\");return}this._lottie.playSegments(t,e),this.setCurrentState(\"playing\");}resetSegments(t){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"resetSegments() Can't use whilst loading.\");return}this._lottie.resetSegments(t);}togglePlay(){this.currentState===\"playing\"?this.pause():this.play();}_getAnimationByIdOrIndex(t){var e,i;if(this._requireAnimationsInTheManifest(),this._requireAnimationsToBeLoaded(),typeof t==\"number\"){let n=(e=this._dotLottieLoader.manifest)==null?void 0:e.animations[t];if(!n)throw h(\"animation not found.\");return n}if(typeof t==\"string\"){let n=(i=this._dotLottieLoader.manifest)==null?void 0:i.animations.find(o=>o.id===t);if(!n)throw h(\"animation not found.\");return n}throw h(\"first param must be a number or string\")}get activeAnimationId(){return this._getActiveAnimationId()}get currentAnimationId(){return this._currentAnimationId}get activeStateId(){return this._activeStateId}async _startInteractivity(t){if(!this._inInteractiveMode){i(\"Can't start interactivity. Not in interactive mode. Call enterInteractiveMode(stateId: string) to start.\");return}if(this._dotLottieLoader.stateMachinesMap.size===0&&await this._dotLottieLoader.getStateMachines(),this._dotLottieLoader.stateMachinesMap.size===0)throw h(\"No interactivity states are available.\");if(t===\"undefined\")throw h(\"stateId is not specified.\");this._stateMachineManager||(this._stateMachineManager=await a$3(Array.from(this._dotLottieLoader.stateMachinesMap.values()),this)),this._stateMachineManager.start(t);}enterInteractiveMode(t){var e;if(t)this._inInteractiveMode||(this._prevUserPlaybackOptions={...this._userPlaybackOptions}),this._inInteractiveMode&&((e=this._stateMachineManager)==null||e.stop()),this._activeStateId=t,this._inInteractiveMode=!0,this._startInteractivity(t);else throw h(\"stateId must be a non-empty string.\")}exitInteractiveMode(){var t;this._inInteractiveMode&&(this._inInteractiveMode=!1,this._activeStateId=\"\",(t=this._stateMachineManager)==null||t.stop(),this._userPlaybackOptions={},this._userPlaybackOptions={...this._prevUserPlaybackOptions},this._prevUserPlaybackOptions={},this.reset());}reset(){var i;let t=this._getActiveAnimationId(),e=(i=this._dotLottieLoader.manifest)==null?void 0:i.animations.find(n=>n.id===t);if(this._inInteractiveMode&&this.exitInteractiveMode(),!e)throw h(\"animation not found.\");this.play(t);}previous(t){if(!this._dotLottieLoader.manifest||!this._dotLottieLoader.manifest.animations.length)throw h(\"manifest not found.\");if(this._inInteractiveMode){j$1(\"previous() is not supported in interactive mode.\");return}let e=this._dotLottieLoader.manifest.animations.findIndex(n=>n.id===this._currentAnimationId);if(e===-1)throw h(\"animation not found.\");let i=this._dotLottieLoader.manifest.animations[(e-1+this._dotLottieLoader.manifest.animations.length)%this._dotLottieLoader.manifest.animations.length];if(!i||!i.id)throw h(\"animation not found.\");typeof t==\"function\"?this.render({id:i.id,...t(this._getPlaybackOptions(),this._getOptionsFromAnimation(i))}):this.render({id:i.id});}next(t){if(!this._dotLottieLoader.manifest||!this._dotLottieLoader.manifest.animations.length)throw h(\"manifest not found.\");if(this._inInteractiveMode){j$1(\"next() is not supported in interactive mode.\");return}let e=this._dotLottieLoader.manifest.animations.findIndex(n=>n.id===this._currentAnimationId);if(e===-1)throw h(\"animation not found.\");let i=this._dotLottieLoader.manifest.animations[(e+1)%this._dotLottieLoader.manifest.animations.length];if(!i||!i.id)throw h(\"animation not found.\");typeof t==\"function\"?this.render({id:i.id,...t(this._getPlaybackOptions(),this._getOptionsFromAnimation(i))}):this.render({id:i.id});}getManifest(){return this._dotLottieLoader.manifest}resize(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"resize() Can't use whilst loading.\");return}this._lottie.resize();}stop(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"stop() Can't use whilst loading.\");return}this.clearCountTimer(),this._counter=0,this._setPlayerState(()=>({direction:this._getOption(\"direction\")})),this._lottie.stop(),this.setCurrentState(\"stopped\");}pause(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"pause() Can't use whilst loading.\");return}this.clearCountTimer(),this._lottie.pause(),this.setCurrentState(\"paused\");}freeze(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"freeze() Can't use whilst loading.\");return}this.currentState!==\"frozen\"&&(this._stateBeforeFreeze=this.currentState),this._lottie.pause(),this.setCurrentState(\"frozen\");}unfreeze(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"unfreeze() Can't use whilst loading.\");return}this._stateBeforeFreeze===\"playing\"?this.play():this.pause();}destroy(){var t,e;(t=this._container)!=null&&t.__lottie&&(this._container.__lottie.destroy(),this._container.__lottie=null),this._audios.length&&(this._audios.forEach(i=>{i.unload();}),this._audios=[]),this.clearCountTimer(),typeof document<\"u\"&&document.removeEventListener(\"visibilitychange\",()=>this._onVisibilityChange()),this._counter=0,(e=this._lottie)==null||e.destroy(),this._lottie=void 0;}getAnimationInstance(){return this._lottie}static getLottieWebVersion(){return `${U.dependencies[\"lottie-web\"]}`}addEventListener(t,e){var i$1,n,o;this._listeners.has(t)||this._listeners.set(t,new Set),(i$1=this._listeners.get(t))==null||i$1.add(e);try{t===\"complete\"?(n=this._container)==null||n.addEventListener(t,e):(o=this._lottie)==null||o.addEventListener(t,e);}catch(a){i(`addEventListener ${a}`);}}getState(){var t,e,i,n,o,a,h;return {autoplay:(e=(t=this._lottie)==null?void 0:t.autoplay)!=null?e:!1,currentState:this._currentState,frame:this._frame,visibilityPercentage:this._visibilityPercentage,seeker:this._seeker,direction:(n=(i=this._lottie)==null?void 0:i.playDirection)!=null?n:1,hover:this._hover,loop:this._loop||!1,playMode:this._mode,speed:(a=(o=this._lottie)==null?void 0:o.playSpeed)!=null?a:1,background:this._background,intermission:this._intermission,defaultTheme:this._defaultTheme,currentAnimationId:this._currentAnimationId,activeStateId:(h=this._activeStateId)!=null?h:\"\"}}_notify(){this.state.setState(this.getState());}get totalFrames(){var t;return ((t=this._lottie)==null?void 0:t.totalFrames)||0}get direction(){return this._lottie?this._lottie.playDirection:1}setDirection(t){this._requireValidDirection(t),this._setPlayerState(()=>({direction:t})),this._userPlaybackOptions.direction=t;}get speed(){var t;return ((t=this._lottie)==null?void 0:t.playSpeed)||1}setSpeed(t){this._requireValidSpeed(t),this._setPlayerState(()=>({speed:t})),this._userPlaybackOptions.speed=t;}get autoplay(){var t,e;return (e=(t=this._lottie)==null?void 0:t.autoplay)!=null?e:!1}setAutoplay(t){if(this._requireValidAutoplay(t),!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"setAutoplay() Can't use whilst loading.\");return}this._setPlayerState(()=>({autoplay:t})),this._userPlaybackOptions.autoplay=t;}toggleAutoplay(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"toggleAutoplay() Can't use whilst loading.\");return}this.setAutoplay(!this._lottie.autoplay);}get defaultTheme(){return this._defaultTheme}setDefaultTheme(t){this._setPlayerState(()=>({defaultTheme:t})),this._userPlaybackOptions.defaultTheme=t,this._animation&&this.render();}get loop(){return this._loop}setLoop(t){this._requireValidLoop(t),this._setPlayerState(()=>({loop:t})),this._userPlaybackOptions.loop=t;}toggleLoop(){if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"toggleLoop() Can't use whilst loading.\");return}this.setLoop(!this._loop);}get background(){return this._background}setBackground(t){this._requireValidBackground(t),this._background=t,this._container&&(this._container.style.backgroundColor=t);}get _frame(){return this._lottie?this.currentState===\"completed\"?this.direction===-1?0:this._lottie.totalFrames:this._lottie.currentFrame:0}get _seeker(){return this._lottie?this._frame/this._lottie.totalFrames*100:0}async revertToManifestValues(t){var n;let e;!Array.isArray(t)||t.length===0?e=[\"autoplay\",\"defaultTheme\",\"direction\",\"hover\",\"intermission\",\"loop\",\"playMode\",\"speed\",\"activeAnimationId\"]:e=t;let i=!1;if(e.includes(\"activeAnimationId\")){let o=(n=this._dotLottieLoader.manifest)==null?void 0:n.activeAnimationId,a=this._getAnimationByIdOrIndex(o||0);this._activeAnimationId=o,await this._setCurrentAnimation(a.id),i=!0;}e.forEach(o=>{switch(o){case\"autoplay\":delete this._userPlaybackOptions.autoplay,this.setAutoplay(this._getOption(\"autoplay\"));break;case\"defaultTheme\":delete this._userPlaybackOptions.defaultTheme,this.setDefaultTheme(this._getOption(\"defaultTheme\"));break;case\"direction\":delete this._userPlaybackOptions.direction,this.setDirection(this._getOption(\"direction\"));break;case\"hover\":delete this._userPlaybackOptions.hover,this.setHover(this._getOption(\"hover\"));break;case\"intermission\":delete this._userPlaybackOptions.intermission,this.setIntermission(this._getOption(\"intermission\"));break;case\"loop\":delete this._userPlaybackOptions.loop,this.setLoop(this._getOption(\"loop\"));break;case\"playMode\":delete this._userPlaybackOptions.playMode,this.setMode(this._getOption(\"playMode\")),this.setDirection(this._getOption(\"direction\"));break;case\"speed\":delete this._userPlaybackOptions.speed,this.setSpeed(this._getOption(\"speed\"));break;}}),i&&this.render();}removeEventListener(t,e){var i$1,n,o;try{t===\"complete\"?(i$1=this._container)==null||i$1.removeEventListener(t,e):(n=this._lottie)==null||n.removeEventListener(t,e),(o=this._listeners.get(t))==null||o.delete(e);}catch(a){i(\"removeEventListener\",a);}}_handleAnimationComplete(){var e;typeof this._loop==\"number\"&&this.stop();let t=this.direction===-1?0:this.totalFrames-1;this.goToAndStop(t,!0),this._counter=0,this.clearCountTimer(),this.setCurrentState(\"completed\"),(e=this._container)==null||e.dispatchEvent(new Event(\"complete\"));}addEventListeners(){var t;if(!this._lottie||[\"loading\"].includes(this._currentState)){j$1(\"addEventListeners() Can't use whilst loading.\");return}this._lottie.addEventListener(\"enterFrame\",()=>{var i;if(!this._lottie){j$1(\"enterFrame event : Lottie is undefined.\");return}Math.floor(this._lottie.currentFrame)===0&&this.direction===-1&&((i=this._container)==null||i.dispatchEvent(new Event(\"complete\")),this.loop||this.setCurrentState(\"completed\")),this._notify();}),this._lottie.addEventListener(\"loopComplete\",()=>{var n;if(!this._lottie){j$1(\"loopComplete event : Lottie is undefined.\");return}(n=this._container)==null||n.dispatchEvent(new Event(\"loopComplete\")),this.intermission>0&&this.pause();let e=this._lottie.playDirection;if(typeof this._loop==\"number\"&&this._loop>0&&(this._counter+=this._mode===\"bounce\"?.5:1,this._counter>=this._loop)){this._handleAnimationComplete();return}this._mode===\"bounce\"&&typeof e==\"number\"&&(e=Number(e)*-1);let i=e===-1?this._lottie.totalFrames-1:0;this.intermission?(this.goToAndPlay(i,!0),this.pause(),this._counterInterval=window.setTimeout(()=>{this._lottie&&(this._setPlayerState(()=>({direction:e})),this.goToAndPlay(i,!0));},this._intermission)):(this._setPlayerState(()=>({direction:e})),this.goToAndPlay(e===-1?this.totalFrames-1:0,!0));}),this._lottie.addEventListener(\"complete\",()=>{if(this._lottie&&this._loop===!1&&this._mode===\"bounce\"){if(this._counter+=.5,this._counter>=1){this._handleAnimationComplete();return}this._counterInterval=window.setTimeout(()=>{if(!this._lottie)return;let e=this._lottie.playDirection;this._mode===\"bounce\"&&typeof e==\"number\"&&(e=Number(e)*-1);let i=e===-1?this.totalFrames-1:0;this._setPlayerState(()=>({direction:e})),this.goToAndPlay(i,!0);},this._intermission);}else this._handleAnimationComplete();});for(let[e,i]of this._listeners)if(e===\"complete\")for(let n of i)(t=this._container)==null||t.addEventListener(e,n);else for(let n of i)this._lottie.addEventListener(e,n);}async _setCurrentAnimation(t){this._currentState=\"loading\";let e=await this._dotLottieLoader.getAnimation(t);this._currentAnimationId=t,this._animation=e,this._currentState=\"ready\";}async _getAudioFactory(){if(this._animation&&m(this._animation)){let{DotLottieAudio:t}=await import('./dotlottie-audio.js');return i=>{let n=new t({src:[i]});return this._audios.push(n),n}}return null}async render(t){var b,g,v,P,S,L,k,w,I,O,C,M,T,A,D,E,F,x;if(t!=null&&t.id)await this._setCurrentAnimation(t.id);else if(!this._animation)throw h(\"no animation selected\");let e=(b=u.loop)!=null?b:!1,i=(g=u.autoplay)!=null?g:!1,n=(v=u.playMode)!=null?v:\"normal\",o=(P=u.intermission)!=null?P:0,a=(S=u.hover)!=null?S:!1,h$1=(L=u.direction)!=null?L:1,f=(k=u.speed)!=null?k:1,p$1=(w=u.defaultTheme)!=null?w:\"\";e=(I=t==null?void 0:t.loop)!=null?I:this._getOption(\"loop\"),i=(O=t==null?void 0:t.autoplay)!=null?O:this._getOption(\"autoplay\"),n=(C=t==null?void 0:t.playMode)!=null?C:this._getOption(\"playMode\"),o=(M=t==null?void 0:t.intermission)!=null?M:this._getOption(\"intermission\"),a=(T=t==null?void 0:t.hover)!=null?T:this._getOption(\"hover\"),h$1=(A=t==null?void 0:t.direction)!=null?A:this._getOption(\"direction\"),f=(D=t==null?void 0:t.speed)!=null?D:this._getOption(\"speed\"),p$1=(E=t==null?void 0:t.defaultTheme)!=null?E:this._getOption(\"defaultTheme\");let d={...this._animationConfig,autoplay:a?!1:i,loop:typeof e==\"number\"?!0:e,renderer:this._worker?\"svg\":(F=this._animationConfig.renderer)!=null?F:\"svg\"},[m,l,_]=await Promise.all([this._dotLottieLoader.getTheme(p$1),this._getLottiePlayerInstance(),this._getAudioFactory()]);if(m&&this._animation?(this._animation=p(this._animation),this._animation.slots=m):this._animation=await this._dotLottieLoader.getAnimation((x=this._currentAnimationId)!=null?x:\"\"),this._activeStateId&&!this._inInteractiveMode){this.enterInteractiveMode(this._activeStateId);return}this.destroy(),this._setPlayerState(()=>({defaultTheme:p$1,playMode:n,intermission:o,hover:a,loop:e})),_?this._lottie=l.loadAnimation({...d,container:this._container,animationData:this._animation,audioFactory:_}):this._lottie=l.loadAnimation({...d,container:this._container,animationData:this._animation}),typeof this._lottie.resetSegments>\"u\"&&(this._lottie.resetSegments=()=>{var V;(V=this._lottie)==null||V.playSegments([0,this._lottie.totalFrames],!0);}),this.addEventListeners(),this._container&&(this._container.__lottie=this._lottie),this._setPlayerState(()=>({direction:h$1,speed:f})),i&&!a&&(e===!1&&h$1===-1?this.play():this.setCurrentState(\"playing\")),this._updateTestData();}async _getLottiePlayerInstance(){var i;let t=(i=this._animationConfig.renderer)!=null?i:\"svg\",e;if(this._worker)return t!==\"svg\"&&j$1(\"Worker is only supported with svg renderer. Change or remove renderer prop to get rid of this warning.\"),e=await import('./lottie_worker-Q23FJ6ZR.js'),e.default;switch(t){case\"svg\":{this._light?e=await import('./lottie_light-KMJEUZFY.js'):e=await import('./lottie_svg-MJGYILXD.js');break}case\"canvas\":{this._light?e=await import('./lottie_light_canvas-B5UTTNXA.js'):e=await import('./lottie_canvas-CDSUBMCL.js');break}case\"html\":{this._light?e=await import('./lottie_light_html-SLCECTRT.js'):e=await import('./lottie_html-X3TYKVQI.js');break}default:throw new Error(`Invalid renderer: ${t}`)}return e.default}_getActiveAnimationId(){var e,i,n,o;let t=this._dotLottieLoader.manifest;return (o=(n=(e=this._activeAnimationId)!=null?e:t==null?void 0:t.activeAnimationId)!=null?n:(i=t==null?void 0:t.animations[0])==null?void 0:i.id)!=null?o:void 0}async load(t){if(this._currentState===\"loading\"){j$1(\"Loading in progress..\");return}try{if(this.setCurrentState(\"loading\"),typeof this._src==\"string\")if(n(this._src)){let i=JSON.parse(this._src);this._dotLottieLoader.loadFromLottieJSON(i);}else {let i=new URL(this._src,window.location.href);await this._dotLottieLoader.loadFromUrl(i.toString());}else if(typeof this._src==\"object\"&&l(this._src))this._dotLottieLoader.loadFromLottieJSON(this._src);else throw h(\"Invalid src provided\");if(!this._dotLottieLoader.manifest)throw h(\"No manifest found\");let e=this._getActiveAnimationId();if(!e)throw h(\"No active animation found\");await this._setCurrentAnimation(e),await this.render(t);}catch(e){this.setCurrentState(\"error\"),e instanceof Error&&i(`Error loading animation: ${e.message}`);}}setErrorState(t){this.setCurrentState(\"error\"),i(t);}_requireValidDirection(t){if(t!==-1&&t!==1)throw h(\"Direction can only be -1 (backwards) or 1 (forwards)\")}_requireValidIntermission(t){if(t<0||!Number.isInteger(t))throw h(\"intermission must be a positive number\")}_requireValidLoop(t){if(typeof t==\"number\"&&(!Number.isInteger(t)||t<0))throw h(\"loop must be a positive number or boolean\")}_requireValidSpeed(t){if(typeof t!=\"number\")throw h(\"speed must be a number\")}_requireValidBackground(t){if(typeof t!=\"string\")throw h(\"background must be a string\")}_requireValidAutoplay(t){if(typeof t!=\"boolean\")throw h(\"autoplay must be a boolean\")}_requireValidPlaybackOptions(t){t.direction&&this._requireValidDirection(t.direction),t.intermission&&this._requireValidIntermission(t.intermission),t.loop&&this._requireValidLoop(t.loop),t.speed&&this._requireValidSpeed(t.speed);}};\n\nexport { W as a, K as b, G as c, u as d, Q as e, j as f };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-NZJZ4CCL.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tmv2-components:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t421: 0,\n\t289: 0,\n\t247: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = this[\"webpackChunktmv2_components\"] = this[\"webpackChunktmv2_components\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import * as React from \"react\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nexport class Bye extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.onViewUpdate = (view) => this.setState({ view });\r\n this.state = { view: pageViewStyle.getView() };\r\n }\r\n componentDidMount() {\r\n pageViewStyle.subscribe(this.onViewUpdate);\r\n }\r\n componentWillUnmount() {\r\n pageViewStyle.unsubscribe(this.onViewUpdate);\r\n }\r\n render() {\r\n return (React.createElement(\"h1\", { className: \"bye\" },\r\n \"Bye, \",\r\n React.createElement(\"span\", { className: \"bye__name\" }, this.props.name),\r\n \", the view is: \",\r\n this.state.view));\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nimport { Img } from \"../../Img\";\r\nexport const Hello = (props) => {\r\n const [view, setView] = React.useState(pageViewStyle.getView());\r\n const onViewUpdate = (view) => setView(view);\r\n React.useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, [view]);\r\n return (React.createElement(\"h1\", { className: \"hello\" },\r\n \" \",\r\n \"Hello, \",\r\n React.createElement(\"span\", { className: \"hello__name\" }, props.name),\r\n \", current view is: \",\r\n view,\r\n React.createElement(\"br\", null),\r\n props.imageURL && (React.createElement(\"div\", null,\r\n React.createElement(Img, { src: props.imageURL })))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Logo } from \"../../Logo/Logo\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nexport const SocialContacts = (props) => {\r\n const mouseClickEvents = [\"mousedown\", \"click\", \"mouseup\"];\r\n function simulateMouseClick(element) {\r\n mouseClickEvents.forEach(mouseEventType => element.dispatchEvent(new MouseEvent(mouseEventType, {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true,\r\n buttons: 1\r\n })));\r\n }\r\n const simulateMouseClickOnZendeskChatIcon = React.useCallback((e) => {\r\n const el = e.target.closest(\"A\");\r\n if (el && e.currentTarget.contains(el)) {\r\n const element = document.querySelector(\"a[class=\\\"chat-toggle\\\"]\");\r\n simulateMouseClick(element);\r\n }\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"social-contacts\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"social-contacts__divider-line\" }),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"social-contacts__logo-and-social\" },\r\n React.createElement(\"div\", { className: \"social-contacts__logo\" },\r\n React.createElement(Logo, { imageUrl: props.logoImageUrl, alt: props.logoImageAlt, logoHref: props.logoHref })),\r\n React.createElement(\"div\", { className: \"social-contacts__live-chat__mobile\" },\r\n React.createElement(\"div\", { className: \"social-contacts__live-chat__text\" },\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: props.liveChatText ?? \"\",\r\n } }))),\r\n React.createElement(\"div\", { className: \"social-contacts__social\" }, props.icons &&\r\n props.icons.map((item, i) => (React.createElement(\"a\", { key: `social-contacts__social-${i}`, href: item.iconLink, className: \"social-contacts__social__item\" },\r\n React.createElement(Img, { className: \"social-contacts__logo-image\", src: item.iconUrl, alt: item.iconAlt }))))))),\r\n React.createElement(\"div\", { className: \"social-contacts__divider-line\" })),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"social-contacts__live-chat\" },\r\n React.createElement(\"div\", { className: \"social-contacts__live-chat__text\" },\r\n React.createElement(\"p\", { onClick: simulateMouseClickOnZendeskChatIcon, dangerouslySetInnerHTML: {\r\n __html: props.liveChatText ?? \"\",\r\n } }))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nexport const FooterBanner = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"footer-banner\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt }))));\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const TradingViewSmallButton = ({ urlLink, imageUrl, imageAlt }) => (React.createElement(\"a\", { className: \"trading-view-small-button\", href: urlLink, target: \"_blank\", rel: \"noreferrer\" },\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt })));\r\n","import * as React from \"react\";\r\nimport { useState } from \"react\";\r\nimport { pageViewStyle } from \"../../../../pageViewStyle\";\r\nimport { IconChevronDown } from \"../../../svgIcons\";\r\nimport { TradingViewSmallButton } from \"../../../TradingViewSmallButton\";\r\nexport const AccordionMenu = (props) => {\r\n const [isActive, setIsActive] = useState(false);\r\n const [isDesktop, setIsDesktop] = useState(false);\r\n React.useEffect(() => {\r\n const divaceSize = pageViewStyle.getView();\r\n if (divaceSize === \"large\") {\r\n setIsActive(true);\r\n setIsDesktop(true);\r\n }\r\n });\r\n const handleToggle = React.useCallback(() => {\r\n if (isDesktop === false) {\r\n setIsActive(!isActive);\r\n }\r\n }, [isActive]);\r\n return (React.createElement(\"div\", { className: \"accordion-menu__menu__block-links-container\" },\r\n React.createElement(\"ul\", { className: \"accordion-menu__menu__block-links\" },\r\n React.createElement(\"li\", { className: \"accordion-menu__menu__block-links__category\", onClick: handleToggle },\r\n React.createElement(\"div\", null, props.title),\r\n React.createElement(\"div\", { className: \"accordion-menu__menu__block-links__category__arrow\" }, IconChevronDown({}))),\r\n isActive && props.accordionData.map((el, y) => (React.createElement(\"li\", { key: y, className: \"accordion-menu__menu__block-links__category__items\" },\r\n React.createElement(\"a\", { href: el.url }, el.label))))),\r\n props.haveTVButton && React.createElement(TradingViewSmallButton, { urlLink: props.buttonTVUrlLink === undefined ? \"\" : props.buttonTVUrlLink, imageUrl: props.buttonTVImageUrl === undefined ? \"\" : props.buttonTVImageUrl, imageAlt: props.buttonTVImageAlt === undefined ? \"\" : props.buttonTVImageAlt })));\r\n};\r\n","import * as React from \"react\";\r\nimport { AccordionMenu } from \"./AccordionMenu/AccordionMenu\";\r\nimport { Container } from \"../../global/Containers/Container/Container\";\r\nexport const MainFooter = (props) => (React.createElement(\"div\", { className: \"main-footer\" },\r\n React.createElement(\"div\", { className: \"main-footer__container\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"accordion-menu\" }, props.sections.length\r\n ? props.sections.map((element, i) => (React.createElement(AccordionMenu, { key: i, title: element.title, accordionData: element.links, haveTVButton: element.haveTVButton, buttonTVUrlLink: element.buttonTVUrlLink, buttonTVImageUrl: element.buttonTVImageUrl, buttonTVImageAlt: element.buttonTVImageAlt }))) : \"\")))));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Container } from \"../../global\";\r\nexport const RiskWarning = (props) => {\r\n const [textValue, setTextValue] = useState(\"\");\r\n useEffect(() => {\r\n setTextValue(props.text);\r\n }, [props.text]);\r\n return (React.createElement(\"div\", { className: \"risk-warning\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: textValue } }))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const WideRangeCard = (props) => {\r\n const toggle = React.useCallback(() => props.toggleExpand?.(props.id || \"0\"), []);\r\n return (React.createElement(\"div\", { className: `accordion-card wide-range-card ${props.opened ? \"accordion-card--opened\" : \"\"}` },\r\n React.createElement(\"h4\", { className: \"accordion-card__title\" },\r\n props.title,\r\n \" \",\r\n React.createElement(\"div\", { className: \"accordion-card__trigger\", onClick: toggle }, caretIcon())),\r\n React.createElement(\"div\", { className: \"accordion-card__text\" }, props.text),\r\n React.createElement(\"div\", { className: \"accordion-card__content\" },\r\n React.createElement(\"p\", { className: \"wide-range-card__instrument-title\" }, props.instrumentTitle),\r\n props.instruments.map((item, i) => (React.createElement(\"div\", { key: `instrument-${i}`, className: \"wide-range-card__instrument\" },\r\n React.createElement(Img, { src: item.icon, alt: item.title }),\r\n React.createElement(\"p\", null, item.title))))),\r\n React.createElement(Img, { src: props.icon, alt: props.title, className: \"accordion-card__icon\" }),\r\n React.createElement(\"a\", { href: props.linkUrl, target: props.opensInNewTab ? \"_blank\" : \"_self\", rel: \"noreferrer\", className: \"accordion-card__link\" },\r\n props.linkText,\r\n \" \",\r\n arrowIcon())));\r\n};\r\nexport const arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#007c8c\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\nexport const caretIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M17.29 11.29a.996.996 0 0 0-1.41 0L12 15.17l-3.88-3.88a.997.997 0 1 0-1.41 1.41l4.59 4.59a.994.994 0 0 0 1.41 0l4.59-4.59c.38-.38.38-1.02-.01-1.41z\", fill: \"#0e1d31\" })));\r\n","import * as React from \"react\";\r\nimport throttle from \"lodash.throttle\";\r\nimport { arrowIcon } from \"../../../Components/Cards/WideRangeCardDeck/WideRangeCard\";\r\nexport const ScrollToTopButton = () => {\r\n const scrollToTopBtnRef = React.useRef(null);\r\n const setScrollButtonDisplay = React.useCallback(() => {\r\n if (!scrollToTopBtnRef?.current) {\r\n return;\r\n }\r\n const button = scrollToTopBtnRef.current;\r\n const buttonTop = button.getBoundingClientRect().top + document.documentElement.scrollTop;\r\n const displayValue = buttonTop >= window.innerHeight ? \"flex\" : \"none\";\r\n button.style.display = displayValue;\r\n }, []);\r\n const scrollTopHandler = React.useCallback(() => {\r\n window.scroll({ top: 0, left: 0, behavior: \"smooth\" });\r\n }, []);\r\n React.useEffect(() => {\r\n const scrollListener = () => {\r\n setScrollButtonDisplay();\r\n };\r\n const resizeListener = () => {\r\n scrollListener();\r\n };\r\n setScrollButtonDisplay();\r\n const throttledScrollListener = throttle(scrollListener, 100);\r\n window.addEventListener(\"scroll\", throttledScrollListener);\r\n const throttledResizeListener = throttle(resizeListener, 100);\r\n window.addEventListener(\"resize\", throttledResizeListener);\r\n return () => {\r\n window.removeEventListener(\"scroll\", throttledScrollListener);\r\n window.removeEventListener(\"rezize\", throttledResizeListener);\r\n };\r\n }, [setScrollButtonDisplay]);\r\n return React.createElement(\"div\", { ref: scrollToTopBtnRef, onClick: scrollTopHandler, className: \"scroll-to-top\" },\r\n arrowIcon(),\r\n \"TOP\");\r\n};\r\n","import * as React from \"react\";\r\nimport \"./\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const BellyBanner = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"bellyBanner\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"bellyBanner__Inner\" },\r\n props.title && React.createElement(\"h5\", null,\r\n \" \",\r\n props.title,\r\n \" \"),\r\n React.createElement(\"div\", { className: \"bellyBanner__text\" }, props.items.map((item, index) => (React.createElement(\"span\", { key: index, dangerouslySetInnerHTML: { __html: item } })))),\r\n React.createElement(\"a\", { href: props.buttonUrl, className: \"bellyBanner__Inner__cta\" }, props.buttonText))))));\r\n","import React from \"react\";\r\nexport const IconChevronRight = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M6.5857 6.00064L4.46439 3.87929C4.26913 3.68403 4.26913 3.36745 4.46439 3.17219C4.65965 2.97693 4.97624 2.97693 5.1715 3.17219L7.29284 5.29353C7.68337 5.68405 7.68336 6.31722 7.29284 6.70774L5.1715 8.82906C4.97624 9.02433 4.65965 9.02432 4.46439 8.82906C4.26913 8.6338 4.26913 8.31722 4.46439 8.12195L6.5857 6.00064Z\", fill: \"#3E4A5A\" })));\r\n","import React from \"react\";\r\nexport const IconHome = (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.3374 3.2295C7.72696 2.93131 8.27304 2.93131 8.66261 3.2295L8.6632 3.22995L13.5399 6.97995C13.9127 7.26676 14.0587 7.74653 13.9052 8.19265C13.7532 8.63446 13.3485 8.93086 12.8767 8.93086H12.7167V11.7909C12.7167 12.455 12.1774 12.9942 11.5133 12.9942H9.08C8.71181 12.9942 8.41334 12.6957 8.41334 12.3275V10.9442H7.49667V12.3275C7.49667 12.6957 7.19819 12.9942 6.83 12.9942H4.61667C3.95257 12.9942 3.41334 12.455 3.41334 11.7909V8.93086H3.12334C2.65201 8.93086 2.24363 8.64116 2.09411 8.19062C1.94175 7.74508 2.08781 7.26636 2.4601 6.97998L7.33681 3.22995L7.3374 3.2295ZM3.25508 7.79753L7.99834 4.15011L12.7416 7.79753H11.58V11.7909C11.58 11.8301 11.5492 11.8609 11.51 11.8609H9.54667V10.7875C9.54667 10.2501 9.10743 9.81086 8.57 9.81086H7.34C6.80258 9.81086 6.36334 10.2501 6.36334 10.7875V11.8609H4.61667C4.57743 11.8609 4.54667 11.7909 4.54667 11.7909L4.54999 7.79753H3.25508Z\", fill: \"#F8FBFB\" })));\r\n","import React from \"react\";\r\nimport { Container } from \"../global\";\r\nimport { IconChevronRight } from \"../svgIcons/chevronRight\";\r\nimport { IconHome } from \"../svgIcons/homeIcon\";\r\nexport const Breadcrumbs = ({ breadcrumbs, lightMode }) => (React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `breadcrumbs ${lightMode ? \"breadcrumbs--light\" : \"\"}`, itemScope: true, itemType: \"http://schema.org/BreadcrumbList\" },\r\n React.createElement(\"span\", { itemProp: \"itemListElement\", itemScope: true, itemType: \"http://schema.org/ListItem\" },\r\n React.createElement(\"a\", { className: \"breadcrumbs__home-link\", href: \"/\", itemProp: \"item\" },\r\n React.createElement(\"span\", { itemProp: \"name\" }, IconHome)),\r\n breadcrumbs.map((item, index) => {\r\n if (index + 1 ===\r\n breadcrumbs.length) {\r\n return (React.createElement(\"span\", { key: index, className: \"breadcrumbs__item\", itemProp: \"name\" },\r\n \" \",\r\n IconChevronRight,\r\n \" \",\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: {\r\n __html: item.breadcrumbText,\r\n } }),\r\n \" \",\r\n React.createElement(\"meta\", { itemProp: \"position\", content: `${index + 1}` })));\r\n }\r\n else {\r\n return (React.createElement(\"a\", { key: index, className: \"breadcrumbs__item--link\", href: item.breadcrumbLink, itemProp: \"item\" },\r\n \" \",\r\n IconChevronRight,\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: {\r\n __html: item.breadcrumbText,\r\n } }),\r\n \" \",\r\n React.createElement(\"meta\", { itemProp: \"position\", content: `${index + 1}` })));\r\n }\r\n })))));\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nconst getRootClassName = (props) => {\r\n let rootClassName = \"staticBanner \";\r\n if (props.isSmallBanner) {\r\n rootClassName += \"staticBanner--small \";\r\n }\r\n if (!props.primaryLinkText && !props.secondaryLinkText) {\r\n rootClassName += \"staticBanner--no-cta \";\r\n }\r\n return rootClassName;\r\n};\r\nexport const StaticBanner = (props) => {\r\n const rootClassName = getRootClassName(props);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: rootClassName },\r\n React.createElement(Img, { className: \"staticBanner__bg\", src: props.imageUrl, alt: props.imageAlt, loading: \"eager\" }),\r\n React.createElement(\"div\", { className: \"staticBanner__content\" },\r\n React.createElement(\"div\", null, props.breadcrumbs && React.createElement(Breadcrumbs, { breadcrumbs: props.breadcrumbs })),\r\n React.createElement(\"div\", null,\r\n React.createElement(Container, null,\r\n React.createElement(\"h1\", null, props.title),\r\n React.createElement(\"p\", { className: \"staticBanner__text\", dangerouslySetInnerHTML: {\r\n __html: props.content,\r\n } }),\r\n React.createElement(\"div\", { className: \"staticBanner__cta\" },\r\n props.primaryLinkText && (React.createElement(\"a\", { href: props.primaryLinkUrl, className: \"staticBanner__btn\" }, props.primaryLinkText)),\r\n props.secondaryLinkText && (React.createElement(\"a\", { href: props.secondaryLinkUrl, className: \"staticBanner__link\" }, props.secondaryLinkText)))))))));\r\n};\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + params.spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + params.spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset;\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","import { elementIndex } from '../../shared/utils.js';\nexport default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = elementIndex(swiper.slides.filter(el => el.getAttribute('data-swiper-slide-index') === '0')[0]);\n const lastSlideIndex = elementIndex(swiper.slides.filter(el => el.getAttribute('data-swiper-slide-index') * 1 === swiper.slides.length - 1)[0]);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","export function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","import { elementIndex } from '../../shared/utils.js';\nexport default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = elementIndex(swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === newIndex)[0]);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, elementIndex, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = elementIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = elementIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) return;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","let timeout;\nexport default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n swiper.autoplay.resume();\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n swiper.update();\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, now, deleteProps, createElement, elementChildren, elementStyle } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","import { elementIndex } from '../../shared/utils.js';\nexport default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = elementIndex(swiper.slides.filter(el => el.classList.contains('swiper-slide-active'))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = loopedSlides - activeSlideIndex;\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = activeSlideIndex - (swiper.slides.length - loopedSlides * 2);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slidesEl.prepend(swiper.slides[index]);\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slidesEl.append(swiper.slides[index]);\n });\n }\n swiper.recalcSlides();\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n bulletEl.classList.remove(...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`));\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets[i].classList.add(`${params.bulletActiveClass}-main`);\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets = [...subEl.querySelectorAll(classesToSelector(params.bulletClass))];\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(params.bulletActiveClass));\n }\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit,\n params\n}) {\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}","import { getSlideTransformEl } from './utils.js';\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","import { elementIndex, elementTransitionEnd } from './utils.js';\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides\n}) {\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return elementIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses, attrToProp, wrapperClass };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control', 'injectStyles', 'injectStylesUrls'];\nexport { paramsList };","import React from 'react';\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\nexport { getChildren };","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend, wrapperClass } from '../components-shared/utils.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new SwiperCore(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nexport { getChangedParams };","import { isObject, extend } from './utils.js';\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n swiper.el.shadowEl.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n swiper.el.shadowEl.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n swiper.el.shadowEl.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n swiper.el.shadowEl.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\nexport { updateSwiper };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\nexport { renderVirtual };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import React from \"react\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nexport const Button = ({ primary = false, label, hasArrow, ...props }) => {\r\n const openInNewTabValue = props.openinnewtab === \"true\" ? true : false;\r\n const hrefTarget = handleLinkTarget(openInNewTabValue);\r\n return (React.createElement(\"a\", { href: props.href ? props.href : \"#\", onClick: props.onClick, className: `button button--${primary ? \"primary\" : \"secondary\"} ${props.classes ? props.classes : \"\"}`, style: { ...props.style }, ...props, target: hrefTarget },\r\n label,\r\n hasArrow ? IconChevronDown({}) : \"\"));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container } from \"../../../global/Containers/Container/Container\";\r\nimport { Button } from \"../../../Button\";\r\nimport { Img } from \"../../../Img\";\r\nexport const HeroBanner = (props) => (React.createElement(\"div\", { className: `hero-banner ${props.darkTheme ? \"hero-banner--dark\" : \"\"}` },\r\n React.createElement(Img, { className: \"hero-banner__desktop-bkgr\", src: props.imageUrl, alt: props.title }),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"hero-banner__inner-container\" },\r\n React.createElement(\"h2\", { className: \"hero-banner__title text-jumbo\" }, props.title),\r\n React.createElement(\"p\", { className: \"hero-banner__text\" }, props.text),\r\n React.createElement(\"div\", { className: \"hero-banner__actions\" },\r\n props.buttonTitle ? React.createElement(Button, { primary: true, label: props.buttonTitle, href: props.buttonHref }) : \"\",\r\n props.linkTitle ? React.createElement(\"a\", { className: \"hero-banner__link\", href: props.linkHref }, props.linkTitle) : \"\"))),\r\n React.createElement(\"div\", { className: \"hero-banner__mobile-image\" },\r\n React.createElement(Img, { className: \"hero-banner__mobile-bkgr\", src: props.mobileImageUrl, alt: props.title }))));\r\n","import * as React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Navigation } from \"swiper\";\r\nimport { HeroBanner } from \"./HeroBanner\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { viewSizes } from \"../../../pageViewStyle\";\r\nimport { Img } from \"../../Img\";\r\nexport const HeroBannerSlider = (props) => (React.createElement(\"div\", { className: \"hero-banner-slider\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Swiper, { className: \"hero-slider\", modules: [Navigation], loop: true, navigation: {\r\n nextEl: \".hero-banner-slider__navigation\",\r\n }, breakpoints: {\r\n [viewSizes.mediumMaxWidth]: {\r\n navigation: false,\r\n },\r\n } }, props.items.map((item, i) => (React.createElement(SwiperSlide, { key: `banner-item-${i}` },\r\n React.createElement(HeroBanner, { imageUrl: item.imageUrl, mobileImageUrl: item.mobileImageUrl, darkTheme: item.darkTheme, title: item.title, text: item.text, buttonHref: item.buttonHref, buttonTitle: item.buttonTitle, linkTitle: item.linkTitle, linkHref: item.linkHref }))))),\r\n React.createElement(\"div\", { className: \"hero-banner-slider__navigation\" },\r\n React.createElement(Container, null,\r\n React.createElement(Img, { src: props.navigationImageUrl, className: \"hero-banner-slider__navigation-image\", alt: props.navigationText, loading: \"eager\" }),\r\n React.createElement(\"h4\", { className: \"hero-banner-slider__navigation-title\" }, props.navigationText))))));\r\n","import * as React from \"react\";\r\nimport { BellyBanner } from \"../BellyBanner\";\r\nexport const RibbonBanner = (props) => (React.createElement(BellyBanner, { title: props.title, items: [props.text], buttonText: props.buttonText, buttonUrl: props.buttonUrl }));\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const ArticleBanner = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"staticBanner articleBanner staticBanner--short\" },\r\n React.createElement(\"div\", { className: \"staticBanner__content\" },\r\n props.breadcrumbs && React.createElement(\"div\", null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"staticBanner__breadcrumbs\" },\r\n React.createElement(\"a\", { href: \"/\" }, homeIcon()),\r\n props.breadcrumbs.map((item, index) => {\r\n if (index + 1 === props.breadcrumbs?.length) {\r\n return (React.createElement(\"span\", { key: index, className: \"staticBanner__breadcrumb\" },\r\n \" \",\r\n \" / \",\r\n item.breadcrumbText,\r\n \" \"));\r\n }\r\n else {\r\n return (React.createElement(\"a\", { key: index, className: \"staticBanner__breadcrumb\", href: item.breadcrumbLink },\r\n \" \",\r\n \" / \",\r\n item.breadcrumbText,\r\n \" \"));\r\n }\r\n })))),\r\n React.createElement(\"div\", null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"articleBanner__content\" },\r\n React.createElement(\"span\", { className: `articleBanner__tag articleBanner__tag--${props.difficultyColor}` }, props.difficulty),\r\n React.createElement(Heading, { design: \"h1-regular-small\" }, props.title),\r\n React.createElement(\"div\", { className: \"articleBanner__categories\" }, props.categories.map((category, i) => React.createElement(\"a\", { key: `articleBanner__category-${i}`, href: `/${props.culture}${props.categoryLinks.find(el => el.title.toLowerCase().includes(category.toLowerCase()))?.urlSuffix}` }, category))),\r\n React.createElement(\"div\", { className: \"caption-bold color-dark-60\" }, props.children),\r\n React.createElement(Img, { src: props.image, alt: props.title, className: \"articleBanner__image\" }))))))));\r\nconst homeIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 2 46 48\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M34.76 38.1725H26.47V32.5525C26.47 32.2625 26.23 32.0225 25.94 32.0225H22.25C21.96 32.0225 21.72 32.2625 21.72 32.5525V38.1725H14.08C12.64 38.1725 11.47 37.0025 11.47 35.5625V25.9825H9.60001C8.61001 25.9825 7.77001 25.3825 7.46001 24.4425C7.14001 23.5125 7.44001 22.5225 8.22001 21.9225L22.85 10.6725C23.66 10.0525 24.8 10.0525 25.61 10.6725L40.24 21.9225C41.02 22.5225 41.32 23.5125 41 24.4425C40.68 25.3725 39.84 25.9825 38.86 25.9825H37.38V35.5625C37.38 37.0025 36.21 38.1725 34.77 38.1725H34.76ZM27.87 36.7725H34.76C35.43 36.7725 35.97 36.2325 35.97 35.5625V25.5325C35.97 25.5325 35.97 25.4525 35.96 25.4125L35.84 24.6125L36.64 24.5825H38.85C39.42 24.5825 39.62 24.1325 39.67 23.9925C39.72 23.8525 39.83 23.3825 39.38 23.0325L24.75 11.7825C24.44 11.5425 24.01 11.5425 23.7 11.7825L9.07001 23.0325C8.61001 23.3825 8.73001 23.8625 8.78001 23.9925C8.83001 24.1325 9.02001 24.5825 9.60001 24.5825H13L12.89 25.3825C12.88 25.4525 12.87 25.4925 12.87 25.5325V35.5625C12.87 36.2325 13.41 36.7725 14.08 36.7725H20.32V32.5525C20.32 31.4925 21.19 30.6225 22.25 30.6225H25.94C27 30.6225 27.87 31.4925 27.87 32.5525V36.7725Z\", fill: \"#CFD2D6\", stroke: \"#CFD2D6\", strokeWidth: \"0.6\" })));\r\n","import * as React from \"react\";\r\nimport { Breadcrumbs } from \"../../../Components/Breadcrumbs\";\r\nimport { IconFb, IconIn, IconTw } from \"../../../Components/svgIcons\";\r\nexport const PressBanner = (props) => (React.createElement(\"div\", { className: \"pressBanner__container\" },\r\n props.breadcrumbs && React.createElement(Breadcrumbs, { breadcrumbs: props.breadcrumbs }),\r\n React.createElement(\"div\", { className: \"pressBanner\" },\r\n React.createElement(\"h1\", { className: \"h1-regular-small\" }, props.title),\r\n React.createElement(\"div\", { className: \"pressBanner__info\" },\r\n props.isAnnouncement ?\r\n React.createElement(\"div\", { className: \"pressBanner__data\" },\r\n React.createElement(\"span\", { className: \"pressBanner__data--date\" },\r\n updatedDate(props.date),\r\n \" \",\r\n updatedHours(props.date)))\r\n :\r\n React.createElement(\"div\", { className: \"pressBanner__data\" },\r\n React.createElement(\"span\", { className: \"pressBanner__data--cfd\" }, props.cfdCategory),\r\n React.createElement(\"span\", { className: \"pressBanner__data--category\" }, props.category),\r\n React.createElement(\"span\", { className: \"pressBanner__data--date\" }, updatedDate(props.date)),\r\n props.authorUrl ? React.createElement(\"a\", { href: props.authorUrl, className: \"pressBanner__data--author\", target: \"_blank\", rel: \"noopener noreferrer\" }, props.authorName) : React.createElement(\"span\", { className: \"pressBanner__data--author\" }, props.authorName)),\r\n React.createElement(\"div\", { className: \"pressBanner__share\" },\r\n React.createElement(\"span\", null, props.shareText),\r\n React.createElement(\"a\", { target: \"_blank\", className: \"pressBanner__share--fb\", href: `https://www.facebook.com/sharer/sharer.php?u=${window.location.href}`, rel: \"noreferrer\" }, IconFb),\r\n React.createElement(\"a\", { target: \"_blank\", className: \"pressBanner__share--tw\", href: `https://twitter.com/intent/tweet?text=${props.title}&url=${window.location.href}`, rel: \"noreferrer\" }, IconTw),\r\n React.createElement(\"a\", { target: \"_blank\", className: \"pressBanner__share--in\", href: `https://www.linkedin.com/shareArticle?mini=true&url=${window.location.href}&title=${props.title}`, rel: \"noreferrer\" }, IconIn))))));\r\nexport const updatedDate = function (d) {\r\n const dt = new Date(d);\r\n const locale = document.documentElement.lang;\r\n const month = dt.toLocaleString(locale, { month: \"long\" });\r\n if (locale === \"ar-AE\") {\r\n return ` ${dt.getDate()} ${month} ${dt.getFullYear()}`;\r\n }\r\n return `${month.substring(0, 3)} ${dt.getDate()}, ${dt.getFullYear()}`;\r\n};\r\nexport const updatedHours = function (d) {\r\n const dt = new Date(d);\r\n const formatter = new Intl.DateTimeFormat(document.documentElement.lang, { hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" });\r\n const formatted = formatter.format(dt).substring(0, 5);\r\n return `${formatted}`;\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const SearchBanner = (props) => {\r\n const [data, setData] = React.useState(\"\");\r\n const searchFieldHandler = React.useCallback(e => setData(e.target.value), [data]);\r\n const optionsHandler = React.useCallback(value => (e) => {\r\n e.preventDefault();\r\n setData(value),\r\n props.search(value);\r\n }, [data]);\r\n const clickHandler = React.useCallback((e) => {\r\n e.key === \"Enter\" && props.search(data);\r\n }, [data]);\r\n return (React.createElement(\"div\", { className: \"search-banner\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"search-banner__container\" },\r\n React.createElement(\"div\", { className: \"search-banner__input-container\" },\r\n React.createElement(\"input\", { className: \"search-banner__input\", type: \"text\", placeholder: props.inputPlaceholder, defaultValue: props.query, onChange: searchFieldHandler, onKeyDown: clickHandler })),\r\n React.createElement(\"div\", { className: \"search-banner__title\" },\r\n React.createElement(\"p\", null, props.title)),\r\n React.createElement(\"div\", { className: \"search-banner__items\" },\r\n React.createElement(\"ul\", null, props.items.map((item, index) => (React.createElement(\"li\", { key: index },\r\n React.createElement(\"a\", { onClick: optionsHandler(item), href: \"#\" }, item)))))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW, Col, Row } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nexport const ContactsBanner = (props) => {\r\n const mouseClickEvents = [\"mousedown\", \"click\", \"mouseup\"];\r\n function simulateMouseClick(element) {\r\n mouseClickEvents.forEach(mouseEventType => element.dispatchEvent(new MouseEvent(mouseEventType, {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true,\r\n buttons: 1\r\n })));\r\n }\r\n const simulateMouseClickOnZendeskChatIcon = React.useCallback(() => {\r\n const element = document.querySelector(\"a[class=\\\"chat-toggle\\\"]\");\r\n simulateMouseClick(element);\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"contacts-banner\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"contacts-banner__container\" },\r\n React.createElement(Row.Cols4, null, props.contacts.map((item, index) => (React.createElement(Col, { key: index },\r\n React.createElement(\"div\", { onClick: index === 0 ? simulateMouseClickOnZendeskChatIcon : undefined, className: \"contacts-banner__item\", style: { cursor: `${index === 0 ? \"pointer\" : \"unset\"}` } },\r\n React.createElement(Img, { className: \"contacts-banner__item-img\", src: item.iconURL, alt: item.iconAlt }),\r\n React.createElement(\"a\", { href: index === 0 ? undefined : item.linkUrl, className: `contacts-banner__item-text ${index >= 2 ? \"blueLagoon\" : \"\"}` },\r\n React.createElement(\"span\", { className: `${item.additionalText\r\n ? \"circle\"\r\n : \"no-circle\"}` }),\r\n item.text),\r\n React.createElement(\"p\", { className: \"contacts-banner__item-additional-text\" }, item.additionalText)))))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const RibbonBanner2 = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"ribbonBanner2\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"ribbonBanner2__inner\" },\r\n React.createElement(\"div\", { className: \"ribbonBanner2__text\" },\r\n React.createElement(\"h3\", null, props.largeText),\r\n React.createElement(\"p\", null, props.smallText)),\r\n React.createElement(\"a\", { href: props.buttonUrl, className: \"ribbonBanner2__cta\" }, props.buttonText))))));\r\n","import React, { useMemo } from \"react\";\r\nimport { sanitizeUrl } from \"../..//utils\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nexport const ImgV2 = ({ smallUrl, mediumUrl, largeUrl, strictRender, src, ...rest }) => {\r\n const { isSmall, isMedium, isLarge } = usePageViewStyle();\r\n const chosenUrl = useMemo(() => {\r\n if (isMedium) {\r\n return mediumUrl;\r\n }\r\n if (isLarge) {\r\n return largeUrl;\r\n }\r\n return smallUrl;\r\n }, [isMedium, isLarge, smallUrl, mediumUrl, largeUrl]);\r\n const renderSmallImage = () => (smallUrl && React.createElement(\"img\", { src: smallUrl, ...rest }));\r\n const renderMediumImage = () => (mediumUrl && React.createElement(\"img\", { src: mediumUrl, ...rest }));\r\n const renderLargeImage = () => (largeUrl && React.createElement(\"img\", { src: largeUrl, ...rest }));\r\n const getAppropriateImageUrl = () => (chosenUrl || src || mediumUrl || largeUrl || smallUrl || \"\");\r\n if (strictRender) {\r\n if (isSmall) {\r\n return React.createElement(React.Fragment, null, renderSmallImage());\r\n }\r\n if (isMedium) {\r\n return React.createElement(React.Fragment, null, renderMediumImage());\r\n }\r\n if (isLarge) {\r\n return React.createElement(React.Fragment, null, renderLargeImage());\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }\r\n const normalUrl = getAppropriateImageUrl();\r\n return React.createElement(\"img\", { src: sanitizeUrl(normalUrl), ...rest, alt: rest.alt });\r\n};\r\n","import * as React from \"react\";\r\nimport { handleLinkTarget } from \"../../../utils\";\r\nimport { ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const RibbonBanner3 = ({ iconImgUrl, iconImgAlt, mainText, linkText, linkUrl, linkOpenInNewTab }) => {\r\n const linkHrefTarget = handleLinkTarget(linkOpenInNewTab);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"ribbon-banner3 centered-container color-pure-white bg-color-dark-background-ribbon\" },\r\n React.createElement(ImgV2, { src: iconImgUrl, alt: iconImgAlt }),\r\n React.createElement(\"span\", { className: \"ribbon-banner3__main-text\", dangerouslySetInnerHTML: {\r\n __html: mainText\r\n } }),\r\n React.createElement(\"a\", { href: linkUrl, target: linkHrefTarget, className: \"ribbon-banner3__main-text color-pure-white\" }, linkText))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const MethodImage = (props) => (React.createElement(\"div\", { className: \"method-image\" },\r\n React.createElement(Img, { src: props.imageURL, alt: props.imageAlt })));\r\n","import * as React from \"react\";\r\nimport { MethodImage } from \"./MethodImage/MethodImage\";\r\nexport const PaymentMethodsBanner = (props) => (React.createElement(\"div\", { className: \"payment-methods-banner\" },\r\n React.createElement(\"p\", { className: \"payment-methods-banner__title\" }, props.title),\r\n React.createElement(\"div\", { className: \"payment-methods-banner__container\" },\r\n React.createElement(\"div\", { className: \"payment-methods-banner__row-items\" }, props.content.map((item, i) => (React.createElement(MethodImage, { key: `payment-methods-banner__row-item-${i}`, imageURL: item.imageURL, imageAlt: item.imageAlt })))))));\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Button } from \"../../Button\";\r\nimport \".\";\r\nexport const ErrorBanner = (props) => {\r\n const clickHandler = React.useCallback(() => {\r\n window.location.href = \"/\";\r\n }, []);\r\n return (React.createElement(\"div\", { style: {\r\n backgroundSize: \"cover\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"center\",\r\n backgroundImage: `url(${props.backgroundUrl})`,\r\n } },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"main-error-container\" },\r\n React.createElement(\"div\", { className: \"main-error-container__error-items-container\" },\r\n React.createElement(\"p\", null, props.errorMessage),\r\n React.createElement(\"span\", { className: \"text-jumbo\" }, props.title),\r\n React.createElement(\"h5\", null, props.description),\r\n React.createElement(\"div\", { className: \"main-error-container__return-button\" },\r\n React.createElement(Button, { label: props.returnButtonText, primary: true, onClick: clickHandler })),\r\n React.createElement(\"span\", { className: \"main-error-container__help-pages-link\", dangerouslySetInnerHTML: {\r\n __html: props.returnToHomepageHtml,\r\n } })))))));\r\n};\r\n","import React from \"react\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nexport const ButtonSquare = ({ primary = true, label, ...props }) => {\r\n const openInNewTabValue = props.openinnewtab === \"true\" ? true : false;\r\n const hrefTarget = handleLinkTarget(openInNewTabValue);\r\n return (React.createElement(\"a\", { href: props.href ? props.href : \"#\", onClick: props.onClick, target: hrefTarget, className: `squaredButton squaredButton--${primary ? \"primary\" : \"secondary\"} ${props.classes ? props.classes : \"\"}`, style: { ...props.style }, ...props }, label));\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nimport { Img } from \"../../Img\";\r\nimport { handleLinkTarget } from \"../../../utils\";\r\nexport const HeroBannerWithImages = ({ slideTitles, stats, buttonLabel, buttonHref, linkLabel, changingInterval, linkHref, linkOpenInNewTab, buttonOpenInNewTab }) => {\r\n const [value, setValue] = useState(0);\r\n const linkHrefTarget = handleLinkTarget(linkOpenInNewTab);\r\n const handleFadeInAndFadeOut = useCallback((index) => () => {\r\n setValue(index);\r\n }, []);\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if (value < slideTitles.length - 1) {\r\n setValue(value + 1);\r\n }\r\n else {\r\n setValue(0);\r\n }\r\n }, changingInterval ?? 5000);\r\n return () => clearInterval(interval);\r\n }, [value, changingInterval, slideTitles.length]);\r\n return (React.createElement(\"div\", { className: \"HeroBannerWithImagesWrapper\" },\r\n React.createElement(\"section\", { className: \"heroRootWrapperGridContainer\" },\r\n slideTitles.map((slide, index) => (React.createElement(\"div\", { className: `titleWrapper ${value === index ? \"elementToFadeIn\" : \"elementToFadeOut\"}`, key: `unique${slide.mainTitle}` },\r\n React.createElement(\"div\", { className: \"titleWrapper__mainTitle\", dangerouslySetInnerHTML: {\r\n __html: slide.mainTitle,\r\n } }),\r\n React.createElement(\"div\", { className: \"titleWrapper__mainSubTitle\", dangerouslySetInnerHTML: {\r\n __html: slide.mainSubTitle,\r\n } })))),\r\n React.createElement(\"div\", { className: \"imageWrapper\" }, slideTitles.map((a, index) => (React.createElement(Img, { key: `images${a.mainImage}`, className: `${value === index ? \"elementToFadeIn\" : \"elementToFadeOut\"}`, src: slideTitles[value].mainImage, alt: slideTitles[value].mainImageAlt })))),\r\n React.createElement(\"div\", { className: \"buttonsWrapper\" },\r\n React.createElement(ButtonSquare, { label: buttonLabel, href: buttonHref, openinnewtab: buttonOpenInNewTab.toString() }),\r\n linkLabel && React.createElement(\"a\", { href: linkHref, target: linkHrefTarget }, linkLabel)),\r\n React.createElement(\"div\", { className: \"statsWrapper\" }, stats.map((a) => (React.createElement(\"span\", { key: `statElement${a.title}` },\r\n React.createElement(\"p\", { className: \"statsWrapper__statTitle\" }, a.title),\r\n React.createElement(\"p\", { className: \"statsWrapper__statSubTitle\" }, a.subTitle))))),\r\n React.createElement(\"div\", { className: \"sliderButtonsWrapper\" }, slideTitles.map((a, index) => (React.createElement(\"span\", { className: \"sliderButtonsWrapper__sliderButtonsItemContainer\", key: `unique${a.mainTitle}`, onClick: handleFadeInAndFadeOut(index) },\r\n React.createElement(\"div\", { className: `sliderButtonsWrapper__sliderButtonsItem ${index === value ? \"sliderButtonsWrapper__active\" : \"\"}`, style: { backgroundColor: `${index < value ? \"#5ee15a\" : \"unset\"}` } },\r\n React.createElement(\"span\", { className: \"sliderButtonsWrapper__progres-scale\" })))))))));\r\n};\r\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref) return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current) callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nconst getButtonDesign = (buttonType) => buttonType === \"primary\" ? \"cta-medium-wbg\" : \"ghost-medium-wbg\";\r\nexport const OptionalButtonBanner = ({ title, description, note, imageDesktop, imageMobile, alt, imagePosition, buttonText, buttonUrl, backgroundColor, buttonType, hasBigImage, linkText, linkURL, openInNewTabButton }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const { ref, inView } = useInView({\r\n threshold: 0,\r\n triggerOnce: true,\r\n });\r\n const [bigImage, setBigImage] = React.useState(\"\");\r\n const [smallImage, setSmallImage] = React.useState(\"\");\r\n const titleSection = () => (title && React.createElement(\"div\", { className: \"optional-button-banner__title-container\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: { __html: title } })));\r\n const buttonSection = () => (buttonText && React.createElement(ButtonV2, { design: getButtonDesign(buttonType), href: buttonUrl, openInNewTab: openInNewTabButton }, buttonText));\r\n const linkSection = () => (linkText && React.createElement(\"a\", { className: \"optional-button-banner__link-wrapper\", href: linkURL }, linkText));\r\n React.useEffect(() => {\r\n setBigImage(imageDesktop);\r\n }, [imageDesktop]);\r\n React.useEffect(() => {\r\n setSmallImage(imageMobile);\r\n }, [imageMobile]);\r\n const leftDesktopImageSection = () => (React.createElement(\"div\", { className: \"optional-button-banner__image-container-left hide-medium hide-small\" }, imagePosition.toLowerCase() === \"left\" && React.createElement(ImgV2, { largeUrl: bigImage, strictRender: true, alt: alt })));\r\n const rightDesktopImageSection = () => (React.createElement(\"div\", { className: \"optional-button-banner__image-container-right hide-medium hide-small\" },\r\n imagePosition.toLowerCase() !== \"left\" && React.createElement(ImgV2, { largeUrl: bigImage, strictRender: true, alt: alt }),\r\n note && React.createElement(\"div\", { className: \"footnote\" }, note)));\r\n const mobileImageSection = () => (React.createElement(\"div\", { className: \"optional-button-banner__image-container-mobile hide-large\" },\r\n React.createElement(ImgV2, { mediumUrl: bigImage, smallUrl: smallImage, strictRender: true, alt: alt }),\r\n note && React.createElement(\"div\", { className: \"footnote\" }, note)));\r\n return (React.createElement(\"div\", { className: \"option-button-banner__container\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: `optional-button-banner ${hasBigImage ? \"optional-button-banner--big-image\" : \"\"} ${inView ? \"optional-button-banner--animated\" : \"\"}`, ref: ref },\r\n React.createElement(\"div\", { className: \"optional-button-banner__flex-outer\" },\r\n leftDesktopImageSection(),\r\n React.createElement(\"div\", { className: \"optional-button-banner__flex-middle\" },\r\n titleSection(),\r\n mobileImageSection(),\r\n React.createElement(\"div\", { className: \"optional-button-banner__description-container\" },\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: description } })),\r\n React.createElement(\"div\", { className: \"optional-button-banner__button-container\" },\r\n buttonSection(),\r\n linkSection())),\r\n rightDesktopImageSection()))))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { Button } from \"../../Button\";\r\nexport const OptionalButtonSectionBanner = ({ title, description, imageDesktop, imageMobile, alt, imagePosition, buttonText, buttonUrl, openInNewTabButton = false }) => {\r\n const [imageDesktopValue, setImageDesktopValue] = useState(\"\");\r\n const [altValue, setAltValue] = useState(\"\");\r\n useEffect(() => {\r\n setImageDesktopValue(imageDesktop);\r\n setAltValue(alt);\r\n }, [imageDesktop, alt]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"optional-button-section-banner\" },\r\n React.createElement(\"div\", { className: `optional-button-section-banner__grid-outer bg-color-neutral-accent-background ${imagePosition === \"left\" ? \"\" : \"optional-button-section-banner__img-right\"}` },\r\n React.createElement(\"div\", { className: \"optional-button-section-banner__image-container centered-container bg-color-neutral-accent-default hide-medium hide-small\" },\r\n React.createElement(ImgV2, { largeUrl: imageDesktopValue, alt: altValue, strictRender: true, className: \"optional-button-section-banner__image\" })),\r\n React.createElement(\"div\", { className: \"optional-button-section-banner__flex-middle\" },\r\n React.createElement(\"div\", { className: \"optional-button-section-banner__image-container-mobile bg-color-neutral-accent-default hide-large centered-container\" },\r\n React.createElement(ImgV2, { mediumUrl: imageDesktopValue, alt: altValue, smallUrl: imageMobile, strictRender: true, className: \"optional-button-section-banner__image\" })),\r\n React.createElement(\"div\", { className: \"optional-button-section-banner__title-container\" },\r\n React.createElement(\"h3\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n } })),\r\n React.createElement(\"div\", { className: \"optional-button-section-banner__description-container\", dangerouslySetInnerHTML: {\r\n __html: description,\r\n } }),\r\n buttonText && React.createElement(\"div\", { className: \"optional-button-section-banner__button-container\" },\r\n React.createElement(Button, { label: buttonText, href: buttonUrl, openinnewtab: openInNewTabButton.toString() }))))))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const OptionalButtonSectionBanner2 = ({ title, description, imageDesktop, imageMobile, alt, imagePosition, buttonText, buttonUrl, designStyles, openInNewTabButton = false }) => {\r\n const [imageDesktopValue, setImageDesktopValue] = useState(\"\");\r\n const [altValue, setAltValue] = useState(\"\");\r\n useEffect(() => {\r\n setImageDesktopValue(imageDesktop);\r\n setAltValue(alt);\r\n }, [imageDesktop, alt]);\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor || \"neutralaccentbackground\");\r\n return (React.createElement(ContainerFW, { backgroundColor: textColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"optional-button-section-banner2\" },\r\n React.createElement(\"div\", { className: `optional-button-section-banner2__flex-outer ${imagePosition === \"left\" ? \"\" : \"optional-button-section-banner2__img-right\"}` },\r\n React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: \"optional-button-section-banner2__image-container centered-container hide-medium hide-small\" },\r\n React.createElement(ImgV2, { largeUrl: imageDesktopValue, alt: altValue, strictRender: true, className: \"optional-button-section-banner2__image\" })),\r\n React.createElement(\"div\", { className: \"centered-container optional-button-section-banner2__flex-middle-container\" },\r\n React.createElement(\"div\", { className: \"optional-button-section-banner2__flex-middle\" },\r\n React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: \"optional-button-section-banner2__image-container-mobile hide-large centered-container\" },\r\n React.createElement(ImgV2, { mediumUrl: imageDesktopValue, alt: altValue, smallUrl: imageMobile, strictRender: true, className: \"optional-button-section-banner2__image\" })),\r\n React.createElement(\"div\", { className: \"optional-button-section-banner2__title-container\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n } }))),\r\n React.createElement(\"div\", { className: \"optional-button-section-banner2__description-container copy-lp\", dangerouslySetInnerHTML: {\r\n __html: description,\r\n } }),\r\n buttonText && React.createElement(\"div\", { className: \"optional-button-section-banner2__button-container\" },\r\n React.createElement(ButtonV2, { href: buttonUrl, design: designStyles?.buttonDesign || \"cta-large-wbg\", openInNewTab: openInNewTabButton },\r\n \" \",\r\n buttonText,\r\n \" \")))))))));\r\n};\r\n","import React from \"react\";\r\nexport const IconBrowser = (React.createElement(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_6480_261901)\" },\r\n React.createElement(\"path\", { d: \"M5.84615 19.692V12.332C4.72615 13.1813 4 14.4982 4 15.9997V23.3843C4 25.932 6.06769 27.9997 8.61538 27.9997H17.2308C18.7323 27.9997 20.0492 27.2736 20.8985 26.1536H12.3077C8.75077 26.1536 5.84615 23.249 5.84615 19.692Z\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M23.3846 5.23047H12.3077C10.08 5.23047 8.20923 6.81816 7.79077 8.92278H27.9015C27.4708 6.81816 25.6123 5.23047 23.3846 5.23047Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M7.69238 10.7695V19.6926C7.69238 22.2403 9.76008 24.308 12.3078 24.308H23.3847C25.9324 24.308 28.0001 22.2403 28.0001 19.6926V10.7695H7.69238Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_6480_261901\" },\r\n React.createElement(\"rect\", { width: \"24\", height: \"24\", fill: \"white\", transform: \"translate(4 4)\" })))));\r\n","import React from \"react\";\r\nexport const IconSmartphone = (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"rect\", { width: \"8.7892\", height: \"23.8696\", rx: \"1\", transform: \"matrix(-1 0 0 1 16.4637 0)\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M15.6522 0H15.3478V2.14214C15.3478 3.31726 14.3861 4.28428 13.2174 4.28428H10.7826C9.61391 4.28428 8.65217 3.31726 8.65217 2.14214V0H8.34783C6.49739 0 5 1.50562 5 3.36622V20.5033C5 22.3639 6.49739 23.8696 8.34783 23.8696H15.6522C17.5026 23.8696 19 22.3639 19 20.5033V3.36622C19 1.50562 17.5026 0 15.6522 0ZM13.2174 20.1973H10.7826C10.2835 20.1973 9.86957 19.7811 9.86957 19.2793C9.86957 18.7774 10.2835 18.3612 10.7826 18.3612H13.2174C13.7165 18.3612 14.1304 18.7774 14.1304 19.2793C14.1304 19.7811 13.7165 20.1973 13.2174 20.1973Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M10.7826 2.44816H13.2174C13.3878 2.44816 13.5218 2.31351 13.5218 2.14214V0H10.4783V2.14214C10.4783 2.31351 10.6122 2.44816 10.7826 2.44816Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nexport const IconAppStore = (React.createElement(\"svg\", { width: \"102\", height: \"32\", viewBox: \"0 0 102 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_9983_9581)\" },\r\n React.createElement(\"path\", { d: \"M97.8956 32H4.10488C3.10386 31.9969 2.34267 31.4433 1.63484 30.6939C0.927013 29.9444 0.330079 29.06 0.327148 28.0001V3.99992C0.330079 2.94003 0.927013 2.05558 1.63484 1.30612C2.34267 0.556664 3.57613 0.00310264 4.57715 0H97.7502C98.5856 0.326531 99.6578 0.556664 100.366 1.30612C101.073 2.05558 101.67 2.94003 101.673 3.99992V28.0001C101.67 29.06 101.271 30.0756 100.564 30.825C99.8558 31.5745 98.8966 31.9969 97.8956 32Z\", fill: \"black\" }),\r\n React.createElement(\"path\", { d: \"M98.0261 0.640954C98.467 0.640868 98.9036 0.727725 99.311 0.896564C99.7184 1.0654 100.089 1.31292 100.4 1.62496C100.712 1.93701 100.959 2.30748 101.128 2.7152C101.297 3.12293 101.384 3.55992 101.383 4.00122V28.0007C101.384 28.4421 101.297 28.8793 101.128 29.2872C100.96 29.695 100.713 30.0657 100.401 30.3778C100.089 30.69 99.7188 30.9377 99.3113 31.1066C98.9038 31.2755 98.4671 31.3624 98.0261 31.3623H3.99652C3.55559 31.3624 3.11897 31.2755 2.71159 31.1067C2.30421 30.9379 1.93406 30.6903 1.62227 30.3783C1.31049 30.0663 1.06319 29.6958 0.894496 29.2881C0.725801 28.8803 0.639017 28.4433 0.639103 28.002V4.00057C0.639017 3.55927 0.725801 3.12228 0.894496 2.71455C1.06319 2.30682 1.31049 1.93636 1.62227 1.62431C1.93406 1.31226 2.30421 1.06475 2.71159 0.895911C3.11897 0.727072 3.55559 0.640215 3.99652 0.640301L98.0261 0.640954ZM98.0261 0H3.99652C2.93741 0.00310346 1.92259 0.425608 1.17375 1.17521C0.424907 1.92481 0.00292784 2.94057 0 4.00057V28.0007C0.0031 29.0606 0.425156 30.0762 1.17398 30.8257C1.9228 31.5751 2.93753 31.9975 3.99652 32.0007H98.0261C99.0851 31.9975 100.1 31.5751 100.849 30.8257C101.597 30.0762 102.02 29.0606 102.023 28.0007V4.00057C102.02 2.94068 101.597 1.92509 100.849 1.17563C100.1 0.426171 99.0851 0.00375627 98.0261 0.000653632V0Z\", fill: \"#A6A6A6\" }),\r\n React.createElement(\"path\", { d: \"M22.9459 15.367C22.9544 14.6993 23.1316 14.0445 23.4608 13.4638C23.7901 12.883 24.2609 12.395 24.8292 12.0453C24.4683 11.529 23.9919 11.1042 23.4381 10.8045C22.8843 10.5049 22.2682 10.3386 21.6389 10.3191C20.2968 10.1779 18.9957 11.1227 18.3096 11.1227C17.6124 11.1227 16.5594 10.3328 15.4255 10.3563C14.6919 10.38 13.977 10.5934 13.3504 10.9759C12.7238 11.3583 12.2069 11.8967 11.85 12.5385C10.3042 15.2174 11.4583 19.1539 12.9383 21.3192C13.6792 22.3796 14.5448 23.5635 15.6801 23.5217C16.7899 23.4759 17.2031 22.8141 18.5414 22.8141C19.8672 22.8141 20.2556 23.5217 21.4137 23.4949C22.6032 23.4753 23.3532 22.4299 24.0681 21.3597C24.6004 20.6041 25.01 19.769 25.2816 18.8854C24.5902 18.5932 23.9999 18.1038 23.5845 17.4781C23.1692 16.8524 22.947 16.1182 22.9459 15.367Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M20.7624 8.89406C21.4109 8.11463 21.7304 7.11289 21.6529 6.10156C20.6613 6.20532 19.7452 6.67939 19.0873 7.42921C18.7659 7.79538 18.5198 8.22136 18.3629 8.6828C18.2061 9.14425 18.1417 9.6321 18.1734 10.1185C18.6694 10.1238 19.1601 10.0164 19.6086 9.80433C20.0571 9.59223 20.4516 9.28098 20.7624 8.89406Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M36.9611 20.8357H33.1748L32.2661 23.521H30.666L34.25 13.5898H35.9146L39.4986 23.521H37.8665L36.9611 20.8357ZM33.5665 19.5943H36.5655L35.0875 15.2389H35.0483L33.5665 19.5943Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M47.2372 19.9019C47.2372 22.1527 46.0335 23.5986 44.2173 23.5986C43.7572 23.6228 43.2996 23.5167 42.8969 23.2927C42.4942 23.0686 42.1627 22.7356 41.9403 22.3318H41.9057V25.9194H40.4199V16.2803H41.8561V17.4851H41.8835C42.1161 17.083 42.4532 16.7516 42.859 16.5261C43.2648 16.3006 43.724 16.1895 44.188 16.2045C46.0263 16.2045 47.2372 17.6576 47.2372 19.9019ZM45.7103 19.9019C45.7103 18.4357 44.953 17.4713 43.7976 17.4713C42.6623 17.4713 41.8992 18.456 41.8992 19.9019C41.8992 21.3615 42.6623 22.3383 43.7976 22.3383C44.953 22.3389 45.7103 21.3818 45.7103 19.9019Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M55.2027 19.9019C55.2027 22.1527 53.9989 23.5986 52.1828 23.5986C51.7227 23.6228 51.2651 23.5167 50.8624 23.2927C50.4597 23.0686 50.1282 22.7356 49.9058 22.3318H49.8712V25.9194H48.3887V16.2803H49.8249V17.4851H49.8523C50.0848 17.083 50.4219 16.7516 50.8277 16.5261C51.2335 16.3006 51.6928 16.1895 52.1567 16.2045C53.9924 16.2045 55.2027 17.6576 55.2027 19.9019ZM53.6758 19.9019C53.6758 18.4357 52.9185 17.4713 51.7631 17.4713C50.6278 17.4713 49.8647 18.456 49.8647 19.9019C49.8647 21.3615 50.6278 22.3383 51.7631 22.3383C52.9185 22.3383 53.6758 21.3811 53.6758 19.9019Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M60.4672 20.7553C60.5775 21.7405 61.5332 22.3887 62.8402 22.3887C64.0922 22.3887 64.9944 21.7418 64.9944 20.8533C64.9944 20.0823 64.4513 19.6204 63.1666 19.3041L61.8792 18.9957C60.0566 18.5554 59.2105 17.7021 59.2105 16.3169C59.2105 14.6031 60.7028 13.4258 62.8225 13.4258C64.92 13.4258 66.3575 14.6018 66.4065 16.3169H64.905C64.8149 15.3258 63.9963 14.7273 62.7997 14.7273C61.6031 14.7273 60.7844 15.333 60.7844 16.2137C60.7844 16.9161 61.3067 17.329 62.5869 17.6459L63.6803 17.9144C65.7171 18.3966 66.5631 19.2153 66.5631 20.6684C66.5631 22.5272 65.0839 23.6908 62.7311 23.6908C60.5299 23.6908 59.0434 22.554 58.9448 20.7572L60.4672 20.7553Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M69.7673 14.5664V16.2802H71.1434V17.4563H69.7673V21.449C69.7673 22.069 70.0428 22.3585 70.648 22.3585C70.8114 22.3556 70.9746 22.344 71.1369 22.3238V23.494C70.8649 23.5448 70.5884 23.5678 70.3118 23.5626C68.8468 23.5626 68.275 23.0118 68.275 21.6071V17.4576H67.2227V16.2815H68.275V14.5664H69.7673Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M71.9414 19.9025C71.9414 17.6236 73.2823 16.1914 75.3739 16.1914C77.4655 16.1914 78.807 17.6236 78.807 19.9025C78.807 22.1815 77.4792 23.6137 75.3739 23.6137C73.2686 23.6137 71.9414 22.1874 71.9414 19.9025ZM77.2945 19.9025C77.2945 18.339 76.5764 17.4197 75.3752 17.4197C74.174 17.4197 73.4566 18.3495 73.4566 19.9025C73.4566 21.4706 74.1747 22.3853 75.3752 22.3853C76.5757 22.3853 77.2945 21.4706 77.2945 19.9025Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M80.0303 16.2821H81.4469V17.515H81.4815C81.5777 17.1304 81.8032 16.7906 82.1201 16.5527C82.437 16.3147 82.826 16.1931 83.2219 16.2083C83.3931 16.2077 83.5639 16.2263 83.7311 16.2638V17.6542C83.5151 17.588 83.2897 17.5576 83.0639 17.564C82.8481 17.5553 82.633 17.5934 82.4334 17.6757C82.2337 17.758 82.0542 17.8826 81.9072 18.0408C81.7601 18.1991 81.649 18.3873 81.5815 18.5926C81.514 18.7979 81.4917 19.0154 81.5161 19.2301V23.5254H80.0303V16.2821Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M90.5802 21.4C90.3804 22.7146 89.1009 23.6169 87.4643 23.6169C85.359 23.6169 84.0527 22.205 84.0527 19.9404C84.0527 17.6758 85.3662 16.1953 87.4023 16.1953C89.4045 16.1953 90.6664 17.572 90.6664 19.7679V20.2776H85.5548V20.3677C85.5312 20.6343 85.5646 20.9028 85.6526 21.1555C85.7407 21.4082 85.8814 21.6392 86.0656 21.8332C86.2497 22.0273 86.4729 22.1799 86.7205 22.2809C86.9681 22.382 87.2343 22.4291 87.5015 22.4193C87.8525 22.4522 88.2048 22.3709 88.5059 22.1873C88.807 22.0038 89.0409 21.7279 89.1727 21.4007L90.5802 21.4ZM85.5588 19.238H89.1767C89.19 18.9984 89.1537 18.7585 89.0701 18.5335C88.9864 18.3085 88.8572 18.1032 88.6906 17.9306C88.5239 17.7579 88.3233 17.6216 88.1015 17.5302C87.8797 17.4388 87.6415 17.3943 87.4017 17.3995C87.1597 17.398 86.9199 17.4445 86.696 17.5363C86.4722 17.6281 86.2687 17.7634 86.0973 17.9343C85.926 18.1053 85.7902 18.3085 85.6978 18.5323C85.6053 18.756 85.5581 18.9959 85.5588 19.238Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M33.382 6.1109C33.6934 6.0885 34.0059 6.13556 34.2969 6.24869C34.588 6.36181 34.8503 6.53818 35.065 6.76507C35.2798 6.99195 35.4415 7.2637 35.5385 7.56072C35.6356 7.85773 35.6656 8.17261 35.6263 8.48263C35.6263 10.0076 34.8031 10.8844 33.382 10.8844H31.6592V6.1109H33.382ZM32.4027 10.2095H33.3017C33.5241 10.2224 33.7466 10.1856 33.9531 10.1017C34.1595 10.0179 34.3448 9.88908 34.4953 9.72469C34.6459 9.5603 34.758 9.36444 34.8236 9.1513C34.8891 8.93816 34.9064 8.7131 34.8743 8.49243C34.9048 8.2725 34.8863 8.04853 34.82 7.83662C34.7538 7.62471 34.6414 7.43014 34.491 7.26689C34.3407 7.10364 34.156 6.97577 33.9503 6.89247C33.7447 6.80918 33.5231 6.77254 33.3017 6.78518H32.4001L32.4027 10.2095Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M36.4624 9.08093C36.4397 8.84414 36.4666 8.60519 36.5416 8.37943C36.6165 8.15368 36.7378 7.9461 36.8976 7.77001C37.0574 7.59393 37.2523 7.45323 37.4696 7.35695C37.687 7.26067 37.922 7.21094 38.1597 7.21094C38.3974 7.21094 38.6325 7.26067 38.8498 7.35695C39.0672 7.45323 39.262 7.59393 39.4219 7.77001C39.5817 7.9461 39.703 8.15368 39.7779 8.37943C39.8528 8.60519 39.8798 8.84414 39.857 9.08093C39.8798 9.31773 39.8528 9.55668 39.7779 9.78243C39.703 10.0082 39.5817 10.2158 39.4219 10.3919C39.262 10.5679 39.0672 10.7086 38.8498 10.8049C38.6325 10.9012 38.3974 10.9509 38.1597 10.9509C37.922 10.9509 37.687 10.9012 37.4696 10.8049C37.2523 10.7086 37.0574 10.5679 36.8976 10.3919C36.7378 10.2158 36.6165 10.0082 36.5416 9.78243C36.4666 9.55668 36.4397 9.31773 36.4624 9.08093ZM39.1266 9.08093C39.1266 8.29689 38.776 7.84346 38.161 7.84346C37.5461 7.84346 37.1962 8.30081 37.1962 9.08093C37.1962 9.86105 37.5435 10.3223 38.161 10.3223C38.7786 10.3223 39.1266 9.86498 39.1266 9.08093Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M44.3725 10.8846H43.6329L42.8887 8.23125H42.8325L42.0916 10.8846H41.3624L40.3701 7.28256H41.0882L41.7332 10.0313H41.7861L42.5264 7.28256H43.2079L43.9501 10.03H44.0063L44.648 7.28125H45.3583L44.3725 10.8846Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M46.1934 7.28371H46.8762V7.85606H46.9291C47.0192 7.65063 47.171 7.47842 47.3635 7.36342C47.556 7.24842 47.7795 7.19635 48.003 7.21446C48.1781 7.20128 48.354 7.22772 48.5175 7.29182C48.681 7.35591 48.8281 7.45602 48.9477 7.58472C49.0673 7.71343 49.1565 7.86742 49.2086 8.0353C49.2606 8.20318 49.2743 8.38063 49.2485 8.55451V10.8864H48.5396V8.73027C48.5396 8.15139 48.2882 7.86325 47.7627 7.86325C47.6437 7.85775 47.5249 7.8781 47.4144 7.9229C47.304 7.9677 47.2045 8.03589 47.1229 8.1228C47.0413 8.2097 46.9794 8.31325 46.9416 8.42635C46.9037 8.53944 46.8908 8.65939 46.9036 8.77797V10.8851H46.1934V7.28371Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M50.3804 5.875H51.0906V10.8818H50.3804V5.875Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M52.0788 9.08093C52.056 8.84414 52.083 8.60519 52.1579 8.37943C52.2329 8.15368 52.3542 7.9461 52.514 7.77001C52.6738 7.59393 52.8686 7.45323 53.086 7.35695C53.3034 7.26067 53.5384 7.21094 53.7761 7.21094C54.0138 7.21094 54.2489 7.26067 54.4662 7.35695C54.6836 7.45323 54.8784 7.59393 55.0382 7.77001C55.1981 7.9461 55.3193 8.15368 55.3943 8.37943C55.4692 8.60519 55.4962 8.84414 55.4734 9.08093C55.4972 9.31829 55.4709 9.55799 55.3965 9.78459C55.322 10.0112 55.2009 10.2196 55.0409 10.3965C54.881 10.5734 54.6859 10.7148 54.468 10.8115C54.2501 10.9083 54.0144 10.9583 53.7761 10.9583C53.5378 10.9583 53.3021 10.9083 53.0842 10.8115C52.8664 10.7148 52.6712 10.5734 52.5113 10.3965C52.3514 10.2196 52.2302 10.0112 52.1558 9.78459C52.0813 9.55799 52.0551 9.31829 52.0788 9.08093ZM54.7429 9.08093C54.7429 8.29689 54.3924 7.84346 53.7774 7.84346C53.1625 7.84346 52.8126 8.30081 52.8126 9.08093C52.8126 9.86105 53.1599 10.3223 53.7774 10.3223C54.395 10.3223 54.7429 9.86497 54.7429 9.08093Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M56.2217 9.86361C56.2217 9.21547 56.7041 8.84109 57.5606 8.78817L58.5352 8.73198V8.42097C58.5352 8.04071 58.2839 7.82576 57.7982 7.82576C57.402 7.82576 57.1271 7.97146 57.0481 8.22627H56.3614C56.4338 7.60753 57.0142 7.21094 57.8322 7.21094C58.7344 7.21094 59.2435 7.66045 59.2435 8.42163V10.8829H58.5594V10.3765H58.5033C58.3892 10.5581 58.2291 10.7062 58.0391 10.8056C57.8492 10.905 57.6363 10.9522 57.4222 10.9423C57.2711 10.958 57.1184 10.9419 56.9739 10.8949C56.8295 10.8479 56.6964 10.7712 56.5834 10.6696C56.4703 10.5681 56.3798 10.4439 56.3176 10.3052C56.2554 10.1665 56.223 10.0163 56.2223 9.86426L56.2217 9.86361ZM58.5352 9.55587V9.25467L57.6566 9.31086C57.1611 9.34418 56.9385 9.51275 56.9385 9.83356C56.9385 10.1544 57.2192 10.3464 57.6056 10.3464C57.7189 10.3576 57.8332 10.3459 57.9418 10.312C58.0504 10.2781 58.1511 10.2227 58.2379 10.1491C58.3246 10.0755 58.3958 9.98512 58.447 9.88343C58.4982 9.78175 58.5284 9.6708 58.5359 9.55718L58.5352 9.55587Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M60.1768 9.08108C60.1768 7.94291 60.7643 7.22159 61.671 7.22159C61.896 7.21117 62.1193 7.26504 62.3147 7.37693C62.5102 7.48881 62.6698 7.65407 62.775 7.8534H62.8278V5.875H63.54V10.8818H62.8572V10.3127H62.8011C62.6879 10.5106 62.5228 10.6738 62.3236 10.7846C62.1244 10.8954 61.8988 10.9495 61.671 10.9412C60.7551 10.9432 60.1768 10.2219 60.1768 9.08108ZM60.9105 9.08108C60.9105 9.84486 61.2702 10.3048 61.8721 10.3048C62.474 10.3048 62.8409 9.83833 62.8409 9.08434C62.8409 8.33036 62.4668 7.86058 61.8721 7.86058C61.2774 7.86058 60.9105 8.32317 60.9105 9.08108Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M66.4766 9.08093C66.4538 8.84414 66.4808 8.60519 66.5557 8.37943C66.6307 8.15368 66.7519 7.9461 66.9118 7.77001C67.0716 7.59393 67.2664 7.45323 67.4838 7.35695C67.7011 7.26067 67.9362 7.21094 68.1739 7.21094C68.4116 7.21094 68.6466 7.26067 68.864 7.35695C69.0814 7.45323 69.2762 7.59393 69.436 7.77001C69.5958 7.9461 69.7171 8.15368 69.7921 8.37943C69.867 8.60519 69.894 8.84414 69.8712 9.08093C69.894 9.31773 69.867 9.55668 69.7921 9.78243C69.7171 10.0082 69.5958 10.2158 69.436 10.3919C69.2762 10.5679 69.0814 10.7086 68.864 10.8049C68.6466 10.9012 68.4116 10.9509 68.1739 10.9509C67.9362 10.9509 67.7011 10.9012 67.4838 10.8049C67.2664 10.7086 67.0716 10.5679 66.9118 10.3919C66.7519 10.2158 66.6307 10.0082 66.5557 9.78243C66.4808 9.55668 66.4538 9.31773 66.4766 9.08093ZM69.1407 9.08093C69.1407 8.29689 68.7901 7.84346 68.1752 7.84346C67.5603 7.84346 67.2103 8.30081 67.2103 9.08093C67.2103 9.86105 67.5576 10.3223 68.1752 10.3223C68.7928 10.3223 69.1407 9.86498 69.1407 9.08093Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M70.8232 7.28375H71.5067V7.8561H71.5616C71.6516 7.6506 71.8034 7.47834 71.9959 7.36333C72.1884 7.24832 72.412 7.19629 72.6354 7.21449C72.8106 7.20132 72.9864 7.22776 73.15 7.29185C73.3135 7.35595 73.4606 7.45606 73.5802 7.58476C73.6998 7.71346 73.789 7.86746 73.841 8.03534C73.8931 8.20321 73.9068 8.38067 73.881 8.55455V10.8864H73.1701V8.73031C73.1701 8.15142 72.9188 7.86329 72.3933 7.86329C72.2742 7.85778 72.1554 7.87813 72.045 7.92293C71.9345 7.96773 71.8351 8.03593 71.7534 8.12283C71.6718 8.20973 71.61 8.31329 71.5721 8.42638C71.5343 8.53947 71.5213 8.65943 71.5342 8.778V10.8851H70.8232V7.28375Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M77.8949 6.38477V7.29949H78.675V7.89863H77.8949V9.75092C77.8949 10.1286 78.0503 10.2932 78.4041 10.2932C78.4946 10.293 78.5851 10.2875 78.675 10.2769V10.8688C78.5474 10.8918 78.4182 10.904 78.2886 10.9054C77.4987 10.9054 77.184 10.6271 77.184 9.93256V7.89667H76.6128V7.29753H77.184V6.38281L77.8949 6.38477Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M79.6416 5.875H80.346V7.85993H80.4021C80.4968 7.65265 80.6528 7.47953 80.8492 7.36405C81.0455 7.24858 81.2725 7.19633 81.4995 7.2144C81.6738 7.20477 81.848 7.23376 82.0098 7.29932C82.1716 7.36487 82.3169 7.46536 82.4354 7.59362C82.5538 7.72188 82.6426 7.87474 82.6952 8.04128C82.7478 8.20783 82.7631 8.38395 82.7398 8.55708V10.8818H82.0309V8.73348C82.0309 8.15787 81.7632 7.86647 81.2612 7.86647C81.139 7.85644 81.0161 7.87328 80.9011 7.91581C80.7861 7.95835 80.6817 8.02555 80.5954 8.1127C80.5091 8.19985 80.4428 8.30484 80.4013 8.42032C80.3598 8.53579 80.3441 8.65896 80.3551 8.78118V10.8818H79.6416V5.875Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M86.8846 9.91135C86.7887 10.2412 86.5799 10.5267 86.2947 10.7179C86.0095 10.909 85.6662 10.9936 85.325 10.9567C85.0877 10.9635 84.8518 10.9184 84.6337 10.8245C84.4157 10.7307 84.2207 10.5903 84.0624 10.4133C83.9041 10.2362 83.7863 10.0268 83.7172 9.79948C83.6481 9.57218 83.6293 9.33254 83.6623 9.09726C83.6307 8.86133 83.6501 8.62136 83.7192 8.39359C83.7883 8.16582 83.9055 7.95557 84.0628 7.77708C84.2202 7.59859 84.414 7.45602 84.6312 7.35903C84.8484 7.26203 85.0839 7.21288 85.3217 7.2149C86.3231 7.2149 86.9276 7.89963 86.9276 9.03061V9.27889H84.3863V9.31875C84.3751 9.45096 84.3916 9.58405 84.4348 9.70949C84.478 9.83492 84.547 9.94993 84.6372 10.0471C84.7274 10.1443 84.837 10.2216 84.9588 10.2739C85.0806 10.3263 85.212 10.3525 85.3446 10.3511C85.5145 10.3715 85.6866 10.3409 85.8391 10.2632C85.9917 10.1855 86.1176 10.0642 86.2011 9.91462L86.8846 9.91135ZM84.3856 8.75032H86.2037C86.2126 8.62943 86.1962 8.50801 86.1555 8.39385C86.1148 8.27969 86.0506 8.17532 85.9672 8.08745C85.8838 7.99958 85.7829 7.93016 85.6711 7.88363C85.5592 7.83711 85.4389 7.81452 85.3178 7.81731C85.195 7.81573 85.073 7.83878 84.9592 7.88511C84.8454 7.93144 84.742 8.00011 84.6551 8.08706C84.5682 8.17401 84.4996 8.2775 84.4533 8.39141C84.4071 8.50532 84.384 8.62736 84.3856 8.75032Z\", fill: \"white\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_9983_9581\" },\r\n React.createElement(\"rect\", { width: \"102\", height: \"32\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const IconGooglePlay = (React.createElement(\"svg\", { width: \"102\", height: \"32\", viewBox: \"0 0 102 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_6480_261989)\" },\r\n React.createElement(\"path\", { d: \"M97.7779 32H4.09986C3.10004 31.9969 2.33976 31.4433 1.63278 30.6939C0.925804 29.9444 0.329587 29.06 0.32666 28.0001V3.99992C0.329587 2.94003 0.925804 2.05558 1.63278 1.30612C2.33976 0.556664 3.57174 0.00310264 4.57156 0H97.6328C98.4672 0.326531 99.538 0.556664 100.245 1.30612C100.952 2.05558 101.548 2.94003 101.551 3.99992V28.0001C101.548 29.06 101.15 30.0756 100.443 30.825C99.7358 31.5745 98.7778 31.9969 97.7779 32Z\", fill: \"black\" }),\r\n React.createElement(\"path\", { d: \"M97.9084 0.640954C98.3488 0.640868 98.7849 0.727725 99.1918 0.896564C99.5987 1.0654 99.9684 1.31292 100.28 1.62496C100.591 1.93701 100.838 2.30748 101.007 2.7152C101.175 3.12293 101.262 3.55992 101.262 4.00122V28.0007C101.262 28.4421 101.175 28.8793 101.007 29.2872C100.839 29.695 100.592 30.0657 100.28 30.3778C99.9688 30.69 99.5991 30.9377 99.1921 31.1066C98.7851 31.2755 98.3489 31.3624 97.9084 31.3623H3.99172C3.55132 31.3624 3.11522 31.2755 2.70833 31.1067C2.30144 30.9379 1.93173 30.6903 1.62033 30.3783C1.30892 30.0663 1.06192 29.6958 0.893422 29.2881C0.72493 28.8803 0.63825 28.4433 0.638336 28.002V4.00057C0.63825 3.55927 0.72493 3.12228 0.893422 2.71455C1.06192 2.30682 1.30892 1.93636 1.62033 1.62431C1.93173 1.31226 2.30144 1.06475 2.70833 0.895911C3.11522 0.727072 3.55132 0.640215 3.99172 0.640301L97.9084 0.640954ZM97.9084 0H3.99172C2.93389 0.00310346 1.92028 0.425608 1.17234 1.17521C0.424397 1.92481 0.00292432 2.94057 0 4.00057V28.0007C0.00309628 29.0606 0.424645 30.0762 1.17257 30.8257C1.92049 31.5751 2.934 31.9975 3.99172 32.0007H97.9084C98.9661 31.9975 99.9796 31.5751 100.728 30.8257C101.475 30.0762 101.897 29.0606 101.9 28.0007V4.00057C101.897 2.94068 101.475 1.92509 100.728 1.17563C99.9796 0.426171 98.9661 0.00375627 97.9084 0.000653632V0Z\", fill: \"#A6A6A6\" }),\r\n React.createElement(\"path\", { d: \"M34.4936 7.89231C34.5086 8.18159 34.4639 8.47085 34.3624 8.74208C34.261 9.01331 34.1049 9.2607 33.9039 9.46886C33.6809 9.70122 33.4114 9.88382 33.1132 10.0047C32.815 10.1256 32.4947 10.1821 32.1732 10.1705C31.849 10.1737 31.5275 10.1118 31.2275 9.98855C30.9276 9.8653 30.6552 9.68319 30.4266 9.45291C30.1979 9.22263 30.0175 8.94885 29.896 8.64767C29.7745 8.3465 29.7144 8.02401 29.7191 7.69919C29.7104 7.37256 29.7696 7.04769 29.8928 6.74517C30.016 6.44264 30.2005 6.16906 30.4348 5.94175C30.7848 5.59809 31.2285 5.36584 31.71 5.2742C32.1915 5.18257 32.6892 5.23564 33.1407 5.42674C33.4242 5.54361 33.6772 5.72422 33.8801 5.95462L33.4632 6.37242C33.3048 6.18694 33.1063 6.04013 32.8827 5.94318C32.6592 5.84624 32.4165 5.80171 32.1732 5.813C31.9338 5.80965 31.6962 5.85466 31.4745 5.94536C31.2529 6.03605 31.0518 6.17057 30.8832 6.34087C30.7023 6.51726 30.5605 6.72981 30.467 6.96472C30.3734 7.19963 30.3303 7.45163 30.3403 7.70434C30.3344 8.07302 30.4378 8.43518 30.6375 8.74488C30.8372 9.05459 31.1242 9.29789 31.4621 9.44394C31.8 9.58999 32.1735 9.63221 32.5354 9.56525C32.8972 9.49828 33.2311 9.32515 33.4946 9.0678C33.7378 8.80564 33.8776 8.46381 33.8878 8.10604H32.1732V7.53825H34.4621C34.4804 7.65545 34.4909 7.77373 34.4936 7.89231Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M38.1195 5.91918H35.9725V7.41654H37.9075V7.98433H35.9725V9.4817H38.1201V10.0649H35.3667V5.33594H38.1195V5.91918Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M40.6763 10.0656H40.0705V5.91982H38.749V5.33594H41.9901V5.91918H40.6686V10.0649L40.6763 10.0656Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M44.3418 10.0656V5.33594H44.9476V10.0656H44.3418Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M47.6377 10.0656H47.0319V5.91982H45.7104V5.33594H48.9515V5.91918H47.63V10.0649L47.6377 10.0656Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M55.0953 9.45237C54.6361 9.91164 54.0138 10.1696 53.3649 10.1696C52.7161 10.1696 52.0938 9.91164 51.6346 9.45237C51.1899 8.97871 50.9424 8.35292 50.9424 7.70265C50.9424 7.05238 51.1899 6.42659 51.6346 5.95293C51.8566 5.71861 52.1253 5.53363 52.4232 5.40998C52.7211 5.28633 53.0416 5.22677 53.364 5.23515C53.6863 5.22802 54.0066 5.28808 54.3045 5.41154C54.6024 5.53499 54.8715 5.71913 55.0947 5.95229C55.5439 6.42358 55.7946 7.05026 55.7946 7.70201C55.7946 8.35376 55.5439 8.98043 55.0947 9.45172L55.0953 9.45237ZM52.083 9.05839C52.4243 9.39679 52.8851 9.5866 53.3653 9.5866C53.8454 9.5866 54.3062 9.39679 54.6475 9.05839C54.8217 8.87946 54.9582 8.6672 55.0487 8.43426C55.1392 8.20133 55.1819 7.9525 55.1743 7.70265C55.1836 7.45299 55.1418 7.20408 55.0514 6.97124C54.961 6.73841 54.824 6.52659 54.6488 6.34884C54.3075 6.01044 53.8467 5.82063 53.3665 5.82063C52.8864 5.82063 52.4256 6.01044 52.0843 6.34884C51.7453 6.71862 51.5571 7.20245 51.5571 7.70458C51.5571 8.20671 51.7453 8.69054 52.0843 9.06032L52.083 9.05839Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M56.644 10.0656V5.33594H57.3835L59.6802 9.01691H59.7039L59.6802 8.10278V5.33594H60.286V10.0656H59.6564L57.2576 6.21144H57.2351L57.2588 7.12557V10.0656H56.644Z\", fill: \"white\", stroke: \"white\", strokeWidth: \"0.128689\", strokeMiterlimit: \"10\" }),\r\n React.createElement(\"path\", { d: \"M50.3702 16.9581C49.7103 16.9616 49.0662 17.161 48.5192 17.531C47.9722 17.901 47.5468 18.425 47.2968 19.037C47.0467 19.649 46.9831 20.3215 47.114 20.9696C47.2449 21.6178 47.5645 22.2126 48.0324 22.6789C48.5003 23.1453 49.0956 23.4623 49.7431 23.59C50.3906 23.7177 51.0614 23.6504 51.6707 23.3965C52.2801 23.1426 52.8008 22.7136 53.1671 22.1635C53.5334 21.6134 53.7288 20.9669 53.7288 20.3056C53.7344 19.8629 53.6512 19.4236 53.4842 19.0138C53.3171 18.6039 53.0697 18.2319 52.7564 17.9197C52.4432 17.6075 52.0706 17.3615 51.6607 17.1963C51.2508 17.0311 50.812 16.9501 50.3702 16.9581ZM50.3702 22.3418C49.9627 22.3712 49.5557 22.2771 49.2023 22.0715C48.8489 21.8659 48.5654 21.5584 48.3889 21.1891C48.2123 20.8198 48.1508 20.4058 48.2124 20.001C48.274 19.5962 48.4558 19.2194 48.7342 18.9196C49.0125 18.6198 49.3745 18.4109 49.773 18.3202C50.1715 18.2295 50.588 18.2611 50.9683 18.4109C51.3486 18.5608 51.675 18.8219 51.9051 19.1603C52.1352 19.4987 52.2583 19.8987 52.2583 20.3081C52.2716 20.567 52.233 20.8259 52.1446 21.0696C52.0563 21.3132 51.92 21.5366 51.744 21.7265C51.5679 21.9164 51.3556 22.069 51.1197 22.1753C50.8837 22.2815 50.6289 22.3392 50.3702 22.345V22.3418ZM43.0388 16.9581C42.3789 16.9616 41.7348 17.161 41.1878 17.531C40.6408 17.901 40.2155 18.425 39.9654 19.037C39.7153 19.649 39.6517 20.3215 39.7826 20.9696C39.9135 21.6178 40.2331 22.2126 40.701 22.6789C41.1689 23.1453 41.7642 23.4623 42.4117 23.59C43.0592 23.7177 43.73 23.6504 44.3394 23.3965C44.9487 23.1426 45.4694 22.7136 45.8357 22.1635C46.202 21.6134 46.3975 20.9669 46.3975 20.3056C46.403 19.8629 46.3198 19.4236 46.1528 19.0138C45.9858 18.6039 45.7383 18.2319 45.425 17.9197C45.1118 17.6075 44.7392 17.3615 44.3293 17.1963C43.9194 17.0311 43.4806 16.9501 43.0388 16.9581ZM43.0388 22.3418C42.6313 22.3712 42.2243 22.2771 41.8709 22.0715C41.5175 21.8659 41.234 21.5584 41.0575 21.1891C40.8809 20.8198 40.8195 20.4058 40.881 20.001C40.9426 19.5962 41.1244 19.2194 41.4028 18.9196C41.6811 18.6198 42.0431 18.4109 42.4416 18.3202C42.8401 18.2295 43.2566 18.2611 43.6369 18.4109C44.0172 18.5608 44.3436 18.8219 44.5737 19.1603C44.8038 19.4987 44.9269 19.8987 44.9269 20.3081C44.9402 20.567 44.9016 20.8259 44.8132 21.0696C44.7249 21.3132 44.5886 21.5366 44.4126 21.7265C44.2365 21.9164 44.0242 22.069 43.7883 22.1753C43.5523 22.2815 43.2975 22.3392 43.0388 22.345V22.3418ZM34.3237 17.9939V19.4101H37.7215C37.6709 20.0759 37.3995 20.7056 36.9506 21.1991C36.6109 21.5464 36.2023 21.8185 35.7511 21.9977C35.3 22.1769 34.8163 22.2592 34.3314 22.2394C33.3421 22.2211 32.3995 21.8145 31.7064 21.107C31.0132 20.3994 30.6248 19.4476 30.6248 18.4561C30.6248 17.4646 31.0132 16.5127 31.7064 15.8052C32.3995 15.0977 33.3421 14.691 34.3314 14.6727C35.2843 14.6591 36.2036 15.025 36.8876 15.6899L37.8866 14.6888C37.4178 14.224 36.8611 13.8577 36.2492 13.6114C35.6373 13.3651 34.9824 13.2438 34.323 13.2546C33.6354 13.2469 32.953 13.376 32.3155 13.6344C31.6779 13.8928 31.0979 14.2754 30.6089 14.7599C30.1199 15.2445 29.7317 15.8215 29.4668 16.4574C29.2018 17.0934 29.0654 17.7756 29.0654 18.4648C29.0654 19.1539 29.2018 19.8362 29.4668 20.4721C29.7317 21.1081 30.1199 21.685 30.6089 22.1696C31.0979 22.6542 31.6779 23.0367 32.3155 23.2951C32.953 23.5535 33.6354 23.6826 34.323 23.675C34.9962 23.704 35.6678 23.589 36.2931 23.3375C36.9184 23.0861 37.4831 22.7041 37.9495 22.2169C38.7767 21.3108 39.2175 20.1166 39.1779 18.8893C39.1827 18.5904 39.1564 18.2918 39.0995 17.9984H34.3237V17.9939ZM69.9643 19.0973C69.7644 18.4893 69.3821 17.9579 68.8697 17.5756C68.3572 17.1933 67.7396 16.9788 67.101 16.9613C66.6715 16.9638 66.2471 17.0535 65.8532 17.225C65.4593 17.3965 65.1042 17.6462 64.8094 17.9591C64.5146 18.272 64.2861 18.6415 64.1378 19.0454C63.9895 19.4492 63.9245 19.879 63.9467 20.3088C63.9374 20.7491 64.0167 21.1869 64.18 21.5958C64.3433 22.0048 64.5871 22.3765 64.8969 22.689C65.2067 23.0014 65.5762 23.2481 65.9832 23.4143C66.3903 23.5805 66.8266 23.6628 67.2661 23.6563C67.8164 23.6605 68.359 23.5273 68.8451 23.2688C69.3312 23.0103 69.7454 22.6347 70.0504 22.1757L68.9101 21.4109C68.7405 21.6959 68.4996 21.9316 68.2113 22.0947C67.923 22.2579 67.5972 22.3428 67.2661 22.3411C66.9259 22.354 66.5896 22.2643 66.3008 22.0837C66.0119 21.9031 65.7838 21.6398 65.6459 21.3279L70.1217 19.4758L69.9643 19.0973ZM65.403 20.2167C65.3872 19.9729 65.42 19.7284 65.4995 19.4975C65.5791 19.2665 65.7038 19.0538 65.8664 18.8718C66.029 18.6897 66.2262 18.542 66.4464 18.4372C66.6667 18.3325 66.9056 18.2728 67.1492 18.2617C67.4028 18.2449 67.6557 18.303 67.8767 18.4289C68.0977 18.5548 68.2769 18.7428 68.3923 18.9698L65.403 20.2167ZM61.7688 23.4645H63.24V13.6106H61.7688V23.4645ZM59.3617 17.7106H59.3064C59.0833 17.4662 58.8105 17.2726 58.5064 17.1428C58.2023 17.013 57.874 16.95 57.5436 16.9581C56.6813 16.9959 55.8668 17.3658 55.27 17.9907C54.6731 18.6155 54.34 19.4471 54.34 20.312C54.34 21.1769 54.6731 22.0085 55.27 22.6333C55.8668 23.2582 56.6813 23.6281 57.5436 23.666C57.8751 23.6746 58.2046 23.6107 58.509 23.4786C58.8133 23.3465 59.0852 23.1495 59.3058 22.9012H59.3501V23.3821C59.3501 24.6696 58.6659 25.3526 57.5648 25.3526C57.1987 25.3441 56.8434 25.227 56.5437 25.0162C56.244 24.8053 56.0134 24.5102 55.881 24.1681L54.5961 24.7043C54.8388 25.2926 55.2512 25.7948 55.7806 26.1466C56.31 26.4983 56.9322 26.6836 57.5674 26.6787C59.2897 26.6787 60.7454 25.6616 60.7454 23.187V17.166H59.3501V17.71L59.3617 17.7106ZM57.6708 22.3456C57.1628 22.3031 56.6893 22.0708 56.3442 21.6948C55.999 21.3189 55.8075 20.8267 55.8075 20.3159C55.8075 19.805 55.999 19.3129 56.3442 18.9369C56.6893 18.561 57.1628 18.3287 57.6708 18.2861C57.9231 18.2989 58.1702 18.3623 58.3976 18.4726C58.625 18.5829 58.828 18.7379 58.9945 18.9283C59.161 19.1186 59.2876 19.3406 59.3669 19.5809C59.4462 19.8213 59.4765 20.0751 59.4561 20.3275C59.4766 20.5787 59.4461 20.8314 59.3664 21.0705C59.2868 21.3096 59.1597 21.53 58.9927 21.7185C58.8258 21.907 58.6225 22.0597 58.3951 22.1674C58.1677 22.2751 57.9208 22.3355 57.6695 22.345L57.6708 22.3456ZM76.855 13.6106H73.3389V23.4638H74.8101V19.7262H76.8659C77.2815 19.7498 77.6976 19.6882 78.0886 19.5449C78.4797 19.4017 78.8374 19.1799 79.1398 18.8932C79.4422 18.6065 79.683 18.2609 79.8474 17.8776C80.0118 17.4944 80.0963 17.0815 80.0958 16.6643C80.0953 16.2471 80.0097 15.8344 79.8444 15.4516C79.679 15.0687 79.4373 14.7237 79.1342 14.4378C78.831 14.1518 78.4728 13.931 78.0814 13.7887C77.69 13.6465 77.2738 13.5859 76.8582 13.6106H76.855ZM76.8864 18.3556H74.8018V14.9747H76.8884C77.1127 14.9703 77.3357 15.0108 77.5442 15.0938C77.7528 15.1768 77.9427 15.3006 78.1029 15.4581C78.2632 15.6155 78.3904 15.8034 78.4773 16.0107C78.5642 16.218 78.6089 16.4406 78.6089 16.6655C78.6089 16.8903 78.5642 17.1129 78.4773 17.3203C78.3904 17.5276 78.2632 17.7155 78.1029 17.8729C77.9427 18.0303 77.7528 18.1542 77.5442 18.2372C77.3357 18.3202 77.1127 18.3607 76.8884 18.3563L76.8864 18.3556ZM85.9639 16.9445C85.4287 16.9143 84.8963 17.0405 84.4313 17.3078C83.9663 17.5751 83.5889 17.972 83.3448 18.4503L84.6508 18.9943C84.7791 18.7562 84.9739 18.5608 85.2114 18.4321C85.4489 18.3033 85.7187 18.2468 85.9877 18.2694C86.3599 18.2335 86.7312 18.3468 87.0202 18.5846C87.3092 18.8225 87.4923 19.1654 87.5295 19.5382V19.6406C87.0565 19.3912 86.5299 19.2613 85.9954 19.2621C84.5872 19.2621 83.1636 20.0346 83.1636 21.4772C83.1771 21.7818 83.2515 22.0805 83.3825 22.3557C83.5135 22.6309 83.6983 22.8769 83.9261 23.0791C84.1538 23.2813 84.4197 23.4355 84.7081 23.5327C84.9965 23.6299 85.3014 23.668 85.6048 23.6447C85.9742 23.6669 86.3427 23.5894 86.672 23.4202C87.0013 23.251 87.2792 22.9964 87.4768 22.6829H87.5237V23.4477H88.9371V19.6728C88.9448 17.9237 87.6387 16.9452 85.9633 16.9452L85.9639 16.9445ZM85.7828 22.3437C85.3029 22.3437 84.6341 22.0991 84.6341 21.5068C84.6341 20.7504 85.4693 20.4588 86.1914 20.4588C86.6586 20.4462 87.1206 20.5605 87.5282 20.7897C87.4743 21.2167 87.2677 21.6096 86.9468 21.8955C86.6258 22.1815 86.2123 22.3412 85.7828 22.345V22.3437ZM94.1054 17.1583L92.4223 21.4302H92.3754L90.6292 17.1583H89.0482L91.6674 23.1329L90.1731 26.4515H91.7072L95.7423 17.1583H94.1054ZM80.8907 23.467H82.3618V13.6106H80.8907V23.467Z\", fill: \"white\" }),\r\n React.createElement(\"path\", { d: \"M7.03484 6.19599C6.77941 6.50474 6.65018 6.89899 6.67315 7.29938V24.7347C6.64735 25.1355 6.77691 25.5308 7.03484 25.8381L7.09009 25.8935L16.8364 16.1381V15.9018L7.09009 6.14062L7.03484 6.19599Z\", fill: \"url(#paint0_linear_6480_261989)\" }),\r\n React.createElement(\"path\", { d: \"M20.0837 19.3871L16.835 16.1323V15.8961L20.0837 12.6406L20.1544 12.6799L24.0006 14.8686C25.1017 15.4912 25.1017 16.516 24.0006 17.1469L20.1544 19.3356L20.0837 19.3871Z\", fill: \"url(#paint1_linear_6480_261989)\" }),\r\n React.createElement(\"path\", { d: \"M20.1545 19.3419L16.8376 16.0156L7.03418 25.8367C7.25813 26.0356 7.5447 26.1492 7.8438 26.1578C8.1429 26.1664 8.4355 26.0694 8.67044 25.8837L20.1545 19.3419Z\", fill: \"url(#paint2_linear_6480_261989)\" }),\r\n React.createElement(\"path\", { d: \"M20.1549 12.6882L8.66312 6.14573C8.42817 5.96005 8.13558 5.86303 7.83647 5.87162C7.53737 5.88021 7.2508 5.99387 7.02686 6.19273L16.8367 16.0144L20.1549 12.6882Z\", fill: \"url(#paint3_linear_6480_261989)\" }),\r\n React.createElement(\"path\", { opacity: \"0.2\", d: \"M20.0838 19.2695L8.66273 25.7714C8.43692 25.9438 8.16123 26.0378 7.87737 26.0392C7.59351 26.0405 7.31692 25.9493 7.08943 25.7791L7.03418 25.8345L7.08943 25.8899C7.317 26.0598 7.59356 26.1509 7.87737 26.1496C8.16118 26.1482 8.43683 26.0543 8.66273 25.8821L20.1545 19.3403L20.0838 19.2695Z\", fill: \"black\" }),\r\n React.createElement(\"path\", { opacity: \"0.12\", d: \"M7.03435 25.724C6.77892 25.4154 6.64969 25.0213 6.67266 24.6211V24.7369C6.64686 25.1375 6.77643 25.5326 7.03435 25.8398L7.0896 25.7845L7.03435 25.724Z\", fill: \"black\" }),\r\n React.createElement(\"path\", { opacity: \"0.12\", d: \"M24.0014 17.0405L20.0762 19.2711L20.1468 19.3419L23.9931 17.1531C24.2192 17.0545 24.4149 16.8969 24.5598 16.6969C24.7048 16.4969 24.7937 16.2617 24.8173 16.0156C24.7724 16.2392 24.675 16.4487 24.5331 16.627C24.3912 16.8052 24.2089 16.947 24.0014 17.0405Z\", fill: \"black\" }),\r\n React.createElement(\"path\", { opacity: \"0.25\", d: \"M8.6625 6.25601L24.0011 14.9898C24.2088 15.0846 24.3915 15.2266 24.5349 15.4045C24.6783 15.5824 24.7784 15.7913 24.8273 16.0146C24.804 15.7685 24.715 15.5333 24.5697 15.3335C24.4243 15.1338 24.2279 14.977 24.0011 14.8797L8.6625 6.14593C7.56138 5.52342 6.66455 6.04357 6.66455 7.30468V7.42313C6.66455 6.15365 7.56909 5.6335 8.6625 6.25601Z\", fill: \"white\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"linearGradient\", { id: \"paint0_linear_6480_261989\", x1: \"15.9722\", y1: \"136.845\", x2: \"0.353424\", y2: \"132.699\", gradientUnits: \"userSpaceOnUse\" },\r\n React.createElement(\"stop\", { stopColor: \"#00A0FF\" }),\r\n React.createElement(\"stop\", { offset: \"0.007\", stopColor: \"#00A1FF\" }),\r\n React.createElement(\"stop\", { offset: \"0.26\", stopColor: \"#00BEFF\" }),\r\n React.createElement(\"stop\", { offset: \"0.512\", stopColor: \"#00D2FF\" }),\r\n React.createElement(\"stop\", { offset: \"0.76\", stopColor: \"#00DFFF\" }),\r\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00E3FF\" })),\r\n React.createElement(\"linearGradient\", { id: \"paint1_linear_6480_261989\", x1: \"25.4338\", y1: \"127.932\", x2: \"6.40608\", y2: \"127.932\", gradientUnits: \"userSpaceOnUse\" },\r\n React.createElement(\"stop\", { stopColor: \"#FFE000\" }),\r\n React.createElement(\"stop\", { offset: \"0.409\", stopColor: \"#FFBD00\" }),\r\n React.createElement(\"stop\", { offset: \"0.775\", stopColor: \"#FFA500\" }),\r\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#FF9C00\" })),\r\n React.createElement(\"linearGradient\", { id: \"paint2_linear_6480_261989\", x1: \"18.357\", y1: \"126.206\", x2: \"5.76297\", y2: \"105.093\", gradientUnits: \"userSpaceOnUse\" },\r\n React.createElement(\"stop\", { stopColor: \"#FF3A44\" }),\r\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#C31162\" })),\r\n React.createElement(\"linearGradient\", { id: \"paint3_linear_6480_261989\", x1: \"4.55878\", y1: \"143.669\", x2: \"10.1739\", y2: \"134.229\", gradientUnits: \"userSpaceOnUse\" },\r\n React.createElement(\"stop\", { stopColor: \"#32A071\" }),\r\n React.createElement(\"stop\", { offset: \"0.068\", stopColor: \"#2DA771\" }),\r\n React.createElement(\"stop\", { offset: \"0.476\", stopColor: \"#15CF74\" }),\r\n React.createElement(\"stop\", { offset: \"0.801\", stopColor: \"#06E775\" }),\r\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00F076\" })),\r\n React.createElement(\"clipPath\", { id: \"clip0_6480_261989\" },\r\n React.createElement(\"rect\", { width: \"102\", height: \"32\", fill: \"white\" })))));\r\n","import * as React from \"react\";\r\nimport { IconBrowser } from \"../../svgIcons/browser\";\r\nimport { IconSmartphone } from \"../../svgIcons/smartphone\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nimport { IconAppStore } from \"../../svgIcons/app-store\";\r\nimport { IconGooglePlay } from \"../../svgIcons/google-play\";\r\nimport { handleLinkTarget } from \"../../../utils\";\r\nexport const AnimatedBanner = ({ title, subtitle, image, imageAlt, qrImage, qrImageAlt, downloadText, launchText, launchButtonText, launchButtonLink, footerQuote, googlePlayLink, appstroreLink, linkOpenInNewTab }) => {\r\n const [animate, setAnimate] = React.useState(false);\r\n React.useEffect(() => {\r\n const timeoutId = setTimeout(() => setAnimate(true), 2000);\r\n return function cleanup() {\r\n clearTimeout(timeoutId);\r\n };\r\n }, []);\r\n const linkHrefTarget = handleLinkTarget(linkOpenInNewTab);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"AnimatedBanner\" },\r\n React.createElement(\"h1\", null, title),\r\n React.createElement(\"h5\", null, subtitle),\r\n React.createElement(\"div\", { className: `AnimatedBanner__image ${animate ? \"animated\" : \"\"}` },\r\n React.createElement(Img, { src: image, alt: imageAlt })),\r\n React.createElement(\"div\", { className: \"AnimatedBanner__buttons-container\" },\r\n React.createElement(\"div\", { className: `AnimatedBanner__buttons ${animate ? \"animated\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"AnimatedBanner__button\" },\r\n React.createElement(\"h4\", null,\r\n IconSmartphone,\r\n \" \",\r\n downloadText),\r\n React.createElement(Img, { className: \"AnimatedBanner__button--image\", src: qrImage, alt: qrImageAlt }),\r\n React.createElement(\"div\", { className: \"AnimatedBanner__mobile-download\" },\r\n React.createElement(\"a\", { href: googlePlayLink }, IconGooglePlay),\r\n React.createElement(\"a\", { href: appstroreLink }, IconAppStore))),\r\n React.createElement(\"div\", { className: \"AnimatedBanner__button AnimatedBanner__button--launch\" },\r\n React.createElement(\"h4\", null,\r\n IconBrowser,\r\n \" \",\r\n launchText),\r\n \" \",\r\n React.createElement(\"a\", { href: launchButtonLink, className: \"button button--primary\", target: linkHrefTarget }, launchButtonText),\r\n \" \")))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const HeroBannerWithImagesAndTitle = ({ imageUrl, imageAlt, items, mainTitle, subTitle }) => (React.createElement(ContainerFW, { backgroundColor: \"#0E1D31\" },\r\n React.createElement(\"div\", { className: \"heroBannerWithImagesAndTitle-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h1\", null, mainTitle),\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt, className: \"heroBannerWithImagesAndTitle-root-image\" }),\r\n React.createElement(\"h5\", { className: \"heroBannerWithImagesAndTitle-root-subTitle\" }, subTitle),\r\n React.createElement(\"div\", { className: \"itemsWrapper\" }, items.length > 0 && items.map((a) => (React.createElement(\"div\", { key: `unique${a.label}`, className: \"itemsWrapper__section\" },\r\n React.createElement(Img, { src: a.imageUrl, alt: a.imageAlt }),\r\n React.createElement(\"h5\", { className: \"itemsWrapper__section__label\" }, a.label)))))))));\r\n","import * as React from \"react\";\r\nimport Lottie from \"lottie-react\";\r\nimport cardsAnimation from \"./cards-animation.json\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Button } from \"../../Button\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nexport const OptionalButtonBannerWithAnimation = ({ title, description, imagePosition, buttonText, buttonUrl, backgroundColor, buttonType, hasBigImage }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const { ref, inView } = useInView({\r\n threshold: 0,\r\n triggerOnce: true,\r\n });\r\n return (React.createElement(\"div\", { className: \"option-button-banner-with-animation__container\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: `optional-button-banner-with-animation ${hasBigImage ? \"optional-button-banner-with-animation--big-image\" : \"\"} ${inView ? \"optional-button-banner-with-animation--animated\" : \"\"}`, ref: ref },\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__flex-outer\" },\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__image-container-left hide-medium hide-small\" }, imagePosition === \"left\" && React.createElement(Lottie, { animationData: cardsAnimation, loop: true })),\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__flex-middle\" },\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__title-container\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: { __html: title } })),\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__description-container color-dark-80\" },\r\n React.createElement(\"h5\", { dangerouslySetInnerHTML: {\r\n __html: description\r\n }, className: \"h5-semi-bold\" })),\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__image-container-mobile hide-large\" },\r\n React.createElement(Lottie, { animationData: cardsAnimation, loop: true })),\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__button-container\" }, buttonText && React.createElement(Button, { primary: buttonType === \"primary\", label: buttonText, href: buttonUrl }))),\r\n React.createElement(\"div\", { className: \"optional-button-banner-with-animation__image-container-right hide-medium hide-small\" }, imagePosition !== \"left\" && React.createElement(Lottie, { animationData: cardsAnimation, loop: true }))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const HeroBannerImageRight = (props) => (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"small-hero-banner\" },\r\n React.createElement(\"div\", { className: \"small-hero-banner__content\" },\r\n React.createElement(\"h1\", { className: \"h1-regular-small\" }, props.title),\r\n React.createElement(\"p\", null, props.text)),\r\n React.createElement(Img, { src: props.image, alt: props.alt })))));\r\n","import * as React from \"react\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const BreadcrumbsBanner = (props) => (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor },\r\n React.createElement(Container, null,\r\n React.createElement(Breadcrumbs, { breadcrumbs: props.breadcrumbs, lightMode: props.lightmode }))));\r\n","import * as React from \"react\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nexport const BasicBannerWithChangingTextPosition = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const h5Heading = function () {\r\n if (props.subtitle) {\r\n return (React.createElement(\"div\", { className: \"basic-banner-with-changing-text-position__subtitle-container\" },\r\n React.createElement(\"h5\", { style: { color: bgColor === \"#FFFFFF\" ? \"#0E1D31\" : (bgColor === \"#0E1D31\" ? \"#CFD2D6\" : \"#5EE15A\"), textAlign: props.titlePosition === undefined ? \"center\".toLowerCase() : props.titlePosition.toLowerCase() } }, props.subtitle)));\r\n }\r\n else {\r\n return \"\";\r\n }\r\n };\r\n const h1Heading = function () {\r\n if (props.title) {\r\n return (React.createElement(\"div\", { className: \"basic-banner-with-changing-text-position__title-container\" },\r\n React.createElement(\"h1\", { style: { color: bgColor === \"#FFFFFF\" ? \"#0E1D31\" : (bgColor === \"#0E1D31\" ? \"#FFFFFF\" : \"#5EE15A\"), textAlign: props.titlePosition === undefined ? \"center\".toLowerCase() : props.titlePosition.toLowerCase() } }, props.title)));\r\n }\r\n else {\r\n return \"\";\r\n }\r\n };\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"basic-banner-with-changing-text-position\" },\r\n props.breadcrumbs && React.createElement(Breadcrumbs, { ...props.breadcrumbs }),\r\n React.createElement(\"div\", { className: \"basic-banner-with-changing-text-position__text-container\", style: {\r\n alignItems: props.titlePosition === undefined ? \"center\" : props.titlePosition.toLowerCase()\r\n } },\r\n React.createElement(\"div\", { className: \"basic-banner-with-changing-text-position__wrapper\", style: {\r\n maxWidth: props.titlePosition !== \"center\" ? \"unset\" : \"\"\r\n } },\r\n h1Heading(),\r\n h5Heading()))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const AcademyBanner = ({ title, h1title, subtitle, image, alt, buttonUrl, buttonText, designStyles }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor || \"#0E1D31\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"academyBanner\" },\r\n React.createElement(\"div\", { className: \"academyBanner__content\" },\r\n h1title ?\r\n React.createElement(Heading, { design: \"h1-regular\" }, title) :\r\n React.createElement(Heading, { design: designStyles?.titleDesign || \"h2-regular\" }, title),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold\" }, subtitle),\r\n React.createElement(ButtonV2, { design: designStyles?.buttonDesign || \"secondary-large-dbg\", href: buttonUrl }, buttonText)),\r\n React.createElement(\"div\", { className: \"academyBanner__image\" },\r\n React.createElement(Img, { src: image, alt: alt }))))));\r\n};\r\n","import * as React from \"react\";\r\nexport const Gap = (props) => {\r\n const divMobileStyle = {\r\n minHeight: props.mobileGap,\r\n maxHeight: props.mobileGap,\r\n };\r\n const divDesktopStyle = {\r\n minHeight: props.desktopGap,\r\n maxHeight: props.desktopGap,\r\n };\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"mobile-div\", style: {\r\n ...divMobileStyle,\r\n backgroundColor: `${props.gapColor === \"\" ? \"#f2f4f6\" : props.gapColor}`,\r\n } }),\r\n React.createElement(\"div\", { className: \"desktop-div\", style: {\r\n ...divDesktopStyle,\r\n backgroundColor: `${props.gapColor === \"\" ? \"#f2f4f6\" : props.gapColor}`,\r\n } })));\r\n};\r\n","import * as React from \"react\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Gap } from \"../../../Components/Gaps/Gap\";\r\nexport const BasicBanner = (props) => {\r\n const subTitleComponent = () => (props.subtitle && React.createElement(\"p\", { className: `${\"h5-medium basic-banner__subtitle\"} ${props.subtitlePosition === \"center\" ? \"addMarginAuto\" : \"\"}`, style: { textAlign: props.subtitlePosition === undefined ? \"left\" : props.subtitlePosition.toLowerCase() } }, props.subtitle));\r\n return (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor ? props.backgroundColor : \"transparent\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"basic-banner\" },\r\n props.breadcrumbs && React.createElement(Breadcrumbs, { ...props.breadcrumbs }),\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"40px\" }),\r\n React.createElement(\"h1\", { className: \"h1-regular-small basic-banner__title\", style: { textAlign: props.titlePosition === undefined ? \"left\" : props.titlePosition.toLowerCase() } }, props.title),\r\n subTitleComponent(),\r\n React.createElement(Gap, { desktopGap: \"32px\", mobileGap: \"32px\" })))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Autoplay } from \"swiper\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { Img } from \"../../Img\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const SimpleBanner = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const rollingTitle = useCallback((items) => (React.createElement(React.Fragment, null,\r\n React.createElement(Swiper, { spaceBetween: 11, slidesPerView: 1, loop: true, allowTouchMove: false, noSwiping: true, autoplay: {\r\n delay: 1000,\r\n disableOnInteraction: false,\r\n }, direction: \"vertical\", speed: 300, modules: [Autoplay], className: \"simple-banner__swiper-container\" }, items.map((item, index) => (React.createElement(SwiperSlide, { key: index },\r\n React.createElement(\"div\", null,\r\n React.createElement(Heading, { design: \"h2-regular\" }, item)))))))), []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"simple-banner\" },\r\n React.createElement(\"div\", { className: \"simple-banner__image-container\" },\r\n React.createElement(Img, { src: props.imageURL, alt: props.imageURLAlt }),\r\n React.createElement(\"div\", { className: \"simple-banner__text-container\" },\r\n React.createElement(\"div\", { className: \"simple-banner__title-container centered-container\" }, rollingTitle(props.rollingTitles)),\r\n React.createElement(\"div\", { className: \"simple-banner__description-container\" },\r\n React.createElement(\"p\", null, props.subTitle))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { Img } from \"../../Img\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { Gap } from \"../../../Components/Gaps/Gap\";\r\nexport const AffiliateBanner = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"affiliate-banner\" },\r\n props.breadcrumbs && React.createElement(Breadcrumbs, { ...props.breadcrumbs }),\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"40px\" }),\r\n React.createElement(\"div\", { className: \"affiliate-banner__wrapper\" },\r\n React.createElement(\"div\", { className: \"affiliate-banner__text-and-button-section\" },\r\n React.createElement(\"div\", { className: \"affiliate-banner__title-and-subtitle-container\" },\r\n React.createElement(\"h1\", null, props.title),\r\n React.createElement(\"h5\", null, props.subtitle)),\r\n React.createElement(\"div\", { className: \"affiliate-banner__numbers-container\" }, props.numbers.map((item, i) => React.createElement(\"div\", { key: i, className: `affiliate-banner__number-and-title-wrapper ${i === 1 ? \"border-class\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"affiliate-banner__number-wrapper\" },\r\n React.createElement(\"h3\", null, item.number)),\r\n React.createElement(\"div\", { className: \"affiliate-banner__title-wrapper\" },\r\n React.createElement(\"p\", null, item.title))))),\r\n React.createElement(\"div\", { className: \"affiliate-banner__buttons-container\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: props.firstButtonLink, openInNewTab: props.openInNewTabButton }, props.firstButtonLabel),\r\n React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: props.secondButtonLink, openInNewTab: props.openInNewTabButton2 }, props.secondButtonLabel))),\r\n React.createElement(\"div\", { className: \"affiliate-banner__image-section\" },\r\n React.createElement(Img, { className: \"affiliate-banner__image\", src: props.imageURL, alt: props.imageAlt })))))));\r\n};\r\n","import { cloneElement, Component, createElement } from 'react';\nimport { number, element, func, oneOfType, instanceOf, string, bool } from 'prop-types';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction zeroPad(value) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var strValue = String(value);\n if (length === 0) return strValue;\n var match = strValue.match(/(.*?)([0-9]+)(.*)/);\n var prefix = match ? match[1] : '';\n var suffix = match ? match[3] : '';\n var strNo = match ? match[2] : strValue;\n var paddedNo = strNo.length >= length ? strNo : (_toConsumableArray(Array(length)).map(function () {\n return '0';\n }).join('') + strNo).slice(length * -1);\n return \"\".concat(prefix).concat(paddedNo).concat(suffix);\n}\nvar timeDeltaFormatOptionsDefaults = {\n daysInHours: false,\n zeroPadTime: 2\n};\nfunction calcTimeDelta(date) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$now = options.now,\n now = _options$now === void 0 ? Date.now : _options$now,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 0 : _options$precision,\n controlled = options.controlled,\n _options$offsetTime = options.offsetTime,\n offsetTime = _options$offsetTime === void 0 ? 0 : _options$offsetTime,\n overtime = options.overtime;\n var startTimestamp;\n\n if (typeof date === 'string') {\n startTimestamp = new Date(date).getTime();\n } else if (date instanceof Date) {\n startTimestamp = date.getTime();\n } else {\n startTimestamp = date;\n }\n\n if (!controlled) {\n startTimestamp += offsetTime;\n }\n\n var timeLeft = controlled ? startTimestamp : startTimestamp - now();\n var clampedPrecision = Math.min(20, Math.max(0, precision));\n var total = Math.round(parseFloat(((overtime ? timeLeft : Math.max(0, timeLeft)) / 1000).toFixed(clampedPrecision)) * 1000);\n var seconds = Math.abs(total) / 1000;\n return {\n total: total,\n days: Math.floor(seconds / (3600 * 24)),\n hours: Math.floor(seconds / 3600 % 24),\n minutes: Math.floor(seconds / 60 % 60),\n seconds: Math.floor(seconds % 60),\n milliseconds: Number((seconds % 1 * 1000).toFixed()),\n completed: total <= 0\n };\n}\nfunction formatTimeDelta(timeDelta, options) {\n var days = timeDelta.days,\n hours = timeDelta.hours,\n minutes = timeDelta.minutes,\n seconds = timeDelta.seconds;\n\n var _Object$assign = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), options),\n daysInHours = _Object$assign.daysInHours,\n zeroPadTime = _Object$assign.zeroPadTime,\n _Object$assign$zeroPa = _Object$assign.zeroPadDays,\n zeroPadDays = _Object$assign$zeroPa === void 0 ? zeroPadTime : _Object$assign$zeroPa;\n\n var zeroPadTimeLength = Math.min(2, zeroPadTime);\n var formattedHours = daysInHours ? zeroPad(hours + days * 24, zeroPadTime) : zeroPad(hours, zeroPadTimeLength);\n return {\n days: daysInHours ? '' : zeroPad(days, zeroPadDays),\n hours: formattedHours,\n minutes: zeroPad(minutes, zeroPadTimeLength),\n seconds: zeroPad(seconds, zeroPadTimeLength)\n };\n}\n\nvar Countdown = function (_React$Component) {\n _inherits(Countdown, _React$Component);\n\n var _super = _createSuper(Countdown);\n\n function Countdown() {\n var _this;\n\n _classCallCheck(this, Countdown);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n count: _this.props.count || 3\n };\n\n _this.startCountdown = function () {\n _this.interval = window.setInterval(function () {\n var count = _this.state.count - 1;\n\n if (count === 0) {\n _this.stopCountdown();\n\n _this.props.onComplete && _this.props.onComplete();\n } else {\n _this.setState(function (prevState) {\n return {\n count: prevState.count - 1\n };\n });\n }\n }, 1000);\n };\n\n _this.stopCountdown = function () {\n clearInterval(_this.interval);\n };\n\n _this.addTime = function (seconds) {\n _this.stopCountdown();\n\n _this.setState(function (prevState) {\n return {\n count: prevState.count + seconds\n };\n }, _this.startCountdown);\n };\n\n return _this;\n }\n\n _createClass(Countdown, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCountdown();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.interval);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children ? cloneElement(this.props.children, {\n count: this.state.count\n }) : null;\n }\n }]);\n\n return Countdown;\n}(Component);\nCountdown.propTypes = {\n count: number,\n children: element,\n onComplete: func\n};\n\nvar Countdown$1 = function (_React$Component) {\n _inherits(Countdown$1, _React$Component);\n\n var _super = _createSuper(Countdown$1);\n\n function Countdown$1(props) {\n var _this;\n\n _classCallCheck(this, Countdown$1);\n\n _this = _super.call(this, props);\n _this.mounted = false;\n _this.initialTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetStartTimestamp = _this.props.autoStart ? 0 : _this.initialTimestamp;\n _this.offsetTime = 0;\n _this.legacyMode = false;\n _this.legacyCountdownRef = null;\n\n _this.tick = function () {\n var timeDelta = _this.calcTimeDelta();\n\n var callback = timeDelta.completed && !_this.props.overtime ? undefined : _this.props.onTick;\n\n _this.setTimeDeltaState(timeDelta, undefined, callback);\n };\n\n _this.setLegacyCountdownRef = function (ref) {\n _this.legacyCountdownRef = ref;\n };\n\n _this.start = function () {\n if (_this.isStarted()) return;\n var prevOffsetStartTimestamp = _this.offsetStartTimestamp;\n _this.offsetStartTimestamp = 0;\n _this.offsetTime += prevOffsetStartTimestamp ? _this.calcOffsetStartTimestamp() - prevOffsetStartTimestamp : 0;\n\n var timeDelta = _this.calcTimeDelta();\n\n _this.setTimeDeltaState(timeDelta, \"STARTED\", _this.props.onStart);\n\n if (!_this.props.controlled && (!timeDelta.completed || _this.props.overtime)) {\n _this.clearTimer();\n\n _this.interval = window.setInterval(_this.tick, _this.props.intervalDelay);\n }\n };\n\n _this.pause = function () {\n if (_this.isPaused()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n\n _this.setTimeDeltaState(_this.state.timeDelta, \"PAUSED\", _this.props.onPause);\n };\n\n _this.stop = function () {\n if (_this.isStopped()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetTime = _this.offsetStartTimestamp - _this.initialTimestamp;\n\n _this.setTimeDeltaState(_this.calcTimeDelta(), \"STOPPED\", _this.props.onStop);\n };\n\n _this.isStarted = function () {\n return _this.isStatus(\"STARTED\");\n };\n\n _this.isPaused = function () {\n return _this.isStatus(\"PAUSED\");\n };\n\n _this.isStopped = function () {\n return _this.isStatus(\"STOPPED\");\n };\n\n _this.isCompleted = function () {\n return _this.isStatus(\"COMPLETED\");\n };\n\n if (props.date) {\n var timeDelta = _this.calcTimeDelta();\n\n _this.state = {\n timeDelta: timeDelta,\n status: timeDelta.completed ? \"COMPLETED\" : \"STOPPED\"\n };\n } else {\n _this.legacyMode = true;\n }\n\n return _this;\n }\n\n _createClass(Countdown$1, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = true;\n if (this.props.onMount) this.props.onMount(this.calcTimeDelta());\n if (this.props.autoStart) this.start();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.legacyMode) {\n return;\n }\n\n if (this.props.date !== prevProps.date) {\n this.initialTimestamp = this.calcOffsetStartTimestamp();\n this.offsetStartTimestamp = this.initialTimestamp;\n this.offsetTime = 0;\n this.setTimeDeltaState(this.calcTimeDelta());\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = false;\n this.clearTimer();\n }\n }, {\n key: \"calcTimeDelta\",\n value: function calcTimeDelta$1() {\n var _this$props = this.props,\n date = _this$props.date,\n now = _this$props.now,\n precision = _this$props.precision,\n controlled = _this$props.controlled,\n overtime = _this$props.overtime;\n return calcTimeDelta(date, {\n now: now,\n precision: precision,\n controlled: controlled,\n offsetTime: this.offsetTime,\n overtime: overtime\n });\n }\n }, {\n key: \"calcOffsetStartTimestamp\",\n value: function calcOffsetStartTimestamp() {\n return Date.now();\n }\n }, {\n key: \"addTime\",\n value: function addTime(seconds) {\n this.legacyCountdownRef.addTime(seconds);\n }\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n window.clearInterval(this.interval);\n }\n }, {\n key: \"isStatus\",\n value: function isStatus(status) {\n return this.state.status === status;\n }\n }, {\n key: \"setTimeDeltaState\",\n value: function setTimeDeltaState(timeDelta, status, callback) {\n var _this2 = this;\n\n if (!this.mounted) return;\n var completing = timeDelta.completed && !this.state.timeDelta.completed;\n var completedOnStart = timeDelta.completed && status === \"STARTED\";\n\n if (completing && !this.props.overtime) {\n this.clearTimer();\n }\n\n var onDone = function onDone() {\n if (callback) callback(_this2.state.timeDelta);\n\n if (_this2.props.onComplete && (completing || completedOnStart)) {\n _this2.props.onComplete(timeDelta, completedOnStart);\n }\n };\n\n return this.setState(function (prevState) {\n var newStatus = status || prevState.status;\n\n if (timeDelta.completed && !_this2.props.overtime) {\n newStatus = \"COMPLETED\";\n } else if (!status && newStatus === \"COMPLETED\") {\n newStatus = \"STOPPED\";\n }\n\n return {\n timeDelta: timeDelta,\n status: newStatus\n };\n }, onDone);\n }\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.api = this.api || {\n start: this.start,\n pause: this.pause,\n stop: this.stop,\n isStarted: this.isStarted,\n isPaused: this.isPaused,\n isStopped: this.isStopped,\n isCompleted: this.isCompleted\n };\n }\n }, {\n key: \"getRenderProps\",\n value: function getRenderProps() {\n var _this$props2 = this.props,\n daysInHours = _this$props2.daysInHours,\n zeroPadTime = _this$props2.zeroPadTime,\n zeroPadDays = _this$props2.zeroPadDays;\n var timeDelta = this.state.timeDelta;\n return Object.assign(Object.assign({}, timeDelta), {\n api: this.getApi(),\n props: this.props,\n formatted: formatTimeDelta(timeDelta, {\n daysInHours: daysInHours,\n zeroPadTime: zeroPadTime,\n zeroPadDays: zeroPadDays\n })\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.legacyMode) {\n var _this$props3 = this.props,\n count = _this$props3.count,\n _children = _this$props3.children,\n onComplete = _this$props3.onComplete;\n return createElement(Countdown, {\n ref: this.setLegacyCountdownRef,\n count: count,\n onComplete: onComplete\n }, _children);\n }\n\n var _this$props4 = this.props,\n className = _this$props4.className,\n overtime = _this$props4.overtime,\n children = _this$props4.children,\n renderer = _this$props4.renderer;\n var renderProps = this.getRenderProps();\n\n if (renderer) {\n return renderer(renderProps);\n }\n\n if (children && this.state.timeDelta.completed && !overtime) {\n return cloneElement(children, {\n countdown: renderProps\n });\n }\n\n var _renderProps$formatte = renderProps.formatted,\n days = _renderProps$formatte.days,\n hours = _renderProps$formatte.hours,\n minutes = _renderProps$formatte.minutes,\n seconds = _renderProps$formatte.seconds;\n return createElement(\"span\", {\n className: className\n }, renderProps.total < 0 ? '-' : '', days, days ? ':' : '', hours, \":\", minutes, \":\", seconds);\n }\n }]);\n\n return Countdown$1;\n}(Component);\nCountdown$1.defaultProps = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), {\n controlled: false,\n intervalDelay: 1000,\n precision: 0,\n autoStart: true\n});\nCountdown$1.propTypes = {\n date: oneOfType([instanceOf(Date), string, number]),\n daysInHours: bool,\n zeroPadTime: number,\n zeroPadDays: number,\n controlled: bool,\n intervalDelay: number,\n precision: number,\n autoStart: bool,\n overtime: bool,\n className: string,\n children: element,\n renderer: func,\n now: func,\n onMount: func,\n onStart: func,\n onPause: func,\n onStop: func,\n onTick: func,\n onComplete: func\n};\n\nexport default Countdown$1;\nexport { calcTimeDelta, formatTimeDelta, zeroPad };\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport Countdown from \"react-countdown\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const CountdownBanner = (props) => {\r\n const [fullDate, setFullDate] = useState(\"2024-11-05T07:00:00\");\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [background, setBackground] = useState(props.backgroundImageURL);\r\n useEffect(() => {\r\n setBackground(isLarge ? props.backgroundImageURL : isMedium ? props.backgroundImageURLTablet : isSmall ? props.backgroundImageURLMobile : props.backgroundImageURL);\r\n }, [isSmall, isMedium, isLarge]);\r\n const countdown1 = useCallback((ren => React.createElement(\"span\", { className: \"countdown-banner__countdown-days-wrapper\" },\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-days-text\" }, props.daysLabel),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-days-number\" }, ren.days))), [props.daysLabel]);\r\n const countdown2 = useCallback((ren => React.createElement(\"span\", { className: \"countdown-banner__countdown-hours-wrapper\" },\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-hours-text\" }, props.hoursLabel),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-hours-number\" }, ren.hours))), [props.hoursLabel]);\r\n const countdown3 = useCallback((ren => React.createElement(\"span\", { className: \"countdown-banner__countdown-minutes-wrapper\" },\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-minutes-text\" }, props.minutesLabel),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-minutes-number\" }, ren.minutes))), [props.minutesLabel]);\r\n const countdown4 = useCallback((ren => React.createElement(\"span\", { className: \"countdown-banner__countdown-seconds-wrapper\" },\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-seconds-text\" }, props.secondsLabel),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-seconds-number\" }, ren.seconds))), [props.secondsLabel]);\r\n useEffect(() => {\r\n setFullDate(`${props.yearValue}-${props.monthValue}-${props.dateValue}T${props.hoursValue}:${props.minetsValue}:${props.secondsValue}`);\r\n }, [props.yearValue, props.monthValue, props.dateValue, props.hoursValue, props.minetsValue, props.secondsValue]);\r\n const optionalBreadCrumb = React.useCallback(() => {\r\n if (props.breadcrumbs !== undefined) {\r\n return React.createElement(React.Fragment, null,\r\n React.createElement(Breadcrumbs, { breadcrumbs: props.breadcrumbs, lightMode: props.backgroundImageURL === \"white\" }));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, [props.backgroundImageURL, props.breadcrumbs]);\r\n return (React.createElement(\"div\", { className: \"countdown-banner\", style: { \"--background-image-url\": `url(${background})` } },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n optionalBreadCrumb(),\r\n React.createElement(\"div\", { className: \"countdown-banner__container\" },\r\n React.createElement(\"h1\", { className: \"h1-regular-small\", dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(\"div\", { className: \"countdown-banner__content\" },\r\n React.createElement(Countdown, { date: fullDate, renderer: countdown1 }),\r\n React.createElement(Countdown, { date: fullDate, renderer: countdown2 }),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-colum\" }, \":\"),\r\n React.createElement(Countdown, { date: fullDate, renderer: countdown3 }),\r\n React.createElement(\"span\", { className: \"countdown-banner__countdown-colum\" }, \":\"),\r\n React.createElement(Countdown, { date: fullDate, renderer: countdown4 })),\r\n React.createElement(\"div\", { className: \"countdown-banner__text-content\" },\r\n React.createElement(Heading, { design: \"h5-semi-bold\" }, props.subTitle)))),\r\n React.createElement(ImgV2, { src: props.backgroundImageURLMobile, className: \"countdown-banner__image-mobile\" }))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const TradingViewBanner = ({ title, buttonTitle, orString, secondButtonLabel, secondButtonLink, subTitle, buttonLabel, buttonLink, opensInNewTab, imageUrl, imageAlt, designStyles, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const firstButton = () => (buttonLabel && React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonLink, openInNewTab: opensInNewTab }, buttonLabel));\r\n const secondButton = () => (secondButtonLabel && React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: secondButtonLink, openInNewTab: opensInNewTab }, secondButtonLabel));\r\n const buttonsBox = () => ((buttonLabel || secondButtonLabel) && React.createElement(\"div\", { className: \"trading-view-banner__button-wrapper\" },\r\n buttonTitle && React.createElement(\"p\", { className: \"trading-view-banner__button-title\" }, buttonTitle),\r\n firstButton(),\r\n orString && React.createElement(\"span\", { className: \"trading-view-banner__button-or\" }, orString),\r\n secondButton()));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trading-view-banner\" },\r\n React.createElement(\"div\", { className: \"trading-view-banner__text-and-button-container\" },\r\n React.createElement(\"div\", { className: \"trading-view-banner__text-wrapper\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title),\r\n React.createElement(\"h5\", null, subTitle)),\r\n buttonsBox()),\r\n React.createElement(\"div\", { className: \"trading-view-banner__image-container\" },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageAlt, loading: \"eager\" }))))));\r\n};\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { Container } from \"../../global\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nimport { Img } from \"../../Img\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nexport const HeroBannerWithImagesNew = ({ title, subtitle, desktopImage, mobileImage, stats, buttonLabel, buttonHref, buttonHrefMobile, buttonOpenInNewTab, linkHref, linkLabel, backgroundColor }) => {\r\n const [buttonUrl, setButtonUrl] = useState(buttonHref);\r\n const { isLarge } = usePageViewStyle();\r\n const [desktopImageEl, setDesktopImageEl] = useState(React.createElement(React.Fragment, null));\r\n const [mobileImageEl, setMobileImageEl] = useState(React.createElement(React.Fragment, null));\r\n useEffect(() => {\r\n setDesktopImageEl(isLarge ? React.createElement(Img, { src: desktopImage, alt: title, loading: \"eager\" }) : React.createElement(React.Fragment, null));\r\n setMobileImageEl(!isLarge ? React.createElement(Img, { src: mobileImage, alt: title, loading: \"eager\" }) : React.createElement(React.Fragment, null));\r\n }, [isLarge, desktopImage, mobileImage, title]);\r\n useEffect(() => {\r\n setButtonUrl((!isLarge && buttonHrefMobile) ? buttonHrefMobile : buttonHref);\r\n }, [isLarge, buttonHrefMobile, buttonHref]);\r\n const mainClassName = `${backgroundColor === \"White\" ? \"HeroBannerWithImagesWrapper HeroBannerWithImagesNew white-background\" : \"HeroBannerWithImagesWrapper HeroBannerWithImagesNew\"}`;\r\n const emptyStatisticsTest = stats === undefined ? 0 : stats.filter(o => Object.values(o).every(x => x !== \"\")).length;\r\n const cardsRendering = useCallback(() => {\r\n if (stats && (emptyStatisticsTest > 0)) {\r\n return (React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__stats-container\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__stats\" }, stats.map((a, i) => (React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__stats-item\", key: `statElement${a.title}-${i}` },\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__value\" }, a.title),\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__title\" }, a.subTitle))))))));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, [emptyStatisticsTest, stats]);\r\n return (React.createElement(\"div\", { className: mainClassName },\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__container\" },\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__image--desktop\" }, desktopImageEl),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__content\" },\r\n React.createElement(\"h1\", { className: \"titleWrapper__title\", dangerouslySetInnerHTML: {\r\n __html: title,\r\n } }),\r\n React.createElement(\"h5\", { className: \"titleWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subtitle,\r\n } }),\r\n React.createElement(\"div\", { className: \"buttonsWrapper\" },\r\n React.createElement(ButtonSquare, { label: buttonLabel, href: buttonUrl, openinnewtab: buttonOpenInNewTab.toString() }),\r\n React.createElement(React.Fragment, null, (linkLabel && linkHref) ? React.createElement(\"a\", { href: linkHref }, linkLabel) : \"\")))),\r\n React.createElement(\"div\", { className: \"HeroBannerWithImagesNew__image\" }, mobileImageEl),\r\n cardsRendering())));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const ThinkTraderMainBanner = ({ title, subtitle, desktopImageUrl, mobileImageUrl, imageAlt, appStoreButtonLabel, appStoreButtonLink, appStoreButtonIcon, googlePlayButtonLabel, googlePlayButtonLink, googlePlayButtonIcon, webButtonLabel, webButtonLink, webButtonIcon, openInNewTabWebRutton, backgroundColor, haveBottomButtons = true, topButtonLink, openInNewTabTopRutton = true, topButtonLabel, topButtonIcon, textBetweenButtons = \"or\" }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const renderButtonSection = () => (haveBottomButtons && React.createElement(\"div\", { className: \"thinktrader-main-banner__buttons-container\" },\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner__buttons-container__mobile-app\" },\r\n React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: appStoreButtonLink, openInNewTab: true, icon: appStoreButtonIcon }, appStoreButtonLabel),\r\n React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: googlePlayButtonLink, openInNewTab: true, icon: googlePlayButtonIcon }, googlePlayButtonLabel)),\r\n isLarge && React.createElement(\"span\", { className: \"thinktrader-main-banner__buttons-container__text-between-buttons\" }, textBetweenButtons),\r\n isLarge && React.createElement(\"div\", { className: \"thinktrader-main-banner__buttons-container__web-platform\" },\r\n React.createElement(ButtonV2, { design: \"secondary-large-dbg\", href: webButtonLink, openInNewTab: openInNewTabWebRutton, icon: webButtonIcon }, webButtonLabel))));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner\" },\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner__text-container\" },\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner__text-container__title-wrapper\" },\r\n React.createElement(Heading, { design: \"text-jumbo\" }, title)),\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner__text-container__subtitle-wrapper\" },\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: subtitle,\r\n } })),\r\n topButtonLabel && React.createElement(\"div\", { className: \"thinktrader-main-banner__text-container__button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: topButtonLink, openInNewTab: openInNewTabTopRutton, icon: topButtonIcon }, topButtonLabel))),\r\n React.createElement(\"div\", { className: \"thinktrader-main-banner__image-container\" },\r\n (isLarge || isMedium) && React.createElement(ImgV2, { src: desktopImageUrl, alt: imageAlt, loading: \"eager\" }),\r\n isSmall && React.createElement(ImgV2, { src: mobileImageUrl, alt: imageAlt, loading: \"eager\" })),\r\n renderButtonSection()))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nexport const TradingViewDownloadBanner = ({ mainTitle, description, list, buttonList, linkURL, linkLabel, desktopImageUrl, mobileImageUrl, imageAlt, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [largeView, setLargeView] = useState(false);\r\n useEffect(() => {\r\n setLargeView(isLarge);\r\n }, [isLarge]);\r\n const listSection = () => (React.createElement(\"ul\", { className: \"trading-view-download-banner__text-wrapper__list-container\" }, list.map((item, index) => (React.createElement(\"li\", { key: index, className: \"trading-view-download-banner__text-wrapper__list-container__item\" },\r\n React.createElement(ImgV2, { src: item.iconUrl, alt: item.iconAlt, loading: \"eager\" }),\r\n React.createElement(\"p\", null, item.title))))));\r\n const linkSection = () => (React.createElement(\"div\", { className: \"trading-view-download-banner__link-wrapper\" },\r\n React.createElement(\"a\", { href: linkURL }, linkLabel)));\r\n const buttonsSection = () => (largeView && React.createElement(\"div\", { className: \"trading-view-download-banner__buttons-wrapper\" }, buttonList.map((item, index) => (React.createElement(\"a\", { key: index, href: item.linkURL },\r\n React.createElement(ImgV2, { src: item.iconUrl, alt: item.iconAlt, loading: \"eager\" }),\r\n React.createElement(\"span\", { className: \"trading-view-download-banner__buttons-wrapper__button-text\" },\r\n React.createElement(\"span\", { className: \"trading-view-download-banner__buttons-wrapper__button-title\" }, item.title),\r\n React.createElement(\"span\", { className: \"trading-view-download-banner__buttons-wrapper__button-subTitle\" }, item.subTitle)))))));\r\n const imageSection = () => (React.createElement(\"div\", { className: \"trading-view-download-banner__image-section\" },\r\n (isLarge || isMedium) && React.createElement(ImgV2, { src: desktopImageUrl, alt: imageAlt, loading: \"eager\" }),\r\n isSmall && React.createElement(ImgV2, { src: mobileImageUrl, alt: imageAlt, loading: \"eager\" })));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trading-view-download-banner\" },\r\n React.createElement(\"div\", { className: \"trading-view-download-banner__text-section\" },\r\n React.createElement(\"div\", { className: \"trading-view-download-banner__text-wrapper\" },\r\n React.createElement(\"h2\", { className: \"trading-view-download-banner__text-wrapper__title-container\" }, mainTitle),\r\n React.createElement(\"div\", { className: \"trading-view-download-banner__text-wrapper__description-container\" },\r\n React.createElement(\"p\", null, description)),\r\n listSection()),\r\n buttonsSection(),\r\n linkSection()),\r\n imageSection()))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nexport const VideoBannerLP = ({ title, description, buttonLink, buttonLabel, opensInNewTab, shortText, videoSRC, backgroundColor }) => {\r\n const { isMedium } = usePageViewStyle();\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"video-banner-lp\" },\r\n React.createElement(\"div\", { className: \"video-banner-lp__text-container\" },\r\n React.createElement(\"div\", { className: \"video-banner-lp__text-container__title-wrapper\" },\r\n React.createElement(\"h1\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n } }),\r\n isMedium && React.createElement(\"div\", { className: \"video-banner-lp__text-container__description-wrapper__button-box\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonLink, openInNewTab: opensInNewTab }, buttonLabel),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: shortText,\r\n } }))),\r\n React.createElement(\"div\", { className: \"video-banner-lp__text-container__description-wrapper\" },\r\n React.createElement(\"div\", { className: \"video-banner-lp__text-container__description-wrapper__text-box\" },\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: description,\r\n } })),\r\n !isMedium && React.createElement(\"div\", { className: \"video-banner-lp__text-container__description-wrapper__button-box\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonLink, openInNewTab: opensInNewTab }, buttonLabel),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: shortText,\r\n } })))),\r\n React.createElement(\"div\", { className: \"video-banner-lp__video-container\" },\r\n React.createElement(\"video\", { className: \"video-banner-lp__video\", autoPlay: true, loop: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: videoSRC, type: \"video/mp4\" })))))));\r\n};\r\n","import React, { useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';\n\n// ../web/dist/index.js\nvar N3 = Object.defineProperty;\nvar V3 = (f, n, r) => n in f ? N3(f, n, { enumerable: true, configurable: true, writable: true, value: r }) : f[n] = r;\nvar m = (f, n, r) => V3(f, typeof n != \"symbol\" ? n + \"\" : n, r);\nvar e2 = class {\n requestAnimationFrame(n) {\n return requestAnimationFrame(n);\n }\n cancelAnimationFrame(n) {\n cancelAnimationFrame(n);\n }\n};\nvar t2 = class {\n constructor() {\n m(this, \"_lastHandleId\", 0);\n m(this, \"_lastImmediate\", null);\n }\n requestAnimationFrame(n) {\n return this._lastHandleId >= Number.MAX_SAFE_INTEGER && (this._lastHandleId = 0), this._lastHandleId += 1, this._lastImmediate = setImmediate(() => {\n n(Date.now());\n }), this._lastHandleId;\n }\n cancelAnimationFrame(n) {\n this._lastImmediate && clearImmediate(this._lastImmediate);\n }\n};\nvar x1 = class {\n constructor() {\n m(this, \"_strategy\");\n this._strategy = typeof requestAnimationFrame == \"function\" ? new e2() : new t2();\n }\n requestAnimationFrame(n) {\n return this._strategy.requestAnimationFrame(n);\n }\n cancelAnimationFrame(n) {\n this._strategy.cancelAnimationFrame(n);\n }\n};\nvar I = typeof window < \"u\" && typeof window.document < \"u\";\nvar T1 = new Uint8Array([80, 75, 3, 4]);\nvar Y2 = [\"v\", \"ip\", \"op\", \"layers\", \"fr\", \"w\", \"h\"];\nvar n2 = \"0.33.0\";\nvar r2 = \"@lottiefiles/dotlottie-web\";\nvar J2 = 0.75;\nvar Y3 = (() => {\n var f = typeof document < \"u\" ? document.currentScript?.src : void 0;\n return function(n = {}) {\n var r = n, c, y, R = new Promise((e, t) => {\n c = e, y = t;\n }), H = Object.assign({}, r), $ = \"./this.program\", z = \"\";\n typeof document < \"u\" && document.currentScript && (z = document.currentScript.src), f && (z = f), z.startsWith(\"blob:\") ? z = \"\" : z = z.substr(0, z.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1);\n var t1 = r.print || console.log.bind(console), n1 = r.printErr || console.error.bind(console);\n Object.assign(r, H), H = null, r.thisProgram && ($ = r.thisProgram);\n var s1;\n r.wasmBinary && (s1 = r.wasmBinary);\n var y1, c2 = false, q, E, r1, d1, x, L, h2, p2;\n function v2() {\n var e = y1.buffer;\n r.HEAP8 = q = new Int8Array(e), r.HEAP16 = r1 = new Int16Array(e), r.HEAPU8 = E = new Uint8Array(e), r.HEAPU16 = d1 = new Uint16Array(e), r.HEAP32 = x = new Int32Array(e), r.HEAPU32 = L = new Uint32Array(e), r.HEAPF32 = h2 = new Float32Array(e), r.HEAPF64 = p2 = new Float64Array(e);\n }\n var f2 = [], m2 = [], _2 = [];\n function n3() {\n var e = r.preRun.shift();\n f2.unshift(e);\n }\n var K = 0, u1 = null;\n function w1(e) {\n throw r.onAbort?.(e), e = \"Aborted(\" + e + \")\", n1(e), c2 = true, e = new WebAssembly.RuntimeError(e + \". Build with -sASSERTIONS for more info.\"), y(e), e;\n }\n var g2 = (e) => e.startsWith(\"data:application/octet-stream;base64,\"), i1;\n if (i1 = \"DotLottiePlayer.wasm\", !g2(i1)) {\n var y2 = i1;\n i1 = r.locateFile ? r.locateFile(y2, z) : z + y2;\n }\n function w2(e) {\n if (e == i1 && s1)\n return new Uint8Array(s1);\n throw \"both async and sync fetching of the wasm failed\";\n }\n function r3(e) {\n return s1 || typeof fetch != \"function\" ? Promise.resolve().then(() => w2(e)) : fetch(e, { credentials: \"same-origin\" }).then((t) => {\n if (!t.ok)\n throw `failed to load wasm binary file at '${e}'`;\n return t.arrayBuffer();\n }).catch(() => w2(e));\n }\n function b2(e, t, i) {\n return r3(e).then((a) => WebAssembly.instantiate(a, t)).then(i, (a) => {\n n1(`failed to asynchronously prepare wasm: ${a}`), w1(a);\n });\n }\n function i3(e, t) {\n var i = i1;\n return s1 || typeof WebAssembly.instantiateStreaming != \"function\" || g2(i) || typeof fetch != \"function\" ? b2(i, e, t) : fetch(i, { credentials: \"same-origin\" }).then((a) => WebAssembly.instantiateStreaming(a, e).then(t, function(o) {\n return n1(`wasm streaming compile failed: ${o}`), n1(\"falling back to ArrayBuffer instantiation\"), b2(i, e, t);\n }));\n }\n var R1 = (e) => {\n for (; 0 < e.length; )\n e.shift()(r);\n }, M2 = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf8\") : void 0, X = (e, t, i) => {\n var a = t + i;\n for (i = t; e[i] && !(i >= a); )\n ++i;\n if (16 < i - t && e.buffer && M2)\n return M2.decode(e.subarray(t, i));\n for (a = \"\"; t < i; ) {\n var o = e[t++];\n if (o & 128) {\n var s = e[t++] & 63;\n if ((o & 224) == 192)\n a += String.fromCharCode((o & 31) << 6 | s);\n else {\n var l = e[t++] & 63;\n o = (o & 240) == 224 ? (o & 15) << 12 | s << 6 | l : (o & 7) << 18 | s << 12 | l << 6 | e[t++] & 63, 65536 > o ? a += String.fromCharCode(o) : (o -= 65536, a += String.fromCharCode(55296 | o >> 10, 56320 | o & 1023));\n }\n } else\n a += String.fromCharCode(o);\n }\n return a;\n };\n class a3 {\n constructor(t) {\n this.ya = t - 24;\n }\n }\n var C22 = 0, L2 = (e) => {\n for (var t = 0, i = 0; i < e.length; ++i) {\n var a = e.charCodeAt(i);\n 127 >= a ? t++ : 2047 >= a ? t += 2 : 55296 <= a && 57343 >= a ? (t += 4, ++i) : t += 3;\n }\n return t;\n }, E2 = (e, t, i, a) => {\n if (0 < a) {\n a = i + a - 1;\n for (var o = 0; o < e.length; ++o) {\n var s = e.charCodeAt(o);\n if (55296 <= s && 57343 >= s) {\n var l = e.charCodeAt(++o);\n s = 65536 + ((s & 1023) << 10) | l & 1023;\n }\n if (127 >= s) {\n if (i >= a)\n break;\n t[i++] = s;\n } else {\n if (2047 >= s) {\n if (i + 1 >= a)\n break;\n t[i++] = 192 | s >> 6;\n } else {\n if (65535 >= s) {\n if (i + 2 >= a)\n break;\n t[i++] = 224 | s >> 12;\n } else {\n if (i + 3 >= a)\n break;\n t[i++] = 240 | s >> 18, t[i++] = 128 | s >> 12 & 63;\n }\n t[i++] = 128 | s >> 6 & 63;\n }\n t[i++] = 128 | s & 63;\n }\n }\n t[i] = 0;\n }\n }, b1 = {}, O1 = (e) => {\n for (; e.length; ) {\n var t = e.pop();\n e.pop()(t);\n }\n };\n function l1(e) {\n return this.fromWireType(L[e >> 2]);\n }\n var a1 = {}, Z = {}, M1 = {}, c1, J = (e, t, i) => {\n function a(u) {\n if (u = i(u), u.length !== e.length)\n throw new c1(\"Mismatched type converter count\");\n for (var p = 0; p < e.length; ++p)\n W(e[p], u[p]);\n }\n e.forEach(function(u) {\n M1[u] = t;\n });\n var o = Array(t.length), s = [], l = 0;\n t.forEach((u, p) => {\n Z.hasOwnProperty(u) ? o[p] = Z[u] : (s.push(u), a1.hasOwnProperty(u) || (a1[u] = []), a1[u].push(() => {\n o[p] = Z[u], ++l, l === s.length && a(o);\n }));\n }), s.length === 0 && a(o);\n }, P2, F = (e) => {\n for (var t = \"\"; E[e]; )\n t += P2[E[e++]];\n return t;\n }, w;\n function s3(e, t, i = {}) {\n var a = t.name;\n if (!e)\n throw new w(`type \"${a}\" must have a positive integer typeid pointer`);\n if (Z.hasOwnProperty(e)) {\n if (i.ib)\n return;\n throw new w(`Cannot register type '${a}' twice`);\n }\n Z[e] = t, delete M1[e], a1.hasOwnProperty(e) && (t = a1[e], delete a1[e], t.forEach((o) => o()));\n }\n function W(e, t, i = {}) {\n if (!(\"argPackAdvance\" in t))\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n return s3(e, t, i);\n }\n var $1 = (e) => {\n throw new w(e.ma.za.xa.name + \" instance already deleted\");\n }, z1 = false, S2 = () => {\n }, I2 = (e, t, i) => t === i ? e : i.Ca === void 0 ? null : (e = I2(e, t, i.Ca), e === null ? null : i.ab(e)), F2 = {}, h1 = [], W1 = () => {\n for (; h1.length; ) {\n var e = h1.pop();\n e.ma.Ka = false, e.delete();\n }\n }, p1, v1 = {}, d3 = (e, t) => {\n if (t === void 0)\n throw new w(\"ptr should not be undefined\");\n for (; e.Ca; )\n t = e.Na(t), e = e.Ca;\n return v1[t];\n }, C1 = (e, t) => {\n if (!t.za || !t.ya)\n throw new c1(\"makeClassHandle requires ptr and ptrType\");\n if (!!t.Da != !!t.Aa)\n throw new c1(\"Both smartPtrType and smartPtr must be specified\");\n return t.count = { value: 1 }, f1(Object.create(e, { ma: { value: t, writable: true } }));\n }, f1 = (e) => typeof FinalizationRegistry > \"u\" ? (f1 = (t) => t, e) : (z1 = new FinalizationRegistry((t) => {\n t = t.ma, --t.count.value, t.count.value === 0 && (t.Aa ? t.Da.Fa(t.Aa) : t.za.xa.Fa(t.ya));\n }), f1 = (t) => {\n var i = t.ma;\n return i.Aa && z1.register(t, { ma: i }, t), t;\n }, S2 = (t) => {\n z1.unregister(t);\n }, f1(e));\n function L1() {\n }\n var m1 = (e, t) => Object.defineProperty(t, \"name\", { value: e }), x2 = (e, t, i) => {\n if (e[t].Ba === void 0) {\n var a = e[t];\n e[t] = function(...o) {\n if (!e[t].Ba.hasOwnProperty(o.length))\n throw new w(`Function '${i}' called with an invalid number of arguments (${o.length}) - expects one of (${e[t].Ba})!`);\n return e[t].Ba[o.length].apply(this, o);\n }, e[t].Ba = [], e[t].Ba[a.Oa] = a;\n }\n }, U1 = (e, t, i) => {\n if (r.hasOwnProperty(e)) {\n if (i === void 0 || r[e].Ba !== void 0 && r[e].Ba[i] !== void 0)\n throw new w(`Cannot register public name '${e}' twice`);\n if (x2(r, e, e), r.hasOwnProperty(i))\n throw new w(`Cannot register multiple overloads of a function with the same number of arguments (${i})!`);\n r[e].Ba[i] = t;\n } else\n r[e] = t, i !== void 0 && (r[e].vb = i);\n }, u3 = (e) => {\n if (e === void 0)\n return \"_unknown\";\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var t = e.charCodeAt(0);\n return 48 <= t && 57 >= t ? `_${e}` : e;\n };\n function l3(e, t, i, a, o, s, l, u) {\n this.name = e, this.constructor = t, this.La = i, this.Fa = a, this.Ca = o, this.cb = s, this.Na = l, this.ab = u, this.kb = [];\n }\n var B1 = (e, t, i) => {\n for (; t !== i; ) {\n if (!t.Na)\n throw new w(`Expected null or instance of ${i.name}, got an instance of ${t.name}`);\n e = t.Na(e), t = t.Ca;\n }\n return e;\n };\n function c3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new w(`null is not a valid ${this.name}`);\n return 0;\n }\n if (!t.ma)\n throw new w(`Cannot pass \"${G1(t)}\" as a ${this.name}`);\n if (!t.ma.ya)\n throw new w(`Cannot pass deleted object as a pointer of type ${this.name}`);\n return B1(t.ma.ya, t.ma.za.xa, this.xa);\n }\n function h3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new w(`null is not a valid ${this.name}`);\n if (this.Qa) {\n var i = this.Ua();\n return e !== null && e.push(this.Fa, i), i;\n }\n return 0;\n }\n if (!t || !t.ma)\n throw new w(`Cannot pass \"${G1(t)}\" as a ${this.name}`);\n if (!t.ma.ya)\n throw new w(`Cannot pass deleted object as a pointer of type ${this.name}`);\n if (!this.Pa && t.ma.za.Pa)\n throw new w(`Cannot convert argument of type ${t.ma.Da ? t.ma.Da.name : t.ma.za.name} to parameter type ${this.name}`);\n if (i = B1(t.ma.ya, t.ma.za.xa, this.xa), this.Qa) {\n if (t.ma.Aa === void 0)\n throw new w(\"Passing raw pointer to smart pointer is illegal\");\n switch (this.pb) {\n case 0:\n if (t.ma.Da === this)\n i = t.ma.Aa;\n else\n throw new w(`Cannot convert argument of type ${t.ma.Da ? t.ma.Da.name : t.ma.za.name} to parameter type ${this.name}`);\n break;\n case 1:\n i = t.ma.Aa;\n break;\n case 2:\n if (t.ma.Da === this)\n i = t.ma.Aa;\n else {\n var a = t.clone();\n i = this.lb(i, P1(() => a.delete())), e !== null && e.push(this.Fa, i);\n }\n break;\n default:\n throw new w(\"Unsupporting sharing policy\");\n }\n }\n return i;\n }\n function p3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new w(`null is not a valid ${this.name}`);\n return 0;\n }\n if (!t.ma)\n throw new w(`Cannot pass \"${G1(t)}\" as a ${this.name}`);\n if (!t.ma.ya)\n throw new w(`Cannot pass deleted object as a pointer of type ${this.name}`);\n if (t.ma.za.Pa)\n throw new w(`Cannot convert argument of type ${t.ma.za.name} to parameter type ${this.name}`);\n return B1(t.ma.ya, t.ma.za.xa, this.xa);\n }\n function _1(e, t, i, a, o, s, l, u, p, h, v) {\n this.name = e, this.xa = t, this.Ta = i, this.Pa = a, this.Qa = o, this.jb = s, this.pb = l, this.Za = u, this.Ua = p, this.lb = h, this.Fa = v, o || t.Ca !== void 0 ? this.toWireType = h3 : (this.toWireType = a ? c3 : p3, this.Ea = null);\n }\n var T2 = (e, t, i) => {\n if (!r.hasOwnProperty(e))\n throw new c1(\"Replacing nonexistent public symbol\");\n r[e].Ba !== void 0 && i !== void 0 ? r[e].Ba[i] = t : (r[e] = t, r[e].Oa = i);\n }, O, v3 = (e, t, i = []) => (e.includes(\"j\") ? (e = e.replace(/p/g, \"i\"), t = (0, r[\"dynCall_\" + e])(t, ...i)) : t = O.get(t)(...i), t), f3 = (e, t) => (...i) => v3(e, t, i), T = (e, t) => {\n e = F(e);\n var i = e.includes(\"j\") ? f3(e, t) : O.get(t);\n if (typeof i != \"function\")\n throw new w(`unknown function pointer with signature ${e}: ${t}`);\n return i;\n }, A2, k2 = (e) => {\n e = j2(e);\n var t = F(e);\n return Y(e), t;\n }, E1 = (e, t) => {\n function i(s) {\n o[s] || Z[s] || (M1[s] ? M1[s].forEach(i) : (a.push(s), o[s] = true));\n }\n var a = [], o = {};\n throw t.forEach(i), new A2(`${e}: ` + a.map(k2).join([\", \"]));\n }, j1 = (e, t) => {\n for (var i = [], a = 0; a < e; a++)\n i.push(L[t + 4 * a >> 2]);\n return i;\n };\n function m3(e) {\n for (var t = 1; t < e.length; ++t)\n if (e[t] !== null && e[t].Ea === void 0)\n return true;\n return false;\n }\n function H1(e, t, i, a, o) {\n var s = t.length;\n if (2 > s)\n throw new w(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n var l = t[1] !== null && i !== null, u = m3(t), p = t[0].name !== \"void\", h = s - 2, v = Array(h), b = [], M = [];\n return m1(e, function(...d) {\n if (d.length !== h)\n throw new w(`function ${e} called with ${d.length} arguments, expected ${h}`);\n if (M.length = 0, b.length = l ? 2 : 1, b[0] = o, l) {\n var _ = t[1].toWireType(M, this);\n b[1] = _;\n }\n for (var g = 0; g < h; ++g)\n v[g] = t[g + 2].toWireType(M, d[g]), b.push(v[g]);\n if (d = a(...b), u)\n O1(M);\n else\n for (g = l ? 1 : 2; g < t.length; g++) {\n var S = g === 1 ? _ : v[g - 2];\n t[g].Ea !== null && t[g].Ea(S);\n }\n return _ = p ? t[0].fromWireType(d) : void 0, _;\n });\n }\n var D2 = (e) => {\n e = e.trim();\n let t = e.indexOf(\"(\");\n return t !== -1 ? e.substr(0, t) : e;\n }, N1 = [], V = [], V1 = (e) => {\n 9 < e && --V[e + 1] === 0 && (V[e] = void 0, N1.push(e));\n }, Y1 = (e) => {\n if (!e)\n throw new w(\"Cannot use deleted val. handle = \" + e);\n return V[e];\n }, P1 = (e) => {\n switch (e) {\n case void 0:\n return 2;\n case null:\n return 4;\n case true:\n return 6;\n case false:\n return 8;\n default:\n let t = N1.pop() || V.length;\n return V[t] = e, V[t + 1] = 1, t;\n }\n }, R2 = { name: \"emscripten::val\", fromWireType: (e) => {\n var t = Y1(e);\n return V1(e), t;\n }, toWireType: (e, t) => P1(t), argPackAdvance: 8, readValueFromPointer: l1, Ea: null }, _3 = (e, t, i) => {\n switch (t) {\n case 1:\n return i ? function(a) {\n return this.fromWireType(q[a]);\n } : function(a) {\n return this.fromWireType(E[a]);\n };\n case 2:\n return i ? function(a) {\n return this.fromWireType(r1[a >> 1]);\n } : function(a) {\n return this.fromWireType(d1[a >> 1]);\n };\n case 4:\n return i ? function(a) {\n return this.fromWireType(x[a >> 2]);\n } : function(a) {\n return this.fromWireType(L[a >> 2]);\n };\n default:\n throw new TypeError(`invalid integer width (${t}): ${e}`);\n }\n }, J1 = (e, t) => {\n var i = Z[e];\n if (i === void 0)\n throw e = `${t} has unknown type ${k2(e)}`, new w(e);\n return i;\n }, G1 = (e) => {\n if (e === null)\n return \"null\";\n var t = typeof e;\n return t === \"object\" || t === \"array\" || t === \"function\" ? e.toString() : \"\" + e;\n }, g3 = (e, t) => {\n switch (t) {\n case 4:\n return function(i) {\n return this.fromWireType(h2[i >> 2]);\n };\n case 8:\n return function(i) {\n return this.fromWireType(p2[i >> 3]);\n };\n default:\n throw new TypeError(`invalid float width (${t}): ${e}`);\n }\n }, y3 = (e, t, i) => {\n switch (t) {\n case 1:\n return i ? (a) => q[a] : (a) => E[a];\n case 2:\n return i ? (a) => r1[a >> 1] : (a) => d1[a >> 1];\n case 4:\n return i ? (a) => x[a >> 2] : (a) => L[a >> 2];\n default:\n throw new TypeError(`invalid integer width (${t}): ${e}`);\n }\n }, O2 = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, w3 = (e, t) => {\n for (var i = e >> 1, a = i + t / 2; !(i >= a) && d1[i]; )\n ++i;\n if (i <<= 1, 32 < i - e && O2)\n return O2.decode(E.subarray(e, i));\n for (i = \"\", a = 0; !(a >= t / 2); ++a) {\n var o = r1[e + 2 * a >> 1];\n if (o == 0)\n break;\n i += String.fromCharCode(o);\n }\n return i;\n }, b3 = (e, t, i) => {\n if (i ?? (i = 2147483647), 2 > i)\n return 0;\n i -= 2;\n var a = t;\n i = i < 2 * e.length ? i / 2 : e.length;\n for (var o = 0; o < i; ++o)\n r1[t >> 1] = e.charCodeAt(o), t += 2;\n return r1[t >> 1] = 0, t - a;\n }, M3 = (e) => 2 * e.length, C3 = (e, t) => {\n for (var i = 0, a = \"\"; !(i >= t / 4); ) {\n var o = x[e + 4 * i >> 2];\n if (o == 0)\n break;\n ++i, 65536 <= o ? (o -= 65536, a += String.fromCharCode(55296 | o >> 10, 56320 | o & 1023)) : a += String.fromCharCode(o);\n }\n return a;\n }, L3 = (e, t, i) => {\n if (i ?? (i = 2147483647), 4 > i)\n return 0;\n var a = t;\n i = a + i - 4;\n for (var o = 0; o < e.length; ++o) {\n var s = e.charCodeAt(o);\n if (55296 <= s && 57343 >= s) {\n var l = e.charCodeAt(++o);\n s = 65536 + ((s & 1023) << 10) | l & 1023;\n }\n if (x[t >> 2] = s, t += 4, t + 4 > i)\n break;\n }\n return x[t >> 2] = 0, t - a;\n }, E3 = (e) => {\n for (var t = 0, i = 0; i < e.length; ++i) {\n var a = e.charCodeAt(i);\n 55296 <= a && 57343 >= a && ++i, t += 4;\n }\n return t;\n }, q1 = [], P3 = (e) => {\n var t = q1.length;\n return q1.push(e), t;\n }, S3 = (e, t) => {\n for (var i = Array(e), a = 0; a < e; ++a)\n i[a] = J1(L[t + 4 * a >> 2], \"parameter \" + a);\n return i;\n }, I3 = Reflect.construct, K1 = {}, $2 = () => {\n if (!X1) {\n var e = { USER: \"web_user\", LOGNAME: \"web_user\", PATH: \"/\", PWD: \"/\", HOME: \"/home/web_user\", LANG: (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _: $ || \"./this.program\" }, t;\n for (t in K1)\n K1[t] === void 0 ? delete e[t] : e[t] = K1[t];\n var i = [];\n for (t in e)\n i.push(`${t}=${e[t]}`);\n X1 = i;\n }\n return X1;\n }, X1, F3 = [null, [], []], x3 = () => {\n if (typeof crypto == \"object\" && typeof crypto.getRandomValues == \"function\")\n return (e) => crypto.getRandomValues(e);\n w1(\"initRandomDevice\");\n }, z2 = (e) => (z2 = x3())(e), S1 = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0), W2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], U2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n function T3(e) {\n var t = Array(L2(e) + 1);\n return E2(e, t, 0, t.length), t;\n }\n var A3 = (e, t, i, a) => {\n function o(d, _, g) {\n for (d = typeof d == \"number\" ? d.toString() : d || \"\"; d.length < _; )\n d = g[0] + d;\n return d;\n }\n function s(d, _) {\n return o(d, _, \"0\");\n }\n function l(d, _) {\n function g(G) {\n return 0 > G ? -1 : 0 < G ? 1 : 0;\n }\n var S;\n return (S = g(d.getFullYear() - _.getFullYear())) === 0 && (S = g(d.getMonth() - _.getMonth())) === 0 && (S = g(d.getDate() - _.getDate())), S;\n }\n function u(d) {\n switch (d.getDay()) {\n case 0:\n return new Date(d.getFullYear() - 1, 11, 29);\n case 1:\n return d;\n case 2:\n return new Date(d.getFullYear(), 0, 3);\n case 3:\n return new Date(d.getFullYear(), 0, 2);\n case 4:\n return new Date(d.getFullYear(), 0, 1);\n case 5:\n return new Date(d.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(d.getFullYear() - 1, 11, 30);\n }\n }\n function p(d) {\n var _ = d.Ia;\n for (d = new Date(new Date(d.Ja + 1900, 0, 1).getTime()); 0 < _; ) {\n var g = d.getMonth(), S = (S1(d.getFullYear()) ? W2 : U2)[g];\n if (_ > S - d.getDate())\n _ -= S - d.getDate() + 1, d.setDate(1), 11 > g ? d.setMonth(g + 1) : (d.setMonth(0), d.setFullYear(d.getFullYear() + 1));\n else {\n d.setDate(d.getDate() + _);\n break;\n }\n }\n return g = new Date(d.getFullYear() + 1, 0, 4), _ = u(new Date(d.getFullYear(), 0, 4)), g = u(g), 0 >= l(_, d) ? 0 >= l(g, d) ? d.getFullYear() + 1 : d.getFullYear() : d.getFullYear() - 1;\n }\n var h = L[a + 40 >> 2];\n a = { sb: x[a >> 2], rb: x[a + 4 >> 2], Ra: x[a + 8 >> 2], Va: x[a + 12 >> 2], Sa: x[a + 16 >> 2], Ja: x[a + 20 >> 2], Ga: x[a + 24 >> 2], Ia: x[a + 28 >> 2], wb: x[a + 32 >> 2], qb: x[a + 36 >> 2], tb: h && h ? X(E, h) : \"\" }, i = i ? X(E, i) : \"\", h = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n for (var v in h)\n i = i.replace(new RegExp(v, \"g\"), h[v]);\n var b = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"), M = \"January February March April May June July August September October November December\".split(\" \");\n h = { \"%a\": (d) => b[d.Ga].substring(0, 3), \"%A\": (d) => b[d.Ga], \"%b\": (d) => M[d.Sa].substring(0, 3), \"%B\": (d) => M[d.Sa], \"%C\": (d) => s((d.Ja + 1900) / 100 | 0, 2), \"%d\": (d) => s(d.Va, 2), \"%e\": (d) => o(d.Va, 2, \" \"), \"%g\": (d) => p(d).toString().substring(2), \"%G\": p, \"%H\": (d) => s(d.Ra, 2), \"%I\": (d) => (d = d.Ra, d == 0 ? d = 12 : 12 < d && (d -= 12), s(d, 2)), \"%j\": (d) => {\n for (var _ = 0, g = 0; g <= d.Sa - 1; _ += (S1(d.Ja + 1900) ? W2 : U2)[g++])\n ;\n return s(d.Va + _, 3);\n }, \"%m\": (d) => s(d.Sa + 1, 2), \"%M\": (d) => s(d.rb, 2), \"%n\": () => `\n`, \"%p\": (d) => 0 <= d.Ra && 12 > d.Ra ? \"AM\" : \"PM\", \"%S\": (d) => s(d.sb, 2), \"%t\": () => \"\t\", \"%u\": (d) => d.Ga || 7, \"%U\": (d) => s(Math.floor((d.Ia + 7 - d.Ga) / 7), 2), \"%V\": (d) => {\n var _ = Math.floor((d.Ia + 7 - (d.Ga + 6) % 7) / 7);\n if (2 >= (d.Ga + 371 - d.Ia - 2) % 7 && _++, _)\n _ == 53 && (g = (d.Ga + 371 - d.Ia) % 7, g == 4 || g == 3 && S1(d.Ja) || (_ = 1));\n else {\n _ = 52;\n var g = (d.Ga + 7 - d.Ia - 1) % 7;\n (g == 4 || g == 5 && S1(d.Ja % 400 - 1)) && _++;\n }\n return s(_, 2);\n }, \"%w\": (d) => d.Ga, \"%W\": (d) => s(Math.floor((d.Ia + 7 - (d.Ga + 6) % 7) / 7), 2), \"%y\": (d) => (d.Ja + 1900).toString().substring(2), \"%Y\": (d) => d.Ja + 1900, \"%z\": (d) => {\n d = d.qb;\n var _ = 0 <= d;\n return d = Math.abs(d) / 60, (_ ? \"+\" : \"-\") + (\"0000\" + (d / 60 * 100 + d % 60)).slice(-4);\n }, \"%Z\": (d) => d.tb, \"%%\": () => \"%\" }, i = i.replace(/%%/g, \"\\0\\0\");\n for (v in h)\n i.includes(v) && (i = i.replace(new RegExp(v, \"g\"), h[v](a)));\n return i = i.replace(/\\0\\0/g, \"%\"), v = T3(i), v.length > t ? 0 : (q.set(v, e), v.length - 1);\n };\n c1 = r.InternalError = class extends Error {\n constructor(e) {\n super(e), this.name = \"InternalError\";\n }\n };\n for (var B2 = Array(256), I1 = 0; 256 > I1; ++I1)\n B2[I1] = String.fromCharCode(I1);\n P2 = B2, w = r.BindingError = class extends Error {\n constructor(e) {\n super(e), this.name = \"BindingError\";\n }\n }, Object.assign(L1.prototype, { isAliasOf: function(e) {\n if (!(this instanceof L1 && e instanceof L1))\n return false;\n var t = this.ma.za.xa, i = this.ma.ya;\n e.ma = e.ma;\n var a = e.ma.za.xa;\n for (e = e.ma.ya; t.Ca; )\n i = t.Na(i), t = t.Ca;\n for (; a.Ca; )\n e = a.Na(e), a = a.Ca;\n return t === a && i === e;\n }, clone: function() {\n if (this.ma.ya || $1(this), this.ma.Ma)\n return this.ma.count.value += 1, this;\n var e = f1, t = Object, i = t.create, a = Object.getPrototypeOf(this), o = this.ma;\n return e = e(i.call(t, a, { ma: { value: { count: o.count, Ka: o.Ka, Ma: o.Ma, ya: o.ya, za: o.za, Aa: o.Aa, Da: o.Da } } })), e.ma.count.value += 1, e.ma.Ka = false, e;\n }, delete() {\n if (this.ma.ya || $1(this), this.ma.Ka && !this.ma.Ma)\n throw new w(\"Object already scheduled for deletion\");\n S2(this);\n var e = this.ma;\n --e.count.value, e.count.value === 0 && (e.Aa ? e.Da.Fa(e.Aa) : e.za.xa.Fa(e.ya)), this.ma.Ma || (this.ma.Aa = void 0, this.ma.ya = void 0);\n }, isDeleted: function() {\n return !this.ma.ya;\n }, deleteLater: function() {\n if (this.ma.ya || $1(this), this.ma.Ka && !this.ma.Ma)\n throw new w(\"Object already scheduled for deletion\");\n return h1.push(this), h1.length === 1 && p1 && p1(W1), this.ma.Ka = true, this;\n } }), r.getInheritedInstanceCount = () => Object.keys(v1).length, r.getLiveInheritedInstances = () => {\n var e = [], t;\n for (t in v1)\n v1.hasOwnProperty(t) && e.push(v1[t]);\n return e;\n }, r.flushPendingDeletes = W1, r.setDelayFunction = (e) => {\n p1 = e, h1.length && p1 && p1(W1);\n }, Object.assign(_1.prototype, { eb(e) {\n return this.Za && (e = this.Za(e)), e;\n }, Xa(e) {\n this.Fa?.(e);\n }, argPackAdvance: 8, readValueFromPointer: l1, fromWireType: function(e) {\n function t() {\n return this.Qa ? C1(this.xa.La, { za: this.jb, ya: i, Da: this, Aa: e }) : C1(this.xa.La, { za: this, ya: e });\n }\n var i = this.eb(e);\n if (!i)\n return this.Xa(e), null;\n var a = d3(this.xa, i);\n if (a !== void 0)\n return a.ma.count.value === 0 ? (a.ma.ya = i, a.ma.Aa = e, a.clone()) : (a = a.clone(), this.Xa(e), a);\n if (a = this.xa.cb(i), a = F2[a], !a)\n return t.call(this);\n a = this.Pa ? a.$a : a.pointerType;\n var o = I2(i, this.xa, a.xa);\n return o === null ? t.call(this) : this.Qa ? C1(a.xa.La, { za: a, ya: o, Da: this, Aa: e }) : C1(a.xa.La, { za: a, ya: o });\n } }), A2 = r.UnboundTypeError = ((e, t) => {\n var i = m1(t, function(a) {\n this.name = t, this.message = a, a = Error(a).stack, a !== void 0 && (this.stack = this.toString() + `\n` + a.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n return i.prototype = Object.create(e.prototype), i.prototype.constructor = i, i.prototype.toString = function() {\n return this.message === void 0 ? this.name : `${this.name}: ${this.message}`;\n }, i;\n })(Error, \"UnboundTypeError\"), V.push(0, 1, void 0, 1, null, 1, true, 1, false, 1), r.count_emval_handles = () => V.length / 2 - 5 - N1.length;\n var k3 = { c: (e, t, i, a) => {\n w1(`Assertion failed: ${e ? X(E, e) : \"\"}, at: ` + [t ? t ? X(E, t) : \"\" : \"unknown filename\", i, a ? a ? X(E, a) : \"\" : \"unknown function\"]);\n }, m: (e, t, i) => {\n var a = new a3(e);\n throw L[a.ya + 16 >> 2] = 0, L[a.ya + 4 >> 2] = t, L[a.ya + 8 >> 2] = i, C22 = e, C22;\n }, B: function() {\n return 0;\n }, P: () => {\n }, M: () => {\n }, R: function() {\n return 0;\n }, N: () => {\n }, A: function() {\n }, O: () => {\n }, v: (e) => {\n var t = b1[e];\n delete b1[e];\n var i = t.Ua, a = t.Fa, o = t.Ya, s = o.map((l) => l.hb).concat(o.map((l) => l.nb));\n J([e], s, (l) => {\n var u = {};\n return o.forEach((p, h) => {\n var v = l[h], b = p.fb, M = p.gb, d = l[h + o.length], _ = p.mb, g = p.ob;\n u[p.bb] = { read: (S) => v.fromWireType(b(M, S)), write: (S, G) => {\n var D = [];\n _(g, S, d.toWireType(D, G)), O1(D);\n } };\n }), [{ name: t.name, fromWireType: (p) => {\n var h = {}, v;\n for (v in u)\n h[v] = u[v].read(p);\n return a(p), h;\n }, toWireType: (p, h) => {\n for (var v in u)\n if (!(v in h))\n throw new TypeError(`Missing field: \"${v}\"`);\n var b = i();\n for (v in u)\n u[v].write(b, h[v]);\n return p !== null && p.push(a, b), b;\n }, argPackAdvance: 8, readValueFromPointer: l1, Ea: a }];\n });\n }, I: () => {\n }, Y: (e, t, i, a) => {\n t = F(t), W(e, { name: t, fromWireType: function(o) {\n return !!o;\n }, toWireType: function(o, s) {\n return s ? i : a;\n }, argPackAdvance: 8, readValueFromPointer: function(o) {\n return this.fromWireType(E[o]);\n }, Ea: null });\n }, r: (e, t, i, a, o, s, l, u, p, h, v, b, M) => {\n v = F(v), s = T(o, s), u && (u = T(l, u)), h && (h = T(p, h)), M = T(b, M);\n var d = u3(v);\n U1(d, function() {\n E1(`Cannot construct ${v} due to unbound types`, [a]);\n }), J([e, t, i], a ? [a] : [], (_) => {\n if (_ = _[0], a)\n var g = _.xa, S = g.La;\n else\n S = L1.prototype;\n _ = m1(v, function(...Q1) {\n if (Object.getPrototypeOf(this) !== G)\n throw new w(\"Use 'new' to construct \" + v);\n if (D.Ha === void 0)\n throw new w(v + \" has no accessible constructor\");\n var V2 = D.Ha[Q1.length];\n if (V2 === void 0)\n throw new w(`Tried to invoke ctor of ${v} with invalid number of parameters (${Q1.length}) - expected (${Object.keys(D.Ha).toString()}) parameters instead!`);\n return V2.apply(this, Q1);\n });\n var G = Object.create(S, { constructor: { value: _ } });\n _.prototype = G;\n var D = new l3(v, _, G, M, g, s, u, h);\n if (D.Ca) {\n var g1;\n (g1 = D.Ca).Wa ?? (g1.Wa = []), D.Ca.Wa.push(D);\n }\n return g = new _1(v, D, true, false, false), g1 = new _1(v + \"*\", D, false, false, false), S = new _1(v + \" const*\", D, false, true, false), F2[e] = { pointerType: g1, $a: S }, T2(d, _), [g, g1, S];\n });\n }, q: (e, t, i, a, o, s) => {\n var l = j1(t, i);\n o = T(a, o), J([], [e], (u) => {\n u = u[0];\n var p = `constructor ${u.name}`;\n if (u.xa.Ha === void 0 && (u.xa.Ha = []), u.xa.Ha[t - 1] !== void 0)\n throw new w(`Cannot register multiple constructors with identical number of parameters (${t - 1}) for class '${u.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return u.xa.Ha[t - 1] = () => {\n E1(`Cannot construct ${u.name} due to unbound types`, l);\n }, J([], l, (h) => (h.splice(1, 0, null), u.xa.Ha[t - 1] = H1(p, h, null, o, s), [])), [];\n });\n }, f: (e, t, i, a, o, s, l, u) => {\n var p = j1(i, a);\n t = F(t), t = D2(t), s = T(o, s), J([], [e], (h) => {\n function v() {\n E1(`Cannot call ${b} due to unbound types`, p);\n }\n h = h[0];\n var b = `${h.name}.${t}`;\n t.startsWith(\"@@\") && (t = Symbol[t.substring(2)]), u && h.xa.kb.push(t);\n var M = h.xa.La, d = M[t];\n return d === void 0 || d.Ba === void 0 && d.className !== h.name && d.Oa === i - 2 ? (v.Oa = i - 2, v.className = h.name, M[t] = v) : (x2(M, t, b), M[t].Ba[i - 2] = v), J([], p, (_) => (_ = H1(b, _, h, s, l), M[t].Ba === void 0 ? (_.Oa = i - 2, M[t] = _) : M[t].Ba[i - 2] = _, [])), [];\n });\n }, X: (e) => W(e, R2), x: (e, t, i, a) => {\n function o() {\n }\n t = F(t), o.values = {}, W(e, { name: t, constructor: o, fromWireType: function(s) {\n return this.constructor.values[s];\n }, toWireType: (s, l) => l.value, argPackAdvance: 8, readValueFromPointer: _3(t, i, a), Ea: null }), U1(t, o);\n }, k: (e, t, i) => {\n var a = J1(e, \"enum\");\n t = F(t), e = a.constructor, a = Object.create(a.constructor.prototype, { value: { value: i }, constructor: { value: m1(`${a.name}_${t}`, function() {\n }) } }), e.values[i] = a, e[t] = a;\n }, C: (e, t, i) => {\n t = F(t), W(e, { name: t, fromWireType: (a) => a, toWireType: (a, o) => o, argPackAdvance: 8, readValueFromPointer: g3(t, i), Ea: null });\n }, E: (e, t, i, a, o, s) => {\n var l = j1(t, i);\n e = F(e), e = D2(e), o = T(a, o), U1(e, function() {\n E1(`Cannot call ${e} due to unbound types`, l);\n }, t - 1), J([], l, (u) => (T2(e, H1(e, [u[0], null].concat(u.slice(1)), null, o, s), t - 1), []));\n }, l: (e, t, i, a, o) => {\n if (t = F(t), o === -1 && (o = 4294967295), o = (u) => u, a === 0) {\n var s = 32 - 8 * i;\n o = (u) => u << s >>> s;\n }\n var l = t.includes(\"unsigned\") ? function(u, p) {\n return p >>> 0;\n } : function(u, p) {\n return p;\n };\n W(e, { name: t, fromWireType: o, toWireType: l, argPackAdvance: 8, readValueFromPointer: y3(t, i, a !== 0), Ea: null });\n }, g: (e, t, i) => {\n function a(s) {\n return new o(q.buffer, L[s + 4 >> 2], L[s >> 2]);\n }\n var o = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][t];\n i = F(i), W(e, { name: i, fromWireType: a, argPackAdvance: 8, readValueFromPointer: a }, { ib: true });\n }, w: (e) => {\n W(e, R2);\n }, ca: (e, t, i, a, o, s, l, u, p, h, v, b) => {\n i = F(i), s = T(o, s), u = T(l, u), h = T(p, h), b = T(v, b), J([e], [t], (M) => (M = M[0], [new _1(i, M.xa, false, false, true, M, a, s, u, h, b)]));\n }, D: (e, t) => {\n t = F(t);\n var i = t === \"std::string\";\n W(e, { name: t, fromWireType: function(a) {\n var o = L[a >> 2], s = a + 4;\n if (i)\n for (var l = s, u = 0; u <= o; ++u) {\n var p = s + u;\n if (u == o || E[p] == 0) {\n if (l = l ? X(E, l, p - l) : \"\", h === void 0)\n var h = l;\n else\n h += \"\\0\", h += l;\n l = p + 1;\n }\n }\n else {\n for (h = Array(o), u = 0; u < o; ++u)\n h[u] = String.fromCharCode(E[s + u]);\n h = h.join(\"\");\n }\n return Y(a), h;\n }, toWireType: function(a, o) {\n o instanceof ArrayBuffer && (o = new Uint8Array(o));\n var s = typeof o == \"string\";\n if (!(s || o instanceof Uint8Array || o instanceof Uint8ClampedArray || o instanceof Int8Array))\n throw new w(\"Cannot pass non-string to std::string\");\n var l = i && s ? L2(o) : o.length, u = Z1(4 + l + 1), p = u + 4;\n if (L[u >> 2] = l, i && s)\n E2(o, E, p, l + 1);\n else if (s)\n for (s = 0; s < l; ++s) {\n var h = o.charCodeAt(s);\n if (255 < h)\n throw Y(p), new w(\"String has UTF-16 code units that do not fit in 8 bits\");\n E[p + s] = h;\n }\n else\n for (s = 0; s < l; ++s)\n E[p + s] = o[s];\n return a !== null && a.push(Y, u), u;\n }, argPackAdvance: 8, readValueFromPointer: l1, Ea(a) {\n Y(a);\n } });\n }, u: (e, t, i) => {\n if (i = F(i), t === 2)\n var a = w3, o = b3, s = M3, l = (u) => d1[u >> 1];\n else\n t === 4 && (a = C3, o = L3, s = E3, l = (u) => L[u >> 2]);\n W(e, { name: i, fromWireType: (u) => {\n for (var p = L[u >> 2], h, v = u + 4, b = 0; b <= p; ++b) {\n var M = u + 4 + b * t;\n (b == p || l(M) == 0) && (v = a(v, M - v), h === void 0 ? h = v : (h += \"\\0\", h += v), v = M + t);\n }\n return Y(u), h;\n }, toWireType: (u, p) => {\n if (typeof p != \"string\")\n throw new w(`Cannot pass non-string to C++ string type ${i}`);\n var h = s(p), v = Z1(4 + h + t);\n return L[v >> 2] = h / t, o(p, v + 4, h + t), u !== null && u.push(Y, v), v;\n }, argPackAdvance: 8, readValueFromPointer: l1, Ea(u) {\n Y(u);\n } });\n }, s: (e, t, i, a, o, s) => {\n b1[e] = { name: F(t), Ua: T(i, a), Fa: T(o, s), Ya: [] };\n }, j: (e, t, i, a, o, s, l, u, p, h) => {\n b1[e].Ya.push({ bb: F(t), hb: i, fb: T(a, o), gb: s, nb: l, mb: T(u, p), ob: h });\n }, Z: (e, t) => {\n t = F(t), W(e, { ub: true, name: t, argPackAdvance: 0, fromWireType: () => {\n }, toWireType: () => {\n } });\n }, J: () => {\n throw 1 / 0;\n }, aa: (e, t, i, a) => (e = q1[e], t = Y1(t), e(null, t, i, a)), F: V1, $: (e, t, i) => {\n var a = S3(e, t), o = a.shift();\n e--;\n var s = Array(e);\n return t = `methodCaller<(${a.map((l) => l.name).join(\", \")}) => ${o.name}>`, P3(m1(t, (l, u, p, h) => {\n for (var v = 0, b = 0; b < e; ++b)\n s[b] = a[b].readValueFromPointer(h + v), v += a[b].argPackAdvance;\n return u = i === 1 ? I3(u, s) : u.apply(l, s), l = [], u = o.toWireType(l, u), l.length && (L[p >> 2] = P1(l)), u;\n }));\n }, ba: (e) => {\n 9 < e && (V[e + 1] += 1);\n }, _: (e) => {\n var t = Y1(e);\n O1(t), V1(e);\n }, o: (e, t) => (e = J1(e, \"_emval_take_value\"), e = e.readValueFromPointer(t), P1(e)), W: () => {\n w1(\"\");\n }, V: () => performance.now(), L: (e) => {\n var t = E.length;\n if (e >>>= 0, 2147483648 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var a = t * (1 + 0.2 / i);\n a = Math.min(a, e + 100663296);\n var o = Math;\n a = Math.max(e, a);\n e: {\n o = (o.min.call(o, 2147483648, a + (65536 - a % 65536) % 65536) - y1.buffer.byteLength + 65535) / 65536;\n try {\n y1.grow(o), v2();\n var s = 1;\n break e;\n } catch {\n }\n s = void 0;\n }\n if (s)\n return true;\n }\n return false;\n }, S: (e, t) => {\n var i = 0;\n return $2().forEach((a, o) => {\n var s = t + i;\n for (o = L[e + 4 * o >> 2] = s, s = 0; s < a.length; ++s)\n q[o++] = a.charCodeAt(s);\n q[o] = 0, i += a.length + 1;\n }), 0;\n }, T: (e, t) => {\n var i = $2();\n L[e >> 2] = i.length;\n var a = 0;\n return i.forEach((o) => a += o.length + 1), L[t >> 2] = a, 0;\n }, t: () => 52, z: () => 52, H: function() {\n return 70;\n }, Q: (e, t, i, a) => {\n for (var o = 0, s = 0; s < i; s++) {\n var l = L[t >> 2], u = L[t + 4 >> 2];\n t += 8;\n for (var p = 0; p < u; p++) {\n var h = E[l + p], v = F3[e];\n h === 0 || h === 10 ? ((e === 1 ? t1 : n1)(X(v, 0)), v.length = 0) : v.push(h);\n }\n o += u;\n }\n return L[a >> 2] = o, 0;\n }, U: (e, t) => (z2(E.subarray(e, e + t)), 0), i: z3, d: $3, e: O3, p: W3, y: j3, b: D3, a: R3, h: B3, n: U3, G: H3, K: (e, t, i, a) => A3(e, t, i, a) }, P = function() {\n function e(i) {\n return P = i.exports, y1 = P.da, v2(), O = P.ha, m2.unshift(P.ea), K--, r.monitorRunDependencies?.(K), K == 0 && (u1 && (i = u1, u1 = null, i())), P;\n }\n var t = { a: k3 };\n if (K++, r.monitorRunDependencies?.(K), r.instantiateWasm)\n try {\n return r.instantiateWasm(t, e);\n } catch (i) {\n n1(`Module.instantiateWasm callback failed with error: ${i}`), y(i);\n }\n return i3(t, function(i) {\n e(i.instance);\n }).catch(y), {};\n }(), Z1 = (e) => (Z1 = P.fa)(e), j2 = (e) => (j2 = P.ga)(e), Y = (e) => (Y = P.ia)(e), U = (e, t) => (U = P.ja)(e, t), B = (e) => (B = P.ka)(e), j = () => (j = P.la)();\n r.dynCall_iijj = (e, t, i, a, o, s) => (r.dynCall_iijj = P.na)(e, t, i, a, o, s), r.dynCall_vijj = (e, t, i, a, o, s) => (r.dynCall_vijj = P.oa)(e, t, i, a, o, s), r.dynCall_jiii = (e, t, i, a) => (r.dynCall_jiii = P.pa)(e, t, i, a), r.dynCall_jii = (e, t, i) => (r.dynCall_jii = P.qa)(e, t, i);\n var H2 = r.dynCall_viiij = (e, t, i, a, o, s) => (H2 = r.dynCall_viiij = P.ra)(e, t, i, a, o, s);\n r.dynCall_jiji = (e, t, i, a, o) => (r.dynCall_jiji = P.sa)(e, t, i, a, o), r.dynCall_viijii = (e, t, i, a, o, s, l) => (r.dynCall_viijii = P.ta)(e, t, i, a, o, s, l), r.dynCall_iiiiij = (e, t, i, a, o, s, l) => (r.dynCall_iiiiij = P.ua)(e, t, i, a, o, s, l), r.dynCall_iiiiijj = (e, t, i, a, o, s, l, u, p) => (r.dynCall_iiiiijj = P.va)(e, t, i, a, o, s, l, u, p), r.dynCall_iiiiiijj = (e, t, i, a, o, s, l, u, p, h) => (r.dynCall_iiiiiijj = P.wa)(e, t, i, a, o, s, l, u, p, h);\n function D3(e, t) {\n var i = j();\n try {\n O.get(e)(t);\n } catch (a) {\n if (B(i), a !== a + 0)\n throw a;\n U(1, 0);\n }\n }\n function R3(e, t, i) {\n var a = j();\n try {\n O.get(e)(t, i);\n } catch (o) {\n if (B(a), o !== o + 0)\n throw o;\n U(1, 0);\n }\n }\n function O3(e, t, i, a) {\n var o = j();\n try {\n return O.get(e)(t, i, a);\n } catch (s) {\n if (B(o), s !== s + 0)\n throw s;\n U(1, 0);\n }\n }\n function $3(e, t, i) {\n var a = j();\n try {\n return O.get(e)(t, i);\n } catch (o) {\n if (B(a), o !== o + 0)\n throw o;\n U(1, 0);\n }\n }\n function z3(e, t) {\n var i = j();\n try {\n return O.get(e)(t);\n } catch (a) {\n if (B(i), a !== a + 0)\n throw a;\n U(1, 0);\n }\n }\n function W3(e, t, i, a, o, s) {\n var l = j();\n try {\n return O.get(e)(t, i, a, o, s);\n } catch (u) {\n if (B(l), u !== u + 0)\n throw u;\n U(1, 0);\n }\n }\n function U3(e, t, i, a, o) {\n var s = j();\n try {\n O.get(e)(t, i, a, o);\n } catch (l) {\n if (B(s), l !== l + 0)\n throw l;\n U(1, 0);\n }\n }\n function B3(e, t, i, a) {\n var o = j();\n try {\n O.get(e)(t, i, a);\n } catch (s) {\n if (B(o), s !== s + 0)\n throw s;\n U(1, 0);\n }\n }\n function j3(e) {\n var t = j();\n try {\n O.get(e)();\n } catch (i) {\n if (B(t), i !== i + 0)\n throw i;\n U(1, 0);\n }\n }\n function H3(e, t, i, a, o, s) {\n var l = j();\n try {\n H2(e, t, i, a, o, s);\n } catch (u) {\n if (B(l), u !== u + 0)\n throw u;\n U(1, 0);\n }\n }\n var F1;\n u1 = function e() {\n F1 || N22(), F1 || (u1 = e);\n };\n function N22() {\n function e() {\n if (!F1 && (F1 = true, r.calledRun = true, !c2)) {\n if (R1(m2), c(r), r.onRuntimeInitialized && r.onRuntimeInitialized(), r.postRun)\n for (typeof r.postRun == \"function\" && (r.postRun = [r.postRun]); r.postRun.length; ) {\n var t = r.postRun.shift();\n _2.unshift(t);\n }\n R1(_2);\n }\n }\n if (!(0 < K)) {\n if (r.preRun)\n for (typeof r.preRun == \"function\" && (r.preRun = [r.preRun]); r.preRun.length; )\n n3();\n R1(f2), 0 < K || (r.setStatus ? (r.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n r.setStatus(\"\");\n }, 1), e();\n }, 1)) : e());\n }\n }\n if (r.preInit)\n for (typeof r.preInit == \"function\" && (r.preInit = [r.preInit]); 0 < r.preInit.length; )\n r.preInit.pop()();\n return N22(), R;\n };\n})();\nvar G2 = Y3;\nvar Q = class {\n constructor() {\n throw new Error(\"RendererLoader is a static class and cannot be instantiated.\");\n }\n static async _tryLoad(n) {\n return await G2({ locateFile: () => n });\n }\n static async _loadWithBackup() {\n return this._ModulePromise || (this._ModulePromise = this._tryLoad(this._wasmURL).catch(async (n) => {\n let r = `https://unpkg.com/${r2}@${n2}/dist/dotlottie-player.wasm`;\n console.warn(`Primary WASM load failed from ${this._wasmURL}. Error: ${n.message}`), console.warn(`Attempting to load WASM from backup URL: ${r}`);\n try {\n return await this._tryLoad(r);\n } catch (c) {\n throw console.error(`Primary WASM URL failed: ${n.message}`), console.error(`Backup WASM URL failed: ${c.message}`), new Error(\"WASM loading failed from all sources.\");\n }\n })), this._ModulePromise;\n }\n static async load() {\n return this._loadWithBackup();\n }\n static setWasmUrl(n) {\n this._wasmURL = n, this._ModulePromise = null;\n }\n};\nm(Q, \"_ModulePromise\", null), m(Q, \"_wasmURL\", `https://cdn.jsdelivr.net/npm/${r2}@${n2}/dist/dotlottie-player.wasm`);\nvar o1 = class {\n constructor() {\n m(this, \"_eventListeners\", /* @__PURE__ */ new Map());\n }\n addEventListener(n, r) {\n let c = this._eventListeners.get(n);\n c || (c = /* @__PURE__ */ new Set(), this._eventListeners.set(n, c)), c.add(r);\n }\n removeEventListener(n, r) {\n let c = this._eventListeners.get(n);\n c && (r ? (c.delete(r), c.size === 0 && this._eventListeners.delete(n)) : this._eventListeners.delete(n));\n }\n dispatch(n) {\n this._eventListeners.get(n.type)?.forEach((c) => c(n));\n }\n removeAllEventListeners() {\n this._eventListeners.clear();\n }\n};\nvar A = class {\n static _initializeObserver() {\n if (this._observer)\n return;\n let n = (r) => {\n r.forEach((c) => {\n let y = this._observedCanvases.get(c.target);\n y && (c.isIntersecting ? y.unfreeze() : y.freeze());\n });\n };\n this._observer = new IntersectionObserver(n, { threshold: 0 });\n }\n static observe(n, r) {\n this._initializeObserver(), !this._observedCanvases.has(n) && (this._observedCanvases.set(n, r), this._observer?.observe(n));\n }\n static unobserve(n) {\n this._observer?.unobserve(n), this._observedCanvases.delete(n), this._observedCanvases.size === 0 && (this._observer?.disconnect(), this._observer = null);\n }\n};\nm(A, \"_observer\", null), m(A, \"_observedCanvases\", /* @__PURE__ */ new Map());\nvar k = class {\n static _initializeObserver() {\n if (this._observer)\n return;\n let n = (r) => {\n r.forEach((c) => {\n let y = this._observedCanvases.get(c.target);\n if (!y)\n return;\n let [R, H] = y;\n clearTimeout(H);\n let $ = setTimeout(() => {\n R.resize();\n }, 100);\n this._observedCanvases.set(c.target, [R, $]);\n });\n };\n this._observer = new ResizeObserver(n);\n }\n static observe(n, r) {\n this._initializeObserver(), !this._observedCanvases.has(n) && (this._observedCanvases.set(n, [r, 0]), this._observer?.observe(n));\n }\n static unobserve(n) {\n this._observer?.unobserve(n), this._observedCanvases.delete(n), this._observedCanvases.size === 0 && (this._observer?.disconnect(), this._observer = null);\n }\n};\nm(k, \"_observer\", null), m(k, \"_observedCanvases\", /* @__PURE__ */ new Map());\nfunction J3(f) {\n return /^#([\\da-f]{6}|[\\da-f]{8})$/iu.test(f);\n}\nfunction K2(f) {\n if (!J3(f))\n return 0;\n let n = f.replace(\"#\", \"\");\n return n = n.length === 6 ? `${n}ff` : n, parseInt(n, 16);\n}\nfunction i2(f) {\n if (f.byteLength < 4)\n return false;\n let n = new Uint8Array(f.slice(0, T1.byteLength));\n for (let r = 0; r < T1.length; r += 1)\n if (T1[r] !== n[r])\n return false;\n return true;\n}\nfunction q2(f) {\n return Y2.every((n) => Object.prototype.hasOwnProperty.call(f, n));\n}\nfunction a2(f) {\n if (typeof f == \"string\")\n try {\n return q2(JSON.parse(f));\n } catch {\n return false;\n }\n else\n return q2(f);\n}\nfunction e1() {\n return 1 + ((I ? window.devicePixelRatio : 1) - 1) * J2;\n}\nfunction A1(f) {\n let n = f.getBoundingClientRect();\n return n.top >= 0 && n.left >= 0 && n.bottom <= (window.innerHeight || document.documentElement.clientHeight) && n.right <= (window.innerWidth || document.documentElement.clientWidth);\n}\nvar o2 = (f, n) => f === \"reverse\" ? n.Mode.Reverse : f === \"bounce\" ? n.Mode.Bounce : f === \"reverse-bounce\" ? n.Mode.ReverseBounce : n.Mode.Forward;\nvar s2 = (f, n) => f === \"contain\" ? n.Fit.Contain : f === \"cover\" ? n.Fit.Cover : f === \"fill\" ? n.Fit.Fill : f === \"fit-height\" ? n.Fit.FitHeight : f === \"fit-width\" ? n.Fit.FitWidth : n.Fit.None;\nvar d2 = (f, n) => {\n let r = new n.VectorFloat();\n return r.push_back(f[0]), r.push_back(f[1]), r;\n};\nvar u2 = (f, n) => {\n let r = new n.VectorFloat();\n return f.length !== 2 || (r.push_back(f[0]), r.push_back(f[1])), r;\n};\nvar C = class C2 {\n constructor(n) {\n m(this, \"_canvas\");\n m(this, \"_context\", null);\n m(this, \"_eventManager\");\n m(this, \"_animationFrameId\", null);\n m(this, \"_frameManager\");\n m(this, \"_dotLottieCore\", null);\n m(this, \"_renderConfig\", {});\n m(this, \"_isFrozen\", false);\n m(this, \"_backgroundColor\", null);\n m(this, \"_pointerUpMethod\");\n m(this, \"_pointerDownMethod\");\n m(this, \"_pointerMoveMethod\");\n m(this, \"_pointerEnterMethod\");\n m(this, \"_pointerExitMethod\");\n m(this, \"_onCompleteMethod\");\n this._canvas = n.canvas, this._context = this._canvas.getContext(\"2d\"), this._eventManager = new o1(), this._frameManager = new x1(), this._renderConfig = { ...n.renderConfig, devicePixelRatio: n.renderConfig?.devicePixelRatio || e1(), freezeOnOffscreen: n.renderConfig?.freezeOnOffscreen ?? true }, Q.load().then((r) => {\n C2._wasmModule = r, this._dotLottieCore = new r.DotLottiePlayer({ autoplay: n.autoplay ?? false, backgroundColor: 0, loopAnimation: n.loop ?? false, mode: o2(n.mode ?? \"forward\", r), segment: u2(n.segment ?? [], r), speed: n.speed ?? 1, useFrameInterpolation: n.useFrameInterpolation ?? true, marker: n.marker ?? \"\", layout: n.layout ? { align: d2(n.layout.align, r), fit: s2(n.layout.fit, r) } : r.createDefaultLayout() }), this._eventManager.dispatch({ type: \"ready\" }), n.data ? this._loadFromData(n.data) : n.src && this._loadFromSrc(n.src), n.backgroundColor && this.setBackgroundColor(n.backgroundColor);\n }).catch((r) => {\n this._eventManager.dispatch({ type: \"loadError\", error: new Error(`Failed to load wasm module: ${r}`) });\n }), this._pointerUpMethod = this._onPointerUp.bind(this), this._pointerDownMethod = this._onPointerDown.bind(this), this._pointerMoveMethod = this._onPointerMove.bind(this), this._pointerEnterMethod = this._onPointerEnter.bind(this), this._pointerExitMethod = this._onPointerLeave.bind(this), this._onCompleteMethod = this._onComplete.bind(this);\n }\n _dispatchError(n) {\n console.error(n), this._eventManager.dispatch({ type: \"loadError\", error: new Error(n) });\n }\n async _fetchData(n) {\n let r = await fetch(n);\n if (!r.ok)\n throw new Error(`Failed to fetch animation data from URL: ${n}. ${r.status}: ${r.statusText}`);\n let c = await r.arrayBuffer();\n return i2(c) ? c : new TextDecoder().decode(c);\n }\n _loadFromData(n) {\n if (this._dotLottieCore === null)\n return;\n let r = this._canvas.width, c = this._canvas.height, y = false;\n if (typeof n == \"string\") {\n if (!a2(n)) {\n this._dispatchError(\"Invalid Lottie JSON string: The provided string does not conform to the Lottie JSON format.\");\n return;\n }\n y = this._dotLottieCore.loadAnimationData(n, r, c);\n } else if (n instanceof ArrayBuffer) {\n if (!i2(n)) {\n this._dispatchError(\"Invalid dotLottie ArrayBuffer: The provided ArrayBuffer does not conform to the dotLottie format.\");\n return;\n }\n y = this._dotLottieCore.loadDotLottieData(n, r, c);\n } else if (typeof n == \"object\") {\n if (!a2(n)) {\n this._dispatchError(\"Invalid Lottie JSON object: The provided object does not conform to the Lottie JSON format.\");\n return;\n }\n y = this._dotLottieCore.loadAnimationData(JSON.stringify(n), r, c);\n } else {\n this._dispatchError(`Unsupported data type for animation data. Expected: \n - string (Lottie JSON),\n - ArrayBuffer (dotLottie),\n - object (Lottie JSON). \n Received: ${typeof n}`);\n return;\n }\n y ? (this._eventManager.dispatch({ type: \"load\" }), I && this.resize(), this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render(), this._dotLottieCore.config().autoplay && (this._dotLottieCore.play(), this._dotLottieCore.isPlaying() ? (this._eventManager.dispatch({ type: \"play\" }), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this))) : console.error(\"something went wrong, the animation was suppose to autoplay\")), I && this._canvas instanceof HTMLCanvasElement && (this._renderConfig.freezeOnOffscreen && A.observe(this._canvas, this), this._renderConfig.autoResize && k.observe(this._canvas, this))) : this._dispatchError(\"Failed to load animation data\");\n }\n _loadFromSrc(n) {\n this._fetchData(n).then((r) => this._loadFromData(r)).catch((r) => this._dispatchError(`Failed to load animation data from URL: ${n}. ${r}`));\n }\n get activeAnimationId() {\n return this._dotLottieCore?.activeAnimationId();\n }\n get activeThemeId() {\n return this._dotLottieCore?.activeThemeId();\n }\n get layout() {\n let n = this._dotLottieCore?.config().layout;\n if (n)\n return { align: [n.align.get(0), n.align.get(1)], fit: (() => {\n switch (n.fit) {\n case C2._wasmModule?.Fit.Contain:\n return \"contain\";\n case C2._wasmModule?.Fit.Cover:\n return \"cover\";\n case C2._wasmModule?.Fit.Fill:\n return \"fill\";\n case C2._wasmModule?.Fit.FitHeight:\n return \"fit-height\";\n case C2._wasmModule?.Fit.FitWidth:\n return \"fit-width\";\n case C2._wasmModule?.Fit.None:\n return \"none\";\n default:\n return \"contain\";\n }\n })() };\n }\n get marker() {\n return this._dotLottieCore?.config().marker;\n }\n get manifest() {\n try {\n let n = this._dotLottieCore?.manifestString();\n if (this._dotLottieCore === null || !n)\n return null;\n let r = JSON.parse(n);\n return Object.keys(r).length === 0 ? null : r;\n } catch {\n return null;\n }\n }\n get renderConfig() {\n return this._renderConfig;\n }\n get segment() {\n let n = this._dotLottieCore?.config().segment;\n if (n && n.size() === 2)\n return [n.get(0), n.get(1)];\n }\n get loop() {\n return this._dotLottieCore?.config().loopAnimation ?? false;\n }\n get mode() {\n let n = this._dotLottieCore?.config().mode;\n return n === C2._wasmModule?.Mode.Reverse ? \"reverse\" : n === C2._wasmModule?.Mode.Bounce ? \"bounce\" : n === C2._wasmModule?.Mode.ReverseBounce ? \"reverse-bounce\" : \"forward\";\n }\n get isFrozen() {\n return this._isFrozen;\n }\n get backgroundColor() {\n return this._backgroundColor ?? \"\";\n }\n get autoplay() {\n return this._dotLottieCore?.config().autoplay ?? false;\n }\n get useFrameInterpolation() {\n return this._dotLottieCore?.config().useFrameInterpolation ?? false;\n }\n get speed() {\n return this._dotLottieCore?.config().speed ?? 0;\n }\n get isReady() {\n return this._dotLottieCore !== null;\n }\n get isLoaded() {\n return this._dotLottieCore?.isLoaded() ?? false;\n }\n get isPlaying() {\n return this._dotLottieCore?.isPlaying() ?? false;\n }\n get isPaused() {\n return this._dotLottieCore?.isPaused() ?? false;\n }\n get isStopped() {\n return this._dotLottieCore?.isStopped() ?? false;\n }\n get currentFrame() {\n return this._dotLottieCore?.currentFrame() ?? 0;\n }\n get loopCount() {\n return this._dotLottieCore?.loopCount() ?? 0;\n }\n get totalFrames() {\n return this._dotLottieCore?.totalFrames() ?? 0;\n }\n get duration() {\n return this._dotLottieCore?.duration() ?? 0;\n }\n get segmentDuration() {\n return this._dotLottieCore?.segmentDuration() ?? 0;\n }\n get canvas() {\n return this._canvas;\n }\n load(n) {\n this._dotLottieCore === null || C2._wasmModule === null || (this._dotLottieCore.setConfig({ autoplay: n.autoplay ?? false, backgroundColor: 0, loopAnimation: n.loop ?? false, mode: o2(n.mode ?? \"forward\", C2._wasmModule), segment: u2(n.segment ?? [], C2._wasmModule), speed: n.speed ?? 1, useFrameInterpolation: n.useFrameInterpolation ?? true, marker: n.marker ?? \"\", layout: n.layout ? { align: d2(n.layout.align, C2._wasmModule), fit: s2(n.layout.fit, C2._wasmModule) } : C2._wasmModule.createDefaultLayout() }), n.data ? this._loadFromData(n.data) : n.src && this._loadFromSrc(n.src), this.setBackgroundColor(n.backgroundColor ?? \"\"));\n }\n _render() {\n if (this._dotLottieCore === null || this._context === null)\n return false;\n if (this._dotLottieCore.render()) {\n let r = this._dotLottieCore.buffer(), c = new Uint8ClampedArray(r, 0, this._canvas.width * this._canvas.height * 4), y = null;\n return typeof ImageData > \"u\" ? (y = this._context.createImageData(this._canvas.width, this._canvas.height), y.data.set(c)) : y = new ImageData(c, this._canvas.width, this._canvas.height), this._context.putImageData(y, 0, 0), this._eventManager.dispatch({ type: \"render\", currentFrame: this._dotLottieCore.currentFrame() }), true;\n }\n return false;\n }\n _draw() {\n if (this._dotLottieCore === null || this._context === null || !this._dotLottieCore.isPlaying())\n return;\n let n = this._dotLottieCore.requestFrame();\n this._dotLottieCore.setFrame(n) && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render() && this._dotLottieCore.isComplete() && (this._dotLottieCore.config().loopAnimation ? this._eventManager.dispatch({ type: \"loop\", loopCount: this._dotLottieCore.loopCount() }) : this._eventManager.dispatch({ type: \"complete\" }))), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this));\n }\n play() {\n if (this._dotLottieCore === null)\n return;\n (this._dotLottieCore.play() || this._dotLottieCore.isPlaying()) && (this._isFrozen = false, this._eventManager.dispatch({ type: \"play\" }), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this))), I && this._canvas instanceof HTMLCanvasElement && this._renderConfig.freezeOnOffscreen && !A1(this._canvas) && this.freeze();\n }\n pause() {\n if (this._dotLottieCore === null)\n return;\n (this._dotLottieCore.pause() || this._dotLottieCore.isPaused()) && this._eventManager.dispatch({ type: \"pause\" });\n }\n stop() {\n if (this._dotLottieCore === null)\n return;\n this._dotLottieCore.stop() && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render(), this._eventManager.dispatch({ type: \"stop\" }));\n }\n setFrame(n) {\n if (this._dotLottieCore === null || n < 0 || n > this._dotLottieCore.totalFrames())\n return;\n this._dotLottieCore.seek(n) && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render());\n }\n setSpeed(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), speed: n });\n }\n setBackgroundColor(n) {\n this._dotLottieCore !== null && (I && this._canvas instanceof HTMLCanvasElement ? this._canvas.style.backgroundColor = n : this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), backgroundColor: K2(n) }), this._backgroundColor = n);\n }\n setLoop(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), loopAnimation: n });\n }\n setUseFrameInterpolation(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), useFrameInterpolation: n });\n }\n addEventListener(n, r) {\n this._eventManager.addEventListener(n, r);\n }\n removeEventListener(n, r) {\n this._eventManager.removeEventListener(n, r);\n }\n destroy() {\n I && this._canvas instanceof HTMLCanvasElement && (A.unobserve(this._canvas), k.unobserve(this._canvas)), this._dotLottieCore?.delete(), this._dotLottieCore = null, this._context = null, this._eventManager.dispatch({ type: \"destroy\" }), this._eventManager.removeAllEventListeners(), this._cleanupStateMachineListeners();\n }\n freeze() {\n this._animationFrameId !== null && (this._frameManager.cancelAnimationFrame(this._animationFrameId), this._animationFrameId = null, this._isFrozen = true, this._eventManager.dispatch({ type: \"freeze\" }));\n }\n unfreeze() {\n this._animationFrameId === null && (this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this)), this._isFrozen = false, this._eventManager.dispatch({ type: \"unfreeze\" }));\n }\n resize() {\n if (!this._dotLottieCore || !this.isLoaded)\n return;\n if (I && this._canvas instanceof HTMLCanvasElement) {\n let r = this._renderConfig.devicePixelRatio || window.devicePixelRatio || 1, { height: c, width: y } = this._canvas.getBoundingClientRect();\n this._canvas.width = y * r, this._canvas.height = c * r;\n }\n this._dotLottieCore.resize(this._canvas.width, this._canvas.height) && this._render();\n }\n setSegment(n, r) {\n this._dotLottieCore === null || C2._wasmModule === null || this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), segment: u2([n, r], C2._wasmModule) });\n }\n setMode(n) {\n this._dotLottieCore === null || C2._wasmModule === null || this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), mode: o2(n, C2._wasmModule) });\n }\n setRenderConfig(n) {\n let { devicePixelRatio: r, freezeOnOffscreen: c, ...y } = n;\n this._renderConfig = { ...this._renderConfig, ...y, devicePixelRatio: r || e1(), freezeOnOffscreen: c ?? true }, I && this._canvas instanceof HTMLCanvasElement && (this._renderConfig.autoResize ? k.observe(this._canvas, this) : k.unobserve(this._canvas), this._renderConfig.freezeOnOffscreen ? A.observe(this._canvas, this) : (A.unobserve(this._canvas), this._isFrozen && this.unfreeze()));\n }\n loadAnimation(n) {\n if (this._dotLottieCore === null || this._dotLottieCore.activeAnimationId() === n)\n return;\n this._dotLottieCore.loadAnimation(n, this._canvas.width, this._canvas.height) ? (this._eventManager.dispatch({ type: \"load\" }), this.resize()) : this._eventManager.dispatch({ type: \"loadError\", error: new Error(`Failed to animation :${n}`) });\n }\n setMarker(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), marker: n });\n }\n markers() {\n let n = this._dotLottieCore?.markers();\n if (n) {\n let r = [];\n for (let c = 0; c < n.size(); c += 1) {\n let y = n.get(c);\n r.push({ name: y.name, time: y.time, duration: y.duration });\n }\n return r;\n }\n return [];\n }\n loadTheme(n) {\n if (this._dotLottieCore === null)\n return false;\n let r = this._dotLottieCore.loadTheme(n);\n return this._render(), r;\n }\n loadThemeData(n) {\n if (this._dotLottieCore === null)\n return false;\n let r = this._dotLottieCore.loadThemeData(n);\n return this._render(), r;\n }\n setLayout(n) {\n this._dotLottieCore === null || C2._wasmModule === null || this._dotLottieCore.setConfig({ ...this._dotLottieCore.config(), layout: { align: d2(n.align, C2._wasmModule), fit: s2(n.fit, C2._wasmModule) } });\n }\n setViewport(n, r, c, y) {\n return this._dotLottieCore === null ? false : this._dotLottieCore.setViewport(n, r, c, y);\n }\n static setWasmUrl(n) {\n Q.setWasmUrl(n);\n }\n loadStateMachine(n) {\n return this._dotLottieCore?.loadStateMachine(n) ?? false;\n }\n startStateMachine() {\n let n = this._dotLottieCore?.startStateMachine() ?? false;\n return n && this._setupStateMachineListeners(), n;\n }\n stopStateMachine() {\n let n = this._dotLottieCore?.stopStateMachine() ?? false;\n return n && this._cleanupStateMachineListeners(), n;\n }\n _getPointerPosition(n) {\n let r = this._canvas.getBoundingClientRect(), c = this._canvas.width / r.width, y = this._canvas.height / r.height, R = this._renderConfig.devicePixelRatio || window.devicePixelRatio || 1, H = (n.clientX - r.left) * c / R, $ = (n.clientY - r.top) * y / R;\n return { x: H, y: $ };\n }\n _onPointerUp(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerUp: ${r} ${c}`);\n }\n _onPointerDown(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerDown: ${r} ${c}`);\n }\n _onPointerMove(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerMove: ${r} ${c}`);\n }\n _onPointerEnter(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerEnter: ${r} ${c}`);\n }\n _onPointerLeave(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerExit: ${r} ${c}`);\n }\n _onComplete() {\n this.postStateMachineEvent(\"OnComplete\");\n }\n postStateMachineEvent(n) {\n let r = this._dotLottieCore?.postEventPayload(n) ?? 1;\n return r === 2 ? this.play() : r === 3 ? this.pause() : r === 4 && this._render(), r;\n }\n getStateMachineListeners() {\n if (!this._dotLottieCore)\n return [];\n let n = this._dotLottieCore.stateMachineFrameworkSetup(), r = [];\n for (let c = 0; c < n.size(); c += 1)\n r.push(n.get(c));\n return r;\n }\n _setupStateMachineListeners() {\n if (I && this._canvas instanceof HTMLCanvasElement && this._dotLottieCore !== null && this.isLoaded) {\n let n = this.getStateMachineListeners();\n n.includes(\"PointerUp\") && this._canvas.addEventListener(\"pointerup\", this._pointerUpMethod), n.includes(\"PointerDown\") && this._canvas.addEventListener(\"pointerdown\", this._pointerDownMethod), n.includes(\"PointerMove\") && this._canvas.addEventListener(\"pointermove\", this._pointerMoveMethod), n.includes(\"PointerEnter\") && this._canvas.addEventListener(\"pointerenter\", this._pointerEnterMethod), n.includes(\"PointerExit\") && this._canvas.addEventListener(\"pointerleave\", this._pointerExitMethod), n.includes(\"Complete\") && this.addEventListener(\"complete\", this._onCompleteMethod);\n }\n }\n _cleanupStateMachineListeners() {\n I && this._canvas instanceof HTMLCanvasElement && (this._canvas.removeEventListener(\"pointerup\", this._pointerUpMethod), this._canvas.removeEventListener(\"pointerdown\", this._pointerDownMethod), this._canvas.removeEventListener(\"pointermove\", this._pointerMoveMethod), this._canvas.removeEventListener(\"pointerenter\", this._pointerEnterMethod), this._canvas.removeEventListener(\"pointerleave\", this._pointerExitMethod), this.removeEventListener(\"complete\", this._onCompleteMethod));\n }\n loadStateMachineData(n) {\n return this._dotLottieCore?.loadStateMachineData(n) ?? false;\n }\n animationSize() {\n let n = this._dotLottieCore?.animationSize().get(0) ?? 0, r = this._dotLottieCore?.animationSize().get(1) ?? 0;\n return { width: n, height: r };\n }\n setStateMachineBooleanContext(n, r) {\n return this._dotLottieCore?.setStateMachineBooleanContext(n, r) ?? false;\n }\n setStateMachineNumericContext(n, r) {\n return this._dotLottieCore?.setStateMachineNumericContext(n, r) ?? false;\n }\n setStateMachineStringContext(n, r) {\n return this._dotLottieCore?.setStateMachineStringContext(n, r) ?? false;\n }\n};\nm(C, \"_wasmModule\", null);\nvar X2 = C;\nvar l2 = class {\n constructor() {\n if (typeof Worker > \"u\")\n throw new Error(\"Worker is not supported in this environment.\");\n let n = new Blob([new Uint8Array([34, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 34, 59, 10, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 118, 97, 114, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 100, 101, 102, 105, 110, 101, 80, 114, 111, 112, 101, 114, 116, 121, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 32, 61, 32, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 107, 101, 121, 32, 105, 110, 32, 111, 98, 106, 32, 63, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 123, 32, 101, 110, 117, 109, 101, 114, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 99, 111, 110, 102, 105, 103, 117, 114, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 119, 114, 105, 116, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 118, 97, 108, 117, 101, 32, 125, 41, 32, 58, 32, 111, 98, 106, 91, 107, 101, 121, 93, 32, 61, 32, 118, 97, 108, 117, 101, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 32, 61, 32, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 40, 111, 98, 106, 44, 32, 116, 121, 112, 101, 111, 102, 32, 107, 101, 121, 32, 33, 61, 61, 32, 34, 115, 121, 109, 98, 111, 108, 34, 32, 63, 32, 107, 101, 121, 32, 43, 32, 34, 34, 32, 58, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 97, 110, 105, 109, 97, 116, 105, 111, 110, 45, 102, 114, 97, 109, 101, 45, 109, 97, 110, 97, 103, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 87, 101, 98, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 78, 111, 100, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 34, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 62, 61, 32, 78, 117, 109, 98, 101, 114, 46, 77, 65, 88, 95, 83, 65, 70, 69, 95, 73, 78, 84, 69, 71, 69, 82, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 32, 61, 32, 115, 101, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 108, 108, 98, 97, 99, 107, 40, 68, 97, 116, 101, 46, 110, 111, 119, 40, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 95, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 101, 97, 114, 73, 109, 109, 101, 100, 105, 97, 116, 101, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 115, 116, 114, 97, 116, 101, 103, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 63, 32, 110, 101, 119, 32, 87, 101, 98, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 40, 41, 32, 58, 32, 110, 101, 119, 32, 78, 111, 100, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 46, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 110, 115, 116, 97, 110, 116, 115, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 119, 105, 110, 100, 111, 119, 32, 33, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 38, 38, 32, 116, 121, 112, 101, 111, 102, 32, 119, 105, 110, 100, 111, 119, 46, 100, 111, 99, 117, 109, 101, 110, 116, 32, 33, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 59, 10, 32, 32, 118, 97, 114, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 91, 56, 48, 44, 32, 55, 53, 44, 32, 51, 44, 32, 52, 93, 41, 59, 10, 32, 32, 118, 97, 114, 32, 76, 79, 84, 84, 73, 69, 95, 74, 83, 79, 78, 95, 77, 65, 78, 68, 65, 84, 79, 82, 89, 95, 70, 73, 69, 76, 68, 83, 32, 61, 32, 91, 34, 118, 34, 44, 32, 34, 105, 112, 34, 44, 32, 34, 111, 112, 34, 44, 32, 34, 108, 97, 121, 101, 114, 115, 34, 44, 32, 34, 102, 114, 34, 44, 32, 34, 119, 34, 44, 32, 34, 104, 34, 93, 59, 10, 32, 32, 118, 97, 114, 32, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 32, 61, 32, 34, 48, 46, 51, 51, 46, 48, 34, 59, 10, 32, 32, 118, 97, 114, 32, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 32, 61, 32, 34, 64, 108, 111, 116, 116, 105, 101, 102, 105, 108, 101, 115, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 119, 101, 98, 34, 59, 10, 32, 32, 118, 97, 114, 32, 68, 69, 70, 65, 85, 76, 84, 95, 68, 80, 82, 95, 70, 65, 67, 84, 79, 82, 32, 61, 32, 48, 46, 55, 53, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 114, 101, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 106, 115, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 77, 111, 100, 117, 108, 101, 32, 61, 32, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 118, 97, 114, 32, 95, 115, 99, 114, 105, 112, 116, 68, 105, 114, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 33, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 63, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 63, 46, 115, 114, 99, 32, 58, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 109, 111, 100, 117, 108, 101, 65, 114, 103, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 107, 32, 61, 32, 109, 111, 100, 117, 108, 101, 65, 114, 103, 44, 32, 97, 97, 44, 32, 98, 97, 44, 32, 114, 101, 97, 100, 121, 80, 114, 111, 109, 105, 115, 101, 32, 61, 32, 110, 101, 119, 32, 80, 114, 111, 109, 105, 115, 101, 40, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 44, 32, 99, 97, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 123, 125, 44, 32, 107, 41, 44, 32, 100, 97, 32, 61, 32, 34, 46, 47, 116, 104, 105, 115, 46, 112, 114, 111, 103, 114, 97, 109, 34, 44, 32, 116, 32, 61, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 38, 38, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 32, 38, 38, 32, 40, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 115, 99, 114, 105, 112, 116, 68, 105, 114, 32, 38, 38, 32, 40, 116, 32, 61, 32, 95, 115, 99, 114, 105, 112, 116, 68, 105, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 98, 108, 111, 98, 58, 34, 41, 32, 63, 32, 116, 32, 61, 32, 34, 34, 32, 58, 32, 116, 32, 61, 32, 116, 46, 115, 117, 98, 115, 116, 114, 40, 48, 44, 32, 116, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 91, 63, 35, 93, 46, 42, 47, 44, 32, 34, 34, 41, 46, 108, 97, 115, 116, 73, 110, 100, 101, 120, 79, 102, 40, 34, 47, 34, 41, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 97, 32, 61, 32, 107, 46, 112, 114, 105, 110, 116, 32, 124, 124, 32, 99, 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 46, 98, 105, 110, 100, 40, 99, 111, 110, 115, 111, 108, 101, 41, 44, 32, 119, 32, 61, 32, 107, 46, 112, 114, 105, 110, 116, 69, 114, 114, 32, 124, 124, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 46, 98, 105, 110, 100, 40, 99, 111, 110, 115, 111, 108, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 107, 44, 32, 99, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 97, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 116, 104, 105, 115, 80, 114, 111, 103, 114, 97, 109, 32, 38, 38, 32, 40, 100, 97, 32, 61, 32, 107, 46, 116, 104, 105, 115, 80, 114, 111, 103, 114, 97, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 120, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 119, 97, 115, 109, 66, 105, 110, 97, 114, 121, 32, 38, 38, 32, 40, 120, 32, 61, 32, 107, 46, 119, 97, 115, 109, 66, 105, 110, 97, 114, 121, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 97, 44, 32, 104, 97, 32, 61, 32, 102, 97, 108, 115, 101, 44, 32, 121, 44, 32, 65, 44, 32, 66, 44, 32, 67, 44, 32, 69, 44, 32, 70, 44, 32, 106, 97, 44, 32, 107, 97, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 102, 97, 46, 98, 117, 102, 102, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 56, 32, 61, 32, 121, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 56, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 49, 54, 32, 61, 32, 66, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 49, 54, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 56, 32, 61, 32, 65, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 49, 54, 32, 61, 32, 67, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 49, 54, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 51, 50, 32, 61, 32, 69, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 51, 50, 32, 61, 32, 70, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 70, 51, 50, 32, 61, 32, 106, 97, 32, 61, 32, 110, 101, 119, 32, 70, 108, 111, 97, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 70, 54, 52, 32, 61, 32, 107, 97, 32, 61, 32, 110, 101, 119, 32, 70, 108, 111, 97, 116, 54, 52, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 97, 32, 61, 32, 91, 93, 44, 32, 110, 97, 32, 61, 32, 91, 93, 44, 32, 111, 97, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 107, 46, 112, 114, 101, 82, 117, 110, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 71, 32, 61, 32, 48, 44, 32, 113, 97, 32, 61, 32, 110, 117, 108, 108, 44, 32, 72, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 111, 110, 65, 98, 111, 114, 116, 63, 46, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 34, 65, 98, 111, 114, 116, 101, 100, 40, 34, 32, 43, 32, 97, 32, 43, 32, 34, 41, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 97, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 110, 101, 119, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 82, 117, 110, 116, 105, 109, 101, 69, 114, 114, 111, 114, 40, 97, 32, 43, 32, 34, 46, 32, 66, 117, 105, 108, 100, 32, 119, 105, 116, 104, 32, 45, 115, 65, 83, 83, 69, 82, 84, 73, 79, 78, 83, 32, 102, 111, 114, 32, 109, 111, 114, 101, 32, 105, 110, 102, 111, 46, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 115, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 97, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 100, 97, 116, 97, 58, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 111, 99, 116, 101, 116, 45, 115, 116, 114, 101, 97, 109, 59, 98, 97, 115, 101, 54, 52, 44, 34, 41, 44, 32, 73, 59, 10, 32, 32, 32, 32, 32, 32, 73, 32, 61, 32, 34, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 34, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 115, 97, 40, 73, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 116, 97, 32, 61, 32, 73, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 73, 32, 61, 32, 107, 46, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 32, 63, 32, 107, 46, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 40, 116, 97, 44, 32, 116, 41, 32, 58, 32, 116, 32, 43, 32, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 117, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 97, 32, 61, 61, 32, 73, 32, 38, 38, 32, 120, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 120, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 34, 98, 111, 116, 104, 32, 97, 115, 121, 110, 99, 32, 97, 110, 100, 32, 115, 121, 110, 99, 32, 102, 101, 116, 99, 104, 105, 110, 103, 32, 111, 102, 32, 116, 104, 101, 32, 119, 97, 115, 109, 32, 102, 97, 105, 108, 101, 100, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 118, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 120, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 102, 101, 116, 99, 104, 32, 63, 32, 80, 114, 111, 109, 105, 115, 101, 46, 114, 101, 115, 111, 108, 118, 101, 40, 41, 46, 116, 104, 101, 110, 40, 40, 41, 32, 61, 62, 32, 117, 97, 40, 97, 41, 41, 32, 58, 32, 102, 101, 116, 99, 104, 40, 97, 44, 32, 123, 32, 99, 114, 101, 100, 101, 110, 116, 105, 97, 108, 115, 58, 32, 34, 115, 97, 109, 101, 45, 111, 114, 105, 103, 105, 110, 34, 32, 125, 41, 46, 116, 104, 101, 110, 40, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 111, 107, 41, 32, 116, 104, 114, 111, 119, 32, 96, 102, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 119, 97, 115, 109, 32, 98, 105, 110, 97, 114, 121, 32, 102, 105, 108, 101, 32, 97, 116, 32, 39, 36, 123, 97, 125, 39, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 46, 97, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, 97, 116, 99, 104, 40, 40, 41, 32, 61, 62, 32, 117, 97, 40, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 119, 97, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 40, 97, 41, 46, 116, 104, 101, 110, 40, 40, 100, 41, 32, 61, 62, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 40, 100, 44, 32, 98, 41, 41, 46, 116, 104, 101, 110, 40, 99, 44, 32, 40, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 40, 96, 102, 97, 105, 108, 101, 100, 32, 116, 111, 32, 97, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 108, 121, 32, 112, 114, 101, 112, 97, 114, 101, 32, 119, 97, 115, 109, 58, 32, 36, 123, 100, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 97, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 120, 97, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 73, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 120, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 83, 116, 114, 101, 97, 109, 105, 110, 103, 32, 124, 124, 32, 115, 97, 40, 99, 41, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 102, 101, 116, 99, 104, 32, 63, 32, 119, 97, 40, 99, 44, 32, 97, 44, 32, 98, 41, 32, 58, 32, 102, 101, 116, 99, 104, 40, 99, 44, 32, 123, 32, 99, 114, 101, 100, 101, 110, 116, 105, 97, 108, 115, 58, 32, 34, 115, 97, 109, 101, 45, 111, 114, 105, 103, 105, 110, 34, 32, 125, 41, 46, 116, 104, 101, 110, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 100, 41, 32, 61, 62, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 83, 116, 114, 101, 97, 109, 105, 110, 103, 40, 100, 44, 32, 97, 41, 46, 116, 104, 101, 110, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 40, 96, 119, 97, 115, 109, 32, 115, 116, 114, 101, 97, 109, 105, 110, 103, 32, 99, 111, 109, 112, 105, 108, 101, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 40, 34, 102, 97, 108, 108, 105, 110, 103, 32, 98, 97, 99, 107, 32, 116, 111, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 119, 97, 40, 99, 44, 32, 97, 44, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 121, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 48, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 97, 46, 115, 104, 105, 102, 116, 40, 41, 40, 107, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 122, 97, 32, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 32, 63, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 34, 117, 116, 102, 56, 34, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 44, 32, 74, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 32, 43, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 99, 32, 61, 32, 98, 59, 32, 97, 91, 99, 93, 32, 38, 38, 32, 33, 40, 99, 32, 62, 61, 32, 100, 41, 59, 32, 41, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 54, 32, 60, 32, 99, 32, 45, 32, 98, 32, 38, 38, 32, 97, 46, 98, 117, 102, 102, 101, 114, 32, 38, 38, 32, 122, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 122, 97, 46, 100, 101, 99, 111, 100, 101, 40, 97, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 98, 44, 32, 99, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 100, 32, 61, 32, 34, 34, 59, 32, 98, 32, 60, 32, 99, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 97, 91, 98, 43, 43, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 38, 32, 49, 50, 56, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 57, 50, 32, 61, 61, 32, 40, 101, 32, 38, 32, 50, 50, 52, 41, 41, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 40, 101, 32, 38, 32, 51, 49, 41, 32, 60, 60, 32, 54, 32, 124, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 50, 50, 52, 32, 61, 61, 32, 40, 101, 32, 38, 32, 50, 52, 48, 41, 32, 63, 32, 40, 101, 32, 38, 32, 49, 53, 41, 32, 60, 60, 32, 49, 50, 32, 124, 32, 102, 32, 60, 60, 32, 54, 32, 124, 32, 108, 32, 58, 32, 40, 101, 32, 38, 32, 55, 41, 32, 60, 60, 32, 49, 56, 32, 124, 32, 102, 32, 60, 60, 32, 49, 50, 32, 124, 32, 108, 32, 60, 60, 32, 54, 32, 124, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 53, 53, 51, 54, 32, 62, 32, 101, 32, 63, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 32, 58, 32, 40, 101, 32, 45, 61, 32, 54, 53, 53, 51, 54, 44, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 53, 53, 50, 57, 54, 32, 124, 32, 101, 32, 62, 62, 32, 49, 48, 44, 32, 53, 54, 51, 50, 48, 32, 124, 32, 101, 32, 38, 32, 49, 48, 50, 51, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 99, 108, 97, 115, 115, 32, 65, 97, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 121, 97, 32, 61, 32, 97, 32, 45, 32, 50, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 66, 97, 32, 61, 32, 48, 44, 32, 67, 97, 32, 61, 32, 48, 44, 32, 68, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 48, 44, 32, 99, 32, 61, 32, 48, 59, 32, 99, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 50, 55, 32, 62, 61, 32, 100, 32, 63, 32, 98, 43, 43, 32, 58, 32, 50, 48, 52, 55, 32, 62, 61, 32, 100, 32, 63, 32, 98, 32, 43, 61, 32, 50, 32, 58, 32, 53, 53, 50, 57, 54, 32, 60, 61, 32, 100, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 100, 32, 63, 32, 40, 98, 32, 43, 61, 32, 52, 44, 32, 43, 43, 99, 41, 32, 58, 32, 98, 32, 43, 61, 32, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 69, 97, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 60, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 99, 32, 43, 32, 100, 32, 45, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 53, 53, 50, 57, 54, 32, 60, 61, 32, 102, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 43, 43, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 54, 53, 53, 51, 54, 32, 43, 32, 40, 40, 102, 32, 38, 32, 49, 48, 50, 51, 41, 32, 60, 60, 32, 49, 48, 41, 32, 124, 32, 108, 32, 38, 32, 49, 48, 50, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 50, 55, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 62, 61, 32, 100, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 48, 52, 55, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 43, 32, 49, 32, 62, 61, 32, 100, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 49, 57, 50, 32, 124, 32, 102, 32, 62, 62, 32, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 54, 53, 53, 51, 53, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 43, 32, 50, 32, 62, 61, 32, 100, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 50, 50, 52, 32, 124, 32, 102, 32, 62, 62, 32, 49, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 43, 32, 51, 32, 62, 61, 32, 100, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 50, 52, 48, 32, 124, 32, 102, 32, 62, 62, 32, 49, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 62, 62, 32, 49, 50, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 62, 62, 32, 54, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 91, 99, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 70, 97, 32, 61, 32, 123, 125, 44, 32, 71, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 97, 46, 112, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 112, 111, 112, 40, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 75, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 70, 91, 97, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 76, 32, 61, 32, 123, 125, 44, 32, 77, 32, 61, 32, 123, 125, 44, 32, 72, 97, 32, 61, 32, 123, 125, 44, 32, 73, 97, 44, 32, 80, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 99, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 46, 108, 101, 110, 103, 116, 104, 32, 33, 61, 61, 32, 97, 46, 108, 101, 110, 103, 116, 104, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 73, 97, 40, 34, 77, 105, 115, 109, 97, 116, 99, 104, 101, 100, 32, 116, 121, 112, 101, 32, 99, 111, 110, 118, 101, 114, 116, 101, 114, 32, 99, 111, 117, 110, 116, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 32, 61, 32, 48, 59, 32, 110, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 110, 41, 32, 79, 40, 97, 91, 110, 93, 44, 32, 104, 91, 110, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 102, 111, 114, 69, 97, 99, 104, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72, 97, 91, 104, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 65, 114, 114, 97, 121, 40, 98, 46, 108, 101, 110, 103, 116, 104, 41, 44, 32, 102, 32, 61, 32, 91, 93, 44, 32, 108, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 104, 44, 32, 110, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 77, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 104, 41, 32, 63, 32, 101, 91, 110, 93, 32, 61, 32, 77, 91, 104, 93, 32, 58, 32, 40, 102, 46, 112, 117, 115, 104, 40, 104, 41, 44, 32, 76, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 104, 41, 32, 124, 124, 32, 40, 76, 91, 104, 93, 32, 61, 32, 91, 93, 41, 44, 32, 76, 91, 104, 93, 46, 112, 117, 115, 104, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 91, 110, 93, 32, 61, 32, 77, 91, 104, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 43, 43, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 32, 61, 61, 61, 32, 102, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 100, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 102, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 100, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 74, 97, 44, 32, 81, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 34, 34, 59, 32, 65, 91, 97, 93, 59, 32, 41, 32, 98, 32, 43, 61, 32, 74, 97, 91, 65, 91, 97, 43, 43, 93, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 82, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 75, 97, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 46, 110, 97, 109, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 116, 121, 112, 101, 32, 34, 36, 123, 100, 125, 34, 32, 109, 117, 115, 116, 32, 104, 97, 118, 101, 32, 97, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 105, 110, 116, 101, 103, 101, 114, 32, 116, 121, 112, 101, 105, 100, 32, 112, 111, 105, 110, 116, 101, 114, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 77, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 46, 105, 98, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 116, 121, 112, 101, 32, 39, 36, 123, 100, 125, 39, 32, 116, 119, 105, 99, 101, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 77, 91, 97, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 32, 72, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 76, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 32, 38, 38, 32, 40, 98, 32, 61, 32, 76, 91, 97, 93, 44, 32, 100, 101, 108, 101, 116, 101, 32, 76, 91, 97, 93, 44, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 41, 32, 61, 62, 32, 101, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 79, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 34, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 34, 32, 105, 110, 32, 98, 41, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 34, 114, 101, 103, 105, 115, 116, 101, 114, 84, 121, 112, 101, 32, 114, 101, 103, 105, 115, 116, 101, 114, 101, 100, 73, 110, 115, 116, 97, 110, 99, 101, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 75, 97, 40, 97, 44, 32, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 76, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 97, 46, 109, 97, 46, 122, 97, 46, 120, 97, 46, 110, 97, 109, 101, 32, 43, 32, 34, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 100, 101, 108, 101, 116, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 77, 97, 32, 61, 32, 102, 97, 108, 115, 101, 44, 32, 79, 97, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 80, 97, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 61, 61, 61, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 46, 67, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 80, 97, 40, 97, 44, 32, 98, 44, 32, 99, 46, 67, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 32, 61, 61, 61, 32, 97, 32, 63, 32, 110, 117, 108, 108, 32, 58, 32, 99, 46, 97, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 81, 97, 32, 61, 32, 123, 125, 44, 32, 82, 97, 32, 61, 32, 91, 93, 44, 32, 83, 97, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 82, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 82, 97, 46, 112, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 109, 97, 46, 75, 97, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 84, 97, 44, 32, 85, 97, 32, 61, 32, 123, 125, 44, 32, 86, 97, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 98, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 112, 116, 114, 32, 115, 104, 111, 117, 108, 100, 32, 110, 111, 116, 32, 98, 101, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 97, 46, 67, 97, 59, 32, 41, 32, 98, 32, 61, 32, 97, 46, 78, 97, 40, 98, 41, 44, 32, 97, 32, 61, 32, 97, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 85, 97, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 88, 97, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 122, 97, 32, 124, 124, 32, 33, 98, 46, 121, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 73, 97, 40, 34, 109, 97, 107, 101, 67, 108, 97, 115, 115, 72, 97, 110, 100, 108, 101, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 112, 116, 114, 32, 97, 110, 100, 32, 112, 116, 114, 84, 121, 112, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 33, 98, 46, 68, 97, 32, 33, 61, 61, 32, 33, 33, 98, 46, 65, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 73, 97, 40, 34, 66, 111, 116, 104, 32, 115, 109, 97, 114, 116, 80, 116, 114, 84, 121, 112, 101, 32, 97, 110, 100, 32, 115, 109, 97, 114, 116, 80, 116, 114, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 99, 111, 117, 110, 116, 32, 61, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 49, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 87, 97, 40, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 97, 44, 32, 123, 32, 109, 97, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 98, 44, 32, 119, 114, 105, 116, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 32, 125, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 87, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 61, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 70, 105, 110, 97, 108, 105, 122, 97, 116, 105, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 41, 32, 114, 101, 116, 117, 114, 110, 32, 87, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 98, 44, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 77, 97, 32, 61, 32, 110, 101, 119, 32, 70, 105, 110, 97, 108, 105, 122, 97, 116, 105, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 40, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 98, 46, 109, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 98, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 98, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 38, 38, 32, 40, 98, 46, 65, 97, 32, 63, 32, 98, 46, 68, 97, 46, 70, 97, 40, 98, 46, 65, 97, 41, 32, 58, 32, 98, 46, 122, 97, 46, 120, 97, 46, 70, 97, 40, 98, 46, 121, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 87, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 98, 46, 109, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 65, 97, 32, 38, 38, 32, 77, 97, 46, 114, 101, 103, 105, 115, 116, 101, 114, 40, 98, 44, 32, 123, 32, 109, 97, 58, 32, 99, 32, 125, 44, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 79, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 77, 97, 46, 117, 110, 114, 101, 103, 105, 115, 116, 101, 114, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 87, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 89, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 90, 97, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 100, 101, 102, 105, 110, 101, 80, 114, 111, 112, 101, 114, 116, 121, 40, 98, 44, 32, 34, 110, 97, 109, 101, 34, 44, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 97, 32, 125, 41, 44, 32, 36, 97, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 91, 98, 93, 46, 66, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 91, 98, 93, 46, 66, 97, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 101, 46, 108, 101, 110, 103, 116, 104, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 36, 123, 99, 125, 39, 32, 99, 97, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 97, 110, 32, 105, 110, 118, 97, 108, 105, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 36, 123, 101, 46, 108, 101, 110, 103, 116, 104, 125, 41, 32, 45, 32, 101, 120, 112, 101, 99, 116, 115, 32, 111, 110, 101, 32, 111, 102, 32, 40, 36, 123, 97, 91, 98, 93, 46, 66, 97, 125, 41, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 91, 98, 93, 46, 66, 97, 91, 101, 46, 108, 101, 110, 103, 116, 104, 93, 46, 97, 112, 112, 108, 121, 40, 116, 104, 105, 115, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 46, 66, 97, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 46, 66, 97, 91, 100, 46, 79, 97, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 97, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 66, 97, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 66, 97, 91, 99, 93, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 112, 117, 98, 108, 105, 99, 32, 110, 97, 109, 101, 32, 39, 36, 123, 97, 125, 39, 32, 116, 119, 105, 99, 101, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 36, 97, 40, 107, 44, 32, 97, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 99, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 111, 118, 101, 114, 108, 111, 97, 100, 115, 32, 111, 102, 32, 97, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 36, 123, 99, 125, 41, 33, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 91, 97, 93, 46, 66, 97, 91, 99, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 107, 91, 97, 93, 32, 61, 32, 98, 44, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 99, 32, 38, 38, 32, 40, 107, 91, 97, 93, 46, 118, 98, 32, 61, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 98, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 34, 95, 117, 110, 107, 110, 111, 119, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 91, 94, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 47, 103, 44, 32, 34, 36, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 52, 56, 32, 60, 61, 32, 98, 32, 38, 38, 32, 53, 55, 32, 62, 61, 32, 98, 32, 63, 32, 96, 95, 36, 123, 97, 125, 96, 32, 58, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 76, 97, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 70, 97, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 67, 97, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 99, 98, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 78, 97, 32, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 97, 98, 32, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 107, 98, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 98, 32, 33, 61, 61, 32, 99, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 78, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 117, 108, 108, 32, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 36, 123, 99, 46, 110, 97, 109, 101, 125, 44, 32, 103, 111, 116, 32, 97, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 36, 123, 98, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 98, 46, 78, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 98, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 109, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 102, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 109, 97, 46, 121, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 98, 40, 98, 46, 109, 97, 46, 121, 97, 44, 32, 98, 46, 109, 97, 46, 122, 97, 46, 120, 97, 44, 32, 116, 104, 105, 115, 46, 120, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 81, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 85, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 46, 70, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 32, 124, 124, 32, 33, 98, 46, 109, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 102, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 109, 97, 46, 121, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 80, 97, 32, 38, 38, 32, 98, 46, 109, 97, 46, 122, 97, 46, 80, 97, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 109, 97, 46, 68, 97, 32, 63, 32, 98, 46, 109, 97, 46, 68, 97, 46, 110, 97, 109, 101, 32, 58, 32, 98, 46, 109, 97, 46, 122, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 100, 98, 40, 98, 46, 109, 97, 46, 121, 97, 44, 32, 98, 46, 109, 97, 46, 122, 97, 46, 120, 97, 44, 32, 116, 104, 105, 115, 46, 120, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 81, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 98, 46, 109, 97, 46, 65, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 80, 97, 115, 115, 105, 110, 103, 32, 114, 97, 119, 32, 112, 111, 105, 110, 116, 101, 114, 32, 116, 111, 32, 115, 109, 97, 114, 116, 32, 112, 111, 105, 110, 116, 101, 114, 32, 105, 115, 32, 105, 108, 108, 101, 103, 97, 108, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 116, 104, 105, 115, 46, 112, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 48, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 109, 97, 46, 68, 97, 32, 61, 61, 61, 32, 116, 104, 105, 115, 41, 32, 99, 32, 61, 32, 98, 46, 109, 97, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 109, 97, 46, 68, 97, 32, 63, 32, 98, 46, 109, 97, 46, 68, 97, 46, 110, 97, 109, 101, 32, 58, 32, 98, 46, 109, 97, 46, 122, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 98, 46, 109, 97, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 109, 97, 46, 68, 97, 32, 61, 61, 61, 32, 116, 104, 105, 115, 41, 32, 99, 32, 61, 32, 98, 46, 109, 97, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 108, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 98, 40, 40, 41, 32, 61, 62, 32, 100, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 46, 70, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 85, 110, 115, 117, 112, 112, 111, 114, 116, 105, 110, 103, 32, 115, 104, 97, 114, 105, 110, 103, 32, 112, 111, 108, 105, 99, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 109, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 102, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 109, 97, 46, 121, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 109, 97, 46, 122, 97, 46, 80, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 109, 97, 46, 122, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 98, 40, 98, 46, 109, 97, 46, 121, 97, 44, 32, 98, 46, 109, 97, 46, 122, 97, 46, 120, 97, 44, 32, 116, 104, 105, 115, 46, 120, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 106, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 44, 32, 112, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 120, 97, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 84, 97, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 80, 97, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 81, 97, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 106, 98, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 98, 32, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 90, 97, 32, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 85, 97, 32, 61, 32, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 108, 98, 32, 61, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 70, 97, 32, 61, 32, 112, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 98, 46, 67, 97, 32, 63, 32, 116, 104, 105, 115, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 32, 61, 32, 103, 98, 32, 58, 32, 40, 116, 104, 105, 115, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 32, 61, 32, 100, 32, 63, 32, 101, 98, 32, 58, 32, 105, 98, 44, 32, 116, 104, 105, 115, 46, 69, 97, 32, 61, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 107, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 73, 97, 40, 34, 82, 101, 112, 108, 97, 99, 105, 110, 103, 32, 110, 111, 110, 101, 120, 105, 115, 116, 101, 110, 116, 32, 112, 117, 98, 108, 105, 99, 32, 115, 121, 109, 98, 111, 108, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 66, 97, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 99, 32, 63, 32, 107, 91, 97, 93, 46, 66, 97, 91, 99, 93, 32, 61, 32, 98, 32, 58, 32, 40, 107, 91, 97, 93, 32, 61, 32, 98, 44, 32, 107, 91, 97, 93, 46, 79, 97, 32, 61, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 83, 44, 32, 108, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 91, 93, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 106, 34, 41, 32, 63, 32, 40, 97, 32, 61, 32, 97, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 112, 47, 103, 44, 32, 34, 105, 34, 41, 44, 32, 98, 32, 61, 32, 40, 48, 44, 32, 107, 91, 34, 100, 121, 110, 67, 97, 108, 108, 95, 34, 32, 43, 32, 97, 93, 41, 40, 98, 44, 32, 46, 46, 46, 99, 41, 41, 32, 58, 32, 98, 32, 61, 32, 83, 46, 103, 101, 116, 40, 98, 41, 40, 46, 46, 46, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 109, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 40, 46, 46, 46, 99, 41, 32, 61, 62, 32, 108, 98, 40, 97, 44, 32, 98, 44, 32, 99, 41, 44, 32, 84, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 81, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 97, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 106, 34, 41, 32, 63, 32, 109, 98, 40, 97, 44, 32, 98, 41, 32, 58, 32, 83, 46, 103, 101, 116, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 117, 110, 107, 110, 111, 119, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 101, 114, 32, 119, 105, 116, 104, 32, 115, 105, 103, 110, 97, 116, 117, 114, 101, 32, 36, 123, 97, 125, 58, 32, 36, 123, 98, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 110, 98, 44, 32, 112, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 111, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 81, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 113, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 91, 102, 93, 32, 124, 124, 32, 77, 91, 102, 93, 32, 124, 124, 32, 40, 72, 97, 91, 102, 93, 32, 63, 32, 72, 97, 91, 102, 93, 46, 102, 111, 114, 69, 97, 99, 104, 40, 99, 41, 32, 58, 32, 40, 100, 46, 112, 117, 115, 104, 40, 102, 41, 44, 32, 101, 91, 102, 93, 32, 61, 32, 116, 114, 117, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 91, 93, 44, 32, 101, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 110, 98, 40, 96, 36, 123, 97, 125, 58, 32, 96, 32, 43, 32, 100, 46, 109, 97, 112, 40, 112, 98, 41, 46, 106, 111, 105, 110, 40, 91, 34, 44, 32, 34, 93, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 114, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 91, 93, 44, 32, 100, 32, 61, 32, 48, 59, 32, 100, 32, 60, 32, 97, 59, 32, 100, 43, 43, 41, 32, 99, 46, 112, 117, 115, 104, 40, 70, 91, 98, 32, 43, 32, 52, 32, 42, 32, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 98, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 49, 59, 32, 98, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 98, 41, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 91, 98, 93, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 91, 98, 93, 46, 69, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 116, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 62, 32, 102, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 97, 114, 103, 84, 121, 112, 101, 115, 32, 97, 114, 114, 97, 121, 32, 115, 105, 122, 101, 32, 109, 105, 115, 109, 97, 116, 99, 104, 33, 32, 77, 117, 115, 116, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 103, 101, 116, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 32, 97, 110, 100, 32, 39, 116, 104, 105, 115, 39, 32, 116, 121, 112, 101, 115, 33, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 98, 91, 49, 93, 32, 38, 38, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 99, 44, 32, 104, 32, 61, 32, 115, 98, 40, 98, 41, 44, 32, 110, 32, 61, 32, 34, 118, 111, 105, 100, 34, 32, 33, 61, 61, 32, 98, 91, 48, 93, 46, 110, 97, 109, 101, 44, 32, 109, 32, 61, 32, 102, 32, 45, 32, 50, 44, 32, 112, 32, 61, 32, 65, 114, 114, 97, 121, 40, 109, 41, 44, 32, 117, 32, 61, 32, 91, 93, 44, 32, 118, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 90, 97, 40, 97, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 103, 46, 108, 101, 110, 103, 116, 104, 32, 33, 61, 61, 32, 109, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 102, 117, 110, 99, 116, 105, 111, 110, 32, 36, 123, 97, 125, 32, 99, 97, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 36, 123, 103, 46, 108, 101, 110, 103, 116, 104, 125, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 32, 101, 120, 112, 101, 99, 116, 101, 100, 32, 36, 123, 109, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 108, 32, 63, 32, 50, 32, 58, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 91, 48, 93, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 98, 91, 49, 93, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 118, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 91, 49, 93, 32, 61, 32, 113, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 114, 32, 61, 32, 48, 59, 32, 114, 32, 60, 32, 109, 59, 32, 43, 43, 114, 41, 32, 112, 91, 114, 93, 32, 61, 32, 98, 91, 114, 32, 43, 32, 50, 93, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 118, 44, 32, 103, 91, 114, 93, 41, 44, 32, 117, 46, 112, 117, 115, 104, 40, 112, 91, 114, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 100, 40, 46, 46, 46, 117, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 41, 32, 71, 97, 40, 118, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 114, 32, 61, 32, 108, 32, 63, 32, 49, 32, 58, 32, 50, 59, 32, 114, 32, 60, 32, 98, 46, 108, 101, 110, 103, 116, 104, 59, 32, 114, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 122, 32, 61, 32, 49, 32, 61, 61, 61, 32, 114, 32, 63, 32, 113, 32, 58, 32, 112, 91, 114, 32, 45, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 98, 91, 114, 93, 46, 69, 97, 32, 38, 38, 32, 98, 91, 114, 93, 46, 69, 97, 40, 122, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 110, 32, 63, 32, 98, 91, 48, 93, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 103, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 113, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 117, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 116, 114, 105, 109, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 32, 61, 32, 97, 46, 105, 110, 100, 101, 120, 79, 102, 40, 34, 40, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 45, 49, 32, 33, 61, 61, 32, 98, 32, 63, 32, 97, 46, 115, 117, 98, 115, 116, 114, 40, 48, 44, 32, 98, 41, 32, 58, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 118, 98, 32, 61, 32, 91, 93, 44, 32, 86, 32, 61, 32, 91, 93, 44, 32, 119, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 57, 32, 60, 32, 97, 32, 38, 38, 32, 48, 32, 61, 61, 61, 32, 45, 45, 86, 91, 97, 32, 43, 32, 49, 93, 32, 38, 38, 32, 40, 86, 91, 97, 93, 32, 61, 32, 118, 111, 105, 100, 32, 48, 44, 32, 118, 98, 46, 112, 117, 115, 104, 40, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 121, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 67, 97, 110, 110, 111, 116, 32, 117, 115, 101, 32, 100, 101, 108, 101, 116, 101, 100, 32, 118, 97, 108, 46, 32, 104, 97, 110, 100, 108, 101, 32, 61, 32, 34, 32, 43, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 86, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 104, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 118, 111, 105, 100, 32, 48, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 110, 117, 108, 108, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 116, 114, 117, 101, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 102, 97, 108, 115, 101, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 32, 61, 32, 118, 98, 46, 112, 111, 112, 40, 41, 32, 124, 124, 32, 86, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 91, 98, 93, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 91, 98, 32, 43, 32, 49, 93, 32, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 122, 98, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 34, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 58, 58, 118, 97, 108, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 121, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 104, 98, 40, 98, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 75, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 65, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 121, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 65, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 66, 91, 100, 32, 62, 62, 32, 49, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 67, 91, 100, 32, 62, 62, 32, 49, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 69, 91, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 70, 91, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 105, 110, 116, 101, 103, 101, 114, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 66, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 77, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 41, 32, 116, 104, 114, 111, 119, 32, 97, 32, 61, 32, 96, 36, 123, 98, 125, 32, 104, 97, 115, 32, 117, 110, 107, 110, 111, 119, 110, 32, 116, 121, 112, 101, 32, 36, 123, 112, 98, 40, 97, 41, 125, 96, 44, 32, 110, 101, 119, 32, 82, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 102, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 34, 110, 117, 108, 108, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 61, 32, 98, 32, 124, 124, 32, 34, 97, 114, 114, 97, 121, 34, 32, 61, 61, 61, 32, 98, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 61, 32, 98, 32, 63, 32, 97, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 58, 32, 34, 34, 32, 43, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 67, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 106, 97, 91, 99, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 56, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 107, 97, 91, 99, 32, 62, 62, 32, 51, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 102, 108, 111, 97, 116, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 68, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 121, 91, 100, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 65, 91, 100, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 66, 91, 100, 32, 62, 62, 32, 49, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 67, 91, 100, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 69, 91, 100, 32, 62, 62, 32, 50, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 70, 91, 100, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 105, 110, 116, 101, 103, 101, 114, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 69, 98, 32, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 32, 63, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 34, 117, 116, 102, 45, 49, 54, 108, 101, 34, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 44, 32, 70, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 97, 32, 62, 62, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 100, 32, 61, 32, 99, 32, 43, 32, 98, 32, 47, 32, 50, 59, 32, 33, 40, 99, 32, 62, 61, 32, 100, 41, 32, 38, 38, 32, 67, 91, 99, 93, 59, 32, 41, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 60, 60, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 51, 50, 32, 60, 32, 99, 32, 45, 32, 97, 32, 38, 38, 32, 69, 98, 41, 32, 114, 101, 116, 117, 114, 110, 32, 69, 98, 46, 100, 101, 99, 111, 100, 101, 40, 65, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 97, 44, 32, 99, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 100, 32, 61, 32, 48, 59, 32, 33, 40, 100, 32, 62, 61, 32, 98, 32, 47, 32, 50, 41, 59, 32, 43, 43, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 66, 91, 97, 32, 43, 32, 50, 32, 42, 32, 100, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 32, 101, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 71, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 63, 63, 32, 40, 99, 32, 61, 32, 50, 49, 52, 55, 52, 56, 51, 54, 52, 55, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 62, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 45, 61, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 99, 32, 60, 32, 50, 32, 42, 32, 97, 46, 108, 101, 110, 103, 116, 104, 32, 63, 32, 99, 32, 47, 32, 50, 32, 58, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 99, 59, 32, 43, 43, 101, 41, 32, 66, 91, 98, 32, 62, 62, 32, 49, 93, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 44, 32, 98, 32, 43, 61, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 66, 91, 98, 32, 62, 62, 32, 49, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 45, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 72, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 50, 32, 42, 32, 97, 46, 108, 101, 110, 103, 116, 104, 44, 32, 73, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 48, 44, 32, 100, 32, 61, 32, 34, 34, 59, 32, 33, 40, 99, 32, 62, 61, 32, 98, 32, 47, 32, 52, 41, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 69, 91, 97, 32, 43, 32, 52, 32, 42, 32, 99, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 32, 101, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 53, 53, 51, 54, 32, 60, 61, 32, 101, 32, 63, 32, 40, 101, 32, 45, 61, 32, 54, 53, 53, 51, 54, 44, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 53, 53, 50, 57, 54, 32, 124, 32, 101, 32, 62, 62, 32, 49, 48, 44, 32, 53, 54, 51, 50, 48, 32, 124, 32, 101, 32, 38, 32, 49, 48, 50, 51, 41, 41, 32, 58, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 74, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 63, 63, 32, 40, 99, 32, 61, 32, 50, 49, 52, 55, 52, 56, 51, 54, 52, 55, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 52, 32, 62, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 100, 32, 43, 32, 99, 32, 45, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 53, 53, 50, 57, 54, 32, 60, 61, 32, 102, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 43, 43, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 54, 53, 53, 51, 54, 32, 43, 32, 40, 40, 102, 32, 38, 32, 49, 48, 50, 51, 41, 32, 60, 60, 32, 49, 48, 41, 32, 124, 32, 108, 32, 38, 32, 49, 48, 50, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 43, 32, 52, 32, 62, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 69, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 45, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 75, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 48, 44, 32, 99, 32, 61, 32, 48, 59, 32, 99, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 53, 53, 50, 57, 54, 32, 60, 61, 32, 100, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 100, 32, 38, 38, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 76, 98, 32, 61, 32, 91, 93, 44, 32, 77, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 76, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 76, 98, 46, 112, 117, 115, 104, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 78, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 65, 114, 114, 97, 121, 40, 97, 41, 44, 32, 100, 32, 61, 32, 48, 59, 32, 100, 32, 60, 32, 97, 59, 32, 43, 43, 100, 41, 32, 99, 91, 100, 93, 32, 61, 32, 66, 98, 40, 70, 91, 98, 32, 43, 32, 52, 32, 42, 32, 100, 32, 62, 62, 32, 50, 93, 44, 32, 34, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 34, 32, 43, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 79, 98, 32, 61, 32, 82, 101, 102, 108, 101, 99, 116, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 44, 32, 80, 98, 32, 61, 32, 123, 125, 44, 32, 82, 98, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 81, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 83, 69, 82, 58, 32, 34, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 79, 71, 78, 65, 77, 69, 58, 32, 34, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 65, 84, 72, 58, 32, 34, 47, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 87, 68, 58, 32, 34, 47, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72, 79, 77, 69, 58, 32, 34, 47, 104, 111, 109, 101, 47, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 65, 78, 71, 58, 32, 40, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 32, 38, 38, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 46, 108, 97, 110, 103, 117, 97, 103, 101, 115, 32, 38, 38, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 46, 108, 97, 110, 103, 117, 97, 103, 101, 115, 91, 48, 93, 32, 124, 124, 32, 34, 67, 34, 41, 46, 114, 101, 112, 108, 97, 99, 101, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 45, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 95, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 32, 43, 32, 34, 46, 85, 84, 70, 45, 56, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 58, 32, 100, 97, 32, 124, 124, 32, 34, 46, 47, 116, 104, 105, 115, 46, 112, 114, 111, 103, 114, 97, 109, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 80, 98, 41, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 80, 98, 91, 98, 93, 32, 63, 32, 100, 101, 108, 101, 116, 101, 32, 97, 91, 98, 93, 32, 58, 32, 97, 91, 98, 93, 32, 61, 32, 80, 98, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 97, 41, 32, 99, 46, 112, 117, 115, 104, 40, 96, 36, 123, 98, 125, 61, 36, 123, 97, 91, 98, 93, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 81, 98, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 81, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 81, 98, 44, 32, 83, 98, 32, 61, 32, 91, 110, 117, 108, 108, 44, 32, 91, 93, 44, 32, 91, 93, 93, 44, 32, 84, 98, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 114, 121, 112, 116, 111, 32, 38, 38, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 114, 121, 112, 116, 111, 46, 103, 101, 116, 82, 97, 110, 100, 111, 109, 86, 97, 108, 117, 101, 115, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 97, 41, 32, 61, 62, 32, 99, 114, 121, 112, 116, 111, 46, 103, 101, 116, 82, 97, 110, 100, 111, 109, 86, 97, 108, 117, 101, 115, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 97, 40, 34, 105, 110, 105, 116, 82, 97, 110, 100, 111, 109, 68, 101, 118, 105, 99, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 85, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 85, 98, 32, 61, 32, 84, 98, 40, 41, 41, 40, 97, 41, 44, 32, 86, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 48, 32, 61, 61, 61, 32, 97, 32, 37, 32, 52, 32, 38, 38, 32, 40, 48, 32, 33, 61, 61, 32, 97, 32, 37, 32, 49, 48, 48, 32, 124, 124, 32, 48, 32, 61, 61, 61, 32, 97, 32, 37, 32, 52, 48, 48, 41, 44, 32, 87, 98, 32, 61, 32, 91, 51, 49, 44, 32, 50, 57, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 93, 44, 32, 88, 98, 32, 61, 32, 91, 51, 49, 44, 32, 50, 56, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 44, 32, 51, 48, 44, 32, 51, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 89, 98, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 65, 114, 114, 97, 121, 40, 68, 97, 40, 97, 41, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 97, 44, 32, 98, 44, 32, 48, 44, 32, 98, 46, 108, 101, 110, 103, 116, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 90, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 40, 103, 44, 32, 113, 44, 32, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 103, 32, 61, 32, 34, 110, 117, 109, 98, 101, 114, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 103, 32, 63, 32, 103, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 58, 32, 103, 32, 124, 124, 32, 34, 34, 59, 32, 103, 46, 108, 101, 110, 103, 116, 104, 32, 60, 32, 113, 59, 32, 41, 32, 103, 32, 61, 32, 114, 91, 48, 93, 32, 43, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 40, 103, 44, 32, 113, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 101, 40, 103, 44, 32, 113, 44, 32, 34, 48, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 40, 103, 44, 32, 113, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 40, 78, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 32, 62, 32, 78, 32, 63, 32, 45, 49, 32, 58, 32, 48, 32, 60, 32, 78, 32, 63, 32, 49, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 122, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 40, 122, 32, 61, 32, 114, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 45, 32, 113, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 41, 41, 32, 38, 38, 32, 48, 32, 61, 61, 61, 32, 40, 122, 32, 61, 32, 114, 40, 103, 46, 103, 101, 116, 77, 111, 110, 116, 104, 40, 41, 32, 45, 32, 113, 46, 103, 101, 116, 77, 111, 110, 116, 104, 40, 41, 41, 41, 32, 38, 38, 32, 40, 122, 32, 61, 32, 114, 40, 103, 46, 103, 101, 116, 68, 97, 116, 101, 40, 41, 32, 45, 32, 113, 46, 103, 101, 116, 68, 97, 116, 101, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 122, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 40, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 103, 46, 103, 101, 116, 68, 97, 121, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 48, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 45, 32, 49, 44, 32, 49, 49, 44, 32, 50, 57, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 44, 32, 48, 44, 32, 51, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 51, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 44, 32, 48, 44, 32, 50, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 44, 32, 48, 44, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 53, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 45, 32, 49, 44, 32, 49, 49, 44, 32, 51, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 54, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 45, 32, 49, 44, 32, 49, 49, 44, 32, 51, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 40, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 103, 46, 73, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 103, 32, 61, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 74, 97, 32, 43, 32, 49, 57, 48, 48, 44, 32, 48, 44, 32, 49, 41, 46, 103, 101, 116, 84, 105, 109, 101, 40, 41, 41, 59, 32, 48, 32, 60, 32, 113, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 32, 61, 32, 103, 46, 103, 101, 116, 77, 111, 110, 116, 104, 40, 41, 44, 32, 122, 32, 61, 32, 40, 86, 98, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 41, 32, 63, 32, 87, 98, 32, 58, 32, 88, 98, 41, 91, 114, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 113, 32, 62, 32, 122, 32, 45, 32, 103, 46, 103, 101, 116, 68, 97, 116, 101, 40, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 45, 61, 32, 122, 32, 45, 32, 103, 46, 103, 101, 116, 68, 97, 116, 101, 40, 41, 32, 43, 32, 49, 44, 32, 103, 46, 115, 101, 116, 68, 97, 116, 101, 40, 49, 41, 44, 32, 49, 49, 32, 62, 32, 114, 32, 63, 32, 103, 46, 115, 101, 116, 77, 111, 110, 116, 104, 40, 114, 32, 43, 32, 49, 41, 32, 58, 32, 40, 103, 46, 115, 101, 116, 77, 111, 110, 116, 104, 40, 48, 41, 44, 32, 103, 46, 115, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 43, 32, 49, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 46, 115, 101, 116, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 68, 97, 116, 101, 40, 41, 32, 43, 32, 113, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 32, 61, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 43, 32, 49, 44, 32, 48, 44, 32, 52, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 104, 40, 110, 101, 119, 32, 68, 97, 116, 101, 40, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 44, 32, 48, 44, 32, 52, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 32, 61, 32, 104, 40, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 32, 62, 61, 32, 108, 40, 113, 44, 32, 103, 41, 32, 63, 32, 48, 32, 62, 61, 32, 108, 40, 114, 44, 32, 103, 41, 32, 63, 32, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 43, 32, 49, 32, 58, 32, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 58, 32, 103, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 32, 45, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 70, 91, 100, 32, 43, 32, 52, 48, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 98, 58, 32, 69, 91, 100, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 98, 58, 32, 69, 91, 100, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 97, 58, 32, 69, 91, 100, 32, 43, 32, 56, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 97, 58, 32, 69, 91, 100, 32, 43, 32, 49, 50, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 97, 58, 32, 69, 91, 100, 32, 43, 32, 49, 54, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 69, 91, 100, 32, 43, 32, 50, 48, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 97, 58, 32, 69, 91, 100, 32, 43, 32, 50, 52, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 69, 91, 100, 32, 43, 32, 50, 56, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 98, 58, 32, 69, 91, 100, 32, 43, 32, 51, 50, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 98, 58, 32, 69, 91, 100, 32, 43, 32, 51, 54, 32, 62, 62, 32, 50, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 98, 58, 32, 109, 32, 63, 32, 109, 32, 63, 32, 74, 40, 65, 44, 32, 109, 41, 32, 58, 32, 34, 34, 32, 58, 32, 34, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 99, 32, 63, 32, 74, 40, 65, 44, 32, 99, 41, 32, 58, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 99, 34, 58, 32, 34, 37, 97, 32, 37, 98, 32, 37, 100, 32, 37, 72, 58, 37, 77, 58, 37, 83, 32, 37, 89, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 68, 34, 58, 32, 34, 37, 109, 47, 37, 100, 47, 37, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 70, 34, 58, 32, 34, 37, 89, 45, 37, 109, 45, 37, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 104, 34, 58, 32, 34, 37, 98, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 114, 34, 58, 32, 34, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 82, 34, 58, 32, 34, 37, 72, 58, 37, 77, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 84, 34, 58, 32, 34, 37, 72, 58, 37, 77, 58, 37, 83, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 120, 34, 58, 32, 34, 37, 109, 47, 37, 100, 47, 37, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 88, 34, 58, 32, 34, 37, 72, 58, 37, 77, 58, 37, 83, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 99, 34, 58, 32, 34, 37, 99, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 67, 34, 58, 32, 34, 37, 67, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 120, 34, 58, 32, 34, 37, 109, 47, 37, 100, 47, 37, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 88, 34, 58, 32, 34, 37, 72, 58, 37, 77, 58, 37, 83, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 121, 34, 58, 32, 34, 37, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 69, 89, 34, 58, 32, 34, 37, 89, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 100, 34, 58, 32, 34, 37, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 101, 34, 58, 32, 34, 37, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 72, 34, 58, 32, 34, 37, 72, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 73, 34, 58, 32, 34, 37, 73, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 109, 34, 58, 32, 34, 37, 109, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 77, 34, 58, 32, 34, 37, 77, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 83, 34, 58, 32, 34, 37, 83, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 117, 34, 58, 32, 34, 37, 117, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 85, 34, 58, 32, 34, 37, 85, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 86, 34, 58, 32, 34, 37, 86, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 119, 34, 58, 32, 34, 37, 119, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 87, 34, 58, 32, 34, 37, 87, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 79, 121, 34, 58, 32, 34, 37, 121, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 32, 105, 110, 32, 109, 41, 32, 99, 32, 61, 32, 99, 46, 114, 101, 112, 108, 97, 99, 101, 40, 110, 101, 119, 32, 82, 101, 103, 69, 120, 112, 40, 112, 44, 32, 34, 103, 34, 41, 44, 32, 109, 91, 112, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 117, 32, 61, 32, 34, 83, 117, 110, 100, 97, 121, 32, 77, 111, 110, 100, 97, 121, 32, 84, 117, 101, 115, 100, 97, 121, 32, 87, 101, 100, 110, 101, 115, 100, 97, 121, 32, 84, 104, 117, 114, 115, 100, 97, 121, 32, 70, 114, 105, 100, 97, 121, 32, 83, 97, 116, 117, 114, 100, 97, 121, 34, 46, 115, 112, 108, 105, 116, 40, 34, 32, 34, 41, 44, 32, 118, 32, 61, 32, 34, 74, 97, 110, 117, 97, 114, 121, 32, 70, 101, 98, 114, 117, 97, 114, 121, 32, 77, 97, 114, 99, 104, 32, 65, 112, 114, 105, 108, 32, 77, 97, 121, 32, 74, 117, 110, 101, 32, 74, 117, 108, 121, 32, 65, 117, 103, 117, 115, 116, 32, 83, 101, 112, 116, 101, 109, 98, 101, 114, 32, 79, 99, 116, 111, 98, 101, 114, 32, 78, 111, 118, 101, 109, 98, 101, 114, 32, 68, 101, 99, 101, 109, 98, 101, 114, 34, 46, 115, 112, 108, 105, 116, 40, 34, 32, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 97, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 117, 91, 103, 46, 71, 97, 93, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 48, 44, 32, 51, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 65, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 117, 91, 103, 46, 71, 97, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 98, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 118, 91, 103, 46, 83, 97, 93, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 48, 44, 32, 51, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 66, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 118, 91, 103, 46, 83, 97, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 67, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 40, 103, 46, 74, 97, 32, 43, 32, 49, 57, 48, 48, 41, 32, 47, 32, 49, 48, 48, 32, 124, 32, 48, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 100, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 103, 46, 86, 97, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 101, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 101, 40, 103, 46, 86, 97, 44, 32, 50, 44, 32, 34, 32, 34, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 103, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 110, 40, 103, 41, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 71, 34, 58, 32, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 72, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 103, 46, 82, 97, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 73, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 103, 46, 82, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 32, 103, 32, 63, 32, 103, 32, 61, 32, 49, 50, 32, 58, 32, 49, 50, 32, 60, 32, 103, 32, 38, 38, 32, 40, 103, 32, 45, 61, 32, 49, 50, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 40, 103, 44, 32, 50, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 106, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 113, 32, 61, 32, 48, 44, 32, 114, 32, 61, 32, 48, 59, 32, 114, 32, 60, 61, 32, 103, 46, 83, 97, 32, 45, 32, 49, 59, 32, 113, 32, 43, 61, 32, 40, 86, 98, 40, 103, 46, 74, 97, 32, 43, 32, 49, 57, 48, 48, 41, 32, 63, 32, 87, 98, 32, 58, 32, 88, 98, 41, 91, 114, 43, 43, 93, 41, 32, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 40, 103, 46, 86, 97, 32, 43, 32, 113, 44, 32, 51, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 109, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 103, 46, 83, 97, 32, 43, 32, 49, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 77, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 103, 46, 114, 98, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 110, 34, 58, 32, 40, 41, 32, 61, 62, 32, 34, 92, 110, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 112, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 48, 32, 60, 61, 32, 103, 46, 82, 97, 32, 38, 38, 32, 49, 50, 32, 62, 32, 103, 46, 82, 97, 32, 63, 32, 34, 65, 77, 34, 32, 58, 32, 34, 80, 77, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 83, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 103, 46, 115, 98, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 116, 34, 58, 32, 40, 41, 32, 61, 62, 32, 34, 9, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 117, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 103, 46, 71, 97, 32, 124, 124, 32, 55, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 85, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 40, 103, 46, 73, 97, 32, 43, 32, 55, 32, 45, 32, 103, 46, 71, 97, 41, 32, 47, 32, 55, 41, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 86, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 40, 103, 46, 73, 97, 32, 43, 32, 55, 32, 45, 32, 40, 103, 46, 71, 97, 32, 43, 32, 54, 41, 32, 37, 32, 55, 41, 32, 47, 32, 55, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 50, 32, 62, 61, 32, 40, 103, 46, 71, 97, 32, 43, 32, 51, 55, 49, 32, 45, 32, 103, 46, 73, 97, 32, 45, 32, 50, 41, 32, 37, 32, 55, 32, 38, 38, 32, 113, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 113, 41, 32, 53, 51, 32, 61, 61, 32, 113, 32, 38, 38, 32, 40, 114, 32, 61, 32, 40, 103, 46, 71, 97, 32, 43, 32, 51, 55, 49, 32, 45, 32, 103, 46, 73, 97, 41, 32, 37, 32, 55, 44, 32, 52, 32, 61, 61, 32, 114, 32, 124, 124, 32, 51, 32, 61, 61, 32, 114, 32, 38, 38, 32, 86, 98, 40, 103, 46, 74, 97, 41, 32, 124, 124, 32, 40, 113, 32, 61, 32, 49, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 53, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 32, 61, 32, 40, 103, 46, 71, 97, 32, 43, 32, 55, 32, 45, 32, 103, 46, 73, 97, 32, 45, 32, 49, 41, 32, 37, 32, 55, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 52, 32, 61, 61, 32, 114, 32, 124, 124, 32, 53, 32, 61, 61, 32, 114, 32, 38, 38, 32, 86, 98, 40, 103, 46, 74, 97, 32, 37, 32, 52, 48, 48, 32, 45, 32, 49, 41, 41, 32, 38, 38, 32, 113, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 40, 113, 44, 32, 50, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 119, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 103, 46, 71, 97, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 87, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 102, 40, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 40, 103, 46, 73, 97, 32, 43, 32, 55, 32, 45, 32, 40, 103, 46, 71, 97, 32, 43, 32, 54, 41, 32, 37, 32, 55, 41, 32, 47, 32, 55, 41, 44, 32, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 121, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 40, 103, 46, 74, 97, 32, 43, 32, 49, 57, 48, 48, 41, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 50, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 89, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 103, 46, 74, 97, 32, 43, 32, 49, 57, 48, 48, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 122, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 103, 46, 113, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 48, 32, 60, 61, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 77, 97, 116, 104, 46, 97, 98, 115, 40, 103, 41, 32, 47, 32, 54, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 113, 32, 63, 32, 34, 43, 34, 32, 58, 32, 34, 45, 34, 41, 32, 43, 32, 83, 116, 114, 105, 110, 103, 40, 34, 48, 48, 48, 48, 34, 32, 43, 32, 40, 103, 32, 47, 32, 54, 48, 32, 42, 32, 49, 48, 48, 32, 43, 32, 103, 32, 37, 32, 54, 48, 41, 41, 46, 115, 108, 105, 99, 101, 40, 45, 52, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 90, 34, 58, 32, 40, 103, 41, 32, 61, 62, 32, 103, 46, 116, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 37, 37, 34, 58, 32, 40, 41, 32, 61, 62, 32, 34, 37, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 99, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 37, 37, 47, 103, 44, 32, 34, 92, 48, 92, 48, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 112, 32, 105, 110, 32, 109, 41, 32, 99, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 112, 41, 32, 38, 38, 32, 40, 99, 32, 61, 32, 99, 46, 114, 101, 112, 108, 97, 99, 101, 40, 110, 101, 119, 32, 82, 101, 103, 69, 120, 112, 40, 112, 44, 32, 34, 103, 34, 41, 44, 32, 109, 91, 112, 93, 40, 100, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 99, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 92, 48, 92, 48, 47, 103, 44, 32, 34, 37, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 112, 32, 61, 32, 89, 98, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 112, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 98, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 46, 115, 101, 116, 40, 112, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 112, 46, 108, 101, 110, 103, 116, 104, 32, 45, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 73, 97, 32, 61, 32, 107, 46, 73, 110, 116, 101, 114, 110, 97, 108, 69, 114, 114, 111, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 101, 120, 116, 101, 110, 100, 115, 32, 69, 114, 114, 111, 114, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 112, 101, 114, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 34, 73, 110, 116, 101, 114, 110, 97, 108, 69, 114, 114, 111, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 36, 98, 32, 61, 32, 65, 114, 114, 97, 121, 40, 50, 53, 54, 41, 44, 32, 97, 99, 32, 61, 32, 48, 59, 32, 50, 53, 54, 32, 62, 32, 97, 99, 59, 32, 43, 43, 97, 99, 41, 32, 36, 98, 91, 97, 99, 93, 32, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 97, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 74, 97, 32, 61, 32, 36, 98, 59, 10, 32, 32, 32, 32, 32, 32, 82, 32, 61, 32, 107, 46, 66, 105, 110, 100, 105, 110, 103, 69, 114, 114, 111, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 101, 120, 116, 101, 110, 100, 115, 32, 69, 114, 114, 111, 114, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 112, 101, 114, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 34, 66, 105, 110, 100, 105, 110, 103, 69, 114, 114, 111, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 89, 97, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 65, 108, 105, 97, 115, 79, 102, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 116, 104, 105, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 89, 97, 32, 38, 38, 32, 97, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 89, 97, 41, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 116, 104, 105, 115, 46, 109, 97, 46, 122, 97, 46, 120, 97, 44, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 109, 97, 32, 61, 32, 97, 46, 109, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 46, 109, 97, 46, 122, 97, 46, 120, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 97, 32, 61, 32, 97, 46, 109, 97, 46, 121, 97, 59, 32, 98, 46, 67, 97, 59, 32, 41, 32, 99, 32, 61, 32, 98, 46, 78, 97, 40, 99, 41, 44, 32, 98, 32, 61, 32, 98, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 100, 46, 67, 97, 59, 32, 41, 32, 97, 32, 61, 32, 100, 46, 78, 97, 40, 97, 41, 44, 32, 100, 32, 61, 32, 100, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 61, 61, 61, 32, 100, 32, 38, 38, 32, 99, 32, 61, 61, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 111, 110, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 32, 124, 124, 32, 76, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 109, 97, 46, 77, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 109, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 43, 61, 32, 49, 44, 32, 116, 104, 105, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 87, 97, 44, 32, 98, 32, 61, 32, 79, 98, 106, 101, 99, 116, 44, 32, 99, 32, 61, 32, 98, 46, 99, 114, 101, 97, 116, 101, 44, 32, 100, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 80, 114, 111, 116, 111, 116, 121, 112, 101, 79, 102, 40, 116, 104, 105, 115, 41, 44, 32, 101, 32, 61, 32, 116, 104, 105, 115, 46, 109, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 99, 97, 108, 108, 40, 98, 44, 32, 100, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 123, 32, 99, 111, 117, 110, 116, 58, 32, 101, 46, 99, 111, 117, 110, 116, 44, 32, 75, 97, 58, 32, 101, 46, 75, 97, 44, 32, 77, 97, 58, 32, 101, 46, 77, 97, 44, 32, 121, 97, 58, 32, 101, 46, 121, 97, 44, 32, 122, 97, 58, 32, 101, 46, 122, 97, 44, 32, 65, 97, 58, 32, 101, 46, 65, 97, 44, 32, 68, 97, 58, 32, 101, 46, 68, 97, 32, 125, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 109, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 109, 97, 46, 75, 97, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 32, 124, 124, 32, 76, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 109, 97, 46, 75, 97, 32, 38, 38, 32, 33, 116, 104, 105, 115, 46, 109, 97, 46, 77, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 79, 98, 106, 101, 99, 116, 32, 97, 108, 114, 101, 97, 100, 121, 32, 115, 99, 104, 101, 100, 117, 108, 101, 100, 32, 102, 111, 114, 32, 100, 101, 108, 101, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 116, 104, 105, 115, 46, 109, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 38, 38, 32, 40, 97, 46, 65, 97, 32, 63, 32, 97, 46, 68, 97, 46, 70, 97, 40, 97, 46, 65, 97, 41, 32, 58, 32, 97, 46, 122, 97, 46, 120, 97, 46, 70, 97, 40, 97, 46, 121, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 97, 46, 77, 97, 32, 124, 124, 32, 40, 116, 104, 105, 115, 46, 109, 97, 46, 65, 97, 32, 61, 32, 118, 111, 105, 100, 32, 48, 44, 32, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 32, 61, 32, 118, 111, 105, 100, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 68, 101, 108, 101, 116, 101, 100, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 33, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 76, 97, 116, 101, 114, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 97, 46, 121, 97, 32, 124, 124, 32, 76, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 109, 97, 46, 75, 97, 32, 38, 38, 32, 33, 116, 104, 105, 115, 46, 109, 97, 46, 77, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 79, 98, 106, 101, 99, 116, 32, 97, 108, 114, 101, 97, 100, 121, 32, 115, 99, 104, 101, 100, 117, 108, 101, 100, 32, 102, 111, 114, 32, 100, 101, 108, 101, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 97, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 32, 61, 61, 61, 32, 82, 97, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 84, 97, 32, 38, 38, 32, 84, 97, 40, 83, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 97, 46, 75, 97, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 103, 101, 116, 73, 110, 104, 101, 114, 105, 116, 101, 100, 73, 110, 115, 116, 97, 110, 99, 101, 67, 111, 117, 110, 116, 32, 61, 32, 40, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 85, 97, 41, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 103, 101, 116, 76, 105, 118, 101, 73, 110, 104, 101, 114, 105, 116, 101, 100, 73, 110, 115, 116, 97, 110, 99, 101, 115, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 91, 93, 44, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 85, 97, 41, 32, 85, 97, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 98, 41, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 85, 97, 91, 98, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 102, 108, 117, 115, 104, 80, 101, 110, 100, 105, 110, 103, 68, 101, 108, 101, 116, 101, 115, 32, 61, 32, 83, 97, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 115, 101, 116, 68, 101, 108, 97, 121, 70, 117, 110, 99, 116, 105, 111, 110, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 84, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 82, 97, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 84, 97, 32, 38, 38, 32, 84, 97, 40, 83, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 106, 98, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 98, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 90, 97, 32, 38, 38, 32, 40, 97, 32, 61, 32, 116, 104, 105, 115, 46, 90, 97, 40, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 88, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 70, 97, 63, 46, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 75, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 98, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 81, 97, 32, 63, 32, 88, 97, 40, 116, 104, 105, 115, 46, 120, 97, 46, 76, 97, 44, 32, 123, 32, 122, 97, 58, 32, 116, 104, 105, 115, 46, 106, 98, 44, 32, 121, 97, 58, 32, 99, 44, 32, 68, 97, 58, 32, 116, 104, 105, 115, 44, 32, 65, 97, 58, 32, 97, 32, 125, 41, 32, 58, 32, 88, 97, 40, 116, 104, 105, 115, 46, 120, 97, 46, 76, 97, 44, 32, 123, 32, 122, 97, 58, 32, 116, 104, 105, 115, 44, 32, 121, 97, 58, 32, 97, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 101, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 88, 97, 40, 97, 41, 44, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 86, 97, 40, 116, 104, 105, 115, 46, 120, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 61, 32, 100, 46, 109, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 100, 46, 109, 97, 46, 121, 97, 32, 61, 32, 99, 44, 32, 100, 46, 109, 97, 46, 65, 97, 32, 61, 32, 97, 44, 32, 100, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 100, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 88, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 116, 104, 105, 115, 46, 120, 97, 46, 99, 98, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 81, 97, 91, 100, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 100, 41, 32, 114, 101, 116, 117, 114, 110, 32, 98, 46, 99, 97, 108, 108, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 116, 104, 105, 115, 46, 80, 97, 32, 63, 32, 100, 46, 36, 97, 32, 58, 32, 100, 46, 112, 111, 105, 110, 116, 101, 114, 84, 121, 112, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 80, 97, 40, 99, 44, 32, 116, 104, 105, 115, 46, 120, 97, 44, 32, 100, 46, 120, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 32, 61, 61, 61, 32, 101, 32, 63, 32, 98, 46, 99, 97, 108, 108, 40, 116, 104, 105, 115, 41, 32, 58, 32, 116, 104, 105, 115, 46, 81, 97, 32, 63, 32, 88, 97, 40, 100, 46, 120, 97, 46, 76, 97, 44, 32, 123, 32, 122, 97, 58, 32, 100, 44, 32, 121, 97, 58, 32, 101, 44, 32, 68, 97, 58, 32, 116, 104, 105, 115, 44, 32, 65, 97, 58, 32, 97, 32, 125, 41, 32, 58, 32, 88, 97, 40, 100, 46, 120, 97, 46, 76, 97, 44, 32, 123, 32, 122, 97, 58, 32, 100, 44, 32, 121, 97, 58, 32, 101, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 110, 98, 32, 61, 32, 107, 46, 85, 110, 98, 111, 117, 110, 100, 84, 121, 112, 101, 69, 114, 114, 111, 114, 32, 61, 32, 40, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 90, 97, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 69, 114, 114, 111, 114, 40, 100, 41, 46, 115, 116, 97, 99, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 100, 32, 38, 38, 32, 40, 116, 104, 105, 115, 46, 115, 116, 97, 99, 107, 32, 61, 32, 116, 104, 105, 115, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 43, 32, 34, 92, 110, 34, 32, 43, 32, 100, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 94, 69, 114, 114, 111, 114, 40, 58, 91, 94, 92, 110, 93, 42, 41, 63, 92, 110, 47, 44, 32, 34, 34, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 97, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 116, 111, 83, 116, 114, 105, 110, 103, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 32, 63, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 58, 32, 96, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 58, 32, 36, 123, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 40, 69, 114, 114, 111, 114, 44, 32, 34, 85, 110, 98, 111, 117, 110, 100, 84, 121, 112, 101, 69, 114, 114, 111, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 86, 46, 112, 117, 115, 104, 40, 48, 44, 32, 49, 44, 32, 118, 111, 105, 100, 32, 48, 44, 32, 49, 44, 32, 110, 117, 108, 108, 44, 32, 49, 44, 32, 116, 114, 117, 101, 44, 32, 49, 44, 32, 102, 97, 108, 115, 101, 44, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 99, 111, 117, 110, 116, 95, 101, 109, 118, 97, 108, 95, 104, 97, 110, 100, 108, 101, 115, 32, 61, 32, 40, 41, 32, 61, 62, 32, 86, 46, 108, 101, 110, 103, 116, 104, 32, 47, 32, 50, 32, 45, 32, 53, 32, 45, 32, 118, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 99, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 97, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 65, 115, 115, 101, 114, 116, 105, 111, 110, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 97, 32, 63, 32, 74, 40, 65, 44, 32, 97, 41, 32, 58, 32, 34, 34, 125, 44, 32, 97, 116, 58, 32, 96, 32, 43, 32, 91, 98, 32, 63, 32, 98, 32, 63, 32, 74, 40, 65, 44, 32, 98, 41, 32, 58, 32, 34, 34, 32, 58, 32, 34, 117, 110, 107, 110, 111, 119, 110, 32, 102, 105, 108, 101, 110, 97, 109, 101, 34, 44, 32, 99, 44, 32, 100, 32, 63, 32, 100, 32, 63, 32, 74, 40, 65, 44, 32, 100, 41, 32, 58, 32, 34, 34, 32, 58, 32, 34, 117, 110, 107, 110, 111, 119, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 34, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 110, 101, 119, 32, 65, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 100, 46, 121, 97, 32, 43, 32, 49, 54, 32, 62, 62, 32, 50, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 100, 46, 121, 97, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 100, 46, 121, 97, 32, 43, 32, 56, 32, 62, 62, 32, 50, 93, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 66, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 66, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 66, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 80, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 77, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 82, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 78, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 65, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 79, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 70, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 32, 70, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 98, 46, 85, 97, 44, 32, 100, 32, 61, 32, 98, 46, 70, 97, 44, 32, 101, 32, 61, 32, 98, 46, 89, 97, 44, 32, 102, 32, 61, 32, 101, 46, 109, 97, 112, 40, 40, 108, 41, 32, 61, 62, 32, 108, 46, 104, 98, 41, 46, 99, 111, 110, 99, 97, 116, 40, 101, 46, 109, 97, 112, 40, 40, 108, 41, 32, 61, 62, 32, 108, 46, 110, 98, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 97, 93, 44, 32, 102, 44, 32, 40, 108, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 110, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 112, 32, 61, 32, 108, 91, 109, 93, 44, 32, 117, 32, 61, 32, 110, 46, 102, 98, 44, 32, 118, 32, 61, 32, 110, 46, 103, 98, 44, 32, 103, 32, 61, 32, 108, 91, 109, 32, 43, 32, 101, 46, 108, 101, 110, 103, 116, 104, 93, 44, 32, 113, 32, 61, 32, 110, 46, 109, 98, 44, 32, 114, 32, 61, 32, 110, 46, 111, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 91, 110, 46, 98, 98, 93, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 58, 32, 40, 122, 41, 32, 61, 62, 32, 112, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 117, 40, 118, 44, 32, 122, 41, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 114, 105, 116, 101, 58, 32, 40, 122, 44, 32, 78, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 68, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 40, 114, 44, 32, 122, 44, 32, 103, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 68, 44, 32, 78, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 97, 40, 68, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 46, 110, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 110, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 123, 125, 44, 32, 112, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 112, 32, 105, 110, 32, 104, 41, 32, 109, 91, 112, 93, 32, 61, 32, 104, 91, 112, 93, 46, 114, 101, 97, 100, 40, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 40, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 110, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 32, 105, 110, 32, 104, 41, 32, 105, 102, 32, 40, 33, 40, 112, 32, 105, 110, 32, 109, 41, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 77, 105, 115, 115, 105, 110, 103, 32, 102, 105, 101, 108, 100, 58, 32, 34, 36, 123, 112, 125, 34, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 117, 32, 61, 32, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 112, 32, 105, 110, 32, 104, 41, 32, 104, 91, 112, 93, 46, 119, 114, 105, 116, 101, 40, 117, 44, 32, 109, 91, 112, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 110, 32, 38, 38, 32, 110, 46, 112, 117, 115, 104, 40, 100, 44, 32, 117, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 117, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 75, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 73, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 89, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 33, 33, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 44, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 32, 63, 32, 99, 32, 58, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 65, 91, 101, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 44, 32, 112, 44, 32, 117, 44, 32, 118, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 112, 32, 61, 32, 81, 40, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 38, 38, 32, 40, 104, 32, 61, 32, 84, 40, 108, 44, 32, 104, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 38, 38, 32, 40, 109, 32, 61, 32, 84, 40, 110, 44, 32, 109, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 84, 40, 117, 44, 32, 118, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 103, 32, 61, 32, 98, 98, 40, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 40, 103, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 36, 123, 112, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 97, 44, 32, 98, 44, 32, 99, 93, 44, 32, 100, 32, 63, 32, 91, 100, 93, 32, 58, 32, 91, 93, 44, 32, 40, 113, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 113, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 32, 61, 32, 113, 46, 120, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 122, 32, 61, 32, 114, 46, 76, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 122, 32, 61, 32, 89, 97, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 90, 97, 40, 112, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 78, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 80, 114, 111, 116, 111, 116, 121, 112, 101, 79, 102, 40, 116, 104, 105, 115, 41, 32, 33, 61, 61, 32, 78, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 85, 115, 101, 32, 39, 110, 101, 119, 39, 32, 116, 111, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 34, 32, 43, 32, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 68, 46, 72, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 112, 32, 43, 32, 34, 32, 104, 97, 115, 32, 110, 111, 32, 97, 99, 99, 101, 115, 115, 105, 98, 108, 101, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 120, 98, 32, 61, 32, 68, 46, 72, 97, 91, 78, 97, 46, 108, 101, 110, 103, 116, 104, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 120, 98, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 84, 114, 105, 101, 100, 32, 116, 111, 32, 105, 110, 118, 111, 107, 101, 32, 99, 116, 111, 114, 32, 111, 102, 32, 36, 123, 112, 125, 32, 119, 105, 116, 104, 32, 105, 110, 118, 97, 108, 105, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 40, 36, 123, 78, 97, 46, 108, 101, 110, 103, 116, 104, 125, 41, 32, 45, 32, 101, 120, 112, 101, 99, 116, 101, 100, 32, 40, 36, 123, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 68, 46, 72, 97, 41, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 125, 41, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 105, 110, 115, 116, 101, 97, 100, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 120, 98, 46, 97, 112, 112, 108, 121, 40, 116, 104, 105, 115, 44, 32, 78, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 78, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 122, 44, 32, 123, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 113, 32, 125, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 32, 61, 32, 78, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 68, 32, 61, 32, 110, 101, 119, 32, 99, 98, 40, 112, 44, 32, 113, 44, 32, 78, 44, 32, 118, 44, 32, 114, 44, 32, 102, 44, 32, 104, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 68, 46, 67, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 105, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 105, 97, 32, 61, 32, 68, 46, 67, 97, 41, 46, 87, 97, 32, 63, 63, 32, 40, 105, 97, 46, 87, 97, 32, 61, 32, 91, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 46, 67, 97, 46, 87, 97, 46, 112, 117, 115, 104, 40, 68, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 32, 61, 32, 110, 101, 119, 32, 106, 98, 40, 112, 44, 32, 68, 44, 32, 116, 114, 117, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 97, 32, 61, 32, 110, 101, 119, 32, 106, 98, 40, 112, 32, 43, 32, 34, 42, 34, 44, 32, 68, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 122, 32, 61, 32, 110, 101, 119, 32, 106, 98, 40, 112, 32, 43, 32, 34, 32, 99, 111, 110, 115, 116, 42, 34, 44, 32, 68, 44, 32, 102, 97, 108, 115, 101, 44, 32, 116, 114, 117, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 81, 97, 91, 97, 93, 32, 61, 32, 123, 32, 112, 111, 105, 110, 116, 101, 114, 84, 121, 112, 101, 58, 32, 105, 97, 44, 32, 36, 97, 58, 32, 122, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 98, 40, 103, 44, 32, 113, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 114, 44, 32, 105, 97, 44, 32, 122, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 113, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 114, 98, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 84, 40, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 93, 44, 32, 91, 97, 93, 44, 32, 40, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 104, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 32, 61, 32, 96, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 36, 123, 104, 46, 110, 97, 109, 101, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 104, 46, 120, 97, 46, 72, 97, 32, 38, 38, 32, 40, 104, 46, 120, 97, 46, 72, 97, 32, 61, 32, 91, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 104, 46, 120, 97, 46, 72, 97, 91, 98, 32, 45, 32, 49, 93, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 115, 32, 119, 105, 116, 104, 32, 105, 100, 101, 110, 116, 105, 99, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 40, 36, 123, 98, 32, 45, 32, 49, 125, 41, 32, 102, 111, 114, 32, 99, 108, 97, 115, 115, 32, 39, 36, 123, 104, 46, 110, 97, 109, 101, 125, 39, 33, 32, 79, 118, 101, 114, 108, 111, 97, 100, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 105, 115, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 111, 110, 108, 121, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 99, 111, 117, 110, 116, 44, 32, 110, 111, 116, 32, 97, 99, 116, 117, 97, 108, 32, 116, 121, 112, 101, 32, 105, 110, 102, 111, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 46, 120, 97, 46, 72, 97, 91, 98, 32, 45, 32, 49, 93, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 36, 123, 104, 46, 110, 97, 109, 101, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 93, 44, 32, 108, 44, 32, 40, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 46, 115, 112, 108, 105, 99, 101, 40, 49, 44, 32, 48, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 46, 120, 97, 46, 72, 97, 91, 98, 32, 45, 32, 49, 93, 32, 61, 32, 116, 98, 40, 110, 44, 32, 109, 44, 32, 110, 117, 108, 108, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 32, 61, 32, 114, 98, 40, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 117, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 93, 44, 32, 91, 97, 93, 44, 32, 40, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 97, 108, 108, 32, 36, 123, 117, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 109, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 117, 32, 61, 32, 96, 36, 123, 109, 46, 110, 97, 109, 101, 125, 46, 36, 123, 98, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 64, 64, 34, 41, 32, 38, 38, 32, 40, 98, 32, 61, 32, 83, 121, 109, 98, 111, 108, 91, 98, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 50, 41, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 38, 38, 32, 109, 46, 120, 97, 46, 107, 98, 46, 112, 117, 115, 104, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 118, 32, 61, 32, 109, 46, 120, 97, 46, 76, 97, 44, 32, 103, 32, 61, 32, 118, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 103, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 103, 46, 66, 97, 32, 38, 38, 32, 103, 46, 99, 108, 97, 115, 115, 78, 97, 109, 101, 32, 33, 61, 61, 32, 109, 46, 110, 97, 109, 101, 32, 38, 38, 32, 103, 46, 79, 97, 32, 61, 61, 61, 32, 99, 32, 45, 32, 50, 32, 63, 32, 40, 112, 46, 79, 97, 32, 61, 32, 99, 32, 45, 32, 50, 44, 32, 112, 46, 99, 108, 97, 115, 115, 78, 97, 109, 101, 32, 61, 32, 109, 46, 110, 97, 109, 101, 44, 32, 118, 91, 98, 93, 32, 61, 32, 112, 41, 32, 58, 32, 40, 36, 97, 40, 118, 44, 32, 98, 44, 32, 117, 41, 44, 32, 118, 91, 98, 93, 46, 66, 97, 91, 99, 32, 45, 32, 50, 93, 32, 61, 32, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 93, 44, 32, 110, 44, 32, 40, 113, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 116, 98, 40, 117, 44, 32, 113, 44, 32, 109, 44, 32, 102, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 118, 91, 98, 93, 46, 66, 97, 32, 63, 32, 40, 113, 46, 79, 97, 32, 61, 32, 99, 32, 45, 32, 50, 44, 32, 118, 91, 98, 93, 32, 61, 32, 113, 41, 32, 58, 32, 118, 91, 98, 93, 46, 66, 97, 91, 99, 32, 45, 32, 50, 93, 32, 61, 32, 113, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 88, 58, 32, 40, 97, 41, 32, 61, 62, 32, 79, 40, 97, 44, 32, 122, 98, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 46, 118, 97, 108, 117, 101, 115, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 46, 118, 97, 108, 117, 101, 115, 91, 102, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 102, 44, 32, 108, 41, 32, 61, 62, 32, 108, 46, 118, 97, 108, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 65, 98, 40, 98, 44, 32, 99, 44, 32, 100, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 40, 98, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 66, 98, 40, 97, 44, 32, 34, 101, 110, 117, 109, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 100, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 100, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 99, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 90, 97, 40, 96, 36, 123, 100, 46, 110, 97, 109, 101, 125, 95, 36, 123, 98, 125, 96, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 118, 97, 108, 117, 101, 115, 91, 99, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 100, 41, 32, 61, 62, 32, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 100, 44, 32, 101, 41, 32, 61, 62, 32, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 67, 98, 40, 98, 44, 32, 99, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 69, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 114, 98, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 81, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 117, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 84, 40, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 97, 108, 108, 32, 36, 123, 97, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 45, 32, 49, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 93, 44, 32, 108, 44, 32, 40, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 98, 40, 97, 44, 32, 116, 98, 40, 97, 44, 32, 91, 104, 91, 48, 93, 44, 32, 110, 117, 108, 108, 93, 46, 99, 111, 110, 99, 97, 116, 40, 104, 46, 115, 108, 105, 99, 101, 40, 49, 41, 41, 44, 32, 110, 117, 108, 108, 44, 32, 101, 44, 32, 102, 41, 44, 32, 98, 32, 45, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 49, 32, 61, 61, 61, 32, 101, 32, 38, 38, 32, 40, 101, 32, 61, 32, 52, 50, 57, 52, 57, 54, 55, 50, 57, 53, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 40, 104, 41, 32, 61, 62, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 61, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 51, 50, 32, 45, 32, 56, 32, 42, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 40, 104, 41, 32, 61, 62, 32, 104, 32, 60, 60, 32, 102, 32, 62, 62, 62, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 98, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 117, 110, 115, 105, 103, 110, 101, 100, 34, 41, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 104, 44, 32, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 32, 62, 62, 62, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 104, 44, 32, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 108, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 68, 98, 40, 98, 44, 32, 99, 44, 32, 48, 32, 33, 61, 61, 32, 100, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 103, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 101, 40, 121, 46, 98, 117, 102, 102, 101, 114, 44, 32, 70, 91, 102, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 44, 32, 70, 91, 102, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 91, 73, 110, 116, 56, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 44, 32, 73, 110, 116, 49, 54, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 49, 54, 65, 114, 114, 97, 121, 44, 32, 73, 110, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 70, 108, 111, 97, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 70, 108, 111, 97, 116, 54, 52, 65, 114, 114, 97, 121, 93, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 81, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 32, 110, 97, 109, 101, 58, 32, 99, 44, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 100, 44, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 100, 32, 125, 44, 32, 123, 32, 105, 98, 58, 32, 116, 114, 117, 101, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 122, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 44, 32, 112, 44, 32, 117, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 81, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 84, 40, 108, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 84, 40, 110, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 32, 61, 32, 84, 40, 112, 44, 32, 117, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 40, 91, 97, 93, 44, 32, 91, 98, 93, 44, 32, 40, 118, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 118, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 110, 101, 119, 32, 106, 98, 40, 99, 44, 32, 118, 46, 120, 97, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 116, 114, 117, 101, 44, 32, 118, 44, 32, 100, 44, 32, 102, 44, 32, 104, 44, 32, 109, 44, 32, 117, 41, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 68, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 34, 115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 34, 32, 61, 61, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 70, 91, 100, 32, 62, 62, 32, 50, 93, 44, 32, 102, 32, 61, 32, 100, 32, 43, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 108, 32, 61, 32, 102, 44, 32, 104, 32, 61, 32, 48, 59, 32, 104, 32, 60, 61, 32, 101, 59, 32, 43, 43, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 32, 61, 32, 102, 32, 43, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 32, 61, 61, 32, 101, 32, 124, 124, 32, 48, 32, 61, 61, 32, 65, 91, 110, 93, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 32, 61, 32, 108, 32, 63, 32, 74, 40, 65, 44, 32, 108, 44, 32, 110, 32, 45, 32, 108, 41, 32, 58, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 109, 41, 32, 118, 97, 114, 32, 109, 32, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 109, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 48, 41, 44, 32, 109, 32, 43, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 32, 61, 32, 110, 32, 43, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 65, 114, 114, 97, 121, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 104, 32, 61, 32, 48, 59, 32, 104, 32, 60, 32, 101, 59, 32, 43, 43, 104, 41, 32, 109, 91, 104, 93, 32, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 65, 91, 102, 32, 43, 32, 104, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 109, 46, 106, 111, 105, 110, 40, 34, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 38, 38, 32, 40, 101, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 102, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 85, 105, 110, 116, 56, 67, 108, 97, 109, 112, 101, 100, 65, 114, 114, 97, 121, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 73, 110, 116, 56, 65, 114, 114, 97, 121, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 34, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 110, 111, 110, 45, 115, 116, 114, 105, 110, 103, 32, 116, 111, 32, 115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 99, 32, 38, 38, 32, 102, 32, 63, 32, 68, 97, 40, 101, 41, 32, 58, 32, 101, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 98, 99, 40, 52, 32, 43, 32, 108, 32, 43, 32, 49, 41, 44, 32, 110, 32, 61, 32, 104, 32, 43, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 104, 32, 62, 62, 32, 50, 93, 32, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 38, 38, 32, 102, 41, 32, 69, 97, 40, 101, 44, 32, 65, 44, 32, 110, 44, 32, 108, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 108, 59, 32, 43, 43, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 101, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 53, 53, 32, 60, 32, 109, 41, 32, 116, 104, 114, 111, 119, 32, 85, 40, 110, 41, 44, 32, 110, 101, 119, 32, 82, 40, 34, 83, 116, 114, 105, 110, 103, 32, 104, 97, 115, 32, 85, 84, 70, 45, 49, 54, 32, 99, 111, 100, 101, 32, 117, 110, 105, 116, 115, 32, 116, 104, 97, 116, 32, 100, 111, 32, 110, 111, 116, 32, 102, 105, 116, 32, 105, 110, 32, 56, 32, 98, 105, 116, 115, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 91, 110, 32, 43, 32, 102, 93, 32, 61, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 102, 111, 114, 32, 40, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 108, 59, 32, 43, 43, 102, 41, 32, 65, 91, 110, 32, 43, 32, 102, 93, 32, 61, 32, 101, 91, 102, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 100, 32, 38, 38, 32, 100, 46, 112, 117, 115, 104, 40, 85, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 75, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 81, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 70, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 71, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 72, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 40, 104, 41, 32, 61, 62, 32, 67, 91, 104, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 52, 32, 61, 61, 61, 32, 98, 32, 38, 38, 32, 40, 100, 32, 61, 32, 73, 98, 44, 32, 101, 32, 61, 32, 74, 98, 44, 32, 102, 32, 61, 32, 75, 98, 44, 32, 108, 32, 61, 32, 40, 104, 41, 32, 61, 62, 32, 70, 91, 104, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 32, 61, 32, 70, 91, 104, 32, 62, 62, 32, 50, 93, 44, 32, 109, 44, 32, 112, 32, 61, 32, 104, 32, 43, 32, 52, 44, 32, 117, 32, 61, 32, 48, 59, 32, 117, 32, 60, 61, 32, 110, 59, 32, 43, 43, 117, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 118, 32, 61, 32, 104, 32, 43, 32, 52, 32, 43, 32, 117, 32, 42, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 117, 32, 61, 61, 32, 110, 32, 124, 124, 32, 48, 32, 61, 61, 32, 108, 40, 118, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 112, 32, 61, 32, 100, 40, 112, 44, 32, 118, 32, 45, 32, 112, 41, 44, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 109, 32, 63, 32, 109, 32, 61, 32, 112, 32, 58, 32, 40, 109, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 48, 41, 44, 32, 109, 32, 43, 61, 32, 112, 41, 44, 32, 112, 32, 61, 32, 118, 32, 43, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 104, 44, 32, 110, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 115, 116, 114, 105, 110, 103, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 110, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 82, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 110, 111, 110, 45, 115, 116, 114, 105, 110, 103, 32, 116, 111, 32, 67, 43, 43, 32, 115, 116, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 36, 123, 99, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 102, 40, 110, 41, 44, 32, 112, 32, 61, 32, 98, 99, 40, 52, 32, 43, 32, 109, 32, 43, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 112, 32, 62, 62, 32, 50, 93, 32, 61, 32, 109, 32, 47, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 40, 110, 44, 32, 112, 32, 43, 32, 52, 44, 32, 109, 32, 43, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 104, 32, 38, 38, 32, 104, 46, 112, 117, 115, 104, 40, 85, 44, 32, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 112, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 75, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 97, 91, 97, 93, 32, 61, 32, 123, 32, 110, 97, 109, 101, 58, 32, 81, 40, 98, 41, 44, 32, 85, 97, 58, 32, 84, 40, 99, 44, 32, 100, 41, 44, 32, 70, 97, 58, 32, 84, 40, 101, 44, 32, 102, 41, 44, 32, 89, 97, 58, 32, 91, 93, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 106, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 97, 91, 97, 93, 46, 89, 97, 46, 112, 117, 115, 104, 40, 123, 32, 98, 98, 58, 32, 81, 40, 98, 41, 44, 32, 104, 98, 58, 32, 99, 44, 32, 102, 98, 58, 32, 84, 40, 100, 44, 32, 101, 41, 44, 32, 103, 98, 58, 32, 102, 44, 32, 110, 98, 58, 32, 108, 44, 32, 109, 98, 58, 32, 84, 40, 104, 44, 32, 110, 41, 44, 32, 111, 98, 58, 32, 109, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 90, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 81, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 97, 44, 32, 123, 32, 117, 98, 58, 32, 116, 114, 117, 101, 44, 32, 110, 97, 109, 101, 58, 32, 98, 44, 32, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 58, 32, 48, 44, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 74, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 73, 110, 102, 105, 110, 105, 116, 121, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 76, 98, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 121, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 40, 110, 117, 108, 108, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 70, 58, 32, 119, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 36, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 78, 98, 40, 97, 44, 32, 98, 41, 44, 32, 101, 32, 61, 32, 100, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 45, 45, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 96, 109, 101, 116, 104, 111, 100, 67, 97, 108, 108, 101, 114, 60, 40, 36, 123, 100, 46, 109, 97, 112, 40, 40, 108, 41, 32, 61, 62, 32, 108, 46, 110, 97, 109, 101, 41, 46, 106, 111, 105, 110, 40, 34, 44, 32, 34, 41, 125, 41, 32, 61, 62, 32, 36, 123, 101, 46, 110, 97, 109, 101, 125, 62, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 77, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 90, 97, 40, 98, 44, 32, 40, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 32, 61, 32, 48, 44, 32, 117, 32, 61, 32, 48, 59, 32, 117, 32, 60, 32, 97, 59, 32, 43, 43, 117, 41, 32, 102, 91, 117, 93, 32, 61, 32, 100, 91, 117, 93, 46, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 40, 109, 32, 43, 32, 112, 41, 44, 32, 112, 32, 43, 61, 32, 100, 91, 117, 93, 46, 97, 114, 103, 80, 97, 99, 107, 65, 100, 118, 97, 110, 99, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 49, 32, 61, 61, 61, 32, 99, 32, 63, 32, 79, 98, 40, 104, 44, 32, 102, 41, 32, 58, 32, 104, 46, 97, 112, 112, 108, 121, 40, 108, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 101, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 108, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 40, 70, 91, 110, 32, 62, 62, 32, 50, 93, 32, 61, 32, 104, 98, 40, 108, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 57, 32, 60, 32, 97, 32, 38, 38, 32, 40, 86, 91, 97, 32, 43, 32, 49, 93, 32, 43, 61, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 95, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 121, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 97, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 111, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 66, 98, 40, 97, 44, 32, 34, 95, 101, 109, 118, 97, 108, 95, 116, 97, 107, 101, 95, 118, 97, 108, 117, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 104, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 87, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 97, 40, 34, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 86, 58, 32, 40, 41, 32, 61, 62, 32, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 46, 110, 111, 119, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 76, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 65, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 62, 62, 62, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 49, 52, 55, 52, 56, 51, 54, 52, 56, 32, 60, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 49, 59, 32, 52, 32, 62, 61, 32, 99, 59, 32, 99, 32, 42, 61, 32, 50, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 32, 42, 32, 40, 49, 32, 43, 32, 48, 46, 50, 32, 47, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 100, 44, 32, 97, 32, 43, 32, 49, 48, 48, 54, 54, 51, 50, 57, 54, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 77, 97, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 97, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 40, 101, 46, 109, 105, 110, 46, 99, 97, 108, 108, 40, 101, 44, 32, 50, 49, 52, 55, 52, 56, 51, 54, 52, 56, 44, 32, 100, 32, 43, 32, 40, 54, 53, 53, 51, 54, 32, 45, 32, 100, 32, 37, 32, 54, 53, 53, 51, 54, 41, 32, 37, 32, 54, 53, 53, 51, 54, 41, 32, 45, 32, 102, 97, 46, 98, 117, 102, 102, 101, 114, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 32, 43, 32, 54, 53, 53, 51, 53, 41, 32, 47, 32, 54, 53, 53, 51, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 97, 46, 103, 114, 111, 119, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 83, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 98, 40, 41, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 100, 44, 32, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 98, 32, 43, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 70, 91, 97, 32, 43, 32, 52, 32, 42, 32, 101, 32, 62, 62, 32, 50, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 100, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 102, 41, 32, 121, 91, 101, 43, 43, 93, 32, 61, 32, 100, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 121, 91, 101, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 43, 61, 32, 100, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 84, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 82, 98, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 97, 32, 62, 62, 32, 50, 93, 32, 61, 32, 99, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 41, 32, 61, 62, 32, 100, 32, 43, 61, 32, 101, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 58, 32, 40, 41, 32, 61, 62, 32, 53, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 122, 58, 32, 40, 41, 32, 61, 62, 32, 53, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 72, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 55, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 81, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 44, 32, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 99, 59, 32, 102, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 70, 91, 98, 32, 62, 62, 32, 50, 93, 44, 32, 104, 32, 61, 32, 70, 91, 98, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 32, 61, 32, 48, 59, 32, 110, 32, 60, 32, 104, 59, 32, 110, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 65, 91, 108, 32, 43, 32, 110, 93, 44, 32, 112, 32, 61, 32, 83, 98, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 109, 32, 124, 124, 32, 49, 48, 32, 61, 61, 61, 32, 109, 32, 63, 32, 40, 40, 49, 32, 61, 61, 61, 32, 97, 32, 63, 32, 101, 97, 32, 58, 32, 119, 41, 40, 74, 40, 112, 44, 32, 48, 41, 41, 44, 32, 112, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 48, 41, 32, 58, 32, 112, 46, 112, 117, 115, 104, 40, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 43, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 91, 100, 32, 62, 62, 32, 50, 93, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 85, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 98, 40, 65, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 97, 44, 32, 97, 32, 43, 32, 98, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 58, 32, 99, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 58, 32, 100, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 58, 32, 101, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 112, 58, 32, 102, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 58, 32, 103, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 58, 32, 104, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 58, 32, 105, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 58, 32, 106, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 110, 58, 32, 107, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 71, 58, 32, 108, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 75, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 90, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 87, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 97, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 87, 32, 61, 32, 99, 46, 101, 120, 112, 111, 114, 116, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 97, 32, 61, 32, 87, 46, 100, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 32, 61, 32, 87, 46, 104, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 87, 46, 101, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 45, 45, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 109, 111, 110, 105, 116, 111, 114, 82, 117, 110, 68, 101, 112, 101, 110, 100, 101, 110, 99, 105, 101, 115, 63, 46, 40, 71, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 32, 71, 32, 38, 38, 32, 40, 110, 117, 108, 108, 32, 33, 61, 61, 32, 113, 97, 32, 38, 38, 32, 40, 99, 108, 101, 97, 114, 73, 110, 116, 101, 114, 118, 97, 108, 40, 113, 97, 41, 44, 32, 113, 97, 32, 61, 32, 110, 117, 108, 108, 41, 44, 32, 72, 32, 38, 38, 32, 40, 99, 32, 61, 32, 72, 44, 32, 72, 32, 61, 32, 110, 117, 108, 108, 44, 32, 99, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 87, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 123, 32, 97, 58, 32, 109, 99, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 71, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 109, 111, 110, 105, 116, 111, 114, 82, 117, 110, 68, 101, 112, 101, 110, 100, 101, 110, 99, 105, 101, 115, 63, 46, 40, 71, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 107, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 40, 98, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 40, 96, 77, 111, 100, 117, 108, 101, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 32, 99, 97, 108, 108, 98, 97, 99, 107, 32, 102, 97, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 101, 114, 114, 111, 114, 58, 32, 36, 123, 99, 125, 96, 41, 44, 32, 98, 97, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 97, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 40, 99, 46, 105, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, 97, 116, 99, 104, 40, 98, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 125, 40, 41, 44, 32, 98, 99, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 98, 99, 32, 61, 32, 87, 46, 102, 97, 41, 40, 97, 41, 44, 32, 111, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 111, 98, 32, 61, 32, 87, 46, 103, 97, 41, 40, 97, 41, 44, 32, 85, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 85, 32, 61, 32, 87, 46, 105, 97, 41, 40, 97, 41, 44, 32, 88, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 40, 88, 32, 61, 32, 87, 46, 106, 97, 41, 40, 97, 44, 32, 98, 41, 44, 32, 89, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 89, 32, 61, 32, 87, 46, 107, 97, 41, 40, 97, 41, 44, 32, 90, 32, 61, 32, 40, 41, 32, 61, 62, 32, 40, 90, 32, 61, 32, 87, 46, 108, 97, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 106, 106, 32, 61, 32, 87, 46, 110, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 32, 61, 32, 87, 46, 111, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 105, 32, 61, 32, 87, 46, 112, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 32, 61, 32, 87, 46, 113, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 99, 32, 61, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 105, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 40, 110, 99, 32, 61, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 105, 106, 32, 61, 32, 87, 46, 114, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 106, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 106, 105, 32, 61, 32, 87, 46, 115, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 106, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 106, 105, 105, 32, 61, 32, 87, 46, 116, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 32, 61, 32, 87, 46, 117, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 87, 46, 118, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 87, 46, 119, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 108, 44, 32, 104, 44, 32, 110, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 99, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 32, 33, 61, 61, 32, 100, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 99, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 33, 61, 61, 32, 101, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 32, 33, 61, 61, 32, 102, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 99, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 33, 61, 61, 32, 101, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 99, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 32, 33, 61, 61, 32, 100, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 32, 33, 61, 61, 32, 104, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 107, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 32, 33, 61, 61, 32, 108, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 106, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 32, 33, 61, 61, 32, 102, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 99, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 33, 61, 61, 32, 99, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 32, 33, 61, 61, 32, 104, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 111, 99, 59, 10, 32, 32, 32, 32, 32, 32, 72, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 99, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 111, 99, 32, 124, 124, 32, 113, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 111, 99, 32, 124, 124, 32, 40, 72, 32, 61, 32, 112, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 113, 99, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 111, 99, 32, 38, 38, 32, 40, 111, 99, 32, 61, 32, 116, 114, 117, 101, 44, 32, 107, 46, 99, 97, 108, 108, 101, 100, 82, 117, 110, 32, 61, 32, 116, 114, 117, 101, 44, 32, 33, 104, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 121, 97, 40, 110, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 40, 107, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 111, 110, 82, 117, 110, 116, 105, 109, 101, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 41, 32, 107, 46, 111, 110, 82, 117, 110, 116, 105, 109, 101, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 111, 115, 116, 82, 117, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 32, 38, 38, 32, 40, 107, 46, 112, 111, 115, 116, 82, 117, 110, 32, 61, 32, 91, 107, 46, 112, 111, 115, 116, 82, 117, 110, 93, 41, 59, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 121, 97, 40, 111, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 48, 32, 60, 32, 71, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 114, 101, 82, 117, 110, 41, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 114, 101, 82, 117, 110, 32, 38, 38, 32, 40, 107, 46, 112, 114, 101, 82, 117, 110, 32, 61, 32, 91, 107, 46, 112, 114, 101, 82, 117, 110, 93, 41, 59, 32, 107, 46, 112, 114, 101, 82, 117, 110, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 112, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 121, 97, 40, 109, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 60, 32, 71, 32, 124, 124, 32, 40, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 32, 63, 32, 40, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 40, 34, 82, 117, 110, 110, 105, 110, 103, 46, 46, 46, 34, 41, 44, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 40, 34, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 49, 41, 41, 32, 58, 32, 97, 40, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 114, 101, 73, 110, 105, 116, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 32, 38, 38, 32, 40, 107, 46, 112, 114, 101, 73, 110, 105, 116, 32, 61, 32, 91, 107, 46, 112, 114, 101, 73, 110, 105, 116, 93, 41, 59, 32, 48, 32, 60, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 46, 112, 111, 112, 40, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 113, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 97, 100, 121, 80, 114, 111, 109, 105, 115, 101, 59, 10, 32, 32, 32, 32, 125, 59, 10, 32, 32, 125, 41, 40, 41, 59, 10, 32, 32, 118, 97, 114, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 112, 108, 97, 121, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 32, 61, 32, 99, 114, 101, 97, 116, 101, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 77, 111, 100, 117, 108, 101, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 114, 101, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 119, 97, 115, 109, 45, 108, 111, 97, 100, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 34, 82, 101, 110, 100, 101, 114, 101, 114, 76, 111, 97, 100, 101, 114, 32, 105, 115, 32, 97, 32, 115, 116, 97, 116, 105, 99, 32, 99, 108, 97, 115, 115, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 100, 46, 34, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 97, 115, 121, 110, 99, 32, 95, 116, 114, 121, 76, 111, 97, 100, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 117, 108, 101, 32, 61, 32, 97, 119, 97, 105, 116, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 112, 108, 97, 121, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 40, 123, 32, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 58, 32, 40, 41, 32, 61, 62, 32, 117, 114, 108, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 84, 114, 105, 101, 115, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 109, 111, 100, 117, 108, 101, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 112, 114, 105, 109, 97, 114, 121, 32, 85, 82, 76, 44, 32, 102, 97, 108, 108, 105, 110, 103, 32, 98, 97, 99, 107, 32, 116, 111, 32, 97, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 10, 32, 32, 32, 32, 32, 42, 32, 84, 104, 114, 111, 119, 115, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 105, 102, 32, 98, 111, 116, 104, 32, 85, 82, 76, 115, 32, 102, 97, 105, 108, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 80, 114, 111, 109, 105, 115, 101, 60, 77, 111, 100, 117, 108, 101, 62, 32, 45, 32, 65, 32, 112, 114, 111, 109, 105, 115, 101, 32, 116, 104, 97, 116, 32, 114, 101, 115, 111, 108, 118, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 111, 97, 100, 101, 100, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 97, 115, 121, 110, 99, 32, 95, 108, 111, 97, 100, 87, 105, 116, 104, 66, 97, 99, 107, 117, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 116, 114, 121, 76, 111, 97, 100, 40, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 41, 46, 99, 97, 116, 99, 104, 40, 97, 115, 121, 110, 99, 32, 40, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 97, 99, 107, 117, 112, 85, 114, 108, 32, 61, 32, 96, 104, 116, 116, 112, 115, 58, 47, 47, 117, 110, 112, 107, 103, 46, 99, 111, 109, 47, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 125, 64, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 125, 47, 100, 105, 115, 116, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 119, 97, 114, 110, 40, 96, 80, 114, 105, 109, 97, 114, 121, 32, 87, 65, 83, 77, 32, 108, 111, 97, 100, 32, 102, 97, 105, 108, 101, 100, 32, 102, 114, 111, 109, 32, 36, 123, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 125, 46, 32, 69, 114, 114, 111, 114, 58, 32, 36, 123, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 119, 97, 114, 110, 40, 96, 65, 116, 116, 101, 109, 112, 116, 105, 110, 103, 32, 116, 111, 32, 108, 111, 97, 100, 32, 87, 65, 83, 77, 32, 102, 114, 111, 109, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 58, 32, 36, 123, 98, 97, 99, 107, 117, 112, 85, 114, 108, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 119, 97, 105, 116, 32, 116, 104, 105, 115, 46, 95, 116, 114, 121, 76, 111, 97, 100, 40, 98, 97, 99, 107, 117, 112, 85, 114, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 98, 97, 99, 107, 117, 112, 69, 114, 114, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 96, 80, 114, 105, 109, 97, 114, 121, 32, 87, 65, 83, 77, 32, 85, 82, 76, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 96, 66, 97, 99, 107, 117, 112, 32, 87, 65, 83, 77, 32, 85, 82, 76, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 98, 97, 99, 107, 117, 112, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 34, 87, 65, 83, 77, 32, 108, 111, 97, 100, 105, 110, 103, 32, 102, 97, 105, 108, 101, 100, 32, 102, 114, 111, 109, 32, 97, 108, 108, 32, 115, 111, 117, 114, 99, 101, 115, 46, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 80, 117, 98, 108, 105, 99, 32, 109, 101, 116, 104, 111, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 32, 85, 116, 105, 108, 105, 122, 101, 115, 32, 97, 32, 112, 114, 105, 109, 97, 114, 121, 32, 97, 110, 100, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 32, 102, 111, 114, 32, 114, 111, 98, 117, 115, 116, 110, 101, 115, 115, 46, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 80, 114, 111, 109, 105, 115, 101, 60, 77, 111, 100, 117, 108, 101, 62, 32, 45, 32, 65, 32, 112, 114, 111, 109, 105, 115, 101, 32, 116, 104, 97, 116, 32, 114, 101, 115, 111, 108, 118, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 111, 97, 100, 101, 100, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 97, 115, 121, 110, 99, 32, 108, 111, 97, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 87, 105, 116, 104, 66, 97, 99, 107, 117, 112, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 83, 101, 116, 115, 32, 97, 32, 110, 101, 119, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 32, 97, 110, 100, 32, 105, 110, 118, 97, 108, 105, 100, 97, 116, 101, 115, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 109, 111, 100, 117, 108, 101, 32, 112, 114, 111, 109, 105, 115, 101, 46, 10, 32, 32, 32, 32, 32, 42, 10, 32, 32, 32, 32, 32, 42, 32, 64, 112, 97, 114, 97, 109, 32, 115, 116, 114, 105, 110, 103, 32, 45, 32, 32, 84, 104, 101, 32, 110, 101, 119, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 32, 61, 32, 117, 114, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 47, 47, 32, 101, 115, 108, 105, 110, 116, 45, 100, 105, 115, 97, 98, 108, 101, 45, 110, 101, 120, 116, 45, 108, 105, 110, 101, 32, 64, 116, 121, 112, 101, 115, 99, 114, 105, 112, 116, 45, 101, 115, 108, 105, 110, 116, 47, 110, 97, 109, 105, 110, 103, 45, 99, 111, 110, 118, 101, 110, 116, 105, 111, 110, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 44, 32, 34, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 47, 47, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 44, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 101, 100, 32, 117, 115, 105, 110, 103, 32, 112, 97, 99, 107, 97, 103, 101, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 44, 32, 34, 95, 119, 97, 115, 109, 85, 82, 76, 34, 44, 32, 96, 104, 116, 116, 112, 115, 58, 47, 47, 99, 100, 110, 46, 106, 115, 100, 101, 108, 105, 118, 114, 46, 110, 101, 116, 47, 110, 112, 109, 47, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 125, 64, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 125, 47, 100, 105, 115, 116, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 96, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 101, 118, 101, 110, 116, 45, 109, 97, 110, 97, 103, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 69, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 83, 101, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 115, 101, 116, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 97, 100, 100, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 100, 105, 115, 112, 97, 116, 99, 104, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 101, 118, 101, 110, 116, 46, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 63, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 61, 62, 32, 108, 105, 115, 116, 101, 110, 101, 114, 40, 101, 118, 101, 110, 116, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 65, 108, 108, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 99, 108, 101, 97, 114, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 111, 102, 102, 115, 99, 114, 101, 101, 110, 45, 111, 98, 115, 101, 114, 118, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 67, 97, 108, 108, 98, 97, 99, 107, 32, 61, 32, 40, 101, 110, 116, 114, 105, 101, 115, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 110, 116, 114, 105, 101, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 110, 116, 114, 121, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 103, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 110, 116, 114, 121, 46, 105, 115, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 110, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 40, 105, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 67, 97, 108, 108, 98, 97, 99, 107, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 58, 32, 48, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 104, 97, 115, 40, 99, 97, 110, 118, 97, 115, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 100, 101, 108, 101, 116, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 114, 101, 115, 105, 122, 101, 45, 111, 98, 115, 101, 114, 118, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 82, 69, 83, 73, 90, 69, 95, 68, 69, 66, 79, 85, 78, 67, 69, 95, 84, 73, 77, 69, 32, 61, 32, 49, 48, 48, 59, 10, 32, 32, 118, 97, 114, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 105, 122, 101, 72, 97, 110, 100, 108, 101, 114, 32, 61, 32, 40, 101, 110, 116, 114, 105, 101, 115, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 110, 116, 114, 105, 101, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 110, 116, 114, 121, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 108, 101, 109, 101, 110, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 103, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 101, 108, 101, 109, 101, 110, 116, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 105, 109, 101, 111, 117, 116, 93, 32, 61, 32, 101, 108, 101, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, 116, 105, 109, 101, 111, 117, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 110, 101, 119, 84, 105, 109, 101, 111, 117, 116, 32, 61, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 82, 69, 83, 73, 90, 69, 95, 68, 69, 66, 79, 85, 78, 67, 69, 95, 84, 73, 77, 69, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 44, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 110, 101, 119, 84, 105, 109, 101, 111, 117, 116, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 101, 119, 32, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 114, 101, 115, 105, 122, 101, 72, 97, 110, 100, 108, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 104, 97, 115, 40, 99, 97, 110, 118, 97, 115, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 99, 97, 110, 118, 97, 115, 44, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 48, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 100, 101, 108, 101, 116, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 63, 46, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 117, 116, 105, 108, 115, 46, 116, 115, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 72, 101, 120, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 47, 94, 35, 40, 91, 92, 100, 97, 45, 102, 93, 123, 54, 125, 124, 91, 92, 100, 97, 45, 102, 93, 123, 56, 125, 41, 36, 47, 105, 117, 46, 116, 101, 115, 116, 40, 99, 111, 108, 111, 114, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 101, 120, 83, 116, 114, 105, 110, 103, 84, 111, 82, 71, 66, 65, 73, 110, 116, 40, 99, 111, 108, 111, 114, 72, 101, 120, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 72, 101, 120, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 72, 101, 120, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 101, 116, 32, 104, 101, 120, 32, 61, 32, 99, 111, 108, 111, 114, 72, 101, 120, 46, 114, 101, 112, 108, 97, 99, 101, 40, 34, 35, 34, 44, 32, 34, 34, 41, 59, 10, 32, 32, 32, 32, 104, 101, 120, 32, 61, 32, 104, 101, 120, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 54, 32, 63, 32, 96, 36, 123, 104, 101, 120, 125, 102, 102, 96, 32, 58, 32, 104, 101, 120, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 104, 101, 120, 44, 32, 49, 54, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 102, 105, 108, 101, 68, 97, 116, 97, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 32, 60, 32, 52, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 105, 108, 101, 83, 105, 103, 110, 97, 116, 117, 114, 101, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 102, 105, 108, 101, 68, 97, 116, 97, 46, 115, 108, 105, 99, 101, 40, 48, 44, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 41, 41, 59, 10, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 91, 105, 93, 32, 33, 61, 61, 32, 102, 105, 108, 101, 83, 105, 103, 110, 97, 116, 117, 114, 101, 91, 105, 93, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 106, 115, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 76, 79, 84, 84, 73, 69, 95, 74, 83, 79, 78, 95, 77, 65, 78, 68, 65, 84, 79, 82, 89, 95, 70, 73, 69, 76, 68, 83, 46, 101, 118, 101, 114, 121, 40, 40, 102, 105, 101, 108, 100, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 97, 108, 108, 40, 106, 115, 111, 110, 44, 32, 102, 105, 101, 108, 100, 41, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 102, 105, 108, 101, 68, 97, 116, 97, 32, 61, 61, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 74, 83, 79, 78, 46, 112, 97, 114, 115, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 95, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 112, 114, 32, 61, 32, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 63, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 58, 32, 49, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 49, 32, 43, 32, 40, 100, 112, 114, 32, 45, 32, 49, 41, 32, 42, 32, 68, 69, 70, 65, 85, 76, 84, 95, 68, 80, 82, 95, 70, 65, 67, 84, 79, 82, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 69, 108, 101, 109, 101, 110, 116, 73, 110, 86, 105, 101, 119, 112, 111, 114, 116, 40, 101, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 99, 116, 32, 61, 32, 101, 108, 101, 109, 101, 110, 116, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 99, 116, 46, 116, 111, 112, 32, 62, 61, 32, 48, 32, 38, 38, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 32, 62, 61, 32, 48, 32, 38, 38, 32, 114, 101, 99, 116, 46, 98, 111, 116, 116, 111, 109, 32, 60, 61, 32, 40, 119, 105, 110, 100, 111, 119, 46, 105, 110, 110, 101, 114, 72, 101, 105, 103, 104, 116, 32, 124, 124, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, 108, 101, 109, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 41, 32, 38, 38, 32, 114, 101, 99, 116, 46, 114, 105, 103, 104, 116, 32, 60, 61, 32, 40, 119, 105, 110, 100, 111, 119, 46, 105, 110, 110, 101, 114, 87, 105, 100, 116, 104, 32, 124, 124, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, 108, 101, 109, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 41, 59, 10, 32, 32, 125, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 32, 61, 32, 40, 109, 111, 100, 101, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 114, 101, 118, 101, 114, 115, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 98, 111, 117, 110, 99, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 66, 111, 117, 110, 99, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 114, 101, 118, 101, 114, 115, 101, 45, 98, 111, 117, 110, 99, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 66, 111, 117, 110, 99, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 70, 111, 114, 119, 97, 114, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 32, 61, 32, 40, 102, 105, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 67, 111, 110, 116, 97, 105, 110, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 99, 111, 118, 101, 114, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 67, 111, 118, 101, 114, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 108, 108, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 108, 108, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 116, 45, 104, 101, 105, 103, 104, 116, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 116, 72, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 116, 45, 119, 105, 100, 116, 104, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 116, 87, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 78, 111, 110, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 32, 61, 32, 40, 97, 108, 105, 103, 110, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 86, 101, 99, 116, 111, 114, 70, 108, 111, 97, 116, 40, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 97, 108, 105, 103, 110, 91, 48, 93, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 97, 108, 105, 103, 110, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 32, 61, 32, 40, 115, 101, 103, 109, 101, 110, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 86, 101, 99, 116, 111, 114, 70, 108, 111, 97, 116, 40, 41, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 115, 101, 103, 109, 101, 110, 116, 46, 108, 101, 110, 103, 116, 104, 32, 33, 61, 61, 32, 50, 41, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 115, 101, 103, 109, 101, 110, 116, 91, 48, 93, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 115, 101, 103, 109, 101, 110, 116, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 61, 32, 99, 108, 97, 115, 115, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 99, 97, 110, 118, 97, 115, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 99, 111, 110, 116, 101, 120, 116, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 34, 44, 32, 123, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 105, 115, 70, 114, 111, 122, 101, 110, 34, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 99, 97, 110, 118, 97, 115, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 67, 111, 110, 116, 101, 120, 116, 40, 34, 50, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 110, 101, 119, 32, 69, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 110, 101, 119, 32, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 58, 32, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 63, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 105, 115, 32, 116, 114, 117, 101, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 32, 116, 111, 32, 112, 114, 101, 118, 101, 110, 116, 32, 117, 110, 110, 101, 99, 101, 115, 115, 97, 114, 121, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 119, 104, 101, 110, 32, 116, 104, 101, 32, 99, 97, 110, 118, 97, 115, 32, 105, 115, 32, 111, 102, 102, 115, 99, 114, 101, 101, 110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 58, 32, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 63, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 63, 63, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 46, 108, 111, 97, 100, 40, 41, 46, 116, 104, 101, 110, 40, 40, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 32, 109, 111, 100, 117, 108, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 99, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 112, 108, 97, 121, 32, 63, 63, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 48, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 111, 111, 112, 32, 63, 63, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 99, 111, 110, 102, 105, 103, 46, 109, 111, 100, 101, 32, 63, 63, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 99, 111, 110, 102, 105, 103, 46, 115, 101, 103, 109, 101, 110, 116, 32, 63, 63, 32, 91, 93, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 99, 111, 110, 102, 105, 103, 46, 115, 112, 101, 101, 100, 32, 63, 63, 32, 49, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 99, 111, 110, 102, 105, 103, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 63, 63, 32, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 99, 111, 110, 102, 105, 103, 46, 109, 97, 114, 107, 101, 114, 32, 63, 63, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 32, 63, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 109, 111, 100, 117, 108, 101, 46, 99, 114, 101, 97, 116, 101, 68, 101, 102, 97, 117, 108, 116, 76, 97, 121, 111, 117, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 114, 101, 97, 100, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, 97, 116, 99, 104, 40, 40, 101, 114, 114, 111, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 119, 97, 115, 109, 32, 109, 111, 100, 117, 108, 101, 58, 32, 36, 123, 101, 114, 114, 111, 114, 125, 96, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 85, 112, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 76, 101, 97, 118, 101, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 115, 121, 110, 99, 32, 95, 102, 101, 116, 99, 104, 68, 97, 116, 97, 40, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 97, 119, 97, 105, 116, 32, 102, 101, 116, 99, 104, 40, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 114, 101, 115, 112, 111, 110, 115, 101, 46, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 101, 116, 99, 104, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 85, 82, 76, 58, 32, 36, 123, 115, 114, 99, 125, 46, 32, 36, 123, 114, 101, 115, 112, 111, 110, 115, 101, 46, 115, 116, 97, 116, 117, 115, 125, 58, 32, 36, 123, 114, 101, 115, 112, 111, 110, 115, 101, 46, 115, 116, 97, 116, 117, 115, 84, 101, 120, 116, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 97, 116, 97, 32, 61, 32, 97, 119, 97, 105, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 46, 97, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 41, 46, 100, 101, 99, 111, 100, 101, 40, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 32, 61, 61, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 115, 116, 114, 105, 110, 103, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 68, 97, 116, 97, 40, 100, 97, 116, 97, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 100, 97, 116, 97, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 68, 111, 116, 76, 111, 116, 116, 105, 101, 68, 97, 116, 97, 40, 100, 97, 116, 97, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 32, 61, 61, 61, 32, 34, 111, 98, 106, 101, 99, 116, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 111, 98, 106, 101, 99, 116, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 68, 97, 116, 97, 40, 74, 83, 79, 78, 46, 115, 116, 114, 105, 110, 103, 105, 102, 121, 40, 100, 97, 116, 97, 41, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 85, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 46, 32, 69, 120, 112, 101, 99, 116, 101, 100, 58, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 115, 116, 114, 105, 110, 103, 32, 40, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 40, 100, 111, 116, 76, 111, 116, 116, 105, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 111, 98, 106, 101, 99, 116, 32, 40, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 41, 46, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 99, 101, 105, 118, 101, 100, 58, 32, 36, 123, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 97, 117, 116, 111, 112, 108, 97, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 108, 97, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 34, 115, 111, 109, 101, 116, 104, 105, 110, 103, 32, 119, 101, 110, 116, 32, 119, 114, 111, 110, 103, 44, 32, 116, 104, 101, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 119, 97, 115, 32, 115, 117, 112, 112, 111, 115, 101, 32, 116, 111, 32, 97, 117, 116, 111, 112, 108, 97, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 82, 101, 115, 105, 122, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 34, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 101, 116, 99, 104, 68, 97, 116, 97, 40, 115, 114, 99, 41, 46, 116, 104, 101, 110, 40, 40, 100, 97, 116, 97, 41, 32, 61, 62, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 100, 97, 116, 97, 41, 41, 46, 99, 97, 116, 99, 104, 40, 40, 101, 114, 114, 111, 114, 41, 32, 61, 62, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 85, 82, 76, 58, 32, 36, 123, 115, 114, 99, 125, 46, 32, 36, 123, 101, 114, 114, 111, 114, 125, 96, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 97, 121, 111, 117, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 97, 121, 111, 117, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 97, 121, 111, 117, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 97, 121, 111, 117, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 91, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 46, 103, 101, 116, 40, 48, 41, 44, 32, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 46, 103, 101, 116, 40, 49, 41, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 67, 111, 110, 116, 97, 105, 110, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 67, 111, 118, 101, 114, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 118, 101, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 70, 105, 108, 108, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 108, 108, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 70, 105, 116, 72, 101, 105, 103, 104, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 116, 45, 104, 101, 105, 103, 104, 116, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 70, 105, 116, 87, 105, 100, 116, 104, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 116, 45, 119, 105, 100, 116, 104, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 70, 105, 116, 46, 78, 111, 110, 101, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 110, 111, 110, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 97, 114, 107, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 109, 97, 110, 105, 102, 101, 115, 116, 83, 116, 114, 105, 110, 103, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 33, 109, 97, 110, 105, 102, 101, 115, 116, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 32, 61, 32, 74, 83, 79, 78, 46, 112, 97, 114, 115, 101, 40, 109, 97, 110, 105, 102, 101, 115, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 41, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 95, 101, 114, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 101, 103, 109, 101, 110, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 101, 103, 109, 101, 110, 116, 32, 38, 38, 32, 115, 101, 103, 109, 101, 110, 116, 46, 115, 105, 122, 101, 40, 41, 32, 61, 61, 61, 32, 50, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 115, 101, 103, 109, 101, 110, 116, 46, 103, 101, 116, 40, 48, 41, 44, 32, 115, 101, 103, 109, 101, 110, 116, 46, 103, 101, 116, 40, 49, 41, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 111, 111, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 111, 100, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 109, 111, 100, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 114, 101, 118, 101, 114, 115, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 77, 111, 100, 101, 46, 66, 111, 117, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 98, 111, 117, 110, 99, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 63, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 66, 111, 117, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 114, 101, 118, 101, 114, 115, 101, 45, 98, 111, 117, 110, 99, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 70, 114, 111, 122, 101, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 63, 63, 32, 34, 34, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 117, 116, 111, 112, 108, 97, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 97, 117, 116, 111, 112, 108, 97, 121, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 112, 101, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 115, 112, 101, 101, 100, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 82, 101, 97, 100, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 33, 61, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 76, 111, 97, 100, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 105, 115, 76, 111, 97, 100, 101, 100, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 83, 116, 111, 112, 112, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 105, 115, 83, 116, 111, 112, 112, 101, 100, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 100, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 100, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 99, 97, 110, 118, 97, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 99, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 112, 108, 97, 121, 32, 63, 63, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 48, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 111, 111, 112, 32, 63, 63, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 99, 111, 110, 102, 105, 103, 46, 109, 111, 100, 101, 32, 63, 63, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 99, 111, 110, 102, 105, 103, 46, 115, 101, 103, 109, 101, 110, 116, 32, 63, 63, 32, 91, 93, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 99, 111, 110, 102, 105, 103, 46, 115, 112, 101, 101, 100, 32, 63, 63, 32, 49, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 99, 111, 110, 102, 105, 103, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 63, 63, 32, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 99, 111, 110, 102, 105, 103, 46, 109, 97, 114, 107, 101, 114, 32, 63, 63, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 32, 63, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 46, 99, 114, 101, 97, 116, 101, 68, 101, 102, 97, 117, 108, 116, 76, 97, 121, 111, 117, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 63, 63, 32, 34, 34, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 114, 101, 110, 100, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 114, 101, 110, 100, 101, 114, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 117, 102, 102, 101, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 98, 117, 102, 102, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 67, 108, 97, 109, 112, 101, 100, 65, 114, 114, 97, 121, 40, 98, 117, 102, 102, 101, 114, 44, 32, 48, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 42, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 42, 32, 52, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 73, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 46, 99, 114, 101, 97, 116, 101, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 46, 100, 97, 116, 97, 46, 115, 101, 116, 40, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 110, 101, 119, 32, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 46, 112, 117, 116, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 105, 109, 97, 103, 101, 68, 97, 116, 97, 44, 32, 48, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 114, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 100, 114, 97, 119, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 110, 101, 120, 116, 70, 114, 97, 109, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 113, 117, 101, 115, 116, 70, 114, 97, 109, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 112, 100, 97, 116, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 70, 114, 97, 109, 101, 40, 110, 101, 120, 116, 70, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 117, 112, 100, 97, 116, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 114, 101, 110, 100, 101, 114, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 67, 111, 109, 112, 108, 101, 116, 101, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 67, 111, 117, 110, 116, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 108, 97, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 108, 97, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 38, 38, 32, 33, 105, 115, 69, 108, 101, 109, 101, 110, 116, 73, 110, 86, 105, 101, 119, 112, 111, 114, 116, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 97, 117, 115, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 97, 117, 115, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 111, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 116, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 115, 116, 111, 112, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 70, 114, 97, 109, 101, 40, 102, 114, 97, 109, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 114, 97, 109, 101, 32, 60, 32, 48, 32, 124, 124, 32, 102, 114, 97, 109, 101, 32, 62, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 101, 107, 40, 102, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 112, 101, 101, 100, 40, 115, 112, 101, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 104, 101, 120, 83, 116, 114, 105, 110, 103, 84, 111, 82, 71, 66, 65, 73, 110, 116, 40, 99, 111, 108, 111, 114, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 76, 111, 111, 112, 40, 108, 111, 111, 112, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 108, 111, 111, 112, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 100, 101, 108, 101, 116, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 100, 101, 115, 116, 114, 111, 121, 34, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 109, 111, 118, 101, 65, 108, 108, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 101, 101, 122, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 33, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 117, 110, 102, 114, 101, 101, 122, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 115, 105, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 124, 124, 32, 33, 116, 104, 105, 115, 46, 105, 115, 76, 111, 97, 100, 101, 100, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 112, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 104, 101, 105, 103, 104, 116, 58, 32, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 44, 32, 119, 105, 100, 116, 104, 58, 32, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 32, 42, 32, 100, 112, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 32, 42, 32, 100, 112, 114, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 115, 105, 122, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 40, 115, 116, 97, 114, 116, 70, 114, 97, 109, 101, 44, 32, 101, 110, 100, 70, 114, 97, 109, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 91, 115, 116, 97, 114, 116, 70, 114, 97, 109, 101, 44, 32, 101, 110, 100, 70, 114, 97, 109, 101, 93, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 77, 111, 100, 101, 40, 109, 111, 100, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 109, 111, 100, 101, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 44, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 44, 32, 46, 46, 46, 114, 101, 115, 116, 67, 111, 110, 102, 105, 103, 32, 125, 32, 61, 32, 99, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 114, 101, 115, 116, 67, 111, 110, 102, 105, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 105, 115, 32, 97, 32, 115, 112, 101, 99, 105, 97, 108, 32, 99, 97, 115, 101, 44, 32, 105, 116, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 105, 102, 32, 105, 116, 39, 115, 32, 110, 111, 116, 32, 112, 114, 111, 118, 105, 100, 101, 100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 58, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 58, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 63, 63, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 82, 101, 115, 105, 122, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 32, 61, 61, 61, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 58, 36, 123, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 125, 96, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 109, 97, 114, 107, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 109, 97, 114, 107, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 97, 114, 107, 101, 114, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 109, 97, 114, 107, 101, 114, 115, 46, 115, 105, 122, 101, 40, 41, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 109, 97, 114, 107, 101, 114, 115, 46, 103, 101, 116, 40, 105, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 46, 112, 117, 115, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 109, 97, 114, 107, 101, 114, 46, 110, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 105, 109, 101, 58, 32, 109, 97, 114, 107, 101, 114, 46, 116, 105, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 117, 114, 97, 116, 105, 111, 110, 58, 32, 109, 97, 114, 107, 101, 114, 46, 100, 117, 114, 97, 116, 105, 111, 110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 115, 117, 108, 116, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 111, 97, 100, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 111, 97, 100, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 108, 97, 121, 111, 117, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 46, 46, 46, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 46, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 114, 116, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 116, 97, 114, 116, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 101, 116, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 115, 116, 97, 114, 116, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 111, 112, 112, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 116, 111, 112, 112, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 115, 116, 111, 112, 112, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 99, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 99, 97, 108, 101, 88, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 47, 32, 114, 101, 99, 116, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 99, 97, 108, 101, 89, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 47, 32, 114, 101, 99, 116, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 40, 101, 118, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 41, 32, 42, 32, 115, 99, 97, 108, 101, 88, 32, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 40, 101, 118, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 41, 32, 42, 32, 115, 99, 97, 108, 101, 89, 32, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 85, 112, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 96, 79, 110, 80, 111, 105, 110, 116, 101, 114, 85, 112, 58, 32, 36, 123, 120, 125, 32, 36, 123, 121, 125, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 96, 79, 110, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 58, 32, 36, 123, 120, 125, 32, 36, 123, 121, 125, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 96, 79, 110, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 58, 32, 36, 123, 120, 125, 32, 36, 123, 121, 125, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 96, 79, 110, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 58, 32, 36, 123, 120, 125, 32, 36, 123, 121, 125, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 76, 101, 97, 118, 101, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 96, 79, 110, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 58, 32, 36, 123, 120, 125, 32, 36, 123, 121, 125, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 34, 79, 110, 67, 111, 109, 112, 108, 101, 116, 101, 34, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 64, 101, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 10, 32, 32, 32, 32, 32, 42, 32, 64, 112, 97, 114, 97, 109, 32, 101, 118, 101, 110, 116, 32, 45, 32, 84, 104, 101, 32, 101, 118, 101, 110, 116, 32, 116, 111, 32, 98, 101, 32, 112, 111, 115, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 115, 116, 97, 116, 101, 32, 109, 97, 99, 104, 105, 110, 101, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 98, 111, 111, 108, 101, 97, 110, 32, 45, 32, 116, 114, 117, 101, 32, 105, 102, 32, 116, 104, 101, 32, 101, 118, 101, 110, 116, 32, 119, 97, 115, 32, 112, 111, 115, 116, 101, 100, 32, 115, 117, 99, 99, 101, 115, 115, 102, 117, 108, 108, 121, 44, 32, 102, 97, 108, 115, 101, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 112, 111, 115, 116, 69, 118, 101, 110, 116, 80, 97, 121, 108, 111, 97, 100, 40, 101, 118, 101, 110, 116, 41, 32, 63, 63, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 114, 116, 32, 61, 61, 61, 32, 50, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 114, 116, 32, 61, 61, 61, 32, 51, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 97, 117, 115, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 114, 116, 32, 61, 61, 61, 32, 52, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 116, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 70, 114, 97, 109, 101, 119, 111, 114, 107, 83, 101, 116, 117, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 46, 115, 105, 122, 101, 40, 41, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 112, 117, 115, 104, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 46, 103, 101, 116, 40, 105, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 115, 101, 116, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 33, 61, 61, 32, 110, 117, 108, 108, 32, 38, 38, 32, 116, 104, 105, 115, 46, 105, 115, 76, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 85, 112, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 117, 112, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 100, 111, 119, 110, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 109, 111, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 101, 110, 116, 101, 114, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 67, 111, 109, 112, 108, 101, 116, 101, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 117, 112, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 100, 111, 119, 110, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 109, 111, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 101, 110, 116, 101, 114, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 46, 103, 101, 116, 40, 48, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 46, 103, 101, 116, 40, 49, 41, 32, 63, 63, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 105, 100, 116, 104, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 101, 105, 103, 104, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 66, 111, 111, 108, 101, 97, 110, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 66, 111, 111, 108, 101, 97, 110, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 78, 117, 109, 101, 114, 105, 99, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 78, 117, 109, 101, 114, 105, 99, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 83, 116, 114, 105, 110, 103, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 63, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 83, 116, 114, 105, 110, 103, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 63, 63, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 44, 32, 34, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 118, 97, 114, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 119, 111, 114, 107, 101, 114, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 46, 119, 111, 114, 107, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 32, 61, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 59, 10, 32, 32, 118, 97, 114, 32, 101, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 77, 97, 112, 32, 61, 32, 123, 10, 32, 32, 32, 32, 114, 101, 97, 100, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 82, 101, 97, 100, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 99, 111, 109, 112, 108, 101, 116, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 97, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 97, 100, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 111, 112, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 111, 112, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 111, 112, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 108, 97, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 112, 108, 97, 121, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 80, 108, 97, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 112, 108, 97, 121, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 112, 97, 117, 115, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 80, 97, 117, 115, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 112, 97, 117, 115, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 111, 112, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 83, 116, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 115, 116, 111, 112, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 97, 109, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 97, 109, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 70, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 102, 114, 97, 109, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 114, 101, 110, 100, 101, 114, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 82, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 114, 101, 110, 100, 101, 114, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 70, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 110, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 85, 110, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 117, 110, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 101, 115, 116, 114, 111, 121, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 68, 101, 115, 116, 114, 111, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 100, 101, 115, 116, 114, 111, 121, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 61, 32, 123, 10, 32, 32, 32, 32, 103, 101, 116, 68, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 83, 116, 97, 116, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 76, 111, 97, 100, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 76, 111, 97, 100, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 80, 97, 117, 115, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 80, 97, 117, 115, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 80, 108, 97, 121, 105, 110, 103, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 83, 116, 111, 112, 112, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 83, 116, 111, 112, 112, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 70, 114, 111, 122, 101, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 70, 114, 111, 122, 101, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 111, 112, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 111, 100, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 112, 101, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 117, 114, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 100, 117, 114, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 114, 107, 101, 114, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 115, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 114, 107, 101, 114, 115, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 117, 116, 111, 112, 108, 97, 121, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 103, 109, 101, 110, 116, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 97, 121, 111, 117, 116, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 82, 101, 97, 100, 121, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 82, 101, 97, 100, 121, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 110, 105, 102, 101, 115, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 110, 105, 102, 101, 115, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 116, 97, 116, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 97, 121, 111, 117, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 108, 97, 121, 111, 117, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 108, 97, 121, 111, 117, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 118, 101, 110, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 69, 118, 101, 110, 116, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 99, 114, 101, 97, 116, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 99, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 104, 97, 115, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 97, 108, 114, 101, 97, 100, 121, 32, 101, 120, 105, 115, 116, 115, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 110, 101, 119, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 99, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 115, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 32, 105, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 118, 101, 110, 116, 115, 32, 61, 32, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 97, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 112, 97, 117, 115, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 112, 108, 97, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 115, 116, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 100, 101, 115, 116, 114, 111, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 117, 110, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 114, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 114, 101, 97, 100, 121, 34, 10, 32, 32, 32, 32, 32, 32, 93, 59, 10, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 101, 118, 101, 110, 116, 44, 32, 101, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 77, 97, 112, 91, 101, 118, 101, 110, 116, 93, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 100, 101, 115, 116, 114, 111, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 100, 101, 108, 101, 116, 101, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 99, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 40, 99, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 116, 104, 101, 109, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 116, 104, 101, 109, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 116, 104, 101, 109, 101, 68, 97, 116, 97, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 116, 104, 101, 109, 101, 68, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 97, 117, 115, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 108, 97, 121, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 114, 101, 115, 105, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 70, 114, 97, 109, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 97, 109, 101, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 102, 114, 97, 109, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 70, 114, 97, 109, 101, 40, 102, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 77, 111, 100, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 101, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 109, 111, 100, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 77, 111, 100, 101, 40, 109, 111, 100, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 40, 115, 101, 103, 109, 101, 110, 116, 91, 48, 93, 44, 32, 115, 101, 103, 109, 101, 110, 116, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 83, 112, 101, 101, 100, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 112, 101, 101, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 112, 101, 101, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 83, 112, 101, 101, 100, 40, 115, 112, 101, 101, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 117, 114, 108, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 109, 97, 114, 107, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 76, 111, 111, 112, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 111, 112, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 108, 111, 111, 112, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 76, 111, 111, 112, 40, 108, 111, 111, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 120, 101, 99, 117, 116, 101, 67, 111, 109, 109, 97, 110, 100, 40, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 101, 116, 104, 111, 100, 32, 61, 32, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 46, 109, 101, 116, 104, 111, 100, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 91, 109, 101, 116, 104, 111, 100, 93, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 91, 109, 101, 116, 104, 111, 100, 93, 40, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 41, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 77, 101, 116, 104, 111, 100, 32, 36, 123, 109, 101, 116, 104, 111, 100, 125, 32, 105, 115, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 10, 32, 32, 115, 101, 108, 102, 46, 111, 110, 109, 101, 115, 115, 97, 103, 101, 32, 61, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 101, 120, 101, 99, 117, 116, 101, 67, 111, 109, 109, 97, 110, 100, 40, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 105, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 109, 101, 116, 104, 111, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 114, 114, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 114, 114, 111, 114, 82, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 105, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 109, 101, 116, 104, 111, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 101, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 101, 114, 114, 111, 114, 82, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 100, 117, 109, 109, 121, 32, 61, 32, 34, 34, 59, 10, 32, 32, 118, 97, 114, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 119, 111, 114, 107, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 32, 61, 32, 100, 117, 109, 109, 121, 59, 10, 125, 41, 40, 41, 59, 10])], { type: \"application/javascript\" }), r = URL.createObjectURL(n), c = new Worker(r);\n return URL.revokeObjectURL(r), c;\n }\n};\nvar Z2 = l2;\nvar k1 = class {\n constructor() {\n m(this, \"_workers\", /* @__PURE__ */ new Map());\n m(this, \"_animationWorkerMap\", /* @__PURE__ */ new Map());\n }\n getWorker(n) {\n return this._workers.has(n) || this._workers.set(n, new Z2()), this._workers.get(n);\n }\n assignAnimationToWorker(n, r) {\n this._animationWorkerMap.set(n, r);\n }\n unassignAnimationFromWorker(n) {\n this._animationWorkerMap.delete(n);\n }\n sendMessage(n, r, c) {\n this.getWorker(n).postMessage(r, c || []);\n }\n terminateWorker(n) {\n let r = this._workers.get(n);\n r && (r.terminate(), this._workers.delete(n));\n }\n};\nfunction Q2(f) {\n if (f instanceof OffscreenCanvas)\n return { width: f.width, height: f.height };\n let { height: n, width: r } = f.getBoundingClientRect();\n return { width: r * window.devicePixelRatio, height: n * window.devicePixelRatio };\n}\nfunction e3() {\n return Date.now().toString(36) + Math.random().toString(36).substr(2, 9);\n}\nvar N = class N2 {\n constructor(n) {\n m(this, \"_eventManager\", new o1());\n m(this, \"_id\");\n m(this, \"_worker\");\n m(this, \"_canvas\");\n m(this, \"_dotLottieInstanceState\", { markers: [], autoplay: false, backgroundColor: \"\", currentFrame: 0, duration: 0, loop: false, mode: \"forward\", segment: [0, 0], segmentDuration: 0, speed: 1, totalFrames: 0, isLoaded: false, isPlaying: false, isPaused: false, isStopped: true, isFrozen: false, useFrameInterpolation: false, renderConfig: { devicePixelRatio: e1() }, activeAnimationId: \"\", activeThemeId: \"\", layout: void 0, marker: void 0, isReady: false, manifest: null });\n m(this, \"_created\", false);\n m(this, \"_pointerUpMethod\");\n m(this, \"_pointerDownMethod\");\n m(this, \"_pointerMoveMethod\");\n m(this, \"_pointerEnterMethod\");\n m(this, \"_pointerExitMethod\");\n m(this, \"_onCompleteMethod\");\n this._canvas = n.canvas, this._id = `dotlottie-${e3()}`;\n let r = n.workerId || \"defaultWorker\";\n this._worker = N2._workerManager.getWorker(r), N2._workerManager.assignAnimationToWorker(this._id, r), N2._wasmUrl && this._sendMessage(\"setWasmUrl\", { url: N2._wasmUrl }), this._create({ ...n, renderConfig: { ...n.renderConfig, devicePixelRatio: n.renderConfig?.devicePixelRatio || e1(), freezeOnOffscreen: n.renderConfig?.freezeOnOffscreen ?? true } }), this._worker.addEventListener(\"message\", this._handleWorkerEvent.bind(this)), this._pointerUpMethod = this._onPointerUp.bind(this), this._pointerDownMethod = this._onPointerDown.bind(this), this._pointerMoveMethod = this._onPointerMove.bind(this), this._pointerEnterMethod = this._onPointerEnter.bind(this), this._pointerExitMethod = this._onPointerLeave.bind(this), this._onCompleteMethod = this._onComplete.bind(this);\n }\n async _handleWorkerEvent(n) {\n let r = n.data;\n r.id || (r.method === \"onLoad\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event), I && this._canvas instanceof HTMLCanvasElement && (this._dotLottieInstanceState.renderConfig.freezeOnOffscreen && A.observe(this._canvas, this), this._dotLottieInstanceState.renderConfig.autoResize && k.observe(this._canvas, this))), r.method === \"onComplete\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onDestroy\" && r.result.instanceId === this._id && this._eventManager.dispatch(r.result.event), r.method === \"onUnfreeze\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._dotLottieInstanceState.isFrozen = false, this._eventManager.dispatch(r.result.event)), r.method === \"onFrame\" && r.result.instanceId === this._id && (this._dotLottieInstanceState.currentFrame = r.result.event.currentFrame, this._eventManager.dispatch(r.result.event)), r.method === \"onRender\" && r.result.instanceId === this._id && this._eventManager.dispatch(r.result.event), r.method === \"onFreeze\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onPause\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onPlay\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onStop\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onLoadError\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)), r.method === \"onReady\" && r.result.instanceId === this._id && (await this._updateDotLottieInstanceState(), this._eventManager.dispatch(r.result.event)));\n }\n async _create(n) {\n let r;\n this._canvas instanceof HTMLCanvasElement ? r = this._canvas.transferControlToOffscreen() : r = this._canvas;\n let { instanceId: c } = await this._sendMessage(\"create\", { instanceId: this._id, config: { ...n, canvas: r }, ...Q2(this._canvas) }, [r]);\n if (c !== this._id)\n throw new Error(\"Instance ID mismatch\");\n this._created = true, await this._updateDotLottieInstanceState();\n }\n get isLoaded() {\n return this._dotLottieInstanceState.isLoaded;\n }\n get isPlaying() {\n return this._dotLottieInstanceState.isPlaying;\n }\n get isPaused() {\n return this._dotLottieInstanceState.isPaused;\n }\n get isStopped() {\n return this._dotLottieInstanceState.isStopped;\n }\n get currentFrame() {\n return this._dotLottieInstanceState.currentFrame;\n }\n get isFrozen() {\n return this._dotLottieInstanceState.isFrozen;\n }\n get segmentDuration() {\n return this._dotLottieInstanceState.segmentDuration;\n }\n get totalFrames() {\n return this._dotLottieInstanceState.totalFrames;\n }\n get segment() {\n return this._dotLottieInstanceState.segment;\n }\n get speed() {\n return this._dotLottieInstanceState.speed;\n }\n get duration() {\n return this._dotLottieInstanceState.duration;\n }\n get isReady() {\n return this._dotLottieInstanceState.isReady;\n }\n get mode() {\n return this._dotLottieInstanceState.mode;\n }\n get canvas() {\n return this._canvas;\n }\n get autoplay() {\n return this._dotLottieInstanceState.autoplay;\n }\n get backgroundColor() {\n return this._dotLottieInstanceState.backgroundColor;\n }\n get loop() {\n return this._dotLottieInstanceState.loop;\n }\n get useFrameInterpolation() {\n return this._dotLottieInstanceState.useFrameInterpolation;\n }\n get renderConfig() {\n return this._dotLottieInstanceState.renderConfig;\n }\n get manifest() {\n return this._dotLottieInstanceState.manifest;\n }\n get activeAnimationId() {\n return this._dotLottieInstanceState.activeAnimationId;\n }\n get marker() {\n return this._dotLottieInstanceState.marker;\n }\n get activeThemeId() {\n return this._dotLottieInstanceState.activeThemeId;\n }\n get layout() {\n return this._dotLottieInstanceState.layout;\n }\n async play() {\n this._created && (await this._sendMessage(\"play\", { instanceId: this._id }), await this._updateDotLottieInstanceState(), I && this._canvas instanceof HTMLCanvasElement && this._dotLottieInstanceState.renderConfig.freezeOnOffscreen && !A1(this._canvas) && await this.freeze());\n }\n async pause() {\n this._created && (await this._sendMessage(\"pause\", { instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async stop() {\n this._created && (await this._sendMessage(\"stop\", { instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async setSpeed(n) {\n this._created && (await this._sendMessage(\"setSpeed\", { instanceId: this._id, speed: n }), await this._updateDotLottieInstanceState());\n }\n async setMode(n) {\n this._created && (await this._sendMessage(\"setMode\", { instanceId: this._id, mode: n }), await this._updateDotLottieInstanceState());\n }\n async setFrame(n) {\n this._created && (await this._sendMessage(\"setFrame\", { frame: n, instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async setSegment(n, r) {\n this._created && (await this._sendMessage(\"setSegment\", { instanceId: this._id, segment: [n, r] }), await this._updateDotLottieInstanceState());\n }\n async setRenderConfig(n) {\n if (!this._created)\n return;\n let { devicePixelRatio: r, freezeOnOffscreen: c, ...y } = n;\n await this._sendMessage(\"setRenderConfig\", { instanceId: this._id, renderConfig: { ...this._dotLottieInstanceState.renderConfig, ...y, devicePixelRatio: r || e1(), freezeOnOffscreen: c ?? true } }), await this._updateDotLottieInstanceState(), I && this._canvas instanceof HTMLCanvasElement && (this._dotLottieInstanceState.renderConfig.autoResize ? k.observe(this._canvas, this) : k.unobserve(this._canvas), this._dotLottieInstanceState.renderConfig.freezeOnOffscreen ? A.observe(this._canvas, this) : (A.unobserve(this._canvas), this._dotLottieInstanceState.isFrozen && await this.unfreeze()));\n }\n async setUseFrameInterpolation(n) {\n this._created && (await this._sendMessage(\"setUseFrameInterpolation\", { instanceId: this._id, useFrameInterpolation: n }), await this._updateDotLottieInstanceState());\n }\n async loadTheme(n) {\n if (!this._created)\n return false;\n let r = this._sendMessage(\"loadTheme\", { instanceId: this._id, themeId: n });\n return await this._updateDotLottieInstanceState(), r;\n }\n async load(n) {\n this._created && (await this._sendMessage(\"load\", { config: n, instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async setLoop(n) {\n this._created && (await this._sendMessage(\"setLoop\", { instanceId: this._id, loop: n }), await this._updateDotLottieInstanceState());\n }\n async resize() {\n if (!this._created)\n return;\n let { height: n, width: r } = Q2(this._canvas);\n await this._sendMessage(\"resize\", { height: n, instanceId: this._id, width: r }), await this._updateDotLottieInstanceState();\n }\n async destroy() {\n this._created && (this._created = false, await this._sendMessage(\"destroy\", { instanceId: this._id }), this._cleanupStateMachineListeners(), N2._workerManager.unassignAnimationFromWorker(this._id), this._eventManager.removeAllEventListeners(), I && this._canvas instanceof HTMLCanvasElement && (A.unobserve(this._canvas), k.unobserve(this._canvas)));\n }\n async freeze() {\n this._created && (await this._sendMessage(\"freeze\", { instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async unfreeze() {\n this._created && (await this._sendMessage(\"unfreeze\", { instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async setBackgroundColor(n) {\n this._created && (await this._sendMessage(\"setBackgroundColor\", { instanceId: this._id, backgroundColor: n }), await this._updateDotLottieInstanceState());\n }\n async loadAnimation(n) {\n this._created && (await this._sendMessage(\"loadAnimation\", { animationId: n, instanceId: this._id }), await this._updateDotLottieInstanceState());\n }\n async setLayout(n) {\n this._created && (await this._sendMessage(\"setLayout\", { instanceId: this._id, layout: n }), await this._updateDotLottieInstanceState());\n }\n async _updateDotLottieInstanceState() {\n if (!this._created)\n return;\n let n = await this._sendMessage(\"getDotLottieInstanceState\", { instanceId: this._id });\n this._dotLottieInstanceState = n.state;\n }\n markers() {\n return this._dotLottieInstanceState.markers;\n }\n async setMarker(n) {\n this._created && (await this._sendMessage(\"setMarker\", { instanceId: this._id, marker: n }), await this._updateDotLottieInstanceState());\n }\n async loadThemeData(n) {\n if (!this._created)\n return false;\n let r = await this._sendMessage(\"loadThemeData\", { instanceId: this._id, themeData: n });\n return await this._updateDotLottieInstanceState(), r;\n }\n async setViewport(n, r, c, y) {\n return this._created ? this._sendMessage(\"setViewport\", { x: n, y: r, width: c, height: y, instanceId: this._id }) : false;\n }\n async _sendMessage(n, r, c) {\n let y = { id: `dotlottie-request-${e3()}`, method: n, params: r };\n return this._worker.postMessage(y, c || []), new Promise((R, H) => {\n let $ = (z) => {\n let t1 = z.data;\n t1.id === y.id && (this._worker.removeEventListener(\"message\", $), t1.error ? H(new Error(`Failed to execute method ${n}: ${t1.error}`)) : R(t1.result));\n };\n this._worker.addEventListener(\"message\", $);\n });\n }\n addEventListener(n, r) {\n this._eventManager.addEventListener(n, r);\n }\n removeEventListener(n, r) {\n this._eventManager.removeEventListener(n, r);\n }\n static setWasmUrl(n) {\n N2._wasmUrl = n;\n }\n async loadStateMachine(n) {\n if (!this._created)\n return false;\n let r = await this._sendMessage(\"loadStateMachine\", { instanceId: this._id, stateMachineId: n });\n return await this._updateDotLottieInstanceState(), r;\n }\n async loadStateMachineData(n) {\n if (!this._created)\n return false;\n let r = await this._sendMessage(\"loadStateMachineData\", { instanceId: this._id, stateMachineData: n });\n return await this._updateDotLottieInstanceState(), r;\n }\n async startStateMachine() {\n if (!this._created)\n return false;\n this._setupStateMachineListeners();\n let n = await this._sendMessage(\"startStateMachine\", { instanceId: this._id });\n return await this._updateDotLottieInstanceState(), n;\n }\n async stopStateMachine() {\n return this._created ? (this._cleanupStateMachineListeners(), this._sendMessage(\"stopStateMachine\", { instanceId: this._id })) : false;\n }\n async postStateMachineEvent(n) {\n return this._created ? this._sendMessage(\"postStateMachineEvent\", { event: n, instanceId: this._id }) : 1;\n }\n async getStateMachineListeners() {\n return this._created ? this._sendMessage(\"getStateMachineListeners\", { instanceId: this._id }) : [];\n }\n _getPointerPosition(n) {\n let r = this._canvas.getBoundingClientRect(), c = this._canvas.width / r.width, y = this._canvas.height / r.height, R = this._dotLottieInstanceState.renderConfig.devicePixelRatio || window.devicePixelRatio || 1, H = (n.clientX - r.left) * c / R, $ = (n.clientY - r.top) * y / R;\n return { x: H, y: $ };\n }\n _onPointerUp(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerUp: ${r} ${c}`);\n }\n _onPointerDown(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerDown: ${r} ${c}`);\n }\n _onPointerMove(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerMove: ${r} ${c}`);\n }\n _onPointerEnter(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerEnter: ${r} ${c}`);\n }\n _onPointerLeave(n) {\n let { x: r, y: c } = this._getPointerPosition(n);\n this.postStateMachineEvent(`OnPointerExit: ${r} ${c}`);\n }\n _onComplete() {\n this.postStateMachineEvent(\"OnComplete\");\n }\n async _setupStateMachineListeners() {\n if (I && this._canvas instanceof HTMLCanvasElement && this.isLoaded) {\n let n = await this._sendMessage(\"getStateMachineListeners\", { instanceId: this._id });\n n.includes(\"PointerUp\") && this._canvas.addEventListener(\"pointerup\", this._pointerUpMethod), n.includes(\"PointerDown\") && this._canvas.addEventListener(\"pointerdown\", this._pointerDownMethod), n.includes(\"PointerMove\") && this._canvas.addEventListener(\"pointermove\", this._pointerMoveMethod), n.includes(\"PointerEnter\") && this._canvas.addEventListener(\"pointerenter\", this._pointerEnterMethod), n.includes(\"PointerExit\") && this._canvas.addEventListener(\"pointerleave\", this._pointerExitMethod), n.includes(\"Complete\") && this.addEventListener(\"complete\", this._onCompleteMethod);\n }\n }\n _cleanupStateMachineListeners() {\n I && this._canvas instanceof HTMLCanvasElement && (this._canvas.removeEventListener(\"pointerup\", this._pointerUpMethod), this._canvas.removeEventListener(\"pointerdown\", this._pointerDownMethod), this._canvas.removeEventListener(\"pointermove\", this._pointerMoveMethod), this._canvas.removeEventListener(\"pointerenter\", this._pointerEnterMethod), this._canvas.removeEventListener(\"pointerleave\", this._pointerExitMethod), this.removeEventListener(\"complete\", this._onCompleteMethod));\n }\n};\nm(N, \"_workerManager\", new k1()), m(N, \"_wasmUrl\", \"\");\nvar t3 = N;\nfunction DotLottieComponent({\n children,\n className = \"\",\n setCanvasRef,\n setContainerRef,\n style,\n ...rest\n}) {\n const containerStyle = {\n width: \"100%\",\n height: \"100%\",\n lineHeight: 0,\n ...style\n };\n return /* @__PURE__ */ React.createElement(\"div\", { ref: setContainerRef, className, ...!className && { style: containerStyle } }, /* @__PURE__ */ React.createElement(\n \"canvas\",\n {\n ref: setCanvasRef,\n style: {\n width: \"100%\",\n height: \"100%\"\n },\n ...rest\n },\n children\n ));\n}\nvar useDotLottie = (config) => {\n const [dotLottie, setDotLottie] = useState(null);\n const dotLottieRef = useRef(null);\n const configRef = useRef(config);\n const canvasRef = useRef(null);\n const containerRef = useRef(null);\n dotLottieRef.current = dotLottie;\n configRef.current = config;\n const hoverHandler = useCallback((event) => {\n if (!configRef.current?.playOnHover || !dotLottieRef.current?.isLoaded)\n return;\n if (event.type === \"mouseenter\") {\n dotLottieRef.current.play();\n } else if (event.type === \"mouseleave\") {\n dotLottieRef.current.pause();\n }\n }, []);\n const setCanvasRef = useCallback((canvas) => {\n canvasRef.current = canvas;\n }, []);\n const setContainerRef = useCallback((container) => {\n containerRef.current = container;\n }, []);\n const Component = useCallback(\n (props) => {\n return /* @__PURE__ */ React.createElement(DotLottieComponent, { setContainerRef, setCanvasRef, ...props });\n },\n [setCanvasRef, setContainerRef]\n );\n useEffect(() => {\n const canvas = canvasRef.current;\n let dotLottieInstance = null;\n if (canvas) {\n dotLottieInstance = new X2({\n ...configRef.current,\n canvas\n });\n canvas.addEventListener(\"mouseenter\", hoverHandler);\n canvas.addEventListener(\"mouseleave\", hoverHandler);\n setDotLottie(dotLottieInstance);\n }\n return () => {\n dotLottieInstance?.destroy();\n setDotLottie(null);\n canvas?.removeEventListener(\"mouseenter\", hoverHandler);\n canvas?.removeEventListener(\"mouseleave\", hoverHandler);\n };\n }, [hoverHandler]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.speed === \"number\" && config.speed !== dotLottieRef.current.speed) {\n dotLottieRef.current.setSpeed(config.speed);\n }\n }, [config?.speed]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.mode === \"string\" && config.mode !== dotLottieRef.current.mode) {\n dotLottieRef.current.setMode(config.mode);\n }\n }, [config?.mode]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.loop === \"boolean\" && config.loop !== dotLottieRef.current.loop) {\n dotLottieRef.current.setLoop(config.loop);\n }\n }, [config?.loop]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.useFrameInterpolation === \"boolean\" && config.useFrameInterpolation !== dotLottieRef.current.useFrameInterpolation) {\n dotLottieRef.current.setUseFrameInterpolation(config.useFrameInterpolation);\n }\n }, [config?.useFrameInterpolation]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n const startFrame = config?.segment?.[0];\n const endFrame = config?.segment?.[1];\n if (typeof startFrame === \"number\" && typeof endFrame === \"number\") {\n dotLottieRef.current.setSegment(startFrame, endFrame);\n }\n }, [config?.segment]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.backgroundColor === \"string\" && config.backgroundColor !== dotLottieRef.current.backgroundColor) {\n dotLottieRef.current.setBackgroundColor(config.backgroundColor);\n }\n }, [config?.backgroundColor]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.renderConfig === \"object\") {\n dotLottieRef.current.setRenderConfig(config.renderConfig);\n }\n }, [JSON.stringify(config?.renderConfig)]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.data === \"string\" || config?.data instanceof ArrayBuffer) {\n dotLottieRef.current.load({\n data: config.data,\n ...configRef.current || {}\n });\n }\n }, [config?.data]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.src === \"string\") {\n dotLottieRef.current.load({\n src: config.src,\n ...configRef.current || {}\n });\n }\n }, [config?.src]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.marker === \"string\") {\n dotLottieRef.current.setMarker(config.marker);\n }\n }, [config?.marker]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && config?.animationId && dotLottieRef.current.activeAnimationId !== config.animationId) {\n dotLottieRef.current.loadAnimation(config.animationId);\n }\n }, [config?.animationId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && dotLottieRef.current.activeThemeId !== config?.themeId) {\n dotLottieRef.current.loadTheme(config?.themeId || \"\");\n }\n }, [config?.themeId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded) {\n dotLottieRef.current.loadThemeData(config?.themeData || \"\");\n }\n }, [config?.themeData]);\n return {\n dotLottie,\n setCanvasRef,\n setContainerRef,\n canvas: canvasRef.current,\n container: containerRef.current,\n DotLottieComponent: Component\n };\n};\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\nfunction useStableCallback(callback) {\n const callbackContainer = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n callbackContainer.current = callback;\n });\n return useCallback((...args) => callbackContainer.current(...args), [callbackContainer]);\n}\n\n// src/dotlottie.tsx\nvar DotLottieReact = ({\n animationId,\n autoplay,\n backgroundColor,\n data,\n dotLottieRefCallback,\n loop,\n marker,\n mode,\n playOnHover,\n renderConfig,\n segment,\n speed,\n src,\n themeData,\n themeId,\n useFrameInterpolation,\n ...props\n}) => {\n const { DotLottieComponent: DotLottieComponent2, dotLottie } = useDotLottie({\n data,\n mode,\n speed,\n src,\n autoplay,\n loop,\n segment,\n renderConfig,\n backgroundColor,\n useFrameInterpolation,\n playOnHover,\n marker,\n themeId,\n animationId,\n themeData\n });\n const stableDotLottieRefCallback = typeof dotLottieRefCallback === \"function\" ? useStableCallback(dotLottieRefCallback) : void 0;\n React.useEffect(() => {\n if (typeof stableDotLottieRefCallback === \"function\") {\n stableDotLottieRefCallback(dotLottie);\n }\n }, [stableDotLottieRefCallback, dotLottie]);\n return /* @__PURE__ */ React.createElement(DotLottieComponent2, { ...props });\n};\nfunction DotLottieWorkerComponent({\n children,\n className = \"\",\n setCanvasRef,\n setContainerRef,\n style,\n ...rest\n}) {\n const containerStyle = {\n width: \"100%\",\n height: \"100%\",\n lineHeight: 0,\n ...style\n };\n return /* @__PURE__ */ React.createElement(\"div\", { ref: setContainerRef, className, ...!className && { style: containerStyle } }, /* @__PURE__ */ React.createElement(\n \"canvas\",\n {\n ref: setCanvasRef,\n style: {\n width: \"100%\",\n height: \"100%\"\n },\n ...rest\n },\n children\n ));\n}\nvar useDotLottieWorker = (config) => {\n const [dotLottie, setDotLottie] = useState(null);\n const dotLottieRef = useRef(null);\n const configRef = useRef(config);\n const canvasRef = useRef(null);\n const containerRef = useRef(null);\n dotLottieRef.current = dotLottie;\n configRef.current = config;\n const hoverHandler = useCallback((event) => {\n if (!configRef.current?.playOnHover || !dotLottieRef.current?.isLoaded)\n return;\n if (event.type === \"mouseenter\") {\n dotLottieRef.current.play();\n } else if (event.type === \"mouseleave\") {\n dotLottieRef.current.pause();\n }\n }, []);\n const setCanvasRef = useCallback((canvas) => {\n canvasRef.current = canvas;\n }, []);\n const setContainerRef = useCallback((container) => {\n containerRef.current = container;\n }, []);\n const Component = useCallback(\n (props) => {\n return /* @__PURE__ */ React.createElement(DotLottieWorkerComponent, { setContainerRef, setCanvasRef, ...props });\n },\n [setCanvasRef, setContainerRef]\n );\n useEffect(() => {\n const canvas = canvasRef.current;\n let dotLottieInstance = null;\n if (canvas) {\n dotLottieInstance = new t3({\n ...configRef.current,\n canvas\n });\n canvas.addEventListener(\"mouseenter\", hoverHandler);\n canvas.addEventListener(\"mouseleave\", hoverHandler);\n setDotLottie(dotLottieInstance);\n }\n return () => {\n dotLottieInstance?.destroy();\n setDotLottie(null);\n canvas?.removeEventListener(\"mouseenter\", hoverHandler);\n canvas?.removeEventListener(\"mouseleave\", hoverHandler);\n };\n }, [hoverHandler]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.speed === \"number\" && config.speed !== dotLottieRef.current.speed) {\n dotLottieRef.current.setSpeed(config.speed);\n }\n }, [config?.speed]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.mode === \"string\" && config.mode !== dotLottieRef.current.mode) {\n dotLottieRef.current.setMode(config.mode);\n }\n }, [config?.mode]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.loop === \"boolean\" && config.loop !== dotLottieRef.current.loop) {\n dotLottieRef.current.setLoop(config.loop);\n }\n }, [config?.loop]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.useFrameInterpolation === \"boolean\" && config.useFrameInterpolation !== dotLottieRef.current.useFrameInterpolation) {\n dotLottieRef.current.setUseFrameInterpolation(config.useFrameInterpolation);\n }\n }, [config?.useFrameInterpolation]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n const startFrame = config?.segment?.[0];\n const endFrame = config?.segment?.[1];\n if (typeof startFrame === \"number\" && typeof endFrame === \"number\") {\n dotLottieRef.current.setSegment(startFrame, endFrame);\n }\n }, [config?.segment]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.backgroundColor === \"string\" && config.backgroundColor !== dotLottieRef.current.backgroundColor) {\n dotLottieRef.current.setBackgroundColor(config.backgroundColor);\n }\n }, [config?.backgroundColor]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.renderConfig === \"object\") {\n dotLottieRef.current.setRenderConfig(config.renderConfig);\n }\n }, [JSON.stringify(config?.renderConfig)]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.data === \"string\" || config?.data instanceof ArrayBuffer) {\n dotLottieRef.current.load({\n data: config.data,\n ...configRef.current || {}\n });\n }\n }, [config?.data]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.src === \"string\") {\n dotLottieRef.current.load({\n src: config.src,\n ...configRef.current || {}\n });\n }\n }, [config?.src]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof config?.marker === \"string\") {\n dotLottieRef.current.setMarker(config.marker);\n }\n }, [config?.marker]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && config?.animationId && dotLottieRef.current.activeAnimationId !== config.animationId) {\n dotLottieRef.current.loadAnimation(config.animationId);\n }\n }, [config?.animationId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && dotLottieRef.current.activeThemeId !== config?.themeId) {\n dotLottieRef.current.loadTheme(config?.themeId || \"\");\n }\n }, [config?.themeId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded) {\n dotLottieRef.current.loadThemeData(config?.themeData || \"\");\n }\n }, [config?.themeData]);\n return {\n dotLottie,\n setCanvasRef,\n setContainerRef,\n canvas: canvasRef.current,\n container: containerRef.current,\n DotLottieComponent: Component\n };\n};\nvar DotLottieWorkerReact = ({\n animationId,\n autoplay,\n backgroundColor,\n data,\n dotLottieRefCallback,\n loop,\n marker,\n mode,\n playOnHover,\n renderConfig,\n segment,\n speed,\n src,\n themeData,\n themeId,\n useFrameInterpolation,\n workerId,\n ...props\n}) => {\n const { DotLottieComponent: DotLottieComponent2, dotLottie } = useDotLottieWorker({\n workerId,\n data,\n mode,\n speed,\n src,\n autoplay,\n loop,\n segment,\n renderConfig,\n backgroundColor,\n useFrameInterpolation,\n playOnHover,\n marker,\n themeId,\n animationId,\n themeData\n });\n const stableDotLottieRefCallback = typeof dotLottieRefCallback === \"function\" ? useStableCallback(dotLottieRefCallback) : void 0;\n React.useEffect(() => {\n if (typeof stableDotLottieRefCallback === \"function\") {\n stableDotLottieRefCallback(dotLottie);\n }\n }, [stableDotLottieRefCallback, dotLottie]);\n return /* @__PURE__ */ React.createElement(DotLottieComponent2, { ...props });\n};\n\n// src/index.ts\nvar setWasmUrl = (url) => {\n t3.setWasmUrl(url);\n X2.setWasmUrl(url);\n};\n\nexport { DotLottieReact, DotLottieWorkerReact, setWasmUrl, useDotLottie, useDotLottieWorker };\n","import React, { useEffect, useState } from \"react\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nimport { DotLottieReact } from \"@lottiefiles/dotlottie-react\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nexport const HomePageMainBanner = ({ title, description, desktopAnimation, mobileAnimation, buttonLabel, buttonUrl, buttonOpenInNewTab, linkHref, linkLabel, textBelowCTA = \"\" }) => {\r\n const { isLarge, isMedium } = usePageViewStyle();\r\n const [animationPath, setAnimationPath] = useState(isLarge ? desktopAnimation : mobileAnimation);\r\n const [animationWidth, setAnimationWidth] = useState(isLarge ? 1920 : 744);\r\n const [animationHeight, setAnimationHeight] = useState(isLarge ? 650 : 500);\r\n const checkHasLink = () => linkHref && linkLabel;\r\n useEffect(() => {\r\n if (isLarge) {\r\n setAnimationPath(desktopAnimation);\r\n setAnimationWidth(1920);\r\n setAnimationHeight(650);\r\n }\r\n else {\r\n setAnimationPath(mobileAnimation);\r\n if (isMedium) {\r\n setAnimationWidth(744);\r\n setAnimationHeight(500);\r\n }\r\n else {\r\n setAnimationWidth(375);\r\n setAnimationHeight(253);\r\n }\r\n }\r\n }, [animationPath, isLarge, isMedium, desktopAnimation, mobileAnimation]);\r\n return (React.createElement(\"div\", { className: \"home-page-main-banner-background\" },\r\n React.createElement(\"div\", { className: \"home-page-main-banner\" },\r\n React.createElement(\"div\", { className: \"home-page-main-banner__text-button-wrapper\" },\r\n React.createElement(\"div\", { className: \"home-page-main-banner__text-button-box\" },\r\n React.createElement(\"h1\", { dangerouslySetInnerHTML: { __html: title } }),\r\n React.createElement(\"p\", null, description),\r\n buttonUrl && React.createElement(ButtonSquare, { label: buttonLabel, href: buttonUrl, openinnewtab: buttonOpenInNewTab.toString() }),\r\n checkHasLink() && React.createElement(\"a\", { href: linkHref, className: \"home-page-main-banner__text-link\" }, linkLabel),\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: textBelowCTA }, className: \"home-page-main-banner__text-below-cta\" }))),\r\n React.createElement(DotLottieReact, { src: animationPath, loop: true, autoplay: true, width: animationWidth, height: animationHeight }))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nexport const MarketsBanner = ({ title, subTitle, animationVideo, buttonUrl, buttonLabel, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"markets-banner\" },\r\n React.createElement(\"div\", { className: \"markets-banner__text-wrapper\" },\r\n React.createElement(\"h1\", null, title),\r\n React.createElement(\"h5\", { dangerouslySetInnerHTML: { __html: subTitle } })),\r\n React.createElement(\"div\", { className: \"markets-banner__button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonUrl }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"markets-banner__video-wrapper\" },\r\n React.createElement(\"video\", { width: \"100%\", loop: true, autoPlay: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: animationVideo, type: \"video/mp4\" })))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const Person = ({ name, position, image }) => (React.createElement(\"div\", { className: \"person-root\" },\r\n React.createElement(ImgV2, { src: image }),\r\n React.createElement(\"p\", { className: \"person-root__name\" }, name),\r\n React.createElement(\"p\", { className: \"person-root__position\" }, position)));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Person } from \"./Person/Person\";\r\nexport const WebinarBanner = ({ title, subTitle, buttonLabel, buttonUrl, bgImageDesktop, bgImageMobile, persons, openInNewTab }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"webinar-banner-section\", style: { \"--background-image-url-mobile\": `url(${bgImageMobile})`, \"--background-image-url-desktop\": `url(${bgImageDesktop})` } },\r\n React.createElement(\"div\", { className: \"webinar-banner-section__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, title),\r\n React.createElement(\"p\", { className: \"webinar-banner-section__subtitle\" }, subTitle),\r\n React.createElement(ButtonV2, { design: \"tmx25-square-white-green\", openInNewTab: true, href: buttonUrl }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"webinar-banner-section__peopleWrapper\" }, persons.length > 0 && persons.map((a) => (React.createElement(Person, { key: `unique${a.name}`, ...a }))))))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../../ButtonV2/ButtonV2\";\r\nexport const TTAccBannerButtonAndLink = ({ buttonLink, buttonText, openInNewTab, linkButtonLabel, linkButtonUrl }) => {\r\n const hasTextLink = linkButtonLabel && linkButtonUrl;\r\n return React.createElement(\"div\", { className: \"thinktrader-account-banner__button-wrapper\" },\r\n buttonLink && React.createElement(ButtonV2, { design: \"tmx25-round-green-lightgreen\", href: buttonLink, openInNewTab: openInNewTab, showArrowRight: true }, buttonText),\r\n hasTextLink && React.createElement(\"a\", { className: \"link-button\", rel: \"noreferrer\", target: \"_blank\", href: linkButtonUrl }, linkButtonLabel));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { TTAccBannerButtonAndLink } from \"./TTAccBannerButtonAndLink\";\r\nexport const ThinkTraderAccountBanner = ({ title, description, imageUrl, imageAlt, list, buttonLink, buttonText, openInNewTab, backgroundColor, linkButtonLabel, linkButtonUrl }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const standardString = React.useCallback((value) => {\r\n if (value.includes(\"
\")) {\r\n return value.replace(\"
\", \" | \");\r\n }\r\n return value;\r\n }, []);\r\n const showButtonWrapper = buttonLink || (linkButtonLabel && linkButtonUrl);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"thinktrader-account-banner\" },\r\n React.createElement(\"div\", { className: \"thinktrader-account-banner__text-wrapper\" },\r\n React.createElement(\"div\", { className: \"thinktrader-account-banner__h1-h5-wrapper\" },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold\", dangerouslySetInnerHTML: {\r\n __html: description\r\n } })),\r\n list && list.length > 0 && React.createElement(\"div\", { className: \"thinktrader-account-banner__options-wrapper\" }, list.map((item, i) => (React.createElement(\"div\", { key: i, className: \"thinktrader-account-banner__option\" },\r\n React.createElement(\"p\", { className: \"thinktrader-account-banner__option__p-title\" }, item.itemTitle),\r\n React.createElement(\"div\", { className: \"thinktrader-account-banner__option__p-subtitle\", dangerouslySetInnerHTML: {\r\n __html: standardString(item.itemSubTitle) || \"\"\r\n } }))))),\r\n showButtonWrapper && React.createElement(TTAccBannerButtonAndLink, { buttonLink: buttonLink, buttonText: buttonText, linkButtonUrl: linkButtonUrl, linkButtonLabel: linkButtonLabel, openInNewTab: openInNewTab })),\r\n React.createElement(\"div\", { className: \"thinktrader-account-banner__image-wrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageAlt, loading: \"eager\" }))))));\r\n};\r\n","import React from \"react\";\r\nexport const clock = () => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"19\", height: \"19\", viewBox: \"0 0 20 20\", fill: \"none\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_16267_16796)\" },\r\n React.createElement(\"path\", { d: \"M0 9C0 4.03385 4.03385 0 9 0C13.9662 0 18 4.03385 18 9C18 13.9662 13.9662 18 9 18C4.03385 18 0 13.9662 0 9Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M9.00023 4.36621C8.49253 4.36621 8.07715 4.7816 8.07715 5.28929V8.9816C8.07715 9.28621 8.23407 9.5816 8.49253 9.74775L11.2618 11.5939C11.4187 11.6954 11.5941 11.7508 11.7695 11.7508C12.0648 11.7508 12.3602 11.6031 12.5356 11.3354C12.8218 10.9108 12.7018 10.3385 12.2771 10.0524L9.9233 8.48313V5.28929C9.9233 4.7816 9.50792 4.36621 9.00023 4.36621Z\", fill: \"#5EE15A\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_16267_16796\" },\r\n React.createElement(\"rect\", { width: \"18\", height: \"18\", fill: \"white\" })))));\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Gap } from \"../../Gaps/Gap\";\r\nimport { clock } from \"../../svgIcons/clock\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../../Components/Heading\";\r\nexport const PodcastEpisodeBanner = ({ titleBig, timeToReadString, linkUrl, richTitleSide, richSubtitle1, richSubtitle2, imageUrl, imageAlt, backgroundColor, headingDesign }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"podcast-episode-banner\" },\r\n React.createElement(\"div\", { className: \"podcast-episode-banner__title\" },\r\n React.createElement(Heading, { design: headingDesign }, titleBig)),\r\n React.createElement(Gap, { desktopGap: \"33px\", mobileGap: \"25px\" }),\r\n React.createElement(\"div\", { className: \"podcast-episode-banner__image-and-content-container\" },\r\n React.createElement(\"a\", { href: linkUrl, target: \"_blank\", rel: \"noopener noreferrer\" },\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(ImgV2, { className: \"podcast-episode-banner__responsive-image\", src: imageUrl, alt: imageAlt }))),\r\n React.createElement(\"div\", null,\r\n timeToReadString && React.createElement(\"span\", { className: \"color-dark-80\" },\r\n clock(),\r\n \" \",\r\n timeToReadString),\r\n React.createElement(Gap, { desktopGap: \"10px\", mobileGap: \"17px\" }),\r\n richTitleSide && React.createElement(\"div\", { dangerouslySetInnerHTML: {\r\n __html: richTitleSide,\r\n } }),\r\n React.createElement(Gap, { desktopGap: \"10px\", mobileGap: \"17px\" }),\r\n richSubtitle1 && React.createElement(\"div\", { dangerouslySetInnerHTML: {\r\n __html: richSubtitle1,\r\n } }),\r\n React.createElement(Gap, { desktopGap: \"10px\", mobileGap: \"17px\" }),\r\n richSubtitle2 && React.createElement(\"div\", { dangerouslySetInnerHTML: {\r\n __html: richSubtitle2,\r\n } })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const SimpleTitleAndSubtitleBanner = ({ subTitle, title, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"simple-title-subtitle-banner__root\" },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(\"p\", { className: \"h5-semi-bold\" }, subTitle)))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../..//Heading\";\r\nexport const StatsList = ({ years, description }) => (React.createElement(\"div\", { className: \"stats-list-root\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, years),\r\n React.createElement(\"p\", { className: \"caption\" }, description)));\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { StatsList } from \"./StatsList/StatsList\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const HeaderWithImgAndStatsBanner = ({ imageUrl, title, subtitle, stats, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"header-with-img-stats-banner-root\" },\r\n React.createElement(\"div\", { className: \"header-with-img-stats-banner-root__image-wrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl })),\r\n React.createElement(\"div\", { className: \"header-with-img-stats-banner-root__texts-wrapper\" },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(Heading, { design: \"h5-semi-bold\" }, subtitle),\r\n React.createElement(\"div\", { className: \"stats-wrapper\" }, stats.length > 0 && stats.map((stat) => (React.createElement(StatsList, { key: `unique${stat.description}`, ...stat })))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const FeaturesList = ({ featureTitle, imageUrl }) => (React.createElement(\"div\", { className: 'features-list__root' },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageUrl }),\r\n React.createElement(\"p\", { className: 'feature-title' }, featureTitle)));\r\n","import React, { useEffect, useMemo, useRef } from \"react\";\r\nexport const TrustPilotMiniBanner = ({ locale = \"en\", theme = \"light\" }) => {\r\n const containerRef = useRef(null);\r\n useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src = \"https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js\";\r\n script.async = true;\r\n script.type = \"text/javascript\";\r\n if (containerRef.current) {\r\n containerRef.current.appendChild(script);\r\n }\r\n }, []);\r\n const handleTVWidget = useMemo(() => (`
\r\n Trustpilot\r\n
`), [locale, theme]);\r\n return (React.createElement(\"div\", { ref: containerRef, dangerouslySetInnerHTML: {\r\n __html: handleTVWidget,\r\n } }));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const CheckOutButton = ({ title, iconUrl, linkUrl }) => (React.createElement(\"a\", { href: linkUrl, className: \"caption-risk-warning-bold\" },\r\n React.createElement(\"p\", { className: \"button-title\" }, title),\r\n React.createElement(ImgV2, { src: iconUrl, alt: iconUrl })));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Container, ContainerFW } from \"../../../header\";\r\nimport { FeaturesList } from \"./FeaturesList/FeaturesList\";\r\nimport { TrustPilotMiniBanner } from \"./TrustPilotMiniBanner/TrustPilotMiniBanner\";\r\nimport { CheckOutButton } from \"./CheckOutButton/CheckOutButton\";\r\nexport const StatsLineRibbonBanner = ({ features, backgroundColor, trustPilotLocale, checkOutButtonValues, trustPilotTheme = \"light\" }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor, className: \"g-container--new\" },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"stats-line-ribbon-banner__root\" },\r\n React.createElement(\"div\", { className: \"stats-line-ribbon-banner__root__features\" }, features.length > 0 && features.map((a) => (React.createElement(FeaturesList, { key: `unique${a.featureTitle}`, ...a })))),\r\n React.createElement(TrustPilotMiniBanner, { theme: trustPilotTheme, locale: trustPilotLocale }),\r\n React.createElement(CheckOutButton, { ...checkOutButtonValues })))));\r\n};\r\n","import React from \"react\";\r\nexport const StatsValuesRibbon = ({ subTitle, title }) => (React.createElement(\"div\", { className: \"options-wrapper__option\" },\r\n React.createElement(\"p\", { className: \"options-wrapper__option__p-title\" }, title),\r\n React.createElement(\"div\", { className: \"options-wrapper__option__p-subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\"\r\n } })));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../../ButtonV2\";\r\nexport const ButtonSection = ({ buttonLabel, buttonOpenInNewTab, buttonHref, linkLabel, linkHref, showArrowRight }) => (React.createElement(React.Fragment, null,\r\n buttonLabel && buttonHref && (React.createElement(ButtonV2, { classes: \"tmx25-round-green-lightgreen\", href: buttonHref, openInNewTab: buttonOpenInNewTab, showArrowRight: showArrowRight }, buttonLabel)),\r\n linkLabel && linkHref && (React.createElement(ButtonV2, { design: \"ghost-large-wbg\", classes: \"login-button\", href: linkHref, openInNewTab: buttonOpenInNewTab }, linkLabel))));\r\n","import { useRive } from \"@rive-app/react-canvas\";\r\nimport React from \"react\";\r\nexport const MediaViewerComponent = ({ ...props }) => {\r\n const { RiveComponent } = useRive({\r\n autoplay: true,\r\n ...props\r\n });\r\n return (React.createElement(RiveComponent, null));\r\n};\r\n","import React from \"react\";\r\nimport { MediaViewerComponent } from \"../../../MediaViewerComponent/MediaViewerComponent\";\r\nexport const AnimationSection = ({ animationSrc, animationStateMachines, imageEl }) => (React.createElement(React.Fragment, null, (animationSrc && animationStateMachines)\r\n ? React.createElement(\"div\", { className: \"HeroBannerHomepageUplift__content__animation-container\" },\r\n React.createElement(MediaViewerComponent, { src: animationSrc, stateMachines: animationStateMachines }))\r\n : React.createElement(\"div\", { className: \"HeroBannerHomepageUplift__image\" }, imageEl)));\r\n","import React from \"react\";\r\nexport const CryptoDisclaimer = ({ content }) => (React.createElement(\"p\", { className: 'crypto-disclaimer' }, content));\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Img } from \"../../Img\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { IconChevronRight } from \"../../../Components/svgIcons/chevronRight\";\r\nimport { StatsValuesRibbon } from \"./StatsValuesRibbon/StatsValuesRibbon\";\r\nimport { ButtonSection } from \"./ButtonSection/ButtonSection\";\r\nimport { AnimationSection } from \"./AnimationSection/AnimationSection\";\r\nimport { CryptoDisclaimer } from \"./CryptoDisclaimer/CryptoDisclaimer\";\r\nexport const HeroBannerWithImagesHomeUplift = ({ title, subtitle, desktopImage, mobileImage, buttonLabel, buttonHref, buttonHrefMobile, buttonOpenInNewTab, linkHref, linkLabel, backgroundColor, actionMessageLink, actionMessageBadge, actionMessageText, actionMessageLinkInNewTab, animationSrc, animationStateMachines, statValues, mobileTitleAlignment, tabletTitleAlignment, desktopTitleAlignment, mobileSubTitleAlignment, tabletSubTitleAlignment, desktopSubTitleAlignment, showArrowRight, cryptoDisclaimerContent }) => {\r\n const [buttonUrl, setButtonUrl] = useState(buttonHref);\r\n const { isLarge } = usePageViewStyle();\r\n const [imageEl, setImageEl] = useState(React.createElement(React.Fragment, null));\r\n useEffect(() => {\r\n setImageEl(isLarge ? React.createElement(Img, { src: desktopImage, alt: title, loading: \"eager\" }) : React.createElement(Img, { src: mobileImage, alt: title, loading: \"eager\" }));\r\n }, [isLarge, desktopImage, mobileImage, title]);\r\n useEffect(() => {\r\n setButtonUrl((!isLarge && buttonHrefMobile) ? buttonHrefMobile : buttonHref);\r\n }, [isLarge, buttonHrefMobile, buttonHref]);\r\n const mainClassName = `${backgroundColor === \"White\" ? \"HeroBannerHomepageUplift white-background\" : \"HeroBannerHomepageUplift\"}`;\r\n const showActionMessage = () => (actionMessageText && actionMessageLink) &&\r\n React.createElement(\"a\", { href: actionMessageLink, target: actionMessageLinkInNewTab ? \"__blank\" : \"__self\", className: \"HeroBannerHomepageUplift__action-message\" },\r\n actionMessageBadge && React.createElement(\"span\", { className: \"badge\" }, actionMessageBadge),\r\n actionMessageText,\r\n IconChevronRight);\r\n const handleButtonStatsBanner = useMemo(() => {\r\n if (buttonLabel && buttonHref) {\r\n return (React.createElement(\"div\", { className: \"buttonsWrapper\" },\r\n React.createElement(ButtonSection, { showArrowRight: showArrowRight, buttonLabel: buttonLabel, buttonHref: buttonUrl, linkHref: linkHref, linkLabel: linkLabel, buttonOpenInNewTab: buttonOpenInNewTab })));\r\n }\r\n return (Array.isArray(statValues) &&\r\n React.createElement(\"div\", { className: \"options-wrapper\" }, statValues.map((a) => (React.createElement(StatsValuesRibbon, { key: `unique${a.title}`, ...a })))));\r\n }, [buttonHref, buttonLabel, buttonOpenInNewTab, buttonUrl, linkHref, linkLabel, showArrowRight, statValues]);\r\n return (React.createElement(\"div\", { className: mainClassName },\r\n React.createElement(ContainerFW, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"streaks-container\" },\r\n React.createElement(\"div\", { className: \"streaks\" },\r\n React.createElement(\"div\", { className: \"streak1\" }),\r\n React.createElement(\"div\", { className: \"streak2\" }),\r\n React.createElement(\"div\", { className: \"streak3\" }))),\r\n React.createElement(\"div\", { className: \"HeroBannerHomepageUplift__container\" },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"HeroBannerHomepageUplift__content\" },\r\n showActionMessage(),\r\n React.createElement(\"h1\", { className: \"h1-v2dot6 titleWrapper__title\", dangerouslySetInnerHTML: {\r\n __html: title,\r\n }, style: {\r\n \"--mobile-title-alignment\": mobileTitleAlignment,\r\n \"--tablet-title-alignment\": tabletTitleAlignment,\r\n \"--desktop-title-alignment\": desktopTitleAlignment\r\n } }),\r\n React.createElement(\"div\", { className: \"titleWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subtitle,\r\n }, style: {\r\n \"--mobile-subTitle-alignment\": mobileSubTitleAlignment,\r\n \"--tablet-subTitle-alignment\": tabletSubTitleAlignment,\r\n \"--desktop-subTitle-alignment\": desktopSubTitleAlignment\r\n } }),\r\n handleButtonStatsBanner,\r\n cryptoDisclaimerContent && React.createElement(CryptoDisclaimer, { content: cryptoDisclaimerContent })),\r\n React.createElement(AnimationSection, { imageEl: imageEl, animationSrc: animationSrc, animationStateMachines: animationStateMachines }))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { ContainerFW } from \"../../../header\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const HeroBannerWithImagesAndAnimation = ({ title, subTitle, buttonLabel, buttonUrl, bgImage, backgroundColor, buttonOpenInNewTab = false, spaceFromTopForImage, imageTopLimitedByText = false }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(\"div\", { className: `hero-banner-animation ${imageTopLimitedByText ? \"hero-banner-animation--with-capped-image\" : \"\"}` },\r\n React.createElement(ContainerFW, { className: \"g-container--new\", backgroundColor: bgColor },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(Heading, { design: \"h5-semi-bold\", className: \"hero-banner-animation__subtitle\" }, subTitle),\r\n React.createElement(ButtonV2, { showArrowRight: true, design: \"cta-medium-wbg\", href: buttonUrl, openInNewTab: buttonOpenInNewTab }, buttonLabel),\r\n React.createElement(\"div\", { className: \"hero-banner-animation__bg-image\", style: { \"--space-from-top-image\": spaceFromTopForImage } },\r\n React.createElement(ImgV2, { src: bgImage })))));\r\n};\r\n","import * as React from \"react\";\r\nimport \"./\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { getColors } from \"../../utils\";\r\nexport const ArticleInsert = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"articleInsert\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `articleInsert__inner ${props.imagePosition === \"left\" ? \"reverse-row-class\" : \"row-class\"} ${props.textPosition === \"center\" ? \"text-position-center\" : \"\"}` },\r\n React.createElement(\"div\", { className: `articleInsert__text ${props.imagePosition === \"left\" ? \"margin-right-0\" : \"margin-right-72\"}` },\r\n props.title && React.createElement(\"h2\", null, props.title),\r\n React.createElement(Img, { className: \"articleInsert__img1\", src: props.imageUrl, alt: props.imageAlt }),\r\n React.createElement(\"div\", { className: \"articleInsert__content\", dangerouslySetInnerHTML: { __html: props.text } }),\r\n props.linkText && (React.createElement(\"a\", { className: \"articleInsert__cta\", href: props.linkUrl }, props.linkText))),\r\n React.createElement(Img, { className: \"articleInsert__img2\", src: props.imageUrl, alt: props.imageAlt }))))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nexport const MeetOurCEO = (props) => {\r\n const { isLarge, isMedium } = usePageViewStyle();\r\n const [isMediumValue, setIsMediumValue] = useState(false);\r\n const [isLargeValue, setIsLargeValue] = useState(false);\r\n useEffect(() => {\r\n setIsMediumValue(isMedium);\r\n setIsLargeValue(isLarge);\r\n }, [isMedium, isLarge]);\r\n return (React.createElement(React.Fragment, null, (isLargeValue || isMediumValue) && React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"meetOurCEO\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"meetOurCEO__content\" },\r\n React.createElement(Img, { className: \"meetOurCEO__img1\", src: props.imageUrl, alt: props.imageAlt }),\r\n React.createElement(\"div\", { className: \"meetOurCEO__text\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: {\r\n __html: props.title\r\n } }),\r\n React.createElement(\"p\", { className: \"meetOurCEO__comment\", dangerouslySetInnerHTML: { __html: props.text } }),\r\n React.createElement(\"h4\", null, props.name),\r\n React.createElement(\"p\", { className: \"meetOurCEO__position\" }, props.position))))))));\r\n};\r\n","import React from \"react\";\r\nconst locationIcon = ({ height = \"19\", width = \"18\" }) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: width, height: height, viewBox: \"0 0 18 19\", fill: \"none\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_15520_8955)\" },\r\n React.createElement(\"path\", { d: \"M9.00015 0.499999C11.1078 0.5 12.8655 1.22308 14.2732 2.66923C15.6809 4.11538 16.3848 5.91538 16.3848 8.06923C16.3848 9.02308 16.1694 9.97692 15.7386 10.9308C15.3078 11.8846 14.7694 12.8 14.1232 13.6769C13.4771 14.5538 12.7771 15.3769 12.0232 16.1462C11.2694 16.9154 10.5694 17.5846 9.92323 18.1538C9.80015 18.2769 9.65784 18.3654 9.4963 18.4192C9.33477 18.4731 9.16938 18.5 9.00015 18.5C8.83092 18.5 8.66554 18.4731 8.504 18.4192C8.34246 18.3654 8.20015 18.2769 8.07708 18.1538C7.43092 17.5846 6.73092 16.9154 5.97707 16.1462C5.22323 15.3769 4.52323 14.5538 3.87708 13.6769C3.23092 12.8 2.69246 11.8846 2.26169 10.9308C1.83092 9.97692 1.61554 9.02307 1.61554 8.06923C1.61554 5.91538 2.31938 4.11538 3.72708 2.66923C5.13477 1.22307 6.89246 0.499999 9.00015 0.499999Z\", fill: \"#6E7783\" }),\r\n React.createElement(\"path\", { d: \"M8.99429 11.1658C10.9305 11.1658 12.5001 9.59625 12.5001 7.66006C12.5001 5.72388 10.9305 4.1543 8.99429 4.1543C7.05811 4.1543 5.48853 5.72388 5.48853 7.66006C5.48853 9.59625 7.05811 11.1658 8.99429 11.1658Z\", fill: \"#5EE15A\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_15520_8955\" },\r\n React.createElement(\"rect\", { width: \"18\", height: \"18\", fill: \"white\", transform: \"translate(0 0.5)\" })))));\r\nexport default locationIcon;\r\n","import React from \"react\";\r\nconst timeClock = ({ height = \"19\", width = \"18\" }) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: width, height: height, viewBox: \"0 0 18 19\", fill: \"none\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_15520_8963)\" },\r\n React.createElement(\"path\", { d: \"M0 9.5C0 4.53385 4.03385 0.5 9 0.5C13.9662 0.5 18 4.53385 18 9.5C18 14.4662 13.9662 18.5 9 18.5C4.03385 18.5 0 14.4662 0 9.5Z\", fill: \"#6E7783\" }),\r\n React.createElement(\"path\", { d: \"M8.99998 4.86523C8.49229 4.86523 8.0769 5.28062 8.0769 5.78831V9.48062C8.0769 9.78523 8.23383 10.0806 8.49229 10.2468L11.2615 12.0929C11.4184 12.1945 11.5938 12.2498 11.7692 12.2498C12.0646 12.2498 12.36 12.1022 12.5354 11.8345C12.8215 11.4098 12.7015 10.8375 12.2769 10.5514L9.92306 8.98216V5.78831C9.92306 5.28062 9.50767 4.86523 8.99998 4.86523Z\", fill: \"#5EE15A\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_15520_8963\" },\r\n React.createElement(\"rect\", { width: \"18\", height: \"18\", fill: \"white\", transform: \"translate(0 0.5)\" })))));\r\nexport default timeClock;\r\n","import React, { useEffect, useState, useCallback, useMemo, useRef } from \"react\";\r\nimport { ContainerFW, Container, Col, Row } from \"../global\";\r\nimport { fetchData } from \"./fetchData/fetchData\";\r\nimport { JobBoardPagination } from \"./JobBoardPagination/JobBoardPagination\";\r\nimport { debounce } from \"debounce\";\r\nimport { pageViewStyle } from \"../../pageViewStyle/pageViewStyle\";\r\nimport locationIcon from \"../svgIcons/Location\";\r\nimport timeClock from \"../svgIcons/timeClock\";\r\nimport coloredUserIcon from \"../svgIcons/User\";\r\nexport const JobBoard = (props) => {\r\n const [jobs, setJobs] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const departments = Array.from(new Set([\"All\", ...jobs.map(job => job.departments[0].name)]));\r\n const offices = Array.from(new Set([\"All\", ...jobs.map(job => job.offices[0].name)]));\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedDepartment, setSelectedDepartment] = useState(\"All\");\r\n const [selectedOffice, setSelectedOffice] = useState(\"All\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n const jobsPerPage = useMemo(() => (view !== \"large\" ? 6 : 10), [view]);\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, []);\r\n useEffect(() => {\r\n void fetchData(\"https://boards-api.greenhouse.io/v1/boards/thinkmarkets/jobs?content=true\", 100, setJobs, setErrorMessage);\r\n }, []);\r\n const filteredJobs = jobs.filter((job) => job.title.toLocaleLowerCase().includes(search.toLocaleLowerCase()) &&\r\n (selectedOffice === \"All\"\r\n ? true\r\n : job.offices[0].name === selectedOffice) &&\r\n (selectedDepartment === \"All\"\r\n ? true\r\n : job.departments[0].name === selectedDepartment));\r\n const selectedJobs = filteredJobs.slice(currentPage * jobsPerPage, (currentPage + 1) * jobsPerPage);\r\n const numOfPages = Math.ceil(filteredJobs.length / jobsPerPage);\r\n const setSearchDebounced = debounce(setSearch, 20);\r\n const searchJobs = useCallback(function (event) {\r\n setCurrentPage(0);\r\n return setSearchDebounced(event.currentTarget.value);\r\n }, []);\r\n const searchDepartment = useCallback(function (event) {\r\n setCurrentPage(0);\r\n return setSelectedDepartment(event.currentTarget.value);\r\n }, []);\r\n const searchCity = useCallback(function (event) {\r\n setCurrentPage(0);\r\n return setSelectedOffice(event.currentTarget.value);\r\n }, []);\r\n const thisComponentRef = useRef(null);\r\n const scrollToThisComponentRef = useCallback(() => {\r\n thisComponentRef.current?.scrollIntoView({ behavior: \"auto\" });\r\n if (thisComponentRef.current) {\r\n window.scrollBy(0, -105);\r\n }\r\n }, []);\r\n const mounted = React.useRef(false);\r\n React.useEffect(() => {\r\n if (mounted.current) {\r\n scrollToThisComponentRef();\r\n }\r\n else {\r\n mounted.current = true;\r\n }\r\n }, [currentPage]);\r\n const handleCardClick = (url) => () => (window.open(url, \"_blank\"));\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { ref: thisComponentRef, className: \"jobBoard\", id: \"jobBoard\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"jobBoard__content\" },\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"div\", { className: \"jobBoard__searchFields\" },\r\n React.createElement(\"div\", { className: \"jobBoard__fieldItem\" },\r\n React.createElement(\"input\", { type: \"search\", placeholder: \"Search Position\", value: search, onChange: searchJobs, className: \"jobBoard__fieldItem__search\" })),\r\n React.createElement(\"div\", { className: \"jobBoard__fieldItem\" },\r\n React.createElement(\"label\", { htmlFor: \"location\" }, \"Location\"),\r\n React.createElement(\"select\", { value: selectedOffice, placeholder: \"Select Office\", onChange: searchCity, className: \"jobBoard__fieldItem__searchCity\", id: \"location\" }, offices.map((office) => (React.createElement(\"option\", { value: office, key: office }, office))))),\r\n React.createElement(\"div\", { className: \"jobBoard__fieldItem\" },\r\n React.createElement(\"label\", { htmlFor: \"department\" }, \"Department\"),\r\n React.createElement(\"select\", { value: selectedDepartment, placeholder: \"Select Department\", onChange: searchDepartment, id: \"department\" }, departments.map((department) => (React.createElement(\"option\", { value: department, key: department }, department)))))),\r\n React.createElement(\"div\", { className: \"jobBoard__list\" },\r\n errorMessage ? (React.createElement(\"h5\", { className: \"jobBoard__error\" }, errorMessage)) : (React.createElement(Row.Cols2, null, selectedJobs.map((job) => (React.createElement(Col, { key: job.id },\r\n React.createElement(\"div\", { className: \"jobBoard__card\", onClick: handleCardClick(job.absolute_url) },\r\n React.createElement(\"p\", null, job.departments[0].name),\r\n React.createElement(\"h6\", null, job.title),\r\n React.createElement(\"div\", { className: \"jobBoard__info\" },\r\n React.createElement(\"div\", { className: \"jobBoard__detail\" },\r\n locationIcon({}),\r\n React.createElement(\"p\", null, job.offices[0].name)),\r\n React.createElement(\"div\", { className: \"jobBoard__detail\" },\r\n timeClock({}),\r\n React.createElement(\"p\", null, job.metadata[0].value)),\r\n React.createElement(\"div\", { className: \"jobBoard__detail\" },\r\n coloredUserIcon({}),\r\n React.createElement(\"p\", null, job.metadata[1].value))))))))),\r\n (selectedJobs.length === 0 && !errorMessage) && React.createElement(\"h5\", { className: \"jobBoard__noMatch\" }, \"No matching positions available.\")),\r\n React.createElement(\"div\", { className: \"jobBoard__pagination\" }, selectedJobs.length > 0 && React.createElement(JobBoardPagination, { currentPage: currentPage, numOfPages: numOfPages, setCurrentPage: setCurrentPage, isSmallScreen: view !== \"large\" })))))));\r\n};\r\n","export const fetchData = async (url, limit, setJobs, setErrorMessage) => fetch(`${url}&per_page=${limit.toString()}`)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n else {\r\n return Promise.reject();\r\n }\r\n})\r\n .then((data) => {\r\n setJobs(data.jobs);\r\n})\r\n .catch(() => {\r\n setErrorMessage(\"Something went wrong! Please try again!\");\r\n});\r\n","import React from \"react\";\r\nconst coloredUserIcon = ({ height = \"19\", width = \"18\" }) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: width, height: height, viewBox: \"0 0 18 19\", fill: \"none\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_15520_8971)\" },\r\n React.createElement(\"path\", { d: \"M9.00009 9.26923C11.4216 9.26923 13.3847 7.30617 13.3847 4.88462C13.3847 2.46306 11.4216 0.5 9.00009 0.5C6.57854 0.5 4.61548 2.46306 4.61548 4.88462C4.61548 7.30617 6.57854 9.26923 9.00009 9.26923Z\", fill: \"#6E7783\" }),\r\n React.createElement(\"path\", { d: \"M16.3938 12.0487C11.6585 10.2025 6.34154 10.2025 1.60615 12.0487C0.627692 12.4271 0 13.3594 0 14.4118V15.9625C0 17.3656 1.13538 18.501 2.53846 18.501H15.4615C16.8646 18.501 18 17.3656 18 15.9625V14.4118C18 13.3594 17.3723 12.4271 16.3938 12.0487Z\", fill: \"#6E7783\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_15520_8971\" },\r\n React.createElement(\"rect\", { width: \"18\", height: \"18\", fill: \"white\", transform: \"translate(0 0.5)\" })))));\r\nexport default coloredUserIcon;\r\n","import * as React from \"react\";\r\nimport { SocialContacts } from \"../../Components/Footer/SocialContacts/SocialContacts\";\r\nimport { MainFooter } from \"../../Components/Footer/MainFooter/MainFooter\";\r\nimport { RiskWarning } from \"../../Components/Footer/RiskWarning/RiskWarning\";\r\nimport { ScrollToTopButton } from \"../../Components/Footer/ScrollToTopButton/ScrollToTopButton\";\r\nexport const Footer = (props) => (React.createElement(\"div\", { className: \"g-footer\" },\r\n React.createElement(SocialContacts, { logoImageUrl: props.socialSectionLogoImageUrl, logoImageAlt: props.socialSectionLogoImageAlt, liveChatText: props.socialSectionLiveChatText, icons: props.socialSectionIcons, logoHref: props.logoHref }),\r\n React.createElement(MainFooter, { sections: [\r\n { title: \"TRADE WITH US\", links: [{ label: \"Trade CFDs\", url: \"#\" }, { label: \"Social Trading\", url: \"#\" }, { label: \"Trading tools\", url: \"#\" }, { label: \"Pricing\", url: \"#\" }] },\r\n { title: \"ACCOUNT INFORMATION\", links: [{ label: \"Account Comparison\", url: \"#\" }, { label: \"Demo Account\", url: \"#\" }, { label: \"ThinkZero Account\", url: \"#\" }, { label: \"Manage Account\", url: \"#\" }, { label: \"Deposit & Withdraw\", url: \"#\" }] },\r\n { title: \"POPULAR IN LEARNING\", links: [{ label: \"Japanese Candlesticks\", url: \"#\" }, { label: \"Glossary of The Day\", url: \"#\" }, { label: \"Learn to Trade CFDs\", url: \"#\" }, { label: \"Successful Trading Strategies\", url: \"#\" }] },\r\n { title: \"COMPANY\", links: [{ label: \"About ThinkMarkets\", url: \"#\" }, { label: \"Press & Announcements\", url: \"#\" }, { label: \"Careers\", url: \"#\" }] },\r\n { title: \"SUPPORT\", links: [{ label: \"How to place a trade?\", url: \"#\" }, { label: \"How to create an account?\", url: \"#\" }, { label: \"How to deposit?\", url: \"#\" }, { label: \"How long does it take for account approval?\", url: \"#\" }, { label: \"What types of accounts do you offer?\", url: \"#\" }] },\r\n { title: \"LEGAL\", links: [{ label: \"Terms & conditions\", url: \"#\" }, { label: \"Privacy policy\", url: \"#\" }, { label: \"Risk disclaimer\", url: \"#\" }, { label: \"Regulations\", url: \"#\" }] },\r\n ] }),\r\n React.createElement(RiskWarning, { text: props.riskWarningText }),\r\n React.createElement(ScrollToTopButton, null)));\r\n","export const widgetMock = {\r\n language: {\r\n title: \"Select your language/country\",\r\n type: \"widget\",\r\n sections: [\r\n {\r\n title: \"International\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"English\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"EN\",\r\n selected: false,\r\n linkUrl: \"/en\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LATAM\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Brazil\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"BRA\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/pt/\",\r\n },\r\n {\r\n title: \"Latin America\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"ES\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/latam/\",\r\n }\r\n ],\r\n },\r\n {\r\n title: \"Asia Pacific\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"China\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"AU\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/ch/\",\r\n },\r\n {\r\n title: \"Japan\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"JP\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/jp/\",\r\n },\r\n {\r\n title: \"Vietnam\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"IN\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/id/\",\r\n },\r\n {\r\n title: \"Taiwan\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"NZ\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/nz/\",\r\n },\r\n {\r\n title: \"Indonesia\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"Thai\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/th/\",\r\n },\r\n {\r\n title: \"Thailand\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"Vietnam\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/vn/\",\r\n },\r\n {\r\n title: \"Australia\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"AU\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/au/\",\r\n },\r\n {\r\n title: \"Australia\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"AU\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/au/\",\r\n }\r\n ],\r\n },\r\n {\r\n title: \"Africa, Middle East\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"UAE\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"UAE\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/ar/\",\r\n },\r\n {\r\n title: \"Middle East\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"UAE\",\r\n selected: false,\r\n linkUrl: \"/en\",\r\n },\r\n {\r\n title: \"South Africa\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"ZA\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/za/\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Europe\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"United Kingdom\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"BG\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/eu/\",\r\n },\r\n {\r\n title: \"Poland\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"DE\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/de/\",\r\n },\r\n {\r\n title: \"Spain\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"IT\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/it/\",\r\n },\r\n {\r\n title: \"Czech Republic\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"PL\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/pl/\",\r\n },\r\n {\r\n title: \"Germany\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"SP\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/es/\",\r\n },\r\n {\r\n title: \"Greece\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"UK\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/uk/\",\r\n },\r\n {\r\n title: \"Italy\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"EU\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/eu/\",\r\n },\r\n {\r\n title: \"Europe\",\r\n icon: \"./images/languages/English.svg\",\r\n code: \"EU\",\r\n selected: false,\r\n linkUrl: \"https://www.thinkmarkets.com/eu/\",\r\n }\r\n ],\r\n },\r\n ],\r\n currentCulture: \"EN\",\r\n currentIcon: \"/images/Cards/TMTradingCardDeck/global.png\",\r\n },\r\n};\r\n","import { widgetMock } from \"../NavigationWidgets/NavigationWidgets.props.mock\";\r\nexport const navigationMock = {\r\n navigationItems: [\r\n {\r\n title: \"Markets\",\r\n type: \"text\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"TRADING\",\r\n type: \"wide\",\r\n sectionItems: [\r\n {\r\n title: \"CFD trading\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Find out how CFD trading works and its benefits\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Forex\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Choose from major, minor and exotic currency pairs\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Indices\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Choose from a wide selection of global indices\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Commodities\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Trade CFDs on gold, other metals and energy\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Cryptocurrencies\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Go long or go short on the most popular cryptocurrencies\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Stocks\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Trade on stocks without buying company shares\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"ETFs\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Speculate on the price movements of ETFs\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Futures\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Open CFD trades on the most popular futures contracts\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Contract specifications\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Check out spreads, contract size and other details\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Platforms\",\r\n type: \"text\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"TRADING\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Platform overview\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Check out what our platforms have to offer\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Platform comparison\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Find the platform that suits your trading style\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"ThinkTrader\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"The award-winning proprietary CFD trading platform\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }, {\r\n title: \"ThinkMarkets MT4\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"The industry-standard trading platform\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"ThinkMarkets MT5\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"The latest MetaTrader with advanced features\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }, {\r\n title: \"ThinkCopy\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"The copy trading app for beginners and signal providers\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ACCOUNT INFORMATION\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Account types\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Choose from Standard, ThinkZero and other accounts\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Account management\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Explore ThinkPortal – our sophisticated trading hub\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Deposit & withdraw\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Move your funds in and out of your account with ease\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"TOOLS\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Signal Centre\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Choose from Standard, ThinkZero and other accounts\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"VPS hosting\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Explore ThinkPortal – our sophisticated trading hub\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Traders' Gym\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Move your funds in and out of your account with ease\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Learning\",\r\n type: \"text\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"TRADING GUIDES\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Academy\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Master your trading knowledge with our guides\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Glossary\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Familiarise yourself with the most used trading terms\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Videos\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Grasp the trading basics with our videos\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }\r\n ],\r\n },\r\n {\r\n title: \"MARKET OVERVIEW\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Market news\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Stay up to date with the latest market news and insights\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Economic calendar\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Keep an eye on economic events to plan your trades\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }\r\n ],\r\n }\r\n ],\r\n },\r\n {\r\n title: \"Company\",\r\n type: \"text\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"THINKMARKETS\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Who we are\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Learn about our values, expertise and licenses\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Careers\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Join our team to make a difference in the trading world\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Announcements\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Check out the latest in-house updates and developments\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Legal documents\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Understand your legal relationship with us before you start trading.\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Sponsorship\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Discover all our new and existing sponsorship agreements.\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Security\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"See how your trading account is protected with us\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }\r\n ],\r\n },\r\n {\r\n title: \"SUPPORT\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Contact us\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Get in touch with our client support team 24/7\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"Help center\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Find answers to the most frequently asked questions\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n },\r\n {\r\n title: \"System status\",\r\n linkUrl: \"#\",\r\n linkMoreText: \"\",\r\n linkMoreUrl: \"\",\r\n description: \"Uncover any planned or unplanned outages to our services.\",\r\n imageUrl: \"./images/Header/navigationBar/trade.svg\",\r\n }\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Log in\",\r\n type: \"button-login\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"TRADING PLATFORMS\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"ThinkTrader Web\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Login\",\r\n linkMoreUrl: \"#\",\r\n description: \"Turn your browser into a high-performance trading tool\",\r\n type: \"login\",\r\n imageUrl: \"./images/Header/navigationBar/ThinkTrader.svg\",\r\n },\r\n {\r\n title: \"ThinkMarkets MT4\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Login\",\r\n linkMoreUrl: \"#\",\r\n description: \"Established, secure and equipped with a supreme set of features.\",\r\n type: \"login\",\r\n imageUrl: \"./images/Header/navigationBar/ThinkTrader.svg\",\r\n },\r\n {\r\n title: \"ThinkMarkets MT5\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Login\",\r\n linkMoreUrl: \"#\",\r\n description: \"Upgraded version of MT4 with a wide selection of instruments.\",\r\n type: \"login\",\r\n imageUrl: \"./images/Header/navigationBar/ThinkTrader.svg\",\r\n }\r\n ],\r\n },\r\n {\r\n title: \"ACCOUNT MANAGEMENT\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"ThinkPortal\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Login\",\r\n linkMoreUrl: \"#\",\r\n description: \"Access and manage all your accounts in one place.\",\r\n type: \"login\",\r\n imageUrl: \"./images/Header/navigationBar/AccountManagement.svg\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Sign up\",\r\n type: \"button-register\",\r\n isCurrentPage: false,\r\n sections: [\r\n {\r\n title: \"\",\r\n type: \"default\",\r\n sectionItems: [\r\n {\r\n title: \"Demo account\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Sign up\",\r\n linkMoreUrl: \"#\",\r\n description: \"Explore the markets, test your skills and practice using trading tools in a risk-free environment.\",\r\n imageUrl: \"./images/Header/navigationBar/NewAccountUser.svg\",\r\n type: \"register\",\r\n },\r\n {\r\n title: \"Live account\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Create account\",\r\n linkMoreUrl: \"#\",\r\n description: \"Catch trading opportunities on thousands of instruments and put your trading knowledge to work.\",\r\n imageUrl: \"./images/Header/navigationBar/NewAccountUser.svg\",\r\n type: \"register\",\r\n }\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n searchPlaceholder: \"Search for...\",\r\n data: [\r\n {\r\n title: \"Support\", href: \"#\",\r\n sections: [\r\n {\r\n title: \"Affiliates\",\r\n type: \"wide\",\r\n sectionItems: [\r\n {\r\n title: \"\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Explore affiliates\",\r\n linkMoreUrl: \"#\",\r\n description: \"Receive a one-time affiliate fee for every eligible trader you refer.\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Introducing brokers\",\r\n type: \"wide\",\r\n sectionItems: [\r\n {\r\n title: \"\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Explore introducing brokers\",\r\n linkMoreUrl: \"#\",\r\n description: \"Get unlimited commissions without maximum payout when your clients trade. \",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Money managers\",\r\n type: \"wide\",\r\n sectionItems: [\r\n {\r\n title: \"\",\r\n linkUrl: \"\",\r\n linkMoreText: \"Explore money managers\",\r\n linkMoreUrl: \"#\",\r\n description: \"Manage investor funds and get compensated with both fees and commissions. \",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n { title: \"Deposit\", href: \"#\", sections: [] },\r\n ],\r\n widgets: widgetMock,\r\n menuTitle: \"Menu\",\r\n searchWidgetProps: { searchItems: { title: \"Search Site\", sections: [], type: \"widget\", currentCulture: \"EN\", currentIcon: \"emptyValueForMock\" } },\r\n logoHref: \"~/en\"\r\n};\r\n","import { widgetMock } from \"../NavigationWidgets/NavigationWidgets.props.mock\";\r\nexport const secondaryNavigationMock = {\r\n data: [\r\n { title: \"Support\", href: \"#\", sections: [] },\r\n { title: \"Deposit\", href: \"#\", sections: [] },\r\n ],\r\n widgets: widgetMock,\r\n};\r\n","export const footerMock = {\r\n socialSectionLogoImageUrl: \"./images/ThinkMarkets-logo.svg\",\r\n socialSectionLogoImageAlt: \"Think Markets\",\r\n socialSectionLiveChatText: \"Need to get in touch? Contact our client support team via live chat.\",\r\n socialSectionIcons: [\r\n { iconUrl: \"./images/Footer/icon-facebook.svg\", iconAlt: \"\", iconLink: \"\" },\r\n { iconUrl: \"./images/Footer/icon-twitter.svg\", iconAlt: \"\", iconLink: \"\" },\r\n { iconUrl: \"./images/Footer/icon-youtube.svg\", iconAlt: \"\", iconLink: \"\" },\r\n { iconUrl: \"./images/Footer/icon-linkedin.svg\", iconAlt: \"\", iconLink: \"\" },\r\n { iconUrl: \"./images/Footer/icon-instagram.svg\", iconAlt: \"\", iconLink: \"\" }\r\n ],\r\n footerBannerImageUrl: \"./images/Footer/footer_banner.svg\",\r\n footerBannerImageAlt: \"footer banner\",\r\n riskWarningText: `

Risk Warning: Derivative products are leveraged products and can result in losses that exceed initial deposits. Please ensure you fully understand the risks and take care to manage your exposure and seek independent advice if necessary.

\r\n
\r\n

TF Global Markets Int Limited is authorised and regulated by the Financial Services Authority, Firm Reference Number SD060. Registered address: CT House, Office 9B, Providence, Mahe, Seychelles. Company number 8424818-1. Clients will engage with services offered by TF Global Markets Int Limited, unless otherwise stated, please see the legal documents, including the Terms & Conditions for specific details.

\r\n
\r\n

ThinkMarkets Group is a global financial services provider, ThinkMarkets is a registered trademark of the group, that operates among various entities. For more information please visit the About Us section.

\r\n
\r\n

Think Capital Limited is registered in Bermuda, Company number: 51879. Registered address: Clarendon House, 2 Church Street, Hamilton HM 11, Bermuda. Think Capital is not required to hold any financial services license or authorization in Bermuda to offer its products and services. For the avoidance of doubt; Think Capital is not licensed by the Bermuda Monetary Authority, and does not provide any products and services under the Digital Asset Business Act 2018.

\r\n
\r\n

TFG (Payments) Limited is registered in the United Kingdom, Company number 10537331. Registered address: Hana, 4th Floor, 70 St Mary Axe, London EC3A 8BE.

\r\n
\r\n

Think Capital Services UK Ltd is registered in the United Kingdom, Company number 11054653. Registered address: Hana, 4th Floor, 70 St Mary Axe, London, EC3A 8BE

\r\n
\r\n

The information on this site is not directed to residents of the United States, Canada, the European Union, Australia, United Kingdom and Japan and is not intended for distribution to, or use by, any person in any country or jurisdiction where such distribution or use would be contrary to local law or regulation.

\r\n
\r\n

© 2022 This website is owned and operated by ThinkMarkets Group.

`,\r\n logoHref: \"~/en\",\r\n sections: [\r\n { title: \"TRADE WITH US\",\r\n section: [\r\n { label: \"Trade CFDs\", url: \"#\" },\r\n { label: \"Social Trading\", url: \"#\" },\r\n { label: \"Trading tools\", url: \"#\" },\r\n { label: \"Pricing\", url: \"#\" }\r\n ]\r\n },\r\n { title: \"ACCOUNT INFORMATION\",\r\n section: [\r\n { label: \"Account Comparison\", url: \"#\" },\r\n { label: \"Demo Account\", url: \"#\" },\r\n { label: \"ThinkZero Account\", url: \"#\" },\r\n { label: \"Manage Account\", url: \"#\" },\r\n { label: \"Deposit & Withdraw\", url: \"#\" }\r\n ]\r\n },\r\n { title: \"POPULAR IN LEARNING\",\r\n section: [\r\n { label: \"Japanese Candlesticks\", url: \"#\" },\r\n { label: \"Glossary of The Day\", url: \"#\" },\r\n { label: \"Learn to Trade CFDs\", url: \"#\" },\r\n { label: \"Successful Trading Strategies\", url: \"#\" }\r\n ]\r\n },\r\n { title: \"COMPANY\",\r\n section: [\r\n { label: \"About ThinkMarkets\", url: \"#\" },\r\n { label: \"Press & Announcements\", url: \"#\" },\r\n { label: \"Careers\", url: \"#\" }\r\n ]\r\n },\r\n { title: \"SUPPORT\",\r\n section: [\r\n { label: \"How to place a trade?\", url: \"#\" },\r\n { label: \"How to create an account?\", url: \"#\" },\r\n { label: \"How to deposit?\", url: \"#\" },\r\n { label: \"How long does it take for account approval?\", url: \"#\" },\r\n { label: \"What types of accounts do you offer?\", url: \"#\" }\r\n ]\r\n },\r\n { title: \"LEGAL\",\r\n section: [\r\n { label: \"Terms & conditions\", url: \"#\" },\r\n { label: \"Privacy policy\", url: \"#\" },\r\n { label: \"Risk disclaimer\", url: \"#\" },\r\n { label: \"Regulations\", url: \"#\" }\r\n ]\r\n },\r\n ],\r\n};\r\n","import React from \"react\";\r\nimport { Footer } from \"../../stories/Footer/Footer\";\r\nimport { NavigationHeader } from \"../Header\";\r\nimport { navigationMock } from \"../Header/Navigation/navigation.props.mock\";\r\nimport { secondaryNavigationMock } from \"../Header/SecondaryNavigation/secondaryNavigationMock.props.mock\";\r\nimport { widgetMock } from \"../Header/NavigationWidgets/NavigationWidgets.props.mock\";\r\nimport { footerMock } from \"../Footer/Footer.props.mock\";\r\nexport const Layout = (props) => (React.createElement(React.Fragment, null,\r\n React.createElement(NavigationHeader, { navigationItems: navigationMock.navigationItems, secondaryNavigation: secondaryNavigationMock, widgets: widgetMock, menuTitle: navigationMock.menuTitle, searchWidgetProps: navigationMock.searchWidgetProps, logoHref: navigationMock.logoHref, searchPlaceholder: navigationMock.searchPlaceholder }),\r\n props.children,\r\n React.createElement(Footer, { socialSectionLogoImageUrl: footerMock.socialSectionLogoImageUrl, socialSectionLogoImageAlt: footerMock.socialSectionLogoImageAlt, socialSectionLiveChatText: footerMock.socialSectionLiveChatText, socialSectionIcons: footerMock.socialSectionIcons, sections: footerMock.sections, footerBannerImageUrl: footerMock.footerBannerImageUrl, footerBannerImageAlt: footerMock.footerBannerImageAlt, riskWarningText: footerMock.riskWarningText, logoHref: footerMock.logoHref })));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const AccordionCardDeckWithImageV2 = (props) => {\r\n const { bgColor, textColor } = getColors(props.designStyles?.backgroundColor);\r\n const [imageIndexState, setImageIndexState] = useState(0);\r\n const setIndexImageStateCallback = useCallback((e) => {\r\n const indexElement = e.currentTarget.getAttribute(\"data-index\");\r\n const index = parseInt(indexElement, 10);\r\n if (!isNaN(index)) {\r\n setImageIndexState(index);\r\n }\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"accordion-card-deck-with-image-v2\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"accordion-card-deck-with-image-v2__title-container\" },\r\n React.createElement(Heading, { design: props.designStyles?.titleDesign }, props.title),\r\n React.createElement(\"p\", { className: \"copy-lp\", dangerouslySetInnerHTML: {\r\n __html: props.description,\r\n } })),\r\n React.createElement(\"div\", { className: \"hide-small hide-medium\" },\r\n React.createElement(\"div\", { className: \"accordion-card-with-image-container-large\" },\r\n React.createElement(\"div\", { className: \"right-menu-container-large background-pure-white\" }, props.cards.map((card, i) => React.createElement(\"div\", { key: `card-large-${i}`, \"data-index\": i, className: `card-large ${imageIndexState === i ? \"hovered\" : \"\"}`, onMouseEnter: setIndexImageStateCallback },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"div\", { className: \"card-title-container\", key: `accordion-card-${i}` },\r\n React.createElement(\"div\", { className: \"flex\" },\r\n card.iconUrl && React.createElement(ImgV2, { largeUrl: card.iconUrl, strictRender: true, className: \"accordion-card-deck-with-image-v2__platform-image-icon\" }),\r\n React.createElement(\"div\", { className: \"accordion-card-deck-with-image-v2__custom-title-font\" }, card.title)),\r\n React.createElement(\"div\", { className: \"card-expand-description accordion-card-deck-with-image-v2__custom-description-font\" }, card.text)))))),\r\n React.createElement(\"div\", { className: \"left-image-container-large\" },\r\n React.createElement(ImgV2, { largeUrl: props.cards[imageIndexState] ? props.cards[imageIndexState].imageUrlDesktop : \"\", alt: props.cards[imageIndexState] ? props.cards[imageIndexState].alt : \"\", strictRender: true, className: \"image-large-deck\" }))),\r\n React.createElement(\"div\", { className: \"reference-footnote\" }, props.disclaimer)),\r\n React.createElement(\"div\", { className: \"hide-large\" },\r\n React.createElement(\"div\", { className: \"accordion-card-deck-with-image-v2__grid-cards\" }, props.cards.map((card, i) => (React.createElement(\"div\", { key: i },\r\n React.createElement(\"div\", { className: \"accordion-card-deck-with-image-v2__tablet-card\" },\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", { className: \"accordion-card-deck-with-image-v2__tablet-card-image-container\" },\r\n React.createElement(ImgV2, { strictRender: true, smallUrl: card.imageUrlMobile, mediumUrl: card.imageUrlMobile, alt: card.alt, className: \"accordion-card-deck-with-image-v2__tablet-card-image\" })),\r\n React.createElement(\"img\", { src: card.iconUrl, alt: card.iconAlt, className: \"accordion-card-deck-with-image-v2__tablet-card-icon-image\" }),\r\n React.createElement(\"h5\", { className: \"accordion-card-deck-with-image-v2__custom-title-font\" }, card.title),\r\n React.createElement(\"p\", { className: \"accordion-card-deck-with-image-v2__custom-description-font\" }, card.text)))))))))));\r\n};\r\n","import React from \"react\";\r\nexport const SmallArrowIcon = (React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 40 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M26.3 18.8c.235.234.366.552.367.883v.634c-.004.33-.136.647-.367.883l-8.567 8.55a.834.834 0 0 1-1.183 0l-1.183-1.183a.816.816 0 0 1 0-1.167l7.416-7.4-7.416-7.4a.833.833 0 0 1 0-1.183l1.183-1.167a.833.833 0 0 1 1.183 0L26.3 18.8z\", fill: \"#FFF\" })));\r\n","import React, { useCallback, useState, useEffect } from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { SmallArrowIcon } from \"../../svgIcons/smallArrowIcon\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Navigation, Autoplay, Pagination } from \"swiper\";\r\nSwiperCore.use([Navigation, Autoplay, Pagination]);\r\nexport const DarkBackgroundCardDeckWithImage = ({ title, titleDescription, titlePosition, cards }) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [imageIndexState, setImageIndexState] = useState(0);\r\n const setIndexImageStateCallback = useCallback((e) => {\r\n const index = e.currentTarget.dataset.index;\r\n setImageIndexState(parseInt(index, 10));\r\n }, []);\r\n const [titleValue, setTitleValue] = useState(\"\");\r\n const [titleDescValue, setTitleDescValue] = useState(\"\");\r\n const [isSmallValue, setIsSmallValue] = useState(false);\r\n const [isMediumValue, setIsMediumValue] = useState(false);\r\n const [isLargeValue, setIsLargeValue] = useState(false);\r\n useEffect(() => {\r\n setTitleValue(title);\r\n setTitleDescValue(titleDescription);\r\n setIsSmallValue(isSmall);\r\n setIsMediumValue(isMedium);\r\n setIsLargeValue(isLarge);\r\n }, [title, titleDescription, isSmall, isMedium, isLarge]);\r\n const smallTitleContainer = (titlePosition) => (React.createElement(\"div\", { className: 'card-deck-container-resources__title-container-small', style: { textAlign: titlePosition } },\r\n React.createElement(\"h2\", { className: \"color-pure-white\" }, titleValue),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold color-dark-20\" }, titleDescValue)));\r\n const bigTitleContainer = (titlePosition) => (React.createElement(\"div\", { style: { textAlign: titlePosition } },\r\n React.createElement(\"h2\", { className: \"color-pure-white\" }, titleValue),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold color-dark-20 card-deck-container-resources__title-description-lardium\" }, titleDescValue)));\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"bg-color-dark-default\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"card-deck-container-resources bg-color-dark-default\" },\r\n isSmallValue && React.createElement(\"div\", null,\r\n smallTitleContainer(titlePosition === undefined ? \"center\" : titlePosition.toLowerCase()),\r\n React.createElement(Swiper, { spaceBetween: 50, slidesPerView: 1, pagination: { clickable: true } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `platforms-slider-slide-${i}` },\r\n React.createElement(\"a\", { href: card.linkUrl, style: { textDecoration: \"none\", color: \"inherit\" } },\r\n React.createElement(\"div\", { key: i },\r\n React.createElement(\"div\", null,\r\n React.createElement(Img, { src: card.imageUrl, alt: card.imageAlt, style: { width: \"100%\", height: \"100%\" } })),\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__card-text-content-small\" },\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__flex\", key: `accordion-card-${i}` },\r\n React.createElement(Img, { src: card.iconImageUrl, alt: card.iconAlt }),\r\n React.createElement(\"h5\", { className: \"color-pure-white\" }, card.title),\r\n React.createElement(\"span\", { className: \"hide-large card-deck-container-resources__arrow-icon\" }, SmallArrowIcon)),\r\n React.createElement(\"p\", { className: \"color-dark-20\" }, card.text)))))))),\r\n (isLargeValue || isMediumValue) && React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__main-container-lardium\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__title-container-lardium\" }, bigTitleContainer(titlePosition === undefined ? \"center\" : titlePosition.toLowerCase())),\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__top-image-container-medium hide-large\" },\r\n React.createElement(Img, { src: cards[0].imageUrl, alt: cards[0].imageAlt })),\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__cards-grid\" }, cards.map((card, i) => React.createElement(\"div\", { key: `card-large-${i}`, \"data-index\": i, className: `card-deck-container-resources__card-large ${imageIndexState === i ? \"hovered\" : \"\"}`, onMouseEnter: setIndexImageStateCallback },\r\n React.createElement(\"a\", { href: card.linkUrl, style: { textDecoration: \"none\", color: \"inherit\" } },\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__card-title-container\", key: `accordion-card-${i}` },\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__flex\" },\r\n React.createElement(Img, { src: card.iconImageUrl, alt: card.iconAlt }),\r\n React.createElement(\"h5\", { className: \"color-pure-white color-dark-20\" }, card.title),\r\n React.createElement(\"div\", { className: \"hide-large card-deck-container-resources__arrow-icon\" },\r\n React.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 40 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M26.3 18.8c.235.234.366.552.367.883v.634c-.004.33-.136.647-.367.883l-8.567 8.55a.834.834 0 0 1-1.183 0l-1.183-1.183a.816.816 0 0 1 0-1.167l7.416-7.4-7.416-7.4a.833.833 0 0 1 0-1.183l1.183-1.167a.833.833 0 0 1 1.183 0L26.3 18.8z\", fill: \"#FFF\" })))),\r\n React.createElement(\"p\", { className: \"color-dark-20\" }, card.text))))))),\r\n React.createElement(\"div\", { className: \"card-deck-container-resources__left-image-container-large hide-medium\" },\r\n React.createElement(Img, { src: cards[imageIndexState].imageUrl, alt: cards[imageIndexState].imageAlt, className: \"image-large-deck\" })))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const CardWithIcon = (props) => (React.createElement(\"div\", { className: \"card-with-icon\" },\r\n React.createElement(\"div\", { className: \"card-with-icon__img-container\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt })),\r\n React.createElement(\"div\", { className: \"card-with-icon__text-container\" },\r\n React.createElement(\"h2\", { className: \"card-with-icon__title\" }, props.title),\r\n React.createElement(\"p\", null, props.text))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW, Col, Row } from \"../../global\";\r\nimport { CardWithIcon } from \"./CardWithIcon/CardWithIcon\";\r\nexport const CardWithIconDeck = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `card-with-icon-deck ${props.primaryLinkText ? \"with-btn\" : \"without-btn\"}` },\r\n props.title && (React.createElement(\"div\", { className: \"card-with-icon-deck__main-title\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: { __html: props.title } }),\r\n props.text && React.createElement(\"p\", null, props.text))),\r\n React.createElement(\"div\", { className: \"card-with-icon-deck__card-container\" },\r\n React.createElement(Row.Cols3, null, props.content.map((item, i) => (React.createElement(Col, { key: i },\r\n React.createElement(CardWithIcon, { title: item.title, text: item.text, imageAlt: item.imageAlt, imageUrl: item.imageUrl })))))))),\r\n React.createElement(Container, null, props.primaryLinkText && (React.createElement(\"div\", { className: \"card-with-icon-deck__links\" },\r\n React.createElement(\"a\", { className: \"card-with-icon-deck__link card-with-icon-deck__primaryLink\", href: props.primaryLinkUrl }, props.primaryLinkText),\r\n React.createElement(\"a\", { className: \"card-with-icon-deck__link card-with-icon-deck__secondaryLink\", href: props.secondaryLinkUrl }, props.secondaryLinkText))))));\r\n{\r\n}\r\n","import React from \"react\";\r\nexport const DarkNumberedCard = ({ index, title, content }) => (React.createElement(\"div\", { className: \"dark-numbered-card\" },\r\n React.createElement(\"h3\", { className: \"dark-numbered-card__title\" },\r\n React.createElement(\"span\", { className: \"dark-numbered-card__index\" }, index),\r\n title),\r\n React.createElement(\"p\", { className: \"dark-numbered-card__content\" }, content)));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container, Row, Col } from \"../../global\";\r\nimport { DarkNumberedCard } from \"./DarkNumberedCard/DarkNumberedCard\";\r\nexport const DarkNumberedCardDeck = ({ title, subTitle, titleSubtitlePosition, cards, primaryLinkText, primaryLinkUrl, secondaryLinkText, secondaryLinkUrl }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: `dark-numbered-card-deck title-position-${titleSubtitlePosition}` },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"dark-numbered-card-deck__title\", style: { textAlign: titleSubtitlePosition } }, title),\r\n subTitle && React.createElement(\"p\", { className: \"dark-numbered-card-deck__subTitle\", style: { textAlign: titleSubtitlePosition } }, subTitle)),\r\n React.createElement(\"div\", { className: \"dark-numbered-card-deck__cards\" },\r\n React.createElement(Container, null,\r\n React.createElement(Row.Cols3, null, cards.map((card, i) => React.createElement(Col, { key: `key-DarkNumberedCard-${i}` },\r\n React.createElement(DarkNumberedCard, { index: `0${i + 1}`, title: card.title, content: card.content })))))),\r\n React.createElement(Container, null, primaryLinkText && React.createElement(\"div\", { className: \"dark-numbered-card-deck__links\" },\r\n React.createElement(\"a\", { className: \"dark-numbered-card-deck__link dark-numbered-card-deck__primaryLink\", href: primaryLinkUrl }, primaryLinkText),\r\n secondaryLinkText && React.createElement(\"a\", { className: \"dark-numbered-card-deck__link dark-numbered-card-deck__secondaryLink\", href: secondaryLinkUrl }, secondaryLinkText))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const InformationCardDark = (props) => (React.createElement(\"div\", { className: \"informationCardDark\" },\r\n React.createElement(Img, { className: \"informationCardDark__img\", src: props.backgroundImgURL, alt: props.alt }),\r\n React.createElement(\"div\", { className: \"informationCardDark__text\" },\r\n React.createElement(\"h3\", { className: \"informationCardDark__title\" }, props.title),\r\n React.createElement(\"div\", { className: \"informationCardDark__description\" }, props.description)),\r\n React.createElement(\"div\", { className: \"informationCardDark__link\" },\r\n React.createElement(\"div\", { className: \"informationCardDark__link--text\" },\r\n React.createElement(\"a\", { href: props.linkUrl }, props.linkText),\r\n React.createElement(\"div\", { className: \"informationCardDark__link--icon\" }, arrowIcon())))));\r\nexport const arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#fff\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nimport { Swiper, SwiperSlide, } from \"swiper/react\";\r\nimport { Navigation, Pagination } from \"swiper\";\r\nimport { InformationCardDark } from \"./InformationCardDark/InformationCardDark\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const InformationCardDarkDeck = (props) => {\r\n const [view, setView] = React.useState(pageViewStyle.getView());\r\n const [swiper, setSwiper] = React.useState();\r\n const [showSwiper, setShowSwiper] = React.useState(true);\r\n const setSwiperInstance = React.useCallback((s) => setSwiper(s), []);\r\n const { bgColor } = getColors(props.backgroundColor || \"neutralaccentbackground\");\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n React.useEffect(() => {\r\n if (swiper && props.content.length > 3 && view === \"large\") {\r\n setShowSwiper(false);\r\n swiper.destroy();\r\n }\r\n }, [swiper, view]);\r\n React.useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, [view]);\r\n return (React.createElement(\"div\", { className: `information-card-dark-deck ${showSwiper ? \"\" : \"swiper-off\"}` },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"information-card-dark-deck__title-container\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n React.createElement(\"div\", { className: \"information-card-dark-deck__description-container\" },\r\n React.createElement(\"p\", null, props.description)),\r\n React.createElement(Swiper, { onSwiper: setSwiperInstance, modules: [Navigation, Pagination], spaceBetween: 24, slidesPerView: \"auto\", navigation: {\r\n nextEl: \".swiper-button-next\",\r\n prevEl: \".swiper-button-prev\",\r\n }, pagination: {\r\n el: \".information-card-dark-deck__pagination\",\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n } }, props.content.map((item, i) => React.createElement(SwiperSlide, { key: `information-card-dark-deck-slide-${i}` },\r\n React.createElement(InformationCardDark, { title: item.title, description: item.description, linkUrl: item.linkUrl, linkText: item.linkText, backgroundImgURL: item.backgroundImgURL, alt: item.alt })))),\r\n React.createElement(\"div\", { className: \"information-card-dark-deck__pagination\" })))));\r\n};\r\n","import React from \"react\";\r\nexport const PlatformInformationCard = (props) => (React.createElement(\"div\", { className: \"information-card information-card--platform\" },\r\n React.createElement(\"div\", { className: \"information-card__content\" },\r\n React.createElement(\"h4\", { className: \"information-card__title\" }, props.title),\r\n React.createElement(\"p\", { className: \"information-card__text\" }, props.text)),\r\n React.createElement(\"a\", { href: props.linkUrl, target: props.opensInNewTab ? \"_blank\" : \"_self\", rel: \"noreferrer\", className: \"information-card__link\" },\r\n props.linkText,\r\n \" \",\r\n arrowIcon())));\r\nconst arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW, Row, Col } from \"../../global\";\r\nimport { PlatformInformationCard } from \"./PlatformInformationCard/PlatformInformationCard\";\r\nexport const PlatformInformationCardDeck = (props) => (React.createElement(\"div\", { className: \"information-card__deck information-card__deck--platform\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"information-card__deck-title\", dangerouslySetInnerHTML: { __html: props.title }, style: { textAlign: props.titlePosition } }),\r\n (props.numberCols === \"3\") && React.createElement(Row.Cols3, null, props.cards.map((card, i) => React.createElement(Col, { key: `information-card-${i}` },\r\n React.createElement(PlatformInformationCard, { ...card, numberCols: props.numberCols })))),\r\n props.numberCols === \"2\" && React.createElement(Row.Cols2, null, props.cards.map((card, i) => React.createElement(Col, { key: `information-card-${i}` },\r\n React.createElement(PlatformInformationCard, { ...card, numberCols: props.numberCols })))),\r\n props.announcement && React.createElement(\"p\", { className: \"information-card__deck-announcement\", dangerouslySetInnerHTML: { __html: props.announcement } })))));\r\n","import React from \"react\";\r\nimport { Button } from \"../../../Button\";\r\nimport { Img } from \"../../../Img\";\r\nexport const AccountCard = (props) => (React.createElement(\"div\", { className: \"account-card\" },\r\n React.createElement(\"h3\", { className: \"account-card__title\" }, props.title),\r\n props.sections.map((section, i) => (React.createElement(\"div\", { key: `account-card__section-${i}`, className: \"account-card__section\" },\r\n React.createElement(\"p\", { className: \"account-card__section-title\" }, section.title),\r\n section.sectionItems.map((item, id) => (React.createElement(\"div\", { key: `account-card__section-item-${id}`, className: \"account-card__section-item\" },\r\n React.createElement(\"p\", { className: \"account-card__section-item-title\" }, item.title),\r\n item.text && (React.createElement(\"p\", { className: \"account-card__section-item-text\" }, item.text)),\r\n item.icon && (React.createElement(Img, { src: item.icon, className: \"account-card__section-item-icon\" })),\r\n item.linkText && (React.createElement(\"a\", { href: item.linkUrl, className: \"account-card__section-item-link information-card__link\" },\r\n item.linkText,\r\n \" \",\r\n arrowIcon())),\r\n item.images && (React.createElement(\"div\", { className: \"account-card__section-item-images\" }, item.images.map((img, index) => (React.createElement(\"div\", { key: `account-card__section-item-image-${index}`, className: \"account-card__section-item-image-container\" },\r\n React.createElement(\"p\", { className: \"account-card__section-item-text-image-title\" }, img.title),\r\n React.createElement(Img, { src: img.imageUrl, className: \"account-card__section-item-image\" })))))))))))),\r\n props.buttonText && (React.createElement(Button, { label: props.buttonText, href: props.buttonUrl, style: { margin: \"auto\" }, primary: true }))));\r\nconst arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React, { useEffect } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { AccountCard } from \"./AccountCard/AccountCard\";\r\nexport const AccountCardDeck = (props) => {\r\n useEffect(() => {\r\n const col1Items = document.querySelectorAll(\".account-card\")[0].querySelectorAll(\".account-card__section-item\");\r\n const col2Items = document.querySelectorAll(\".account-card\")[1].querySelectorAll(\".account-card__section-item\");\r\n for (let i = 0; i < col1Items.length; i++) {\r\n const col1Height = col1Items[i].offsetHeight;\r\n const col2Height = col2Items[i].offsetHeight;\r\n const maxHeight = Math.max(col1Height, col2Height);\r\n if (col1Height < maxHeight) {\r\n col1Items[i].style.height = `${maxHeight}px`;\r\n }\r\n if (col2Height < maxHeight) {\r\n col2Items[i].style.height = `${maxHeight}px`;\r\n }\r\n }\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"information-card__deck account-card__deck\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"information-card__deck-title\", dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(\"div\", { className: \"information-card__deck-cards\" }, props.cards.map((card, i) => React.createElement(AccountCard, { key: `information-card-${i}`, ...card }))),\r\n props.legend && React.createElement(\"p\", { className: \"information-card__legend\", dangerouslySetInnerHTML: { __html: props.legend } })))));\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { ButtonV2 } from \"../../../ButtonV2\";\r\nimport { Img } from \"../../../Img\";\r\nexport const VPSProviderCard = ({ logoUrl, logoAlt, keyFeatures, specifications, linkText, linkUrl, warning, openInNewTab }) => (React.createElement(\"div\", { className: \"vps-provider-card\" },\r\n React.createElement(\"div\", { className: \"vps-provider-card__header\" },\r\n React.createElement(\"div\", { className: \"vps-provider-card__logo\" },\r\n React.createElement(Img, { src: logoUrl, alt: logoAlt })),\r\n keyFeatures && React.createElement(\"div\", { className: \"vps-provider-card__key-features\" }, keyFeatures.map(({ featureName, featureValue }, index) => (React.createElement(Fragment, { key: index },\r\n React.createElement(\"div\", { className: \"vps-provider-card__key-features-name\" }, featureName),\r\n React.createElement(\"div\", { className: \"vps-provider-card__key-features-value\", dangerouslySetInnerHTML: { __html: featureValue } })))))),\r\n specifications && specifications.length > 0 && React.createElement(\"div\", { className: \"vps-provider-card__specifications\" },\r\n React.createElement(\"ul\", null, specifications.map((item, index) => (React.createElement(\"li\", { key: index }, item))))),\r\n React.createElement(\"div\", { className: \"vps-provider-card__footer\" },\r\n linkText && (React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", href: linkUrl, openInNewTab: openInNewTab }, linkText)),\r\n React.createElement(\"div\", { className: \"vps-provider-card__warning\", dangerouslySetInnerHTML: { __html: warning } }))));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ContainerFW, } from \"../../global\";\r\nimport { VPSProviderCard, } from \"./VPSproviderCard/VPSproviderCard\";\r\nexport const VPSproviderCardDeck = ({ title, providerData: { logoUrl, logoAlt, keyFeatures, specifications, linkText, linkUrl, warning, openInNewTab }, }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"vps-provider-card-deck\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"vps-provider-card-deck__cards\" },\r\n React.createElement(VPSProviderCard, { logoUrl: logoUrl, logoAlt: logoAlt, keyFeatures: keyFeatures, specifications: specifications, linkText: linkText, linkUrl: linkUrl, warning: warning, openInNewTab: openInNewTab })))));\r\n","import React from \"react\";\r\nexport const NumberedCardDemo = ({ index, title, content }) => (React.createElement(\"div\", { className: \"dark-numbered-card dark-numbered-card--demo\" },\r\n React.createElement(\"h3\", { className: \"dark-numbered-card__title\" },\r\n title,\r\n React.createElement(\"span\", { className: \"dark-numbered-card__index\" }, index)),\r\n React.createElement(\"p\", { className: \"dark-numbered-card__content\" }, content)));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container, Row, Col } from \"../../global\";\r\nimport { NumberedCardDemo, } from \"./NumberedCardDemo/NumberedCardDemo\";\r\nexport const NumberedCardDemoDeck = ({ title, cards, primaryLinkText, primaryLinkUrl, }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"dark-numbered-card-deck dark-numbered-card-deck--demo\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"dark-numbered-card-deck__title\" }, title)),\r\n React.createElement(\"div\", { className: \"dark-numbered-card-deck__cards\" },\r\n React.createElement(Container, null,\r\n React.createElement(Row.Cols3, null, cards.map((card, i) => (React.createElement(Col, { key: `key-NumberedCardDemo-${i}` },\r\n React.createElement(NumberedCardDemo, { index: `0${i + 1}`, title: card.title, content: card.content }))))))),\r\n primaryLinkText && (React.createElement(\"div\", { className: \"dark-numbered-card-deck__cta\" },\r\n React.createElement(\"a\", { href: primaryLinkUrl }, primaryLinkText))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const GetHelpCard = (props) => (React.createElement(\"div\", { className: \"getHelpCard\" },\r\n React.createElement(\"div\", { className: \"getHelpCard__icon-title\" },\r\n React.createElement(\"div\", { className: \"getHelpCard__card-icon\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt })),\r\n React.createElement(\"div\", { className: \"getHelpCard__card-title\" },\r\n React.createElement(\"p\", null, props.title))),\r\n React.createElement(\"div\", { className: \"getHelpCard__card-items\" }, props.links.map((card, index) => (React.createElement(\"div\", { key: index, className: \"getHelpCard__card-item\" },\r\n React.createElement(\"a\", { href: card.linkURL, target: \"_blank\", rel: \"noopener noreferrer\" }, card.linkText)))))));\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW, Row, Col } from \"../../global\";\r\nimport { GetHelpCard } from \"./GetHelpCard/GetHelpCard\";\r\nexport const GetHelpCardDeck = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"getHelpCardDeck\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"getHelpCardDeck__container\" },\r\n React.createElement(\"div\", { className: \"getHelpCardDeck__title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n React.createElement(\"div\", { className: \"getHelpCardDeck__cards-container\" },\r\n React.createElement(Row.Cols4, null, props.cards.map((card, index) => React.createElement(Col, { key: index },\r\n React.createElement(GetHelpCard, { ...card }))))))))));\r\n","import React, { useCallback, useRef, useState } from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nconst getAnimationClass = (isNewOpenState, newOpenedState, isAnimating) => {\r\n if (isNewOpenState || isAnimating) {\r\n return newOpenedState\r\n ? \" hot-topic-card--animate-in\"\r\n : \" hot-topic-card--animate-out\";\r\n }\r\n return \"\";\r\n};\r\nconst useIsNewOpenState = (oldState) => {\r\n const isOpened = useRef(undefined);\r\n const isNewOpenState = isOpened.current !== undefined && isOpened.current !== oldState;\r\n isOpened.current = !!oldState;\r\n return isNewOpenState;\r\n};\r\nexport const HotTopicCard = (props) => {\r\n const { id: cardId, onExpand } = props;\r\n const [isAnimating, setIsAnimating] = useState(false);\r\n const isNewOpenState = useIsNewOpenState(props.opened);\r\n const animationClass = getAnimationClass(isNewOpenState, props.opened, isAnimating);\r\n const setAnimationStart = useCallback(() => {\r\n setIsAnimating(true);\r\n }, []);\r\n const setAnimationEnd = useCallback(() => setIsAnimating(false), []);\r\n const handleExpand = useCallback(() => onExpand?.(cardId), [cardId, onExpand]);\r\n return (React.createElement(\"div\", { className: `hot-topic-card ${props.opened ? \"hot-topic-card--opened\" : \"\"} ${animationClass}` },\r\n React.createElement(\"h4\", { className: \"hot-topic-card__title\", title: props.title },\r\n React.createElement(\"span\", { className: \"clamp\" }, props.title),\r\n \" \",\r\n React.createElement(\"div\", { className: \"hot-topic-card__trigger\", onClick: handleExpand }, caretIcon())),\r\n React.createElement(\"div\", { className: \"hot-topic-card__image\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: \"\", loading: \"lazy\" })),\r\n React.createElement(\"div\", { className: \"hot-topic-card__reading-time\" },\r\n props.readingTime,\r\n \" \",\r\n props.textAfterReadingTime\r\n ? props.textAfterReadingTime\r\n : \"min read\"),\r\n React.createElement(\"div\", { className: \"hot-topic-card__text\", onAnimationStart: setAnimationStart, onAnimationEnd: setAnimationEnd }, props.text),\r\n React.createElement(\"div\", { className: \"hot-topic-card__link-wrapper\" },\r\n React.createElement(\"a\", { href: props.linkUrl, target: props.opensInNewTab ? \"_blank\" : \"_self\", rel: \"noreferrer\", className: \"hot-topic-card__link\" },\r\n props.linkText,\r\n \" \",\r\n arrowIcon()))));\r\n};\r\nexport const arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#007c8c\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\nexport const caretIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M17.29 11.29a.996.996 0 0 0-1.41 0L12 15.17l-3.88-3.88a.997.997 0 1 0-1.41 1.41l4.59 4.59a.994.994 0 0 0 1.41 0l4.59-4.59c.38-.38.38-1.02-.01-1.41z\", fill: \"#0e1d31\" })));\r\n","import React, { Fragment, useCallback, useState, useRef, useEffect, } from \"react\";\r\nimport { Gap } from \"../../../Components/Gaps/Gap\";\r\nimport { HotTopicCard } from \"./HotTopicCard/HotTopicCard\";\r\nexport const HotTopicCardDeck = (props) => {\r\n const [selectedCardId, setSelectedCardId] = useState(-1);\r\n const isFirstRender = useRef(true);\r\n const handleExpand = useCallback((id) => {\r\n setSelectedCardId((prevId) => (prevId === id ? -1 : id));\r\n }, []);\r\n const getCards = () => props.cards.map((card, i) => {\r\n const shouldCardBeOpened = isFirstRender.current\r\n ? card.opened\r\n : i === selectedCardId;\r\n return { ...card, id: i, opened: shouldCardBeOpened };\r\n });\r\n const cards = getCards();\r\n useEffect(() => {\r\n isFirstRender.current = false;\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"hot-topic-card__deck\" }, cards.map((card, i) => (React.createElement(Fragment, { key: `hot-topic-card-${i}` },\r\n React.createElement(HotTopicCard, { id: i, title: card.title, imageUrl: card.imageUrl, readingTime: card.readingTime, text: card.text, linkText: card.linkText, linkUrl: card.linkUrl, opensInNewTab: card.opensInNewTab, opened: card.opened, textAfterReadingTime: card.textAfterReadingTime, onExpand: handleExpand }),\r\n i !== cards.length - 1 && (React.createElement(Gap, { mobileGap: \"24px\", desktopGap: \"24px\" })))))));\r\n};\r\n","import React from \"react\";\r\nexport const BrokerRegulationCard = ({ title, text }) => (React.createElement(\"div\", { className: \"broker-regulation-card\" },\r\n React.createElement(\"h5\", { className: \"broker-regulation-card__title\", dangerouslySetInnerHTML: { __html: title } }),\r\n React.createElement(\"p\", { className: \"broker-regulation-card__text\", dangerouslySetInnerHTML: { __html: text } })));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Navigation, Pagination } from \"swiper\";\r\nimport { BrokerRegulationCard } from \"./BrokerRegulationCard/BrokerRegulationCard\";\r\nexport const BrokerRegulationCardDeck = ({ title, content }) => (React.createElement(\"div\", { className: \"broker-regulation-card-deck\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(\"h2\", { className: \"broker-regulation-card-deck__title\", dangerouslySetInnerHTML: { __html: title } }),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"broker-regulation-card-deck__table-view\" }, content.map((item, i) => (React.createElement(BrokerRegulationCard, { key: i, title: item.title, text: item.text }))))),\r\n React.createElement(\"div\", { className: \"broker-regulation-card-deck__swiper-view\" },\r\n React.createElement(Swiper, { modules: [Navigation, Pagination], spaceBetween: 16, slidesPerView: \"auto\", navigation: {\r\n nextEl: \".swiper-button-next\",\r\n prevEl: \".swiper-button-prev\",\r\n }, pagination: {\r\n el: \".broker-regulation-card-deck__pagination\",\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n } }, content.map((item, i) => React.createElement(SwiperSlide, { key: `broker-regulation-card-deck-slide-${i}` },\r\n React.createElement(BrokerRegulationCard, { title: item.title, text: item.text })))),\r\n React.createElement(\"div\", { className: \"broker-regulation-card-deck__pagination\" })))));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../../Heading\";\r\nimport { Img } from \"../../../Img\";\r\nexport const NewsCard = ({ imageURL, articleDate, articleTitle, articleSummary, articleAuthor, articleCategory, articleCategoryTranslated, articleURL, articleCfdTrading, isListView = false, articleImageAlt }) => {\r\n const publishDate = new Date(articleDate ? articleDate : \"\").toLocaleDateString(\"en-US\", {\r\n day: \"numeric\",\r\n month: \"short\",\r\n year: \"numeric\",\r\n });\r\n articleImageAlt === \"\" ? articleImageAlt = articleTitle : articleImageAlt = articleImageAlt;\r\n return (React.createElement(\"div\", { className: `newsCard ${isListView ? \"newsCard--list\" : \"\"}` },\r\n React.createElement(Img, { className: \"newsCard__img\", src: imageURL, alt: articleImageAlt }),\r\n React.createElement(\"div\", { className: \"newsCard__content\" },\r\n React.createElement(\"div\", { className: \"newsCard__content-inner\" },\r\n React.createElement(\"div\", { className: \"newsCard__published\" },\r\n articleCfdTrading && React.createElement(\"span\", { className: \"newsCard__cfd-trading\" }, articleCfdTrading),\r\n React.createElement(\"span\", { className: \"newsCard__category\" }, articleCategory),\r\n React.createElement(\"span\", { className: \"newsCard__date\" }, publishDate)),\r\n React.createElement(Heading, { design: \"h4-bold-small\" },\r\n React.createElement(\"a\", { href: articleURL }, articleTitle))),\r\n React.createElement(\"p\", { className: \"newsCard__text\" }, articleSummary),\r\n React.createElement(\"div\", { className: \"newsCard__author\" }, articleAuthor))));\r\n};\r\nexport const iconUser = (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M8 8.067a2.447 2.447 0 0 1-2.434-2.434C5.566 4.3 6.666 3.2 8 3.2c1.333 0 2.433 1.1 2.433 2.433 0 1.334-1.1 2.434-2.433 2.434zm0-4.4c-1.1 0-1.967.9-1.967 1.966C6.033 6.7 6.933 7.6 8 7.6c1.066 0 1.966-.9 1.966-1.967A1.97 1.97 0 0 0 8 3.667z\", fill: \"#007C8C\" }),\r\n React.createElement(\"path\", { d: \"M12.7 12.833a.287.287 0 0 1-.267-.266c0-2.434-2-4.434-4.433-4.434s-4.433 2-4.433 4.434a.287.287 0 0 1-.267.266.287.287 0 0 1-.267-.266A4.98 4.98 0 0 1 8 7.6a4.98 4.98 0 0 1 4.966 4.967.287.287 0 0 1-.266.266z\", fill: \"#007C8C\" })));\r\nexport const iconBook = (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M8 12.737a.227.227 0 0 1-.174-.077c-.666-.747-1.483-1.097-2.566-1.097-.747 0-1.494.25-2.217.744a.232.232 0 0 1-.363-.193V4.28c0-.077.04-.15.103-.193.803-.547 1.637-.824 2.48-.824 1.21 0 2.163.41 2.917 1.254a.24.24 0 0 1 .06.156v7.83c0 .097-.06.184-.15.217a.247.247 0 0 1-.084.017H8zm-2.74-1.64c1 0 1.826.28 2.506.853V4.763C7.11 4.06 6.31 3.733 5.26 3.733c-.714 0-1.424.227-2.117.674v7.283c.69-.397 1.4-.597 2.117-.597v.004z\", fill: \"#007C8C\" }),\r\n React.createElement(\"path\", { d: \"M8 12.737a.247.247 0 0 1-.082-.017.231.231 0 0 1-.15-.217V4.67a.23.23 0 0 1 .06-.157c.75-.843 1.703-1.253 2.916-1.253.844 0 1.677.277 2.48.823a.237.237 0 0 1 .104.194v7.83a.232.232 0 0 1-.364.193c-.723-.493-1.47-.743-2.216-.743-1.084 0-1.9.346-2.567 1.096a.238.238 0 0 1-.173.077L8 12.737zm.234-7.974v7.187c.68-.573 1.507-.853 2.507-.853.717 0 1.427.2 2.117.596V4.407c-.694-.447-1.404-.674-2.117-.674-1.053 0-1.853.327-2.507 1.03z\", fill: \"#007C8C\" })));\r\n","import React, { useEffect, useRef, memo } from \"react\";\r\nconst EconomicCalendar = () => {\r\n const container = useRef(null);\r\n useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src =\r\n \"https://s3.tradingview.com/external-embedding/embed-widget-events.js\";\r\n script.type = \"text/javascript\";\r\n script.async = true;\r\n script.innerHTML = `\r\n {\r\n \"width\": \"100%\",\r\n \"height\": \"100%\",\r\n \"colorTheme\": \"light\",\r\n \"isTransparent\": false,\r\n \"locale\": \"en\",\r\n \"importanceFilter\": \"-1,0,1\",\r\n \"countryFilter\": \"ar,au,br,ca,cn,fr,de,in,id,it,jp,kr,mx,ru,sa,za,tr,gb,us,eu\"\r\n }`;\r\n if (container.current) {\r\n container.current.appendChild(script);\r\n }\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"economic-calendar-container\" },\r\n React.createElement(\"div\", { className: \"tradingview-widget-container\", ref: container },\r\n React.createElement(\"div\", { className: \"tradingview-widget-container__widget\" }),\r\n React.createElement(\"div\", { className: \"tradingview-widget-copyright\" },\r\n React.createElement(\"a\", { href: \"https://www.tradingview.com/\", rel: \"noopener nofollow noreferrer\", target: \"_blank\" },\r\n React.createElement(\"span\", { className: \"blue-text\" }, \"Track all markets on TradingView\"))))));\r\n};\r\nexport const EconomicCalendarMemoized = memo(EconomicCalendar);\r\n","import React from \"react\";\r\nexport const TwitterFeedEmbed = ({ twitterFeedUrl, twitterFeedPlaceholderText }) => {\r\n React.useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src = \"https://platform.twitter.com/widgets.js\";\r\n script.async = true;\r\n document.body.appendChild(script);\r\n return () => {\r\n document.body.removeChild(script);\r\n };\r\n }, []);\r\n return React.createElement(\"div\", { className: \"widget-container\" },\r\n React.createElement(\"a\", { className: \"twitter-timeline\", \"data-tweet-limit\": \"3\", \"data-chrome\": \"nofooter transparent noborders\", \"data-link-color\": \"#7eaf3e\", href: twitterFeedUrl, target: \"_blank\", rel: \"noreferrer\" }, twitterFeedPlaceholderText));\r\n};\r\n","import React from \"react\";\r\nimport { usePageViewStyle } from \"../../../hooks/usePageViewStyle\";\r\nimport { Gap } from \"../../Gaps/Gap\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { NewsCard } from \"./NewsCard/NewsCard\";\r\nimport { JobBoardPagination } from \"../../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { EconomicCalendarMemoized } from \"../../EconomicCalendar\";\r\nimport { TwitterFeedEmbed } from \"./TwitterFeedEmbed\";\r\nexport const NewsCardDeck = ({ children, title, currentPage, currentPageItems, numOfPages, setCurrentPage, filtersRibbonElement, filtersElement, noWidgets, twitterFeed, }) => {\r\n const { viewStyle: view } = usePageViewStyle();\r\n const hasResultsOnPage = currentPageItems.length > 0;\r\n const hasTwitterEmbed = !noWidgets && twitterFeed?.url;\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"section\", { className: \"newsCardDeck\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"newsCardDeck__inner-wrapper\" },\r\n title && React.createElement(Heading, { design: \"h3-bold-small\" }, title),\r\n React.createElement(\"div\", { className: \"newsCardDeck__articles\" },\r\n React.createElement(\"div\", { className: \"newsCardDeck__controls\" },\r\n filtersRibbonElement,\r\n filtersElement),\r\n children,\r\n React.createElement(Gap, { mobileGap: \"24px\", desktopGap: \"32px\", gapColor: \"#fff\" }),\r\n hasResultsOnPage &&\r\n (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"newsCardDeck__list\" },\r\n currentPageItems.map((card, i) => (React.createElement(NewsCard, { key: i, ...card }))),\r\n \" \"),\r\n React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPage, numOfPages: numOfPages, setCurrentPage: setCurrentPage, isSmallScreen: view !== \"large\" }))))),\r\n React.createElement(\"div\", { className: \"newsCardDeck__social-feed\" }, hasTwitterEmbed ? React.createElement(TwitterFeedEmbed, { twitterFeedUrl: twitterFeed.url, twitterFeedPlaceholderText: twitterFeed.placeholderText })\r\n : React.createElement(EconomicCalendarMemoized, null)))))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nimport { clock } from \"../../../svgIcons/clock\";\r\nexport const getTranslation = (word, cultureCode) => {\r\n const translations = {\r\n en: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n eu: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n uk: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n za: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n ky: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n au: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n nz: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n ae: {\r\n All: \"All\",\r\n Beginners: \"Beginners\",\r\n Experienced: \"Experienced\"\r\n },\r\n pt: {\r\n All: \"Todos\",\r\n Beginners: \"Iniciantes\",\r\n Experienced: \"Avançado\"\r\n },\r\n latam: {\r\n All: \"Todos\",\r\n Beginners: \"Principiantes\",\r\n Experienced: \"Avanzado\"\r\n },\r\n tw: {\r\n All: \"所有\",\r\n Beginners: \"初學者\",\r\n Experienced: \"進階\"\r\n },\r\n th: {\r\n All: \"ทั้งหมด\",\r\n Beginners: \"ผู้เริ่มต้น\",\r\n Experienced: \"ขั้นสูง\"\r\n },\r\n ar: {\r\n All: \"الكل\",\r\n Beginners: \"مبتدئين\",\r\n Experienced: \"متقدم\"\r\n },\r\n es: {\r\n All: \"Todos\",\r\n Beginners: \"Principiantes\",\r\n Experienced: \"Avanzado\"\r\n },\r\n de: {\r\n All: \"Alle\",\r\n Beginners: \"Anfänger\",\r\n Experienced: \"Fortgeschritten\"\r\n }\r\n };\r\n if (!word) {\r\n return \"\";\r\n }\r\n return translations[cultureCode || \"en\"]?.[word] || word;\r\n};\r\nexport const AcademyArticleCard = (props) => {\r\n const renderDetails = useCallback(() => React.createElement(\"div\", { className: \"academyArticleCard__details caption2-regular color-dark-60\" },\r\n props.articleReadingTime && React.createElement(\"span\", { className: \"centered-container\" },\r\n clock(),\r\n \" \",\r\n React.createElement(\"span\", { style: { marginTop: \"1px\" }, className: \"\" },\r\n props.articleReadingTime,\r\n \" \",\r\n props.articleReadingTimeTimeUnit)),\r\n React.createElement(\"span\", { className: `centered-container academyArticleCard__details-level ${props.articleLevel === \"Beginners\" ? \"academyArticleCard__details-level-beginner\" : \"academyArticleCard__details-level-advanced\"}` },\r\n React.createElement(\"span\", null, getTranslation(props.articleLevel, props.cultureCode)))), [props.articleLevel, props.articleReadingTime, props.articleReadingTimeTimeUnit]);\r\n return (React.createElement(\"div\", { className: `academyArticleCard bg-color-neutral-accent-background ${props.isListView ? \"academyArticleCard--list\" : \"\"} ${props.articleTags && props.articleTags.length > 0\r\n ? \"academyArticleCard__height-with-tags\"\r\n : \"\"}` },\r\n React.createElement(\"a\", { href: props.articleURL, className: \"academyArticleCard__img2\" },\r\n React.createElement(Img, { className: \"academyArticleCard__img\", src: props.imageURL, alt: props.articleImageAlt })),\r\n props.articleCategory !== undefined && React.createElement(\"div\", { className: \"academyArticleCard__tags flex\" }, props.articleCategory?.split(\"|\").map((category, i) => React.createElement(\"a\", { className: \"academyArticleCard__tag color-dark-80 bg-color-neutral-accent-default\", key: `articleBanner__category-${i}`, href: `/${props.culture}${props.categoryLinks?.find(el => el.title.toLowerCase().includes(category.toLowerCase()))?.urlSuffix}` }, props.articleCategoryTranslated?.split(\"|\")[i]))),\r\n React.createElement(\"a\", { href: props.articleURL, className: \"academyArticleCard__title-tag\" },\r\n React.createElement(\"h4\", null, props.articleTitle)),\r\n React.createElement(\"p\", null, props.articleSummary),\r\n renderDetails()));\r\n};\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { IconNoResults } from \"../../svgIcons\";\r\nimport { JobBoardPagination } from \"../../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { Col, Container, ContainerFW } from \"../../global\";\r\nimport { AcademyArticleCard } from \"./AcademyArticleCard/AcademyArticleCard\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nexport const AcademyArticleCardDeckPool = ({ isListView, cards, categoryLinks, filtersRibbonElement, filtersElement, culture, articleReadingTimeTimeUnit, articlesString, noResultsText, backgroundColor, filterOptions, currentPage, pageSize, totalArticlesCount, getPage }) => {\r\n const { viewStyle: view } = usePageViewStyle();\r\n const [currentPageNum, setCurrentPageNum] = useState(currentPage);\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const [selectedFilterOption, setSelectedFilterOption] = useState(filterOptions?.[0]);\r\n const articlesPerPage = pageSize;\r\n const currentPageHandler = useCallback((i) => {\r\n getPage(i + 1);\r\n setCurrentPageNum(i + 1);\r\n }, [getPage]);\r\n const numOfPages = Math.ceil(totalArticlesCount / articlesPerPage);\r\n const thisComponentRef = React.useRef(null);\r\n const setSelectedFilterOptionCallback = useCallback((event) => {\r\n setSelectedFilterOption(event.currentTarget.dataset.option);\r\n setCurrentPageNum(0);\r\n }, []);\r\n const renderFilterRadio = useCallback(() => (React.createElement(React.Fragment, null, filterOptions && React.createElement(\"div\", { className: \"academyArticleCardDeck__radio\" }, filterOptions?.map((option, i) => (React.createElement(\"div\", { key: i, className: `academyArticleCardDeck__radio-option centered-container p-regular ${selectedFilterOption === option ? \"active bg-color-dark-default\" : \"\"}`, onClick: setSelectedFilterOptionCallback, \"data-option\": option }, option)))))), [filterOptions, selectedFilterOption, setSelectedFilterOptionCallback]);\r\n const pagination = useCallback(() => numOfPages > 1 && React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPageNum - 1, numOfPages: numOfPages, setCurrentPage: currentPageHandler, isSmallScreen: view !== \"large\", linkPagination: true })), [numOfPages, currentPageNum, currentPageHandler, view]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"newsCardDeck__controls\" },\r\n filtersRibbonElement,\r\n filtersElement,\r\n React.createElement(\"div\", { ref: thisComponentRef, style: { color: textColor }, className: \"academyArticleCardDeck\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"academyArticleCardDeck__title-and-radio\" },\r\n React.createElement(\"h4\", { className: \"academyArticleCardDeck__title h4-bold-small\" },\r\n articlesString,\r\n \" (\",\r\n totalArticlesCount,\r\n \")\"),\r\n renderFilterRadio()),\r\n cards.length ?\r\n React.createElement(React.Fragment, null,\r\n !isListView && React.createElement(\"span\", { className: \"academyArticleCardDeck__cards-grid\" }, cards.map((card, i) => (React.createElement(Col, { key: i },\r\n React.createElement(AcademyArticleCard, { articleReadingTimeTimeUnit: articleReadingTimeTimeUnit, categoryLinks: categoryLinks, culture: culture, ...card, isListView: isListView }))))),\r\n isListView && React.createElement(\"div\", { className: \"academyArticleCardDeck__gap\" },\r\n cards.map((card, i) => (React.createElement(AcademyArticleCard, { articleReadingTimeTimeUnit: articleReadingTimeTimeUnit, categoryLinks: categoryLinks, culture: culture, key: i, ...card, isListView: isListView }))),\r\n \" \"),\r\n pagination())\r\n : React.createElement(\"div\", { className: \"alphabet-list__noresults\" },\r\n IconNoResults,\r\n noResultsText))))));\r\n};\r\n","export const sanitizeJSON = (key, value) => {\r\n if (value === undefined || typeof value === \"undefined\") {\r\n return null;\r\n }\r\n if (typeof value === \"number\" && !isFinite(value)) {\r\n return null;\r\n }\r\n return value;\r\n};\r\nexport const serializeQuery = (queryObject, keysToRemove) => {\r\n const copiedQueryObject = { ...queryObject };\r\n if (Array.isArray(keysToRemove)) {\r\n keysToRemove.forEach(key => delete copiedQueryObject[key]);\r\n }\r\n return JSON.stringify(copiedQueryObject, sanitizeJSON);\r\n};\r\n","export const getWindowLocationPage = () => {\r\n const pageNumericInUrl = new URLSearchParams(location.search).get(\"page\");\r\n if (pageNumericInUrl !== null) {\r\n const pageNumberInUrl = Number(pageNumericInUrl);\r\n if (isNaN(pageNumberInUrl)) {\r\n return undefined;\r\n }\r\n if (pageNumberInUrl <= 0) {\r\n return undefined;\r\n }\r\n return pageNumberInUrl;\r\n }\r\n return undefined;\r\n};\r\nexport const setWindowLocationPage = (currentPage) => {\r\n if (!currentPage) {\r\n return;\r\n }\r\n const searchParams = new URLSearchParams(location.search);\r\n searchParams.set(\"page\", currentPage.toString());\r\n const stringSearchParams = searchParams.toString();\r\n window.history.replaceState(\"null\", \"null\", `?${stringSearchParams}`);\r\n};\r\nexport const getWindowLocationDifficulty = () => {\r\n const difficultyInUrl = new URLSearchParams(location.search).get(\"difficulty\");\r\n if (difficultyInUrl !== null) {\r\n return difficultyInUrl;\r\n }\r\n return undefined;\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\nimport { getWindowLocationDifficulty, getWindowLocationPage, setWindowLocationPage } from \"../utils\";\r\nexport const useHandleWindowLocationPage = (currentPage, setCurrentPageFunc, skipDifficultyPages = false) => {\r\n const isFirstRender = useRef(true);\r\n useEffect(() => {\r\n if (skipDifficultyPages) {\r\n if (getWindowLocationDifficulty()) {\r\n return;\r\n }\r\n }\r\n if (!isFirstRender.current) {\r\n setWindowLocationPage(currentPage);\r\n return;\r\n }\r\n const pageInUrl = getWindowLocationPage();\r\n if (pageInUrl) {\r\n if (pageInUrl !== currentPage) {\r\n setCurrentPageFunc(pageInUrl);\r\n }\r\n }\r\n else {\r\n setWindowLocationPage(currentPage);\r\n }\r\n }, [currentPage, setCurrentPageFunc, skipDifficultyPages]);\r\n useEffect(() => {\r\n isFirstRender.current = false;\r\n }, []);\r\n};\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { IconNoResults } from \"../../svgIcons\";\r\nimport { JobBoardPagination } from \"../../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { Col, Container, ContainerFW } from \"../../global\";\r\nimport { AcademyArticleCard, getTranslation } from \"./AcademyArticleCard/AcademyArticleCard\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { useHandleWindowLocationPage } from \"../../FilterAcademyCards/utils\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nexport const AcademyArticleCardDeck = (props) => {\r\n const { viewStyle: view } = usePageViewStyle();\r\n const [currentPage, setCurrentPage] = useState(props.currentPage || 1);\r\n const { bgColor, textColor } = getColors(props.backgroundColor);\r\n const [selectedFilterOption, setSelectedFilterOption] = useState(props?.filterOptions?.[0]);\r\n const articlesPerPage = 12;\r\n useHandleWindowLocationPage(currentPage, setCurrentPage);\r\n const applyAnyInitialFilters = () => {\r\n if (props?.filterOptions?.[0] && selectedFilterOption !== props?.filterOptions?.[0]) {\r\n return props.cards.filter(e => e.articleLevel === selectedFilterOption);\r\n }\r\n return props.cards;\r\n };\r\n const filteredCards = applyAnyInitialFilters();\r\n const selectedArticles = filteredCards.slice((currentPage - 1) * articlesPerPage, (currentPage) * articlesPerPage);\r\n const numOfPages = Math.ceil(filteredCards.length / articlesPerPage);\r\n const thisComponentRef = React.useRef(null);\r\n const setSelectedFilterOptionCallback = useCallback((event) => {\r\n setSelectedFilterOption(event.currentTarget.dataset.option);\r\n setCurrentPage(1);\r\n }, []);\r\n const handlePaginationChange = React.useCallback((i) => {\r\n setCurrentPage(i + 1);\r\n }, []);\r\n const renderFilterRadio = useCallback(() => (React.createElement(React.Fragment, null, props.filterOptions && React.createElement(\"div\", { className: \"academyArticleCardDeck__radio\" }, props?.filterOptions?.map((option, i) => (React.createElement(\"div\", { key: i, className: `academyArticleCardDeck__radio-option centered-container p-regular ${selectedFilterOption === option ? \"active bg-color-dark-default\" : \"\"}`, onClick: setSelectedFilterOptionCallback, \"data-option\": option }, getTranslation(option, props.cultureCode))))))), [props.cultureCode, props.filterOptions, selectedFilterOption, setSelectedFilterOptionCallback]);\r\n const pagination = useCallback(() => numOfPages > 1 && React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPage - 1, numOfPages: numOfPages, setCurrentPage: handlePaginationChange, isSmallScreen: view !== \"large\", linkPagination: true })), [numOfPages, currentPage, handlePaginationChange, view]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"newsCardDeck__controls\" },\r\n props.filtersRibbonElement,\r\n props.filtersElement,\r\n React.createElement(\"div\", { ref: thisComponentRef, style: { color: textColor }, className: \"academyArticleCardDeck\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"academyArticleCardDeck__title-and-radio\" },\r\n React.createElement(\"h4\", { className: \"academyArticleCardDeck__title h4-bold-small\" },\r\n props.articlesString,\r\n \" (\",\r\n filteredCards.length,\r\n \")\"),\r\n renderFilterRadio()),\r\n selectedArticles.length ?\r\n React.createElement(React.Fragment, null,\r\n !props.isListView && React.createElement(\"span\", { className: \"academyArticleCardDeck__cards-grid\" }, selectedArticles.map((card, i) => (React.createElement(Col, { key: i },\r\n React.createElement(AcademyArticleCard, { articleReadingTimeTimeUnit: props.articleReadingTimeTimeUnit, categoryLinks: props.categoryLinks, culture: props.culture, ...card, isListView: props.isListView, cultureCode: props.cultureCode }))))),\r\n props.isListView && React.createElement(\"div\", { className: \"academyArticleCardDeck__gap\" },\r\n selectedArticles.map((card, i) => (React.createElement(AcademyArticleCard, { articleReadingTimeTimeUnit: props.articleReadingTimeTimeUnit, categoryLinks: props.categoryLinks, culture: props.culture, key: i, ...card, isListView: props.isListView, cultureCode: props.cultureCode }))),\r\n \" \"),\r\n pagination())\r\n : React.createElement(\"div\", { className: \"alphabet-list__noresults\" },\r\n IconNoResults,\r\n props.noResultsText))))));\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { Col, Container, ContainerFW, Row } from \"../../global\";\r\nimport { WideRangeCard } from \"./WideRangeCard/WideRangeCard\";\r\nexport const WideRangeCardDeck = (props) => {\r\n const [cards, setCards] = useState([]);\r\n useEffect(() => {\r\n const newCards = [];\r\n props.cards.map((card, i) => newCards.push({ ...card, id: `${i}`, opened: false }));\r\n setCards(newCards);\r\n }, []);\r\n const toggleExpand = useCallback((id) => {\r\n setCards(cards.map(card => card.id === id ? { ...card, opened: !card.opened } : { ...card, opened: false }));\r\n }, [cards]);\r\n return (React.createElement(\"div\", { className: \"accordion-card__deck wide-range-card__deck\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"accordion-card__deck-title\", dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(Row.Cols2, null, cards.map((card, i) => React.createElement(Col, { key: `accordion-card-${i}` },\r\n React.createElement(WideRangeCard, { title: card.title, text: card.text, icon: card.icon, linkText: card.linkText, linkUrl: card.linkUrl, opensInNewTab: card.opensInNewTab, opened: card.opened, instruments: card.instruments, instrumentTitle: card.instrumentTitle, id: `${i}`, toggleExpand: toggleExpand }))))))));\r\n};\r\n","import React from \"react\";\r\nexport const YOUTUBE_IFRAME_ID_PREFIX = \"youtube-video-iframe\";\r\nexport const YouTubeVideoEmbed = (props) => {\r\n const src = `${props.videoUrl}${props.webSiteRootUrl ? `?enablejsapi=1&origin=${props.webSiteRootUrl}` : \"\"}`;\r\n const splitVideoUrl = props.videoUrl.split(\"/\");\r\n const videoId = splitVideoUrl.pop();\r\n const iframeId = `${YOUTUBE_IFRAME_ID_PREFIX}-${videoId}`;\r\n return (React.createElement(\"iframe\", { id: iframeId, className: YOUTUBE_IFRAME_ID_PREFIX, width: \"100%\", height: \"100%\", src: src, title: \"YouTube video player\", allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\", allowFullScreen: true }));\r\n};\r\n","const COMMANDS = {\r\n play: \"{\\\"event\\\":\\\"command\\\",\\\"func\\\":\\\"playVideo\\\",\\\"args\\\":\\\"\\\"}\",\r\n stop: \"{\\\"event\\\":\\\"command\\\",\\\"func\\\":\\\"stopVideo\\\",\\\"args\\\":\\\"\\\"}\",\r\n pause: \"{\\\"event\\\":\\\"command\\\",\\\"func\\\":\\\"pauseVideo\\\",\\\"args\\\":\\\"\\\"}\"\r\n};\r\nexport const controlIframedVideo = (videoIframe, command) => {\r\n if (!videoIframe || !Object.keys(COMMANDS).includes(command)) {\r\n return;\r\n }\r\n const messageContent = COMMANDS[command];\r\n try {\r\n videoIframe?.contentWindow?.postMessage(messageContent, \"*\");\r\n }\r\n catch (e) {\r\n console.debug(\"postMessage to embedded Youtube video fails with error: \", e);\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nexport const ConditionalPortal = ({ children, isActivePortal }) => (React.createElement(React.Fragment, null, isActivePortal ? createPortal(children, document.body) : children));\r\n","import React, { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport { YOUTUBE_IFRAME_ID_PREFIX, controlIframedVideo } from \"../YouTubeVideoEmbed\";\r\nimport { ConditionalPortal } from \"./ConditionalPortal\";\r\nexport const SimpleLightbox = (props) => {\r\n const [isLightBoxOn, setIsLightboxOn] = useState(false);\r\n const hasLightboxBeenOnAlreadyRef = useRef(false);\r\n const lightboxRef = useRef(null);\r\n const showLightbox = useCallback(() => {\r\n setIsLightboxOn(true);\r\n }, []);\r\n const hideLightbox = useCallback(() => {\r\n hasLightboxBeenOnAlreadyRef.current = true;\r\n setIsLightboxOn(false);\r\n }, []);\r\n useEffect(() => {\r\n if (lightboxRef.current) {\r\n if (!isLightBoxOn && hasLightboxBeenOnAlreadyRef.current) {\r\n const videoIframeEl = lightboxRef.current.querySelector(`.${YOUTUBE_IFRAME_ID_PREFIX}`);\r\n if (videoIframeEl) {\r\n controlIframedVideo(videoIframeEl, \"stop\");\r\n }\r\n }\r\n }\r\n }, [isLightBoxOn]);\r\n useEffect(() => {\r\n document.body.style.overflow = isLightBoxOn ? \"hidden\" : \"revert\";\r\n }, [isLightBoxOn]);\r\n useEffect(() => {\r\n if (!isLightBoxOn) {\r\n return;\r\n }\r\n const keyEventListener = (event) => {\r\n if (event.key === \"Escape\" && isLightBoxOn) {\r\n hideLightbox();\r\n }\r\n };\r\n document.addEventListener(\"keydown\", keyEventListener);\r\n return () => {\r\n document.removeEventListener(\"keydown\", keyEventListener);\r\n };\r\n }, [isLightBoxOn]);\r\n return (React.createElement(ConditionalPortal, { isActivePortal: isLightBoxOn },\r\n React.createElement(\"div\", { ref: lightboxRef, className: `simplelightbox ${isLightBoxOn ? \"simplelightbox--on\" : \"\"}`, role: isLightBoxOn ? \"dialog\" : \"presentation\", \"aria-labelledby\": \"YouTube video\" },\r\n React.createElement(\"div\", { className: \"simplelightbox__content-container simplelightbox__content-container--youtube\" },\r\n isLightBoxOn ? (React.createElement(\"div\", { className: \"simplelightbox__close-icon-wrapper\" },\r\n React.createElement(\"div\", { className: \"simplelightbox__close-icon\", onClick: hideLightbox, role: \"button\", \"aria-label\": \"Close\" }, closeIcon))) : React.createElement(\"div\", { className: props.className, onClick: showLightbox, role: \"button\", \"aria-label\": \"Open\" }),\r\n props.children))));\r\n};\r\nconst closeIcon = React.createElement(\"svg\", { width: \"44\", height: \"44\", viewBox: \"5 5 44 44\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#er4555lbla)\" },\r\n React.createElement(\"path\", { d: \"m27.999 24.7 11.55-11.55 3.3 3.3L31.298 28l11.55 11.55-3.3 3.3-11.55-11.55-11.55 11.55-3.3-3.3L24.7 28 13.15 16.45l3.3-3.3 11.55 11.55z\", fill: \"#fff\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"er4555lbla\" },\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h56v56H0z\" }))));\r\n","import React from \"react\";\r\nimport { SimpleLightbox } from \"../SimpleLightbox/SimpleLightbox\";\r\nimport { YouTubeVideoEmbed } from \"../YouTubeVideoEmbed\";\r\nexport const VideoCard = (props) => {\r\n const isLightboxed = typeof props.hasLightbox === \"undefined\" || props.hasLightbox === true;\r\n if (!props.videoUrl) {\r\n return null;\r\n }\r\n return (React.createElement(\"div\", { className: \"videoCard\" },\r\n React.createElement(\"div\", { className: \"videoCard__embedded\" },\r\n React.createElement(VideoEmbedHelper, { videoUrl: props.videoUrl, hasLightbox: isLightboxed, webSiteRootUrl: props.webSiteRootUrl })),\r\n React.createElement(\"p\", null, props.title),\r\n (props.author && props.created) && React.createElement(\"h6\", { className: \"videoCard__authorCreated\" },\r\n props.author,\r\n \" \\u2022 \",\r\n props.created),\r\n props.category && React.createElement(\"h6\", { className: \"videoCard__category\" },\r\n iconBook(),\r\n props.category)));\r\n};\r\nexport const VideoEmbedHelper = (props) => props.hasLightbox ? React.createElement(SimpleLightbox, { className: \"videoCard__lightbox-trigger\" },\r\n React.createElement(YouTubeVideoEmbed, { videoUrl: props.videoUrl, webSiteRootUrl: props.webSiteRootUrl })) : React.createElement(YouTubeVideoEmbed, { videoUrl: props.videoUrl, webSiteRootUrl: props.webSiteRootUrl });\r\nconst iconBook = () => (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M8 12.737a.227.227 0 0 1-.174-.077c-.666-.747-1.483-1.097-2.566-1.097-.747 0-1.494.25-2.217.744a.232.232 0 0 1-.363-.193V4.28c0-.077.04-.15.103-.193.803-.547 1.637-.824 2.48-.824 1.21 0 2.163.41 2.917 1.254a.24.24 0 0 1 .06.156v7.83c0 .097-.06.184-.15.217a.247.247 0 0 1-.084.017H8zm-2.74-1.64c1 0 1.826.28 2.506.853V4.763C7.11 4.06 6.31 3.733 5.26 3.733c-.714 0-1.424.227-2.117.674v7.283c.69-.397 1.4-.597 2.117-.597v.004z\", fill: \"#007C8C\" }),\r\n React.createElement(\"path\", { d: \"M8 12.737a.247.247 0 0 1-.082-.017.231.231 0 0 1-.15-.217V4.67a.23.23 0 0 1 .06-.157c.75-.843 1.703-1.253 2.916-1.253.844 0 1.677.277 2.48.823a.237.237 0 0 1 .104.194v7.83a.232.232 0 0 1-.364.193c-.723-.493-1.47-.743-2.216-.743-1.084 0-1.9.346-2.567 1.096a.238.238 0 0 1-.173.077L8 12.737zm.234-7.974v7.187c.68-.573 1.507-.853 2.507-.853.717 0 1.427.2 2.117.596V4.407c-.694-.447-1.404-.674-2.117-.674-1.053 0-1.853.327-2.507 1.03z\", fill: \"#007C8C\" })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW, Row, Col } from \"../../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Navigation } from \"swiper\";\r\nimport { VideoCard } from \"./VideoCard/VideoCard\";\r\nexport const VideoCardDeck = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: `videoCardDeck ${props.isSliderOnMobile ? \"videoCardDeck__slider\" : \"\"}` },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"videoCardDeck__titleAndLink\" },\r\n React.createElement(\"h2\", null, props.title),\r\n props.linkText && React.createElement(\"a\", { href: props.linkUrl },\r\n props.linkText,\r\n \" \",\r\n arrow())),\r\n props.isSliderOnMobile &&\r\n React.createElement(React.Fragment, null,\r\n React.createElement(Swiper, { modules: [Navigation], slidesPerView: \"auto\", navigation: {\r\n nextEl: \".swiper-button-next\",\r\n prevEl: \".swiper-button-prev\",\r\n } }, props.cards.map((item, i) => (React.createElement(SwiperSlide, { key: i },\r\n React.createElement(VideoCard, { webSiteRootUrl: props.webSiteRootUrl, hasLightbox: false, ...item }))))),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"videoCardDeck__pagination-container\" },\r\n React.createElement(\"svg\", { className: \"swiper-button-prev\", width: \"56\", height: \"56\", viewBox: \"0 0 56 56\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M19.18 29.68a1.75 1.75 0 0 1-.513-1.237v-.886c.005-.463.189-.906.513-1.237l11.993-11.97a1.167 1.167 0 0 1 1.657 0l1.657 1.657a1.143 1.143 0 0 1 0 1.633L24.103 28l10.384 10.36a1.166 1.166 0 0 1 0 1.657L32.83 41.65a1.167 1.167 0 0 1-1.657 0L19.18 29.68z\", fill: \"currentColor\" })),\r\n React.createElement(\"svg\", { className: \"swiper-button-next\", width: \"56\", height: \"56\", viewBox: \"0 0 56 56\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M36.82 26.32c.328.328.513.773.513 1.237v.886c-.005.463-.189.906-.513 1.237L24.827 41.65a1.167 1.167 0 0 1-1.657 0l-1.657-1.657a1.143 1.143 0 0 1 0-1.633L31.897 28 21.513 17.64a1.166 1.166 0 0 1 0-1.657l1.657-1.633a1.167 1.167 0 0 1 1.657 0L36.82 26.32z\", fill: \"currentColor\" }))))),\r\n props.isSliderOnMobile || React.createElement(Row.Cols3, null, props.cards.map((card, i) => (React.createElement(Col, { key: i },\r\n React.createElement(VideoCard, { webSiteRootUrl: props.webSiteRootUrl, ...card })))))))));\r\nconst arrow = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#007c8c\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { JobBoardPagination } from \"../../..//Components/JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nimport { Col, Row, Container, ContainerFW } from \"../../global\";\r\nimport { VideoCard } from \"../VideoCardDeck/VideoCard\";\r\nexport const VideoCardDeckWithPagination = (props) => {\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const cardsPerPage = 6;\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, [view]);\r\n const selectedCards = props.cards.slice(currentPage * cardsPerPage, (currentPage + 1) * cardsPerPage);\r\n const cardsLength = props.cards.length;\r\n const numOfPages = Math.ceil(cardsLength / cardsPerPage);\r\n const itemsShown = () => {\r\n let itemsString = \"\";\r\n currentPage === 0 ?\r\n itemsString = `${cardsLength > cardsPerPage ? cardsPerPage : cardsLength}`\r\n : (currentPage + 1) === numOfPages ?\r\n itemsString = `${(numOfPages - 1) * cardsPerPage + 1}-${cardsLength}`\r\n : itemsString = `${(currentPage) * cardsPerPage + 1}-${(currentPage + 1) * cardsPerPage}`;\r\n return itemsString;\r\n };\r\n const thisComponentRef = React.useRef(null);\r\n const scrollToThisComponentRef = React.useCallback(() => {\r\n thisComponentRef.current?.scrollIntoView({ behavior: \"auto\" });\r\n if (thisComponentRef.current) {\r\n window.scrollBy(0, -105);\r\n }\r\n }, []);\r\n const mounted = React.useRef(false);\r\n React.useEffect(() => {\r\n if (mounted.current) {\r\n scrollToThisComponentRef();\r\n }\r\n else {\r\n mounted.current = true;\r\n }\r\n }, [currentPage]);\r\n return (React.createElement(ContainerFW, null,\r\n props.filtersRibbonElement,\r\n props.filtersElement,\r\n React.createElement(\"div\", { ref: thisComponentRef, className: \"videoCardDeckWithPagination\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", null, props.title),\r\n props.children,\r\n React.createElement(Row.Cols3, null, selectedCards.map((card, i) => (React.createElement(Col, { key: i },\r\n React.createElement(VideoCard, { webSiteRootUrl: props.webSiteRootUrl, ...card }))))),\r\n React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPage, numOfPages: numOfPages, setCurrentPage: setCurrentPage, isSmallScreen: view !== \"large\" })),\r\n React.createElement(\"p\", { className: \"videoCardDeckWithPagination__display\" }, `Displaying ${itemsShown()} of ${props.cards.length} videos`)))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Swiper, SwiperSlide, } from \"swiper/react\";\r\nimport { Navigation, Pagination } from \"swiper\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { AcademyArticleCard } from \"../AcademyArticleCardDeck/AcademyArticleCard/AcademyArticleCard\";\r\nconst MySwiper = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor || \"neutralaccentbackground\");\r\n const [swiper, setSwiper] = React.useState();\r\n const setSwiperInstance = React.useCallback((s) => setSwiper(s), []);\r\n React.useEffect(() => {\r\n if (swiper && props.swiperOff) {\r\n swiper.destroy();\r\n }\r\n }, [swiper, props.swiperOff]);\r\n return (React.createElement(\"div\", { className: \"information-card-dark-deck\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"color-dark-default\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"information-card-dark-deck__container\" },\r\n React.createElement(\"div\", { className: \"centered-container information-card-dark-deck__title-container\" },\r\n React.createElement(\"div\", { className: \"information-card-dark-deck__title-and-description-container\" },\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold color-dark-80\" }, props.description))),\r\n React.createElement(Swiper, { onSwiper: setSwiperInstance, modules: [Navigation, Pagination], spaceBetween: 24, cssMode: true, slidesPerView: \"auto\", navigation: {\r\n nextEl: \".swiper-button-next\",\r\n prevEl: \".swiper-button-prev\",\r\n } }, props.content.map((item) => React.createElement(SwiperSlide, { key: `information-card-dark-deck-slide-${item.articleTitle}` },\r\n React.createElement(AcademyArticleCard, { ...item })))),\r\n props.buttonText && React.createElement(\"div\", { className: \"centered-container information-card-dark-deck__bottom-container\" },\r\n React.createElement(ButtonV2, { design: props.buttonDesign || \"ghost-medium-wbg\", href: props.buttonUrl }, props.buttonText))))))));\r\n};\r\nexport const InformationCardDarkDeckAcademy = (props) => (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"hide-small hide-medium swiper-off\" },\r\n React.createElement(MySwiper, { ...props, swiperOff: true })),\r\n React.createElement(\"div\", { className: \"hide-large\" },\r\n React.createElement(MySwiper, { ...props, swiperOff: false }))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nconst getClassForCard = (bigCard) => `card-deck-with-different-size__${bigCard ? \"big-card\" : \"small-card\"}`;\r\nconst renderCardContent = (bigCard, alignRight, card) => (React.createElement(\"div\", { className: `card-deck-with-different-size__title-and-description card-deck-with-different-size__${(bigCard && alignRight) ? \"align-right\" : \"\"} ${bigCard ? \"\" : \"card-deck-with-different-size__title-and-description-small-card\"}` },\r\n React.createElement(\"div\", { className: `card-deck-with-different-size__title-and-description-inner-container card-deck-with-different-size__${(bigCard && alignRight) ? \"align-right\" : \"\"}` },\r\n React.createElement(\"h4\", null,\r\n \" \",\r\n card.title),\r\n React.createElement(\"p\", null, card.description))));\r\nconst RenderCard = ({ card, bigCard, alignRight }) => (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: `card-deck-with-different-size__card hide-medium-ndb hide-large-ndb ${getClassForCard(bigCard)}`, style: {\r\n backgroundImage: `url('${card.imgsmall}')`.replace(\"~\", \"\"),\r\n backgroundSize: \"contain\",\r\n backgroundPosition: \"bottom\",\r\n backgroundRepeat: \"no-repeat\",\r\n } }, renderCardContent(bigCard, alignRight, card)),\r\n React.createElement(\"div\", { className: `card-deck-with-different-size__card hide-large-ndb hide-small-ndb ${getClassForCard(bigCard)}`, style: {\r\n backgroundImage: `url('${card.imgmedium}')`.replace(\"~\", \"\"),\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n backgroundRepeat: \"no-repeat\",\r\n } }, renderCardContent(bigCard, alignRight, card)),\r\n React.createElement(\"div\", { className: `card-deck-with-different-size__card hide-small-ndb hide-medium-ndb ${getClassForCard(bigCard)}`, style: {\r\n backgroundImage: `url('${card.imglarge}')`.replace(\"~\", \"\"),\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n backgroundRepeat: \"no-repeat\",\r\n } }, renderCardContent(bigCard, alignRight, card))));\r\nexport const CardDeckWithDifferentSize = ({ title, cards, backgroundColor }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"card-deck-with-different-size\" },\r\n React.createElement(\"div\", { className: \"centered-container card-deck-with-different-size__title-container\" },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: \"card-deck-with-different-size__flex-container card-deck-with-different-size__gap flex\" },\r\n cards[0] && React.createElement(\"div\", { className: \"card-deck-with-different-size__one-card centered-container\" },\r\n React.createElement(RenderCard, { card: cards[0], bigCard: true, alignRight: false })),\r\n cards[2] && React.createElement(\"div\", { className: \"card-deck-with-different-size__two-cards card-deck-with-different-size__gap centered-container\" },\r\n React.createElement(RenderCard, { card: cards[1], bigCard: false, alignRight: false }),\r\n React.createElement(RenderCard, { card: cards[2], bigCard: false, alignRight: false })),\r\n cards[3] && React.createElement(\"div\", { className: \"card-deck-with-different-size__one-card centered-container\" },\r\n React.createElement(RenderCard, { card: cards[3], bigCard: true, alignRight: true })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { ContainerFW, Container } from \"../../global\";\r\nimport { handleLinkTarget } from \"../../../utils\";\r\nexport const InstrumentCategoryDeck = ({ cards, title, titleSize, subTitle, secondTitle, buttonLabel, buttonLink, buttonIcon, buttonIconHover, linkOpenInNewTab }) => {\r\n const linkHrefTarget = handleLinkTarget(linkOpenInNewTab);\r\n const renderCard = (card, key) => (React.createElement(\"a\", { href: card.link, key: key, className: \"instrument-category-deck__card-link\" },\r\n React.createElement(\"div\", { className: \"instrument-category-deck__card centered-container\", style: {\r\n \"--instrument-category-deck-icon-nest\": `url(${card.iconNest})`,\r\n \"--instrument-category-deck-icon-nest-hover\": `url(${card.iconNestHover})`\r\n } },\r\n React.createElement(\"div\", { className: \"instrument-category-deck__icon-vertical-container\" },\r\n React.createElement(\"div\", { className: \"instrument-category-deck__icon-img-container centered-container\" },\r\n React.createElement(Img, { src: card.img, alt: card.alt }))),\r\n React.createElement(\"div\", { className: \"instrument-category-deck__card-title-container centered-container\" },\r\n React.createElement(\"h5\", null,\r\n \" \",\r\n card.title)))));\r\n return (React.createElement(\"div\", { className: \"instrument-category-deck centered-container bg-color-pure-white\" },\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"instrument-category-deck__title-containr\" },\r\n titleSize === \"h4\" && React.createElement(\"h4\", { className: \"instrument-category-deck__title h4-semi-bold\" }, title),\r\n titleSize === \"h2\" && React.createElement(\"h2\", { className: \"instrument-category-deck__title\" }, title),\r\n subTitle && React.createElement(\"h5\", null, subTitle)),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"instrument-category-deck__cards-bar\" }, cards.map((c, key) => renderCard(c, key)))),\r\n secondTitle && React.createElement(\"div\", { className: \"instrument-category-deck__second-component-container\" },\r\n React.createElement(\"div\", { className: \"instrument-category-deck__second-component-title\" },\r\n React.createElement(\"h5\", null, secondTitle)),\r\n React.createElement(\"div\", { className: \"instrument-category-deck__second-component-button\" },\r\n React.createElement(\"a\", { href: buttonLink, target: linkHrefTarget },\r\n React.createElement(\"span\", null,\r\n React.createElement(Img, { src: buttonIcon, alt: \"icon\" })),\r\n buttonLabel)))))));\r\n};\r\n","import React from \"react\";\r\nimport { NumberedSwipeCard_AppDownload } from \"./variants\";\r\nimport { Img } from \"../../../Img\";\r\nexport var NumberedSwipeCardVariant;\r\n(function (NumberedSwipeCardVariant) {\r\n NumberedSwipeCardVariant[\"APP_DOWNLOAD\"] = \"app-download\";\r\n})(NumberedSwipeCardVariant || (NumberedSwipeCardVariant = {}));\r\nconst cardVariantComponents = {\r\n [NumberedSwipeCardVariant.APP_DOWNLOAD]: NumberedSwipeCard_AppDownload,\r\n};\r\nexport const NumberedSwipeCard = (props) => {\r\n const CardVariantComponent = props.cardVariant ? cardVariantComponents[\"app-download\"] : undefined;\r\n return (React.createElement(\"section\", { className: \"numbered-swipe-card\" },\r\n React.createElement(\"span\", { className: \"numbered-swipe-card__number\" }, props.number),\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: props.text } }),\r\n React.createElement(Img, { className: \"numbered-swipe-card__image\", src: props.imageUrl, alt: props.imageAlt }),\r\n CardVariantComponent && props.cardVariantProps?.[0] && React.createElement(CardVariantComponent, { ...props.cardVariantProps[0] })));\r\n};\r\n","import React from \"react\";\r\nexport const NumberedSwipeCard_AppDownload = (props) => (React.createElement(\"div\", { className: \"numbered-swipe-card--app-download\" },\r\n React.createElement(\"div\", { className: \"numbered-swipe-card--app-download__desktop\" },\r\n React.createElement(\"p\", null, props.desktopText),\r\n React.createElement(\"img\", { src: props.desktopImageUrl, alt: props.desktopImageAlt })),\r\n React.createElement(\"div\", { className: \"numbered-swipe-card--app-download__mobile\" },\r\n React.createElement(\"p\", null, props.mobileText),\r\n props.mobileDownloadLinks.map(({ imageUrl, linkUrl, imageAlt }, index) => (React.createElement(\"a\", { key: index, href: linkUrl, rel: \"noopener\" },\r\n React.createElement(\"img\", { src: imageUrl, alt: imageAlt })))))));\r\n","import React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { ContainerFW } from \"../../global\";\r\nimport { NumberedSwipeCard } from \"./NumberedSwipeCard\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nconst getButtonDesign = (buttonType) => buttonType === \"primary\" ? \"cta-medium-wbg\" : \"ghost-medium-wbg\";\r\nexport const NumberedSwipeCardDeck = ({ title, cards, backgroundColor, buttonTitle, buttonLink, buttonType = \"primary\", openInNewTabButton }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"numbered-swipe-card-deck\" },\r\n React.createElement(\"div\", { className: \"numbered-swipe-card-deck__title-container\" },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(Swiper, { className: \"hero-slider\", slidesPerView: \"auto\" }, cards.map((item, i) => (React.createElement(SwiperSlide, { key: `swipe-card-${i}` },\r\n React.createElement(NumberedSwipeCard, { number: item.number, title: item.title, text: item.text, imageUrl: item.imageUrl, imageAlt: item.imageAlt, cardVariant: item.cardVariant, cardVariantProps: item.cardVariantProps }))))),\r\n buttonTitle && React.createElement(\"div\", { className: \"numbered-swipe-card-deck__button-container\" },\r\n React.createElement(ButtonV2, { classes: \"numbered-swipe-card-deck__button\", design: getButtonDesign(buttonType), href: buttonLink, openInNewTab: openInNewTabButton }, buttonTitle)))));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { usePageViewStyle } from \"../../../../hooks\";\r\nimport { Img } from \"../../../Img\";\r\nimport { SimpleLightbox } from \"../../VideoCardDeck/SimpleLightbox/SimpleLightbox\";\r\nimport { YouTubeVideoEmbed } from \"../../VideoCardDeck/YouTubeVideoEmbed\";\r\nexport const VideoCardDeckSliderCard = ({ videoURL, videoTitle, videoUploadTime, iconURL }) => {\r\n const { isSmall, isMedium, isLarge } = usePageViewStyle();\r\n const [maxTitleLength, setMaxTitleLength] = useState(0);\r\n useEffect(() => {\r\n isLarge ? setMaxTitleLength(60) : (isMedium ? setMaxTitleLength(43) : (isSmall ? setMaxTitleLength(42) : setMaxTitleLength(50)));\r\n }, [isLarge, isMedium, isSmall]);\r\n return (React.createElement(\"div\", { className: \"video-card-deck-slider-card\" },\r\n React.createElement(SimpleLightbox, { className: \"video-card-deck-slider-card__lightbox-trigger\" },\r\n React.createElement(YouTubeVideoEmbed, { videoUrl: videoURL, webSiteRootUrl: videoURL }),\r\n React.createElement(\"div\", { className: \"video-card-deck-slider-card__text-container\" },\r\n React.createElement(\"div\", { className: \"video-card-deck-slider-card__slide-upload-time\" },\r\n React.createElement(Img, { src: iconURL, alt: \"clock icon\" }),\r\n React.createElement(\"p\", null, videoUploadTime)),\r\n React.createElement(\"div\", { className: \"video-card-deck-slider-card__slide-title\" },\r\n React.createElement(\"h5\", null, videoTitle.length > maxTitleLength ? (`${videoTitle.substr(0, maxTitleLength)}...`) : videoTitle))))));\r\n};\r\n","import React from \"react\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { VideoCardDeckSliderCard } from \"./VideoCardDeckSliderCard/VideoCardDeckSliderCard\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nexport const VideoCardDeckSlider = ({ cards, backgroundColor, mainTitle, loadMoreUrl, loadMoreText, openInNewTabButton }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: \"video-card-deck-slider-g-container-fullwidth-outer-background\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor, className: \"video-card-deck-slider-g-container-fullwidth\" },\r\n React.createElement(\"div\", { className: \"video-card-deck-slider video-card-d1eck-slider-g-container-fullwidth\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"video-card-deck-slider__container\" },\r\n mainTitle && React.createElement(\"div\", { className: \"video-card-deck-slider__mainTitle\" },\r\n React.createElement(\"h2\", null, mainTitle)),\r\n React.createElement(\"div\", { className: \"video-card-deck-slider__swiperWrapper\" },\r\n React.createElement(Container, null,\r\n React.createElement(Swiper, { navigation: {\r\n nextEl: \".arrow-next-selector\",\r\n prevEl: \".arrow-prev-selector\"\r\n }, modules: [Mousewheel], loop: false, mousewheel: true, breakpoints: {\r\n [370]: {\r\n slidesPerView: 1.2,\r\n spaceBetween: 24,\r\n },\r\n [601]: {\r\n slidesPerView: 2,\r\n spaceBetween: 24,\r\n },\r\n [1025]: {\r\n slidesPerView: 3.2,\r\n spaceBetween: 24,\r\n }\r\n } }, cards.map((card, i) => (React.createElement(SwiperSlide, { key: `slide-${i}` }, React.createElement(VideoCardDeckSliderCard, { ...card }))))))))),\r\n loadMoreUrl && React.createElement(ButtonV2, { href: loadMoreUrl, design: \"ghost-medium-wbg\", openInNewTab: openInNewTabButton }, loadMoreText || \"Load more\")))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const SellBuyPriceCard = (props) => (React.createElement(\"div\", { className: \"sell-buy-price-card\" },\r\n React.createElement(Img, { className: \"sell-buy-price-card__img\", src: props.icon, alt: props.alt }),\r\n React.createElement(\"h5\", null, props.title),\r\n React.createElement(\"div\", { className: \"sell-buy-price-card__prices\" },\r\n React.createElement(\"div\", { className: \"sell-buy-price-card__buy-price-wrapper\" },\r\n React.createElement(\"p\", { className: \"sell-buy-price-card__price-label\" }, props.buyLabel),\r\n React.createElement(\"a\", { className: `${props.price1status === \"price-feed__negative\" ? \"sell-buy-price-card__buy-price-container\" : \"sell-buy-price-card__sell-price-container\"}`, href: props.instrumentUrl, target: \"_blank\", rel: \"noopener noreferrer\" },\r\n React.createElement(\"p\", { className: \"sell-buy-price-card__buy-price\" }, props.price1))),\r\n React.createElement(\"div\", { className: \"sell-buy-price-card__sell-price-wrapper\" },\r\n React.createElement(\"p\", { className: \"sell-buy-price-card__price-label\" }, props.sellLabel),\r\n React.createElement(\"a\", { className: `${props.price2status === \"price-feed__negative\" ? \"sell-buy-price-card__buy-price-container\" : \"sell-buy-price-card__sell-price-container\"}`, href: props.instrumentUrl, target: \"_blank\", rel: \"noopener noreferrer\" },\r\n React.createElement(\"p\", { className: \"sell-buy-price-card__sell-price\" }, props.price2))))));\r\n","\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { pageViewStyle } from \"../../../pageViewStyle\";\r\nimport { SellBuyPriceCard } from \"./SellBuyPriceCard/SellBuyPriceCard\";\r\nimport { getColors } from \"../../../utils\";\r\nimport pako from \"pako\";\r\nexport const SellBuyPriceCardsDeck = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const [instruments, setInstruments] = useState([]);\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const prevAskPrices = useRef(new Map());\r\n const prevBidPrices = useRef(new Map());\r\n useEffect(() => {\r\n !view && setView(pageViewStyle.getView());\r\n const websocket = new WebSocket(`${props.wsUrl}/price-feed/${props.session}`);\r\n websocket.binaryType = \"arraybuffer\";\r\n const pingRequest = new TextEncoder().encode(\"ping\");\r\n let interval;\r\n websocket.onopen = () => {\r\n interval = setInterval(() => {\r\n websocket.send(pingRequest);\r\n }, 1000);\r\n };\r\n websocket.onmessage = (event) => {\r\n const data = event.data;\r\n const message = pako.inflate(data, { to: \"string\" });\r\n updatePriceFeed(message);\r\n };\r\n return () => {\r\n clearInterval(interval);\r\n websocket.close();\r\n };\r\n }, []);\r\n const updatePriceFeed = (message) => {\r\n const dict = JSON.parse(message);\r\n const instruments = [];\r\n for (const key in dict) {\r\n if (key.includes(\"quote\")) {\r\n const group = key.split(\"_\")[0];\r\n const parsedValues = JSON.parse(dict[key]);\r\n const n = JSON.parse(dict[`${group}_marketItem_${key.split(\"_\")[2]}`]).Name;\r\n const dailyChange = calcDailyChange(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict);\r\n const prevBid = prevBidPrices.current.get(parsedValues.Code) ?? 0;\r\n const prevAsk = prevAskPrices.current.get(parsedValues.Code) ?? 0;\r\n const instrument = {\r\n name: n,\r\n code: parsedValues.Code,\r\n groupCode: group,\r\n bid: parsedValues.Bid,\r\n bidStyle: bidAskStyle(parsedValues.Bid, prevBid),\r\n bidIcon: \"\",\r\n ask: parsedValues.Ask,\r\n askStyle: bidAskStyle(parsedValues.Ask, prevAsk),\r\n askIcon: \"\",\r\n spread: calcSpread(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict),\r\n dailyChange,\r\n dailyChangeStyle: dailyChangeStyle(+dailyChange),\r\n dailyChangeIcon: \"\",\r\n };\r\n prevAskPrices.current.set(parsedValues.Code, parsedValues.Ask);\r\n prevBidPrices.current.set(parsedValues.Code, parsedValues.Bid);\r\n instruments.push(instrument);\r\n }\r\n }\r\n const newInstruments = instruments.filter(instrument => props.instrumentsToShow.map(el => el.title).includes(instrument.code)).filter((v, i, a) => a.findIndex(v2 => (v2.code === v.code)) === i);\r\n setInstruments(newInstruments);\r\n };\r\n const calcSpread = (group, code, bid, ask, dict) => {\r\n const marketItem = JSON.parse(dict[`${group}_marketItem_${code}`]);\r\n let decimalPrecision = 0;\r\n let tickSize = 0;\r\n if (dict[`${group}_marketItemInfo_${code}`]) {\r\n const marketItemInfo = JSON.parse(dict[`${group}_marketItemInfo_${code}`]);\r\n decimalPrecision =\r\n marketItemInfo.DecimalPrecision ?? marketItem.DecimalPrecision;\r\n tickSize = marketItemInfo.TickSize ?? marketItem.TickSize;\r\n }\r\n else {\r\n decimalPrecision = marketItem.DecimalPrecision;\r\n tickSize = marketItem.TickSize;\r\n }\r\n let decimal = tickSize >= 1.0 ? 0 : decimalPrecision;\r\n decimal = decimal > 2 ? decimal - 1 : decimal;\r\n const spread = ((ask - bid) * Math.pow(10, decimal)).toFixed(1);\r\n return spread;\r\n };\r\n const calcDailyChange = (group, code, bid, ask, dict) => {\r\n if (dict[`${group}_prevDayClosePrice_${code}`]) {\r\n const parsedValues = JSON.parse(dict[`${group}_prevDayClosePrice_${code}`]);\r\n const prevClose = parsedValues.PrevClose ?? 0;\r\n const averageCurrentPrice = (ask + bid) / 2;\r\n const dailyValue = averageCurrentPrice - prevClose;\r\n const dailyPercent = ((dailyValue / prevClose) * 100).toFixed(2);\r\n return `${dailyPercent}%`;\r\n }\r\n return \"N/A\";\r\n };\r\n const bidAskStyle = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const dailyChangeStyle = (value) => {\r\n if (value >= 0) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"sell-buy-price-cards-deck\" },\r\n React.createElement(\"div\", { className: \"sell-buy-price-cards-deck__text-wrapper\" },\r\n props.title && React.createElement(\"h2\", null, props.title),\r\n props.subtitle && React.createElement(\"p\", { className: \"sell-buy-price-cards-deck__text-subtitle\", dangerouslySetInnerHTML: { __html: props.subtitle } })),\r\n React.createElement(\"div\", { className: \"sell-buy-price-cards-deck__cards-wrapper\" }, instruments.length ? instruments.map((item, i) => React.createElement(SellBuyPriceCard, { key: `instrument-${i}`, title: item.code, icon: props.instrumentsToShow.find(el => el.title === item.code)?.icon || \"\", alt: item.code, price1: `${item.bid}`, price2: `${item.ask}`, price1status: item.bidStyle, price2status: item.askStyle, buyLabel: props.instrumentsToShow[i].buyLabel, sellLabel: props.instrumentsToShow[i].sellLabel, instrumentUrl: \"https://web.thinktrader.com/account/login\" })) : \"\"),\r\n props.nodeText && React.createElement(\"div\", { className: \"sell-buy-price-cards-deck__free-node\" },\r\n React.createElement(\"p\", null, props.nodeText))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const CardWithImage = ({ bgCardPicture, bgCardPictureAlt, subTitle, title }) => (React.createElement(\"div\", { className: \"card-with-image\" },\r\n React.createElement(\"div\", { className: \"card-with-image__imageContainer\" },\r\n React.createElement(Img, { src: bgCardPicture, alt: bgCardPictureAlt })),\r\n React.createElement(\"h4\", { dangerouslySetInnerHTML: {\r\n __html: title\r\n } }),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: subTitle\r\n } })));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { CardWithImage } from \"./CardWithImage\";\r\nexport const TwoCardsWithImages = ({ buttonHref, buttonLabel, cards, title, backGroundColor, openInNewTabButton }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"two-cards-with-images-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"two-cards-with-images-root__cardsWrapper\" }, cards.length > 0 && cards.map((card) => (React.createElement(CardWithImage, { key: `unique ${card.title}`, ...card })))),\r\n React.createElement(ButtonV2, { href: buttonHref, design: \"cta-large-wbg\", openInNewTab: openInNewTabButton }, buttonLabel)))));\r\n};\r\n","import React from \"react\";\r\nexport const CardWithTexts = ({ cardText, cardIndex }) => (React.createElement(\"div\", { className: \"card-with-texts\" },\r\n React.createElement(\"p\", { className: \"card-with-texts--index\" }, cardIndex),\r\n React.createElement(\"p\", { className: \"card-with-texts--text\", dangerouslySetInnerHTML: {\r\n __html: cardText || \"\",\r\n } })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { CardWithTexts } from \"./CardWithTexts\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nexport const CardDeckWithTextsAndButtons = ({ title, subTitle, cards, primaryButtonLabel, primaryButtonLink, secondaryButtonLabel, secondaryButtonLink, backgroundColor = \"#fff\", orText = \"or\" }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"card-deck-with-texts-buttons-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-texts-buttons-root__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold-small\" }, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"card-deck-with-texts-buttons-root__cardsWrapper\" }, cards.length > 0 && cards.map((card, index) => (React.createElement(CardWithTexts, { cardText: card.cardText, cardIndex: index + 1, key: `unique${card.cardText}` })))),\r\n React.createElement(\"div\", { className: \"card-deck-with-texts-buttons-root__buttonsWrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: primaryButtonLink }, primaryButtonLabel),\r\n React.createElement(\"span\", null, orText),\r\n React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: secondaryButtonLink }, secondaryButtonLabel))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const NumberedListImageCard = ({ title, content, image }) => (React.createElement(\"div\", { className: \"numbered-list-card\" },\r\n React.createElement(Img, { src: image, alt: title }),\r\n React.createElement(\"h4\", { className: \"h4-bold\" }, title),\r\n React.createElement(\"hr\", null),\r\n React.createElement(\"div\", { className: \"numbered-list-card__list\", dangerouslySetInnerHTML: { __html: content } })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { NumberedListImageCard } from \"./NumberedListImageCard/NumberedListImageCard\";\r\nexport const NumberedListImageCardDeck = ({ title, subtitle, cards, backgroundColor }) => {\r\n const colors = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: colors.bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"numbered-list-card-deck\" },\r\n React.createElement(\"h2\", null, title),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold\" }, subtitle),\r\n React.createElement(\"div\", { className: \"numbered-list-card-deck__cards\" }, cards.map((card, index) => React.createElement(NumberedListImageCard, { key: `numbered-list-card-${index}`, ...card })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const IconAndTitleCard = (props) => (React.createElement(\"a\", { href: props.cardUrl, className: \"icon-and-title-card\" },\r\n React.createElement(Img, { className: \"icon-and-title-card__image\", src: props.iconURL, alt: props.iconAlt }),\r\n React.createElement(\"p\", null, props.title)));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { IconAndTitleCard } from \"./IconAndTitleCard/IconAndTitleCard\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const IconAndTitleCardDeck = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck\" },\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck__text-container\" },\r\n React.createElement(\"h3\", null, props.title),\r\n React.createElement(\"p\", null, props.description)),\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck__items-container\" }, props.cards.map((card, i) => React.createElement(IconAndTitleCard, { ...card, key: i })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const IconAndTitleCardDeck2Rows = ({ title, description, cards, backgroundColor, bottomLinkUrl, bottomLinkText, opensInNewTab }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck-2rows\" },\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck-2rows__text-container\" },\r\n React.createElement(\"h2\", null, title),\r\n description && React.createElement(\"p\", null, description)),\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck-2rows__items-container\" }, cards?.map((card, i) => React.createElement(React.Fragment, null, React.createElement(\"a\", { href: card.linkURL, key: i, className: \"icon-and-title-card-deck-2rows__card\" },\r\n React.createElement(ImgV2, { className: \"icon-and-title-card-deck-2rows__image\", src: card.iconURL, alt: card.iconAlt }),\r\n React.createElement(\"p\", { className: \"p-bold\" }, card.title),\r\n React.createElement(\"div\", { className: \"icon-and-title-card-deck-2rows__card-sub color-dark-80\" }, card.subtitle))))),\r\n bottomLinkUrl && bottomLinkText && React.createElement(\"a\", { className: \"h5-bold icon-and-title-card-deck-2rows__bottom-link\", target: opensInNewTab ? \"_blank\" : \"_self\", rel: \"noreferrer\", href: bottomLinkUrl }, bottomLinkText)))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nimport { Heading } from \"../../../Heading\";\r\nexport const CardWithIconTextCard = (props) => (React.createElement(\"div\", { className: \"card-with-icon-text-card\", style: { backgroundColor: props.cardColor } },\r\n React.createElement(\"div\", { className: \"card-with-icon-text-card__icon-wrapper\" },\r\n React.createElement(Img, { src: props.iconUrl, alt: props.iconAlt })),\r\n React.createElement(\"div\", { className: \"card-with-icon-text-card__text-wrapper\" },\r\n React.createElement(Heading, { design: \"h5-lp\" }, props.title),\r\n React.createElement(\"div\", { className: \"card-with-icon-text-card__subtitle\", dangerouslySetInnerHTML: { __html: props.text } }))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { CardWithIconTextCard } from \"./CardsWithIconTextCard\";\r\nexport const CardsWithIconText = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"cards-with-icon-text\" },\r\n React.createElement(\"div\", { className: \"cards-with-icon-text__text\" },\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"p\", null, props.subtitle)),\r\n React.createElement(\"div\", { className: \"cards-with-icon-text__cards\" }, props.content.map((card, i) => (React.createElement(CardWithIconTextCard, { key: i, title: card.title, text: card.text, iconAlt: card.iconAlt, iconUrl: card.iconUrl, cardColor: card.cardColor }))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const ThinkTraderCardWithImage = ({ title, description, imageUrl, imageAlt, imageSectionBackground, imagePosition, buttonUrl, buttonLabel, backgroundColor, buttonDesign, imgPositionUpOrDown, buttonPosition, buttonShowArrowRight, buttonBgColor, leftButtonImage, hoverLeftImage, withCenteredStyle, openInNewTab }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const mainClassName = `${imagePosition === \"left\" ? \"thinkTrader-card-with-image image-position-left\" : \"thinkTrader-card-with-image image-position-right\"} ${imgPositionUpOrDown === \"Up\" ? \"imageUP\" : \"imageDown\"} ${withCenteredStyle}`;\r\n let secondClassNAme;\r\n if (buttonPosition === \"left\") {\r\n secondClassNAme = \"classButtonLeft\";\r\n }\r\n else if (buttonPosition === \"right\") {\r\n secondClassNAme = \"classButtonRight\";\r\n }\r\n else {\r\n secondClassNAme = \"classButtonCenter\";\r\n }\r\n const textButtonSection = `thinkTrader-card-with-image__text-button-section ${secondClassNAme}`;\r\n const handleButtonColor = () => {\r\n if (buttonBgColor) {\r\n return buttonBgColor;\r\n }\r\n return \"#E5EEEE\";\r\n };\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: mainClassName },\r\n React.createElement(\"div\", { className: textButtonSection },\r\n React.createElement(\"div\", { className: \"thinkTrader-card-with-image__text-button-section__text-container\" },\r\n React.createElement(\"h2\", { className: \"thinkTrader-card-with-image__text-button-section__text-container__title-wrapper\", dangerouslySetInnerHTML: { __html: title } }),\r\n React.createElement(\"div\", { className: \"thinkTrader-card-with-image__text-button-section__text-container__desk-wrapper\", dangerouslySetInnerHTML: { __html: description } })),\r\n buttonLabel && React.createElement(\"div\", { className: \"thinkTrader-card-with-image__text-button-section__button-container\" },\r\n React.createElement(ButtonV2, { icon: leftButtonImage, iconHover: hoverLeftImage, design: buttonDesign, href: buttonUrl, showArrowRight: buttonShowArrowRight, openInNewTab: openInNewTab, style: { \"--button-bg-color\": `${handleButtonColor()}` } }, buttonLabel))),\r\n React.createElement(\"div\", { className: \"thinkTrader-card-with-image__image-section\", style: { backgroundColor: imageSectionBackground } },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageAlt, loading: \"eager\" }))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2/ImgV2\";\r\nimport { GreenCheckIcon } from \"../../../svgIcons\";\r\nexport const TheCard = ({ cardTitle, cardPlace, iconPlace, listItems }) => {\r\n const separatedArray = [...listItems.split(\"|\")];\r\n return (React.createElement(\"div\", { className: \"the-card\" },\r\n React.createElement(\"div\", { className: \"the-card__place-title-wrappers\" },\r\n React.createElement(\"div\", { className: \"the-card__place-wrapper\" },\r\n React.createElement(\"span\", null,\r\n iconPlace && React.createElement(ImgV2, { src: iconPlace, alt: cardTitle }),\r\n cardPlace)),\r\n React.createElement(\"div\", { className: \"the-card__title-wrapper\" },\r\n React.createElement(\"h4\", null, cardTitle))),\r\n React.createElement(\"div\", { className: \"the-card__list-wrapper\" }, separatedArray && separatedArray.map((item, i) => (React.createElement(\"div\", { key: i, className: \"the-card__list-wrapper__list-item\" },\r\n GreenCheckIcon(iconPlace ? \"#5EE15A\" : \"#4BB448\"),\r\n \" \",\r\n React.createElement(\"span\", null, item)))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { TheCard } from \"./TheCard/TheCard\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nexport const ThreeCardsLP = ({ title, content, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"three-cards-lp\" },\r\n React.createElement(\"div\", { className: \"three-cards-lp__title-container\" }, title && React.createElement(\"h1\", null, title)),\r\n React.createElement(\"div\", { className: \"three-cards-lp__cards-container\" }, content.map((card, i) => React.createElement(TheCard, { key: i, cardTitle: card.cardTitle, cardPlace: card.cardPlace, iconPlace: card.iconPlace, listItems: card.listItems })))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const IconAndTitleSquaredCard = ({ iconAlt, iconURL, title, subtitle, cardUrl }) => (React.createElement(\"a\", { className: \"icon-title-squared-card\", href: cardUrl },\r\n React.createElement(ImgV2, { src: iconURL, alt: iconAlt }),\r\n React.createElement(\"p\", { className: \"icon-title-squared-card__title\" }, title),\r\n React.createElement(\"p\", { className: \"icon-title-squared-card__subTitle\" }, subtitle)));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Container, ContainerFW } from \"../../../header\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { IconAndTitleSquaredCard } from \"./IconAndTitleCardSquared\";\r\nexport const IconAndTitleCardSquaredDeck = ({ cards, backgroundColor, title, linkLabel, linkUrl }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"icon-title-card-squared-deck\" },\r\n React.createElement(Container, null,\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"icon-title-card-squared__cardWrapper\" }, cards.length && cards.map((card) => (React.createElement(IconAndTitleSquaredCard, { key: `unique${card.title}`, ...card })))),\r\n React.createElement(\"a\", { className: \"icon-title-card-squared__link\", href: linkUrl }, linkLabel)))));\r\n};\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport Lottie from \"lottie-react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const CardWithHoverAnimation = ({ animationPath, iconUrl, iconAlt, title, text }) => {\r\n const [hoverImage, setHoverImage] = useState(true);\r\n const [hoverAnimation, setHoverAnimation] = useState(false);\r\n const [animation, setAnimation] = useState();\r\n useEffect(() => {\r\n if (animationPath && animationPath.includes(\"json\")) {\r\n fetch(animationPath)\r\n .then(response => response.json())\r\n .then((jsonData) => {\r\n setAnimation(jsonData);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [animationPath]);\r\n const handlerOnMouseEnter = function () {\r\n setHoverAnimation(true);\r\n setHoverImage(false);\r\n };\r\n const handlerOnMouseEnterProp = useCallback(() => handlerOnMouseEnter(), []);\r\n const handlerOnMouseLeave = function () {\r\n setHoverAnimation(false);\r\n setHoverImage(true);\r\n };\r\n const handlerOnMouseLeaveProp = useCallback(() => handlerOnMouseLeave(), []);\r\n return (React.createElement(\"div\", { className: \"card-with-hover-animation\" },\r\n React.createElement(\"div\", { className: \"card-with-hover-animation__icon-wrapper\" },\r\n React.createElement(\"div\", { className: \"card-with-hover-animation__svg-lottie-wrapper\", onMouseEnter: handlerOnMouseEnterProp, onMouseLeave: handlerOnMouseLeaveProp },\r\n hoverImage && React.createElement(ImgV2, { src: iconUrl, alt: iconAlt, loading: \"eager\" }),\r\n hoverAnimation && React.createElement(Lottie, { animationData: animation }))),\r\n React.createElement(\"div\", { className: \"card-with-hover-animation__text-wrapper\" },\r\n React.createElement(\"h5\", null, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: text } }))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { CardWithHoverAnimation } from \"./CardWithHoverAnimation\";\r\nexport const CardsWithHoverAnimation = ({ title, backgroundColor, content }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"cards-with-hover-animation\" },\r\n React.createElement(\"div\", { className: \"cards-with-hover-animation__title-wrapper\" }, title && React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: \"cards-with-hover-animation__cards-wrapper\" }, content.map((card, i) => (React.createElement(CardWithHoverAnimation, { key: i, title: card.title, text: card.text, iconAlt: card.iconAlt, iconUrl: card.iconUrl, animationPath: card.animationPath }))))))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { ButtonV2 } from \"../../../ButtonV2\";\r\nimport { ImgV2 } from \"../../../ImgV2/ImgV2\";\r\nimport { usePageViewStyle } from \"../../../../hooks\";\r\nexport const CardWithImageAndButton = ({ title, description, mobileDescription, buttonURL, buttonLabel, openInNewTabButton, imageUrl, smallImageUrl, imageAlt }) => {\r\n const { isSmall, isMedium, isLarge } = usePageViewStyle();\r\n const [currentImage, setCurrentImage] = useState(imageUrl);\r\n const [descriptionText, setDescriptionText] = useState(description);\r\n useEffect(() => {\r\n if (isSmall) {\r\n setCurrentImage(smallImageUrl);\r\n setDescriptionText(mobileDescription);\r\n }\r\n else {\r\n setCurrentImage(imageUrl);\r\n setDescriptionText(description);\r\n }\r\n }, [isSmall, isMedium, isLarge, descriptionText]);\r\n const renderImage = () => (React.createElement(ImgV2, { src: currentImage, alt: imageAlt, loading: \"eager\" }));\r\n return (React.createElement(\"div\", { className: \"card-with-image-and-button\" },\r\n React.createElement(\"div\", { className: \"card-with-image-and-button__text-and-button-wrapper\" },\r\n React.createElement(\"h4\", { dangerouslySetInnerHTML: {\r\n __html: title\r\n } }),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: descriptionText\r\n } }),\r\n React.createElement(ButtonV2, { href: buttonURL, design: \"secondary-large-wbg\", openInNewTab: openInNewTabButton }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"card-with-image-and-button__image-wrapper\" }, renderImage())));\r\n};\r\n","import React from \"react\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { CardWithImageAndButton, } from \"./CardWithImageAndButton/CardWithImageAndButton\";\r\nexport const TwoCardsWithImagesAndButton = ({ title, backGroundColor, cards = [{}], headingDesign = \"h2-regular\", }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"two-cards-with-images-and-button\" },\r\n React.createElement(\"div\", { className: \"two-cards-with-images-and-button__text-wrapper\" },\r\n React.createElement(Heading, { design: headingDesign }, title)),\r\n React.createElement(\"div\", { className: \"two-cards-with-images-and-button__cards-wrapper\" }, cards.length > 0 &&\r\n cards.map((card, i) => (React.createElement(CardWithImageAndButton, { key: i, ...card }))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const CardWithOutHoverAnimation = ({ title, text, iconUrl, iconAlt, bgColor, textColor, descriptionTextColor }) => (React.createElement(\"div\", { className: \"card-withOut-hover\", style: { \"--background-image-url\": bgColor } },\r\n React.createElement(\"div\", { className: \"card-withOut-hover__imageWrapper\" },\r\n React.createElement(ImgV2, { src: iconUrl, alt: iconAlt })),\r\n React.createElement(\"p\", { className: \"card-withOut-hover__title\", style: { \"--text-color\": textColor }, dangerouslySetInnerHTML: {\r\n __html: title || \"\",\r\n } }),\r\n React.createElement(\"div\", { className: \"card-withOut-hover__description\", dangerouslySetInnerHTML: {\r\n __html: text || \"\",\r\n }, style: { \"--description-text-color\": descriptionTextColor } })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { CardWithOutHoverAnimation } from \"./CardWithOutHoverAnimation/CardWithOutHoverAnimation\";\r\nexport const CardsWithOutHoverAnimation = ({ content, backgroundColor, additionalStyle }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: `card-without-hover-animation__root ${additionalStyle || \"\"}` },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" }, content.length > 0 && content.map((a) => (React.createElement(CardWithOutHoverAnimation, { key: `unique${a.title}`, ...a })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const SectionWithThreeColumns = ({ backgroundColor, content }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"section-with-three-columns\" },\r\n React.createElement(\"div\", { className: \"section-with-three-columns__cards-wrapper\" }, content.map((item, i) => React.createElement(\"div\", { className: \"section-with-three-columns__card-box\", key: `card-${i}` },\r\n React.createElement(\"img\", { src: item.iconUrl, alt: item.iconAlt }),\r\n React.createElement(\"h5\", null, item.title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: item.text } }))))))));\r\n};\r\n","import React, { Fragment, useCallback } from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Navigation, Autoplay, Pagination } from \"swiper\";\r\nSwiperCore.use([Navigation, Autoplay, Pagination]);\r\nexport const CardsDeckWithSliderOnMobile = ({ title, cards, cardsBackgroundColor }) => {\r\n const { bgColor } = getColors(cardsBackgroundColor);\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const renderCard = useCallback((card) => (React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: \"cards-deck-with-slider-on-mobile__card\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(ImgV2, { src: card.iconUrl })),\r\n React.createElement(\"div\", null,\r\n React.createElement(Heading, { design: \"h5-bold\" }, card.title)),\r\n React.createElement(\"div\", { className: \"p-regular\", dangerouslySetInnerHTML: {\r\n __html: card.description\r\n } }))), [bgColor]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"cards-deck-with-slider-on-mobile\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold\" }, title),\r\n (isLarge || isMedium) && React.createElement(\"div\", { className: \"cards-deck-with-slider-on-mobile__main-grid\" }, cards?.map((card, i) => React.createElement(Fragment, { key: i }, renderCard(card)))),\r\n isSmall &&\r\n React.createElement(Swiper, { spaceBetween: 20, slidesPerView: 1.2, pagination: {\r\n clickable: true,\r\n } }, cards?.map((card, i) => React.createElement(SwiperSlide, { key: `cards-deck-with-slider-on-mobile__slide-${i}` }, renderCard(card))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nimport { Heading } from \"../../../Heading\";\r\nexport const SingleCard = ({ buttonLabel, buttonUrl, imageUrl, imageAlt, subTitle, title }) => (React.createElement(\"div\", { className: 'single-card-root' },\r\n React.createElement(\"div\", { className: 'single-card-root__imageWrapper' },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageAlt })),\r\n React.createElement(\"div\", { className: \"single-card-root__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h4-lp\" }, title),\r\n React.createElement(\"p\", { className: \"single-card-root__textsWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })),\r\n (buttonLabel && buttonUrl) && React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", className: \"text-nav\", href: buttonUrl }, buttonLabel)));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { SingleCard } from \"./SingleCard/SingleCard\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const CardsDeckWithTitleAndSubSwiper = ({ title, cards, backGroundColor }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-sub-swiper__root\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, title),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-sub-swiper__root__swiper-view\" },\r\n React.createElement(Swiper, { pagination: {\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n }, breakpoints: {\r\n 375: {\r\n slidesPerView: 1.05,\r\n spaceBetween: 7\r\n },\r\n 601: {\r\n slidesPerView: 2.1,\r\n spaceBetween: 12\r\n },\r\n 1024: {\r\n slidesPerView: 3,\r\n spaceBetween: 24\r\n },\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `cards-deck-with-title-sub-swipe-slide-${i}` },\r\n React.createElement(SingleCard, { ...card })))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../../Heading\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const CardWithImageAndLabel = ({ title, subTitle, imageUrl }) => (React.createElement(\"div\", { className: \"card-image-label__root\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold-small\" }, title),\r\n React.createElement(\"p\", { className: \"caption\", dangerouslySetInnerHTML: {\r\n __html: subTitle\r\n } }),\r\n React.createElement(\"div\", { className: \"imageWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl }))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { CardWithImageAndLabel } from \"./CardWithImageAndLabels/CardWithImageAndLabel\";\r\nexport const CardDeckWithImages = ({ cards, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-images__root\" }, cards.length > 0 && cards.map((a) => (React.createElement(CardWithImageAndLabel, { key: `unique${a.title}`, ...a })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { SingleCard } from \"../CardsDeckWithTitleAndSubSwiper/SingleCard/SingleCard\";\r\nexport const CardDeckGradientSwiper = ({ title, cards, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"card-deck-gradient-swiper__root\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, title),\r\n React.createElement(\"div\", { className: \"card-deck-gradient-swiper__root__swiper-view\" },\r\n React.createElement(Swiper, { pagination: {\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n }, breakpoints: {\r\n 375: {\r\n slidesPerView: 1.05,\r\n spaceBetween: 7\r\n },\r\n 601: {\r\n slidesPerView: 2,\r\n spaceBetween: 12\r\n },\r\n 1024: {\r\n slidesPerView: 3,\r\n spaceBetween: 24\r\n },\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `cards-deck-with-title-sub-swipe-slide-${i}` },\r\n React.createElement(SingleCard, { ...card })))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const CardSwiper = ({ iconUrl, iconAlt, title, content }) => (React.createElement(\"div\", { className: 'card-swiper-root' },\r\n React.createElement(ImgV2, { src: iconUrl, alt: iconAlt }),\r\n React.createElement(\"p\", { className: \"h5-bold\" }, title),\r\n content && React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: content,\r\n }, className: \"p-regular\" })));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { CardSwiper } from \"./Cards/CardSwiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const AddressCardDeck = ({ title, backGroundColor, cards }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"address-card-deck-root\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold\" }, title),\r\n React.createElement(\"div\", { className: \"address-card-deck-root__cardsWrapper\" },\r\n React.createElement(Swiper, { pagination: {\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n }, breakpoints: {\r\n 375: {\r\n slidesPerView: 1.05,\r\n spaceBetween: 7\r\n },\r\n 601: {\r\n slidesPerView: cards.length,\r\n spaceBetween: 0\r\n },\r\n 1024: {\r\n slidesPerView: cards.length,\r\n spaceBetween: 12\r\n },\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `cards-deck-with-title-sub-swipe-slide-${i}` },\r\n React.createElement(CardSwiper, { ...card })))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nexport const InterchangeableImageCardDeck = ({ title, subTitle, imageUrl, buttonText, buttonUrl, imagePosition, openInNewTab }) => (React.createElement(ContainerFW, null,\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: `interchangeable-image-card-deck__root ${imagePosition === \"right\" && \"rightAligned\"} ` },\r\n React.createElement(\"div\", { className: \"image__wrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl })),\r\n React.createElement(\"div\", { className: \"texts__wrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"p-regular\" }, subTitle),\r\n (buttonText && buttonUrl) && React.createElement(ButtonV2, { openInNewTab: openInNewTab, design: \"secondary-large-dbg\", href: buttonUrl }, buttonText))))));\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const MobileSmallAwardCard = ({ mobileAwardImage, title, subtitle, date }) => (React.createElement(\"div\", { className: \"mobile-small-award-card\" },\r\n React.createElement(ImgV2, { src: mobileAwardImage }),\r\n React.createElement(\"p\", { className: \"mobile-small-award-card__title\" }, title),\r\n React.createElement(\"p\", { className: \"mobile-small-award-card__subtitle\" }, subtitle),\r\n React.createElement(\"p\", { className: \"mobile-small-award-card__date\" }, date)));\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nexport const SmallAwardCard = ({ leftLeavesImage, rightLeavesImage, title, subtitle, date }) => (React.createElement(\"div\", { className: \"small-award-card\" },\r\n React.createElement(\"div\", { className: \"small-award-card__award-wrapper\" },\r\n React.createElement(ImgV2, { src: leftLeavesImage }),\r\n React.createElement(\"p\", { className: \"small-award-card__award-wrapper__title\" }, title),\r\n React.createElement(ImgV2, { src: rightLeavesImage })),\r\n React.createElement(\"p\", { className: \"small-award-card__subtitle\" }, subtitle),\r\n React.createElement(\"p\", { className: \"small-award-card__date\" }, date)));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../../header\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { MobileSmallAwardCard } from \"./MobileSmallAwardCard/MobileSmallAwardCard\";\r\nimport { SmallAwardCard } from \"./SmallAwardCard/SmallAwardCard\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const SmallAwardCardsDeck = ({ awardCards, title, titleAlignment, backgroundColor }) => {\r\n const { isSmall } = usePageViewStyle();\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { className: \"g-container--new\", backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"small-award-cards-deck-root\" },\r\n title && React.createElement(\"div\", { className: \"small-award-cards-deck-root__title h3-semi-bold-small\", dangerouslySetInnerHTML: {\r\n __html: title,\r\n }, style: { \"--title-alignment\": titleAlignment } }),\r\n React.createElement(\"div\", { className: \"awards-wrapper\" }, awardCards.length > 0 && awardCards.map((award) => (React.createElement(React.Fragment, null, isSmall ? React.createElement(MobileSmallAwardCard, { key: award.title, title: award.title, subtitle: award.subtitle, mobileAwardImage: award.mobileAwardImage, date: award.date }) : React.createElement(SmallAwardCard, { key: award.title, date: award.date, title: award.title, subtitle: award.subtitle, leftLeavesImage: award.leftLeavesImage, rightLeavesImage: award.rightLeavesImage })))))))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { handleLinkTarget } from \"../../../utils\";\r\nexport const MarketCard = ({ categoryName, linkLabel, linkUrl, subtitle, title, mobileBgImage, desktopBgImage, openInNewTabButton = false }) => {\r\n const { isSmall } = usePageViewStyle();\r\n const [linkCard, setLinkCard] = useState(false);\r\n const hrefTarget = handleLinkTarget(openInNewTabButton);\r\n useEffect(() => {\r\n setLinkCard(isSmall);\r\n }, [isSmall]);\r\n return (linkCard ? React.createElement(\"a\", { href: linkUrl, target: hrefTarget, className: \"market-card-root\", style: { \"--background-image-url-mobile\": `url(${mobileBgImage})`, \"--background-image-url-desktop\": `url(${desktopBgImage})` } },\r\n React.createElement(\"p\", { className: \"caption-risk-warning-bold\" }, categoryName),\r\n React.createElement(\"div\", { className: \"market-card-root__title-wrapper\" },\r\n React.createElement(Heading, { design: \"h4-v2dot6\" }, title),\r\n React.createElement(\"p\", { className: \"market-card-root__title-wrapper__subtitle\" }, subtitle)))\r\n : React.createElement(\"div\", { className: \"market-card-root\", style: { \"--background-image-url-mobile\": `url(${mobileBgImage})`, \"--background-image-url-desktop\": `url(${desktopBgImage})` } },\r\n React.createElement(\"p\", { className: \"caption-risk-warning-bold\" }, categoryName),\r\n React.createElement(\"div\", { className: \"market-card-root__title-wrapper\" },\r\n React.createElement(Heading, { design: \"h4-v2dot6\" }, title),\r\n React.createElement(\"p\", { className: \"market-card-root__title-wrapper__subtitle\" }, subtitle)),\r\n React.createElement(ButtonV2, { classes: \"market-card-root__button\", openInNewTab: openInNewTabButton, href: linkUrl }, linkLabel)));\r\n};\r\n","import { createContext, useContext, useState, useEffect, useRef, useMemo } from 'react';\nimport { createError } from '@dotlottie/common';\n\nfunction x(){var e=useRef(!0);return e.current?(e.current=!1,!0):e.current}var T=function(e,o){var t=x();useEffect(function(){if(!t)return e()},o);},P=T;var c=function(){};function m(e){for(var o=[],t=1;t{let e=useContext(C);if(typeof e>\"u\")throw createError(\"useDotLottieContext must be used within a DotLottieProvider\");return e};var ve=(e,o,t)=>{let[r,u]=useState(()=>t());return useEffect(()=>{let f=e(()=>{let n=o();u(n);});return ()=>{f();}},[e]),r};\n\nexport { P as a, F as b, A as c, ve as d, de as e, pe as f };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-XVC7DH25.js.map","import { a, e, d } from './chunk-XVC7DH25.js';\nimport { PlayerState, PlayerEvents, DotLottieCommonPlayer, DEFAULT_STATE } from '@dotlottie/common';\nimport c, { useRef, useEffect, useState, useCallback, useLayoutEffect } from 'react';\n\nvar Z=typeof window>\"u\"?useEffect:useLayoutEffect,H=(e,o,d)=>{let[a]=useState(()=>new DotLottieCommonPlayer(e,o.current,d)),u=useRef(!1);return Z(()=>{async function m(){!u.current&&o.current&&(u.current=!0,a.setContainer(o.current),await a.load());}return m(),()=>{u.current&&a.destroy();}},[a]),a};function L(e,o){let d$1=useCallback(()=>o(e.getState()),[o,e]),a=useCallback(m=>e.state.subscribe(m),[e]);return d(a,d$1,()=>o(DEFAULT_STATE))}var N={animation:{position:\"relative\",width:\"100%\",height:\"100%\"},animationWithControls:{position:\"relative\"}},fe=c.forwardRef(({onEvent:e$1,activeAnimationId:o,autoplay:d,background:a$1=\"transparent\",direction:u,intermission:m,loop:D,playMode:P,hover:f,speed:g,renderer:U=\"svg\",rendererSettings:$={},src:S,className:j=\"\",testId:p,children:b,defaultTheme:y,light:v=!1,worker:z=!1,activeStateId:C,lottieRef:B,...I},W)=>{let R=useRef(null),i=H(S,R,{renderer:U,activeAnimationId:o,rendererSettings:{clearCanvas:!0,progressiveLoad:!1,hideOnTransparent:!0,...$},hover:f,loop:D,direction:u,speed:g,intermission:m,background:a$1,playMode:P,autoplay:f?!1:d,testId:p,defaultTheme:y,light:v,worker:z,activeStateId:C}),t=useRef(i);t.current=i,c.useImperativeHandle(W,()=>i,[i]),c.useImperativeHandle(B,()=>i,[i]);let T=L(i,n=>n.currentState),k=L(i,n=>n.frame),q=L(i,n=>n.seeker),G=L(i,n=>n.currentAnimationId);return a(()=>{typeof D>\"u\"?t.current.revertToManifestValues([\"loop\"]):t.current.setLoop(D);},[D]),a(()=>{[PlayerState.Initial,PlayerState.Loading].includes(T)||(typeof d>\"u\"?t.current.revertToManifestValues([\"autoplay\"]):t.current.setAutoplay(d));},[d]),a(()=>{typeof u>\"u\"?t.current.revertToManifestValues([\"direction\"]):t.current.setDirection(u);},[u]),a(()=>{typeof g>\"u\"?t.current.revertToManifestValues([\"speed\"]):t.current.setSpeed(g);},[g]),a(()=>{typeof P>\"u\"?t.current.revertToManifestValues([\"playMode\"]):t.current.setMode(P);},[P]),a(()=>{typeof f>\"u\"?t.current.revertToManifestValues([\"hover\"]):t.current.setHover(f);},[f]),a(()=>{typeof a$1>\"u\"?t.current.setBackground(\"transparent\"):t.current.setBackground(a$1);},[a$1]),a(()=>{typeof m>\"u\"?t.current.revertToManifestValues([\"intermission\"]):t.current.setIntermission(m);},[m]),a(()=>{typeof y>\"u\"||!y?t.current.revertToManifestValues([\"defaultTheme\"]):t.current.setDefaultTheme(y);},[y]),a(()=>{o&&t.current.play(o);},[o]),a(()=>(typeof C<\"u\"&&t.current.enterInteractiveMode(C),()=>{t.current.exitInteractiveMode();}),[C]),a(()=>{typeof S<\"u\"&&t.current.updateSrc(S);},[S]),useEffect(()=>{let n=()=>{e$1==null||e$1(PlayerEvents.Ready);},w=()=>{e$1==null||e$1(PlayerEvents.DataReady);},x=()=>{e$1==null||e$1(PlayerEvents.DataFail);},V=()=>{t.current.currentState!==PlayerState.Playing&&(e$1==null||e$1(PlayerEvents.Complete));},h=()=>{e$1==null||e$1(PlayerEvents.LoopComplete);};return t.current.addEventListener(\"DOMLoaded\",n),t.current.addEventListener(\"data_ready\",w),t.current.addEventListener(\"data_failed\",x),t.current.addEventListener(\"complete\",V),t.current.addEventListener(\"loopComplete\",h),()=>{t.current.removeEventListener(\"DOMLoaded\",n),t.current.removeEventListener(\"data_ready\",w),t.current.removeEventListener(\"data_failed\",x),t.current.removeEventListener(\"complete\",V),t.current.removeEventListener(\"loopComplete\",h);}},[]),useEffect(()=>{switch(T){case PlayerState.Stopped:e$1==null||e$1(PlayerEvents.Stop);break;case PlayerState.Paused:e$1==null||e$1(PlayerEvents.Pause);break;case PlayerState.Playing:e$1==null||e$1(PlayerEvents.Play);break;case PlayerState.Frozen:e$1==null||e$1(PlayerEvents.Freeze);break;case PlayerState.Error:e$1==null||e$1(PlayerEvents.Error);break;}},[T]),useEffect(()=>{e$1==null||e$1(PlayerEvents.Frame,{frame:k,seeker:q});},[k]),c.createElement(e,{value:i},c.createElement(\"div\",{className:`dotlottie-container main ${b?\"controls\":\"\"} ${j}`,lang:\"en\",...p&&{\"data-testid\":p},...I},c.createElement(\"div\",{ref:R,\"data-name\":`${G}`,role:\"figure\",className:`animation ${b?\"controls\":\"\"}`,style:b?N.animationWithControls:N.animation,...p&&{\"data-testid\":\"animation\"}},T===PlayerState.Error&&c.createElement(\"div\",{...p&&{\"data-testid\":\"error\"},className:\"error\"},\"\\u26A0\\uFE0F\")),b))});\n\nexport { fe as a };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-ZAFYX2AB.js.map","import * as React from \"react\";\r\nimport { getColors } from \"../../../../utils/getColors\";\r\nimport { Heading } from \"../../../Heading\";\r\nimport { ImgV2 } from \"../../../ImgV2\";\r\nimport { DotLottiePlayer } from \"@dotlottie/react-player\";\r\nexport const FeatureCard = ({ cardBackgroundColor, cardTitle, cardDescription, cardClass, cardVideoURL, thumbnailImageURL, cardButtonURL, cardButtonLabel, openOnNewPage, cardLottieURL = \"\", cardImageURL, cardImageAlt }) => {\r\n const { bgColor } = getColors(cardBackgroundColor);\r\n const linkTarget = openOnNewPage === true ? \"_blank\" : \"_self\";\r\n const [dotLottieOrImgV2, setDotLottieOrImgV2] = React.useState(Boolean);\r\n const [videoPath, setVideoPath] = React.useState(cardVideoURL);\r\n React.useEffect(() => {\r\n cardLottieURL.includes(\".lottie\") ? setDotLottieOrImgV2(true) : setDotLottieOrImgV2(false);\r\n }, [cardLottieURL]);\r\n React.useEffect(() => {\r\n setVideoPath(cardVideoURL);\r\n }, [cardVideoURL]);\r\n const cardType = () => {\r\n if (cardClass === \"item0\") {\r\n return (React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: cardClass },\r\n React.createElement(\"video\", { autoPlay: true, loop: true, muted: true, playsInline: true, poster: thumbnailImageURL },\r\n React.createElement(\"source\", { src: videoPath, type: \"video/mp4\" })),\r\n React.createElement(\"div\", { className: \"item0-text-wrapper\" },\r\n React.createElement(Heading, { design: \"h3-v2dot6\" }, cardTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardDescription,\r\n } })),\r\n React.createElement(\"a\", { href: cardButtonURL, target: linkTarget, rel: \"noreferrer\" }, cardButtonLabel)));\r\n }\r\n else if (cardClass === \"item1\") {\r\n return (React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: cardClass },\r\n React.createElement(\"div\", { className: \"item1-text-wrapper\" },\r\n React.createElement(Heading, { design: \"h4-v2dot6\" }, cardTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardDescription,\r\n } }),\r\n React.createElement(\"a\", { href: cardButtonURL, target: linkTarget, className: \"item1-button\", rel: \"noreferrer\" }, cardButtonLabel)),\r\n React.createElement(ImgV2, { src: cardImageURL, alt: cardImageAlt })));\r\n }\r\n else if (cardClass === \"item2\") {\r\n return (React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: cardClass },\r\n React.createElement(\"div\", { className: \"item2-text-wrapper\" },\r\n React.createElement(Heading, { design: \"h4-v2dot6\" }, cardTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardDescription,\r\n } }),\r\n React.createElement(\"a\", { href: cardButtonURL, target: linkTarget, className: \"item2-button\", rel: \"noreferrer\" }, cardButtonLabel)),\r\n dotLottieOrImgV2 ? React.createElement(DotLottiePlayer, { src: cardLottieURL, autoplay: true, loop: true }) : React.createElement(\"div\", { className: \"item2-image-container\" },\r\n React.createElement(ImgV2, { src: cardLottieURL, alt: cardImageAlt }))));\r\n }\r\n else {\r\n return (React.createElement(React.Fragment, null));\r\n }\r\n };\r\n return (cardType());\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { getColors } from \"../../../utils/getColors\";\r\nimport { FeatureCard } from \"./FeatureCard/FeatureCard\";\r\nexport const FeatureCardsSection = ({ backgroundColor, cards }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(\"div\", { className: \"feature-cards-section\", style: { backgroundColor: bgColor } },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"feature-cards-section__cards-container\" }, cards.map((card, index) => React.createElement(FeatureCard, { key: index, ...card, cardClass: `item${index}` })))))));\r\n};\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { Img } from \"../Img\";\r\nimport { pageViewStyle } from \"../../pageViewStyle/pageViewStyle\";\r\nexport const InstrumentSlider = ({ title, items, onMarketClick, currentMarketTab, children, }) => {\r\n const [activeMarketIndex, setActiveMarketIndex] = useState(items.findIndex((i) => i.title === currentMarketTab));\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, [view]);\r\n const handleMarketClick = useCallback((event) => {\r\n if (view === \"large\") {\r\n event.preventDefault();\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveMarketIndex(index);\r\n onMarketClick(items[index].title);\r\n }\r\n }, []);\r\n const handleOnTouchStart = useCallback((event) => {\r\n if (event.touches.length > 1) {\r\n setActiveMarketIndex(-1);\r\n }\r\n if (view !== \"large\" && event.touches.length <= 1) {\r\n event.preventDefault();\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveMarketIndex(index);\r\n onMarketClick(items[index].title);\r\n }\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"instrument-slider\" },\r\n title && (React.createElement(\"h2\", { className: \"instrument-slider__title\", dangerouslySetInnerHTML: { __html: title } })),\r\n React.createElement(\"div\", { className: \"instrument-slider__items\" }, items.map((item, i) => (React.createElement(\"div\", { key: `instrument-slider-item-${i}`, className: `instrument-slider__item ${activeMarketIndex === i &&\r\n \"instrument-slider__highlighted\"}`, \"data-id\": i, onClick: handleMarketClick, onTouchStart: handleOnTouchStart },\r\n React.createElement(Img, { className: \"div instrument-slider__item-image\", src: item.imageUrl, alt: item.imageAlt }),\r\n React.createElement(\"div\", { className: \"instrument-slider__item-title\" }, item.title))))),\r\n children));\r\n};\r\n","import React, { useEffect, useState, useCallback, useRef } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { InstrumentSlider } from \"../InstrumentSlider\";\r\nimport pako from \"pako\";\r\nimport { Img } from \"../Img\";\r\nconst Forex = [\"EURUSD\", \"USDCHF\", \"NZDUSD\", \"EURCZK\", \"EURGBP\", \"AUDJPY\", \"USDZAR\", \"USDJPY\", \"GBPJPY\", \"GBPUSD\", \"AUDUSD\"];\r\nconst Indices = [\"GER40\", \"ESTX50\", \"US30\", \"FRA40\", \"CHINA50\", \"AUS200\", \"USDINDEX\", \"SPX500\", \"HK50\", \"NAS100\"];\r\nconst Commodities = [\"XAUUSD\", \"XAGUSD\", \"BRENT\", \"WTI\", \"NGAS\", \"COPPER\", \"XAUEUR\", \"XPTUSD\"];\r\nconst ETFs = [\"VOO\", \"GLD\", \"NEWPLAT\", \"VHY\", \"A200\", \"EEM\"];\r\nconst Futures = [\"SOYBEANS\", \"CORN\"];\r\nconst Stocks = [\"VISA\", \"DISNEY\", \"PFIZER\", \"GM\", \"UBER\", \"GILEAD\", \"WEIBO\", \"CITIGROUP\", \"NIKE\", \"LOCKHEED\", \"JPMORGAN\", \"SALESFORCE\", \"COINBASE\", \"AMD\", \"BOEING\", \"NIO\", \"MCDONALDS\", \"GAMESTOP\", \"BERKSHIRE\", \"INTEL\", \"REDDIT\", \"AMAZON\", \"CARVANA\", \"ALPHABET\", \"ALIBABA\", \"APPLE\", \"TESLA\", \"MICROSOFT\", \"META\", \"NETFLIX\", \"NVIDIA\", \"GME\", \"CRWD\", \"ZM\", \"LULU\", \"GS\", \"SNAP\", \"PYPL\", \"MSTR\", \"RIOT\", \"SBUX\", \"NVO\", \"AMC\", \"MRNA\", \"ABNB\", \"NET\", \"RIVN\", \"SHOP\", \"SPOT\", \"BIDU\"];\r\nconst Crypto = [\"BTCUSD\", \"ETHUSD\", \"ADAUSD\", \"UNIUSD\", \"SOLUSD\", \"DASHUSD\", \"ALGOUSD\", \"DOGEUSD\"];\r\nconst Popular = [\"TESLA\", \"US30\", \"BTCUSD\", \"GME\"];\r\nexport const instrumentsMap = {\r\n \"\": [],\r\n forex: Forex,\r\n indices: Indices,\r\n commodities: Commodities,\r\n etfs: ETFs,\r\n futures: Futures,\r\n stocks: Stocks,\r\n crypto: Crypto,\r\n popular: Popular,\r\n};\r\nexport const PriceFeed = ({ title, tableInfo, instrumentIcons, marketsInfo, resources, footerText, session, wsUrl, activeMarket, }) => {\r\n const [activeRowIndex, setActiveRowIndex] = useState(-1);\r\n const [instruments, setInstruments] = useState([]);\r\n const [filteredInstruments, setFilteredInstruments] = useState([]);\r\n const [filteredInstrumentIcons, setFilteredInstrumentIcons] = useState([]);\r\n const [currentMarketTab, setCurrentMarketTab] = useState(activeMarket);\r\n const prevAskPrices = useRef(new Map());\r\n const prevBidPrices = useRef(new Map());\r\n useEffect(() => {\r\n const websocket = new WebSocket(`${wsUrl}/price-feed/${session}`);\r\n websocket.binaryType = \"arraybuffer\";\r\n const pingRequest = new TextEncoder().encode(\"ping\");\r\n let interval;\r\n websocket.onopen = () => {\r\n interval = setInterval(() => {\r\n websocket.send(pingRequest);\r\n }, 1000);\r\n };\r\n websocket.onmessage = (event) => {\r\n const data = event.data;\r\n const message = pako.inflate(data, { to: \"string\" });\r\n updatePriceFeed(message);\r\n };\r\n return () => {\r\n clearInterval(interval);\r\n websocket.close();\r\n };\r\n }, [currentMarketTab]);\r\n useEffect(() => {\r\n setFilteredInstruments(instruments.filter((item) => item.groupCode === currentMarketTab));\r\n setFilteredInstrumentIcons(instrumentIcons.filter((item) => item.market === currentMarketTab));\r\n }, [currentMarketTab]);\r\n const updatePriceFeed = (message) => {\r\n const dict = JSON.parse(message);\r\n const instruments = [];\r\n for (const key in dict) {\r\n if (key.includes(\"quote\")) {\r\n const group = key.split(\"_\")[0];\r\n const parsedValues = JSON.parse(dict[key]);\r\n if (instrumentsMap[group.toLowerCase()].includes(parsedValues.Code)) {\r\n const dailyChange = calcDailyChange(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict);\r\n const prevBid = prevBidPrices.current.get(parsedValues.Code) ?? 0;\r\n const prevAsk = prevAskPrices.current.get(parsedValues.Code) ?? 0;\r\n const instrument = {\r\n name: parsedValues.Name,\r\n code: parsedValues.Code,\r\n groupCode: group,\r\n bid: parsedValues.Bid,\r\n bidStyle: bidAskStyle(parsedValues.Bid, prevBid),\r\n bidIcon: bidAskIcon(parsedValues.Bid, prevBid),\r\n ask: parsedValues.Ask,\r\n askStyle: bidAskStyle(parsedValues.Ask, prevAsk),\r\n askIcon: bidAskIcon(parsedValues.Ask, prevAsk),\r\n spread: calcSpread(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict),\r\n dailyChange,\r\n dailyChangeStyle: dailyChangeStyle(+dailyChange),\r\n dailyChangeIcon: dailyChangeIcon(+dailyChange),\r\n };\r\n prevAskPrices.current.set(parsedValues.Code, parsedValues.Ask);\r\n prevBidPrices.current.set(parsedValues.Code, parsedValues.Bid);\r\n instruments.push(instrument);\r\n }\r\n }\r\n }\r\n setInstruments(instruments);\r\n setFilteredInstruments(instruments.filter((item) => item.groupCode === currentMarketTab));\r\n };\r\n const calcSpread = (group, code, bid, ask, dict) => {\r\n const marketItem = JSON.parse(dict[`${group}_marketItem_${code}`]);\r\n let decimalPrecision = 0;\r\n let tickSize = 0;\r\n if (dict[`${group}_marketItemInfo_${code}`]) {\r\n const marketItemInfo = JSON.parse(dict[`${group}_marketItemInfo_${code}`]);\r\n decimalPrecision =\r\n marketItemInfo.DecimalPrecision ?? marketItem.DecimalPrecision;\r\n tickSize = marketItemInfo.TickSize ?? marketItem.TickSize;\r\n }\r\n else {\r\n decimalPrecision = marketItem.DecimalPrecision;\r\n tickSize = marketItem.TickSize;\r\n }\r\n let decimal = tickSize >= 1.0 ? 0 : decimalPrecision;\r\n decimal = decimal > 2 ? decimal - 1 : decimal;\r\n const spread = ((ask - bid) * Math.pow(10, decimal)).toFixed(1);\r\n return spread;\r\n };\r\n const calcDailyChange = (group, code, bid, ask, dict) => {\r\n if (dict[`${group}_prevDayClosePrice_${code}`]) {\r\n const parsedValues = JSON.parse(dict[`${group}_prevDayClosePrice_${code}`]);\r\n const prevClose = parsedValues.PrevClose ?? 0;\r\n const averageCurrentPrice = (ask + bid) / 2;\r\n const dailyValue = averageCurrentPrice - prevClose;\r\n const dailyPercent = ((dailyValue / prevClose) * 100).toFixed(2);\r\n return `${dailyPercent}%`;\r\n }\r\n return \"N/A\";\r\n };\r\n const bidAskStyle = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const dailyChangeStyle = (value) => {\r\n if (value >= 0) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const bidAskIcon = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return resources[0];\r\n }\r\n else {\r\n return resources[1];\r\n }\r\n };\r\n const dailyChangeIcon = (value) => {\r\n if (value >= 0) {\r\n return resources[0];\r\n }\r\n else {\r\n return resources[1];\r\n }\r\n };\r\n const handleRowClick = useCallback((event) => {\r\n event.preventDefault();\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveRowIndex(index);\r\n }, []);\r\n const handleMarketClick = useCallback((market) => {\r\n setCurrentMarketTab(market);\r\n }, []);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"price-feed\" },\r\n React.createElement(Container, null,\r\n React.createElement(InstrumentSlider, { title: title, items: marketsInfo, currentMarketTab: activeMarket, onMarketClick: handleMarketClick }),\r\n React.createElement(\"div\", { className: \"price-feed__table\" },\r\n React.createElement(\"div\", { className: \"price-feed__header\" }, tableInfo.map((item, i) => (React.createElement(\"div\", { key: `price-feed__headerCell-${i}`, className: \"price-feed__headerCell\" }, item.title.toUpperCase())))),\r\n filteredInstruments.map((item, i) => (React.createElement(\"div\", { key: `price-feed__row-${i}`, className: `price-feed__row ${activeRowIndex === i &&\r\n \"price-feed__highlighted\"}`, \"data-id\": i, onClick: handleRowClick },\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(Img, { className: \"div price-feed__instrumentIcon\", src: filteredInstrumentIcons.filter((el) => el.title === item.code)[0]?.imageUrl ?? \"\", alt: filteredInstrumentIcons.filter((el) => el.title === item.code)[0]?.imageAlt ?? \"\" }),\r\n React.createElement(\"div\", { className: \"price-feed__cellTitle\" }, item.code)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(Img, { className: \"price-feed__upDownIcon\", src: item.bidIcon }),\r\n React.createElement(\"div\", { className: `price-feed__cellTitle ${item.bidStyle}` }, item.bid)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(Img, { className: \"price-feed__upDownIcon\", src: item.askIcon }),\r\n React.createElement(\"div\", { className: `price-feed__cellTitle ${item.askStyle}` }, item.ask)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(\"div\", { className: \"price-feed__cellTitle\" }, item.spread)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(Img, { className: \"price-feed__upDownIcon\", src: item.dailyChangeIcon }),\r\n React.createElement(\"div\", { className: `price-feed__cellTitle ${item.dailyChangeStyle}` }, item.dailyChange)))))),\r\n React.createElement(\"div\", { className: \"price-feed__footerText\" }, footerText)))));\r\n};\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { getVideoType } from \"../../../src/utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const LargeImageSection = (props) => {\r\n const isPlaybackTriggered = useRef(false);\r\n const { ref, inView, entry } = useInView({\r\n threshold: 0,\r\n triggerOnce: true,\r\n });\r\n const videoType = getVideoType(props.imageUrl);\r\n useEffect(() => {\r\n if (!videoType || !inView || isPlaybackTriggered.current) {\r\n return;\r\n }\r\n const videoEl = entry?.target;\r\n const videoSourceEl = videoEl.querySelector(\"source\");\r\n if (!videoSourceEl) {\r\n return;\r\n }\r\n videoSourceEl.src = videoSourceEl?.dataset.src || \"\";\r\n videoEl.load();\r\n isPlaybackTriggered.current = true;\r\n }, [entry, inView, videoType]);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"largeImageSection\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: props.subtitle } }),\r\n React.createElement(\"div\", { className: \"video-wrapper\" },\r\n React.createElement(\"div\", { className: \"video-container\" }, videoType ? (React.createElement(\"video\", { autoPlay: true, loop: true, muted: true, playsInline: true, ref: ref },\r\n React.createElement(\"source\", { \"data-src\": props.imageUrl, type: videoType })))\r\n : React.createElement(Img, { src: props.imageUrl, alt: props.title })))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const InnovationBlockDemo = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"innovation-block innovation-block--demo\" },\r\n React.createElement(\"div\", { className: \"innovation-block__content\" },\r\n React.createElement(\"h2\", { className: \"innovation-block__title\", dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.title, className: \"innovation-block__image--mobile\" }),\r\n React.createElement(\"p\", { className: \"innovation-block__paragraph\" }, props.paragraph),\r\n React.createElement(\"ul\", { className: \"innovation-block__list\" }, props.list.map((item, i) => (React.createElement(\"li\", { key: `innovation-block__list-item-${i}`, className: \"innovation-block__item\" },\r\n React.createElement(\"div\", { className: \"innovation-block__item-checkmark\" }, checkmark()),\r\n React.createElement(\"div\", { className: \"innovation-block__item-content\" },\r\n React.createElement(\"strong\", { className: \"innovation-block__item-title\" }, item.title),\r\n React.createElement(\"p\", { className: \"innovation-block__item-text\" }, item.subtitle))))))),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.title, className: \"innovation-block__image\" })))));\r\nconst checkmark = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"m8.568 18.742.006.005a.863.863 0 0 0 .553.203h.005a.857.857 0 0 0 .626-.274l.006-.007 10.96-12.2a.849.849 0 0 0-.063-1.201.849.849 0 0 0-1.2.063h-.001L9.06 16.91l-4.59-4.005h.001l-.002-.003a.854.854 0 0 0-1.194.08l-.007.008c-.302.35-.27.89.086 1.198l.002.002 5.212 4.553z\", fill: \"#70AA1E\", stroke: \"#70AA1E\" })));\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const AccordionCard = (props) => {\r\n const toggle = React.useCallback(() => props.toggleExpand?.(props.id || \"0\"), []);\r\n return (React.createElement(\"div\", { className: `accordion-card ${props.opened ? \"accordion-card--opened\" : \"\"}` },\r\n React.createElement(\"h4\", { className: \"accordion-card__title\" },\r\n props.title,\r\n \" \",\r\n React.createElement(\"div\", { className: \"accordion-card__trigger\", onClick: toggle }, caretIcon())),\r\n React.createElement(\"div\", { className: \"accordion-card__content\" },\r\n React.createElement(\"div\", { className: \"accordion-card__text\" }, props.text),\r\n React.createElement(\"a\", { href: props.linkUrl, target: props.opensInNewTab ? \"_blank\" : \"_self\", rel: \"noreferrer\", className: \"accordion-card__link\" },\r\n props.linkText,\r\n \" \",\r\n arrowIcon()),\r\n React.createElement(Img, { src: props.icon, alt: props.title, className: \"accordion-card__icon\" }))));\r\n};\r\nexport const arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#007c8c\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\nexport const caretIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M17.29 11.29a.996.996 0 0 0-1.41 0L12 15.17l-3.88-3.88a.997.997 0 1 0-1.41 1.41l4.59 4.59a.994.994 0 0 0 1.41 0l4.59-4.59c.38-.38.38-1.02-.01-1.41z\", fill: \"#0e1d31\" })));\r\n","import React, { useCallback } from \"react\";\r\nimport { caretIcon } from \"../../Cards/AccordionCardDeck/AccordionCard\";\r\nexport const FaqAccordionCard = (props) => {\r\n const handleExpand = useCallback(() => {\r\n if (props.setActiveCardId && props.id === props.activeCardId) {\r\n props.setActiveCardId(-1);\r\n }\r\n else if (props.setActiveCardId && props.id !== undefined) {\r\n props.setActiveCardId(props.id);\r\n }\r\n }, [props.activeCardId, props.id, props.setActiveCardId]);\r\n return (React.createElement(\"div\", { className: `faq-card ${props.id === props.activeCardId ? \"active\" : \"\"}` },\r\n React.createElement(\"h3\", { className: \"faq-card__question\", itemScope: true, itemProp: \"mainEntity\", itemType: \"https://schema.org/Question\", onClick: handleExpand },\r\n props.question,\r\n \" \",\r\n caretIcon()),\r\n React.createElement(\"p\", { className: \"faq-card__answer\", itemScope: true, itemProp: \"acceptedAnswer\", itemType: \"https://schema.org/Answer\", dangerouslySetInnerHTML: { __html: props.answer } })));\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { arrowIcon } from \"../Cards/InformationCardDarkDeck/InformationCardDark\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { FaqAccordionCard } from \"./FaqAccordionCard\";\r\nimport { Img } from \"../Img\";\r\nexport const FaqAccordion = (props) => {\r\n const [activeCardId, setActiveCardId] = useState(-1);\r\n return (React.createElement(\"div\", { className: `faq-accordion ${props.imageUrl ? \"\" : \"faq-accordion--no-image\"}` },\r\n React.createElement(Img, { className: \"faq-accordion__bkgr\", src: props.imageUrl, alt: \"FAQ section background image\" }),\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"faq-accordion__deck\" },\r\n React.createElement(\"h2\", { className: \"faq-accordion__title\" }, props.title),\r\n props.items.map((item, i) => React.createElement(FaqAccordionCard, { key: `faq-accordion__card-${i}`, id: i, question: item.question, answer: item.answer, setActiveCardId: setActiveCardId, activeCardId: activeCardId })),\r\n React.createElement(\"a\", { href: props.linkUrl, className: \"faq-accordion__link\" },\r\n props.linkText,\r\n \" \",\r\n arrowIcon()))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { EffectFade, Pagination } from \"swiper\";\r\nimport { Img } from \"../Img\";\r\nexport const DemoAccountTabsSlider = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"careerTabsSlider demoAccountTabsSlider\" },\r\n React.createElement(\"h2\", { className: \"demoAccountTabsSlider__title\" }, props.title),\r\n props.text && (React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: props.text } })),\r\n React.createElement(\"div\", { className: \"careerTabsSlider__sliderWrap\" },\r\n React.createElement(\"div\", { className: \"careerTabsSlider__customPagination\" }),\r\n React.createElement(Swiper, { effect: \"fade\", pagination: {\r\n el: \".careerTabsSlider__customPagination\",\r\n clickable: true,\r\n renderBullet: (index, className) => `

${props.cards[index].title}

`,\r\n }, modules: [EffectFade, Pagination], className: \"careerTabsSlider__swiper\" }, props.cards.map((card, index) => (React.createElement(SwiperSlide, { key: index },\r\n React.createElement(\"div\", { className: \"careerTabsSlider__card\" },\r\n React.createElement(Img, { src: card.imageUrl, alt: card.title }),\r\n React.createElement(\"div\", { className: \"careerTabsSlider__card-text\" },\r\n React.createElement(\"h4\", null, card.title),\r\n React.createElement(\"p\", null, card.text),\r\n card.linkTitle && (React.createElement(\"a\", { href: card.linkUrl },\r\n card.linkTitle,\r\n \" \",\r\n arrowIcon()))))))))))));\r\nconst arrowIcon = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"#007c8c\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h24v24H0z\" })))));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const InnovationBlockThinkZero = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"innovation-block innovation-block--demo innovation-block--thinkzero\" },\r\n React.createElement(\"div\", { className: \"innovation-block__content\" },\r\n React.createElement(\"h2\", { className: \"innovation-block__title\", dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.title, className: \"innovation-block__image--mobile\" }),\r\n React.createElement(\"p\", { className: \"innovation-block__paragraph\" }, props.paragraph),\r\n React.createElement(\"div\", { className: \"innovation-block-forex__footer\" },\r\n React.createElement(\"p\", { className: \"innovation-block-forex__footer-title innovation-block__footer-title--md-centered\" }, props.footerTitle),\r\n React.createElement(\"div\", { className: \"innovation-block-forex__buttons\" }, props.footerButtons.map((button, i) => (React.createElement(\"a\", { key: `innovation-block-forex__footer-button-${i}`, href: button.url, className: \"innovation-block-forex__footer-button\" },\r\n React.createElement(Img, { className: \"innovation-block-forex__footer-button-image\", src: button.imageUrl, alt: button.imageAlt }))))))),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.title, className: \"innovation-block__image\" })))));\r\n","import React, { useCallback } from \"react\";\r\nconst styleOverrides = {\r\n WebkitAppearance: \"none\",\r\n MozAppearance: \"none\",\r\n appearance: \"none\",\r\n color: \"inherit\",\r\n backgroundColor: \"#fff\"\r\n};\r\nexport const Dropdown = ({ options = [], selectedOption, placeholder, isPlaceholderDisabled = true, onSelect, classes, style, ariaLabel = \"Dropdown\", }) => {\r\n const handleChange = useCallback((event) => {\r\n if (onSelect) {\r\n onSelect(event.target.value);\r\n }\r\n }, [onSelect]);\r\n return (React.createElement(\"div\", { className: `dropdown-wrapper ${classes || \"\"}` },\r\n React.createElement(\"select\", { onChange: handleChange, className: \"p-regular dropdown-wrapper__dropdown\", style: { ...styleOverrides, ...style }, \"aria-label\": ariaLabel, value: selectedOption },\r\n placeholder && React.createElement(\"option\", { value: \"\", disabled: isPlaceholderDisabled }, placeholder),\r\n options.map((option, index) => {\r\n const [optionText, optionValue] = typeof option === \"string\" ? [option, option] : [option.text, option.value];\r\n return (React.createElement(\"option\", { key: index, value: optionValue }, optionText));\r\n }))));\r\n};\r\n","import React from \"react\";\r\nexport const ExternalLink = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M20 3C20.5523 3 21 3.44772 21 4V10C21 10.5523 20.5523 11 20 11C19.4477 11 19 10.5523 19 10L18.9999 6.413L11.9142 13.4999C11.5237 13.8905 10.8905 13.8905 10.4999 13.5C10.1094 13.1095 10.1094 12.4763 10.4999 12.0858L17.5849 5H14C13.4477 5 13 4.55228 13 4C13 3.44772 13.4477 3 14 3H20Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M9 6C9.55228 6 10 6.44772 10 7C10 7.55228 9.55228 8 9 8H5V19H16V15C16 14.4477 16.4477 14 17 14C17.5523 14 18 14.4477 18 15V20C18 20.5523 17.5523 21 17 21H4C3.44772 21 3 20.5523 3 20V7C3 6.44772 3.44772 6 4 6H9Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nimport { ExternalLink } from \"../svgIcons/externalLink\";\r\nexport const ButtonLink = ({ classes, ...props }) => (React.createElement(\"div\", { className: \"button-link-wrapper flex\" },\r\n React.createElement(\"a\", { href: props.href ? props.href : \"#\", onClick: props.onClick, className: `button-link-wrapper__button-link flex ${classes || \"\"}`, style: { ...props.style }, ...props },\r\n React.createElement(\"span\", { className: \"flex button-link-wrapper__button-content-container\" },\r\n props.children,\r\n ExternalLink()))));\r\n","import * as React from \"react\";\r\nimport { Button } from \"../../../Components/Button/Button\";\r\nimport { Img } from \"../../Img\";\r\nconst defaultLogo = \"./images/PlatformCard/logomark-tm.svg\";\r\nexport const PlatformCardHeader = (props) => (React.createElement(\"div\", { className: `platform-card__fixed-logo platform-card ${props.isActive\r\n ? \"platform-card__is-active\"\r\n : \"platform-card__is-not-active\"}` },\r\n props.haveRecommended ? (React.createElement(\"div\", { className: \"platform-card__recommended\" },\r\n \" \",\r\n props.recommendedText.toUpperCase(),\r\n \" \")) : (React.createElement(\"div\", { className: \"platform-card__without-recommended\" })),\r\n React.createElement(\"div\", { className: \"platform-card__logo-row\" },\r\n React.createElement(Img, { src: props.imageUrl ? props.imageUrl : defaultLogo, alt: props.alt }),\r\n React.createElement(\"div\", { className: \"platform-card__logo-text\" },\r\n React.createElement(\"h4\", null,\r\n React.createElement(\"span\", { className: \"platform-card__logo-dark-text\" }, props.logoDarkText ? props.logoDarkText : \"\"),\r\n React.createElement(\"span\", { className: \"platform-card__logo-green-text\" }, props.logoGreenText ? props.logoGreenText : \"\"))))));\r\nexport const PlatformCardBody = (props) => (React.createElement(\"div\", { className: \"platform-card__inner\" },\r\n React.createElement(\"div\", { className: `platform-card__list-items ${props.isActive\r\n ? \"platform-card__is-active\"\r\n : \"platform-card__is-not-active\"}` },\r\n React.createElement(\"div\", { className: \"platform-card__container-scrollabe\" }, props.content.map((item, index) => (React.createElement(\"div\", { key: index, className: \"platform-card__item\" },\r\n React.createElement(\"div\", { className: \"platform-card__item-title text-weight-medium\" },\r\n React.createElement(\"p\", null, item.title)),\r\n item.haveImage ? (React.createElement(Img, { className: \"platform-card__item-image\", src: item.imageUrl })) : (React.createElement(\"div\", { className: \"platform-card__item-description\" },\r\n \" \",\r\n React.createElement(\"p\", null, item.description),\r\n \" \"))))))),\r\n React.createElement(\"div\", { className: `platform-card__button ${props.isActive\r\n ? \"platform-card__is-active\"\r\n : \"platform-card__is-not-active\"}` },\r\n React.createElement(Button, { primary: true, label: props.buttonTitle, href: props.buttonHref }))));\r\n","import * as React from \"react\";\r\nimport { Container } from \"../global\";\r\nimport { PlatformCardHeader, PlatformCardBody } from \"./PlatformCard/PlatformCard\";\r\nexport const PlatformComparison = (props) => (React.createElement(\"div\", { className: \"platformComparison\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"platformComparison__wrapper\" },\r\n React.createElement(\"div\", { className: \"platformComparison__inner\" },\r\n React.createElement(\"div\", { className: \"platformComparison__row\" }, props.items.map((item, index) => React.createElement(\"div\", { key: `key-phead-${index}`, className: \"platformComparison__col\" },\r\n React.createElement(PlatformCardHeader, { ...item }))))),\r\n React.createElement(\"div\", { className: \"platformComparison__card-bodies-wrapper\" },\r\n React.createElement(\"div\", { className: \"platformComparison__row platformComparison__card-bodies\" }, props.items.map((item, i) => React.createElement(\"div\", { className: \"platformComparison__col\", key: `key-pbody-${i}` },\r\n React.createElement(PlatformCardBody, { ...item })))))))));\r\n","import * as React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nexport const AccountCardHeader = ({ titleText, imageUrl, alt, description, buttonHeaderText, buttonHeaderUrl }) => (React.createElement(\"div\", { className: \"account-card__fixed-logo account-card__account-card\" },\r\n React.createElement(\"div\", { className: \"h4-semi-bold\" }, titleText),\r\n React.createElement(\"div\", { className: \"centered-container account-card__header-image-container\" },\r\n React.createElement(Img, { loading: \"eager\", className: \"account-card__img-logo\", src: imageUrl, alt: alt }),\r\n React.createElement(\"div\", { className: \"caption2-regular\" }, description)),\r\n React.createElement(ButtonV2, { design: \"secondary-medium-wbg\", href: buttonHeaderUrl }, buttonHeaderText)));\r\nexport const AccountCardBody = ({ content, buttonTitle, buttonHref }) => (React.createElement(\"div\", { className: \"account-card__inner\" },\r\n React.createElement(\"div\", { className: \"account-card__list-items\" },\r\n React.createElement(\"div\", { className: \"account-card__container-scrollabe\" }, content.map((item, index) => (React.createElement(\"div\", { key: index, className: `account-card__item centered-container ${item.imageUrl ? \"account-card__item-with-image\" : \"\"}`, style: { marginTop: `${item.marginTop}px` } },\r\n React.createElement(\"div\", { className: \"account-card__item-title text-weight-medium centered-container\" },\r\n item.imageUrl && React.createElement(Img, { className: \"account-card__item-image\", src: item.imageUrl, alt: item.imageAlt }),\r\n item.title && React.createElement(\"div\", { className: \"account-card__title-upper color-dark-60 caption-bold\" }, item.title),\r\n React.createElement(\"div\", { className: \"h5-bold account-card__description color-dark-default\" }, item.description),\r\n item.title2 && React.createElement(\"div\", { className: \"account-card__title-upper color-dark-60 caption-bold account-card__bottom-title\" }, item.title2)))))),\r\n React.createElement(\"div\", { className: \"account-card__button-separator\" }),\r\n buttonTitle && React.createElement(\"div\", { className: \"account-card__button-container centered-container\" },\r\n React.createElement(ButtonV2, { design: \"ghost-large-wbg\", href: buttonHref, openInNewTab: true }, buttonTitle)))));\r\n","import * as React from \"react\";\r\nimport { Container } from \"../global\";\r\nimport { AccountCardBody, AccountCardHeader } from \"./AccountCard/AccountCard\";\r\nexport const AccountTypes = (props) => (React.createElement(\"div\", { className: \"accountTypes\" },\r\n React.createElement(Container, { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"accountTypes__wrapper \" },\r\n React.createElement(\"div\", { className: \"accountTypes__inner\" },\r\n React.createElement(\"div\", { className: \"accountTypes__row\" }, props.items.map((item, index) => React.createElement(\"div\", { key: `key-phead-${index}`, className: \"accountTypes__col\" },\r\n React.createElement(AccountCardHeader, { ...item }))))),\r\n React.createElement(\"div\", { className: \"accountTypes__card-bodies-wrapper\" },\r\n React.createElement(\"div\", { className: \"accountTypes__row accountTypes__card-bodies\" }, props.items.map((item, i) => React.createElement(\"div\", { className: \"accountTypes__col\", key: `key-pbody-${i}` },\r\n React.createElement(AccountCardBody, { ...item })))))))));\r\n","import * as React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { accountTypesTick } from \"../svgIcons\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nconst AccountCardV2 = ({ mostPopularTitle, title, titleIconUrl, titleIconAlt, description, spec1, spec2, spec3, availableLabel, platformsIcons1, platformsIcons2, buttonLearnMoreText, buttonLearnMoreUrl, buttonLearnMoreDesign, buttonLearnMoreOpenInNewTab, featuresBulletsSplit, buttonSeeAllFeaturesText }) => {\r\n const featuresBullets = featuresBulletsSplit?.split(\"%%%\");\r\n const [expandedFeatures, setExpandedFeatures] = React.useState(false);\r\n const handleToggleFeatures = React.useCallback(() => {\r\n setExpandedFeatures(prev => !prev);\r\n }, []);\r\n const renderSpec = React.useCallback((spec) => (React.createElement(React.Fragment, null, spec && React.createElement(\"div\", { className: \"account-types-v2__spec-row\" },\r\n React.createElement(\"div\", { className: \"account-types-v2__spec-row-left\" }, spec?.split(\"###\")[0]),\r\n React.createElement(\"div\", { className: \"p-bold\" }, spec?.split(\"###\")[1])))), []);\r\n return (React.createElement(\"div\", { className: `account-types-v2__card ${mostPopularTitle ? \"account-types-v2__card__popular\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"account-types-v2__card-header\" },\r\n React.createElement(\"span\", { className: \"hide-small\" },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, title)),\r\n React.createElement(\"span\", { className: \"hide-medium hide-large\" },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, title)),\r\n React.createElement(ImgV2, { src: titleIconUrl, alt: titleIconAlt, className: \"account-types-v2__titleIcon\" })),\r\n React.createElement(\"p\", { className: \"account-types-v2__description caption2-regular\", dangerouslySetInnerHTML: {\r\n __html: description || \"\"\r\n } }),\r\n React.createElement(\"div\", { className: \"account-types-v2__separator-line\" }),\r\n React.createElement(\"div\", { className: \"account-types-v2__specs\" },\r\n renderSpec(spec1),\r\n renderSpec(spec2),\r\n renderSpec(spec3)),\r\n React.createElement(\"div\", { className: \"account-types-v2__separator-line\" }),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"p\", { className: \"account-types-v2__available-label caption-risk-warning-bold color-dark-60\" },\r\n \" \",\r\n availableLabel),\r\n platformsIcons1 && (React.createElement(\"div\", { className: \"account-types-v2__card-platforms-icons-container\" },\r\n React.createElement(ImgV2, { src: platformsIcons1, alt: \"Platform Icon\", className: \"account-types-v22__platformIcon\" }),\r\n React.createElement(ImgV2, { src: platformsIcons2, alt: \"Platform Icon\", className: \"account-types-v22__platformIcon\" })))),\r\n React.createElement(ButtonV2, { href: buttonLearnMoreUrl, openInNewTab: buttonLearnMoreOpenInNewTab, design: buttonLearnMoreDesign, showArrowRight: true }, buttonLearnMoreText),\r\n React.createElement(\"div\", { className: \"account-types-v2__expandable \" },\r\n React.createElement(\"div\", null, featuresBullets && (React.createElement(\"div\", { className: \"account-types-v2__features-bullets\" }, (expandedFeatures ? featuresBullets : featuresBullets?.slice(0, 3)).map((feature, index) => (React.createElement(\"div\", { key: index, className: \"flex\" },\r\n React.createElement(\"div\", { className: \"account-types-v2__features-bullet-tick\" }, accountTypesTick),\r\n React.createElement(\"div\", { className: \"caption2-regular\", dangerouslySetInnerHTML: {\r\n __html: feature\r\n } }))))))),\r\n React.createElement(ButtonV2, { design: \"tmx25-square-white-lightblue\", showArrowDown: !expandedFeatures, showArrowUp: expandedFeatures, onClick: handleToggleFeatures }, buttonSeeAllFeaturesText))));\r\n};\r\nexport const AccountTypesV2 = ({ title, description, backgroundColor, cards, h2title }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"account-types-v2\" },\r\n title &&\r\n (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(Heading, { design: h2title ? \"h2-regular\" : \"h1-regular\" }, title)),\r\n React.createElement(\"div\", { className: \"centered-container color-dark-80\" },\r\n React.createElement(Heading, { design: \"h5-semi-bold\" }, description)),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", null))),\r\n React.createElement(\"div\", { className: \"account-types-v2__cards-container\" }, cards?.map((item, i) => React.createElement(\"div\", { key: `key-${i}` },\r\n React.createElement(\"div\", { className: `account-types-v2__col ${item.mostPopularTitle ? \"mostpopular\" : \"\"}`, key: `key-pbody-${i}` },\r\n item.mostPopularTitle && React.createElement(\"div\", { className: \"centered-container account-types-v2__most-popular-label account-types-v2__most-popular-text\" }, item.mostPopularTitle),\r\n !item.mostPopularTitle && React.createElement(\"div\", { className: \"centered-container account-types-v2__most-popular-label account-types-v2__most-popular-text visibility-hidden\" }, \"Account\"),\r\n React.createElement(AccountCardV2, { ...item })))))))));\r\n};\r\n","function generateQuery(params) {\n return Object.entries(params).filter(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return value || value === false;\n }).map(function (_ref2) {\n var key = _ref2[0],\n value = _ref2[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n }).join(\"&\");\n}\n\n;\n\nfunction getFrame(element) {\n var doc = element && element.ownerDocument || document;\n var win = doc.defaultView || doc.parentWindow || window;\n return {\n document: doc,\n window: win\n };\n}\n\nfunction getMountElement(element) {\n return element || document.head;\n}\n\nexport { generateQuery, getFrame, getMountElement };","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport * as React from 'react';\nimport { generateQuery, getFrame, getMountElement } from './utils.js';\nvar SCRIPT_ID = 'hcaptcha-api-script-id';\nvar HCAPTCHA_LOAD_FN_NAME = 'hcaptchaOnLoad'; // Prevent loading API script multiple times\n\nvar scripts = []; // Generate hCaptcha API script\n\nvar mountCaptchaScript = function mountCaptchaScript(params) {\n if (params === void 0) {\n params = {};\n }\n\n var element = getMountElement(params.scriptLocation);\n delete params.scriptLocation;\n var frame = getFrame(element);\n var script = scripts.find(function (_ref) {\n var scope = _ref.scope;\n return scope === frame.window;\n });\n\n if (frame.document.getElementById(SCRIPT_ID) && script) {\n // API was already requested\n return script.promise;\n }\n\n var promise = new Promise(function (resolve, reject) {\n // Create global onload callback\n frame.window[HCAPTCHA_LOAD_FN_NAME] = resolve;\n var domain = params.apihost || \"https://js.hcaptcha.com\";\n delete params.apihost;\n var script = frame.document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.src = domain + \"/1/api.js?render=explicit&onload=\" + HCAPTCHA_LOAD_FN_NAME;\n script.async = params.loadAsync !== undefined ? params.loadAsync : true;\n delete params.loadAsync;\n\n script.onerror = function (event) {\n return reject('script-error');\n };\n\n var query = generateQuery(params);\n script.src += query !== \"\" ? \"&\" + query : \"\";\n element.appendChild(script);\n });\n scripts.push({\n promise: promise,\n scope: frame.window\n });\n return promise;\n};\n\nvar HCaptcha = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HCaptcha, _React$Component);\n\n function HCaptcha(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n /**\n * Internal reference to track hCaptcha API\n *\n * Required as window is relative to initialization in application\n * not where the script and iFrames have been loaded.\n */\n\n _this._hcaptcha = undefined; // API Methods\n\n _this.renderCaptcha = _this.renderCaptcha.bind(_assertThisInitialized(_this));\n _this.resetCaptcha = _this.resetCaptcha.bind(_assertThisInitialized(_this));\n _this.removeCaptcha = _this.removeCaptcha.bind(_assertThisInitialized(_this));\n _this.isReady = _this.isReady.bind(_assertThisInitialized(_this)); // Event Handlers\n\n _this.loadCaptcha = _this.loadCaptcha.bind(_assertThisInitialized(_this));\n _this.handleOnLoad = _this.handleOnLoad.bind(_assertThisInitialized(_this));\n _this.handleSubmit = _this.handleSubmit.bind(_assertThisInitialized(_this));\n _this.handleExpire = _this.handleExpire.bind(_assertThisInitialized(_this));\n _this.handleError = _this.handleError.bind(_assertThisInitialized(_this));\n _this.handleOpen = _this.handleOpen.bind(_assertThisInitialized(_this));\n _this.handleClose = _this.handleClose.bind(_assertThisInitialized(_this));\n _this.handleChallengeExpired = _this.handleChallengeExpired.bind(_assertThisInitialized(_this));\n _this.ref = /*#__PURE__*/React.createRef();\n _this.apiScriptRequested = false;\n _this.state = {\n isApiReady: false,\n isRemoved: false,\n elementId: props.id,\n captchaId: ''\n };\n return _this;\n }\n\n var _proto = HCaptcha.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n // Once captcha is mounted intialize hCaptcha - hCaptcha\n var element = getMountElement(this.props.scriptLocation);\n var frame = getFrame(element);\n this._hcaptcha = frame.window.hcaptcha || undefined;\n var isApiReady = typeof this._hcaptcha !== 'undefined';\n /*\n * Check if hCaptcha has already been loaded,\n * If Yes, render the captcha\n * If No, create script tag and wait to render the captcha\n */\n\n if (isApiReady) {\n this.setState({\n isApiReady: true\n }, function () {\n _this2.renderCaptcha();\n });\n return;\n }\n\n this.loadCaptcha();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n } // Reset any stored variables / timers when unmounting\n\n\n hcaptcha.reset(captchaId);\n hcaptcha.remove(captchaId);\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n // Prevent component re-rendering when these internal state variables are updated\n if (this.state.isApiReady !== nextState.isApiReady || this.state.isRemoved !== nextState.isRemoved) {\n return false;\n }\n\n return true;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n // Prop Keys that could change\n var keys = ['sitekey', 'size', 'theme', 'tabindex', 'languageOverride', 'endpoint']; // See if any props changed during component update\n\n var match = keys.every(function (key) {\n return prevProps[key] === _this3.props[key];\n }); // If they have changed, remove current captcha and render a new one\n\n if (!match) {\n this.removeCaptcha(function () {\n _this3.renderCaptcha();\n });\n }\n };\n\n _proto.loadCaptcha = function loadCaptcha() {\n if (this.apiScriptRequested) {\n return;\n }\n\n var _this$props = this.props,\n apihost = _this$props.apihost,\n assethost = _this$props.assethost,\n endpoint = _this$props.endpoint,\n host = _this$props.host,\n imghost = _this$props.imghost,\n hl = _this$props.languageOverride,\n reCaptchaCompat = _this$props.reCaptchaCompat,\n reportapi = _this$props.reportapi,\n sentry = _this$props.sentry,\n custom = _this$props.custom,\n loadAsync = _this$props.loadAsync,\n scriptLocation = _this$props.scriptLocation;\n var mountParams = {\n apihost: apihost,\n assethost: assethost,\n endpoint: endpoint,\n hl: hl,\n host: host,\n imghost: imghost,\n recaptchacompat: reCaptchaCompat === false ? \"off\" : null,\n reportapi: reportapi,\n sentry: sentry,\n custom: custom,\n loadAsync: loadAsync,\n scriptLocation: scriptLocation\n };\n mountCaptchaScript(mountParams).then(this.handleOnLoad)[\"catch\"](this.handleError);\n this.apiScriptRequested = true;\n };\n\n _proto.renderCaptcha = function renderCaptcha(onReady) {\n var isApiReady = this.state.isApiReady;\n if (!isApiReady) return;\n var renderParams = Object.assign({\n \"open-callback\": this.handleOpen,\n \"close-callback\": this.handleClose,\n \"error-callback\": this.handleError,\n \"chalexpired-callback\": this.handleChallengeExpired,\n \"expired-callback\": this.handleExpire,\n \"callback\": this.handleSubmit\n }, this.props, {\n hl: this.props.hl || this.props.languageOverride,\n languageOverride: undefined\n });\n var hcaptcha = this._hcaptcha; //Render hCaptcha widget and provide necessary callbacks - hCaptcha\n\n var captchaId = hcaptcha.render(this.ref.current, renderParams);\n this.setState({\n isRemoved: false,\n captchaId: captchaId\n }, function () {\n onReady && onReady();\n });\n };\n\n _proto.resetCaptcha = function resetCaptcha() {\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n } // Reset captcha state, removes stored token and unticks checkbox\n\n\n hcaptcha.reset(captchaId);\n };\n\n _proto.removeCaptcha = function removeCaptcha(callback) {\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n }\n\n this.setState({\n isRemoved: true\n }, function () {\n hcaptcha.remove(captchaId);\n callback && callback();\n });\n };\n\n _proto.handleOnLoad = function handleOnLoad() {\n var _this4 = this;\n\n this.setState({\n isApiReady: true\n }, function () {\n var element = getMountElement(_this4.props.scriptLocation);\n var frame = getFrame(element);\n _this4._hcaptcha = frame.window.hcaptcha; // render captcha and wait for captcha id\n\n _this4.renderCaptcha(function () {\n // trigger onLoad if it exists\n var onLoad = _this4.props.onLoad;\n if (onLoad) onLoad();\n });\n });\n };\n\n _proto.handleSubmit = function handleSubmit(event) {\n var onVerify = this.props.onVerify;\n var _this$state = this.state,\n isRemoved = _this$state.isRemoved,\n captchaId = _this$state.captchaId;\n var hcaptcha = this._hcaptcha;\n if (typeof hcaptcha === 'undefined' || isRemoved) return;\n var token = hcaptcha.getResponse(captchaId); //Get response token from hCaptcha widget\n\n var ekey = hcaptcha.getRespKey(captchaId); //Get current challenge session id from hCaptcha widget\n\n if (onVerify) onVerify(token, ekey); //Dispatch event to verify user response\n };\n\n _proto.handleExpire = function handleExpire() {\n var onExpire = this.props.onExpire;\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n }\n\n hcaptcha.reset(captchaId); // If hCaptcha runs into error, reset captcha - hCaptcha\n\n if (onExpire) onExpire();\n };\n\n _proto.handleError = function handleError(event) {\n var onError = this.props.onError;\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (this.isReady()) {\n // If hCaptcha runs into error, reset captcha - hCaptcha\n hcaptcha.reset(captchaId);\n }\n\n if (onError) onError(event);\n };\n\n _proto.isReady = function isReady() {\n var _this$state2 = this.state,\n isApiReady = _this$state2.isApiReady,\n isRemoved = _this$state2.isRemoved;\n return isApiReady && !isRemoved;\n };\n\n _proto.handleOpen = function handleOpen() {\n if (!this.isReady() || !this.props.onOpen) {\n return;\n }\n\n this.props.onOpen();\n };\n\n _proto.handleClose = function handleClose() {\n if (!this.isReady() || !this.props.onClose) {\n return;\n }\n\n this.props.onClose();\n };\n\n _proto.handleChallengeExpired = function handleChallengeExpired() {\n if (!this.isReady() || !this.props.onChalExpired) {\n return;\n }\n\n this.props.onChalExpired();\n };\n\n _proto.execute = function execute(opts) {\n if (opts === void 0) {\n opts = null;\n }\n\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n }\n\n if (opts && typeof opts !== \"object\") {\n opts = null;\n }\n\n return hcaptcha.execute(captchaId, opts);\n };\n\n _proto.setData = function setData(data) {\n var captchaId = this.state.captchaId;\n var hcaptcha = this._hcaptcha;\n\n if (!this.isReady()) {\n return;\n }\n\n if (data && typeof data !== \"object\") {\n data = null;\n }\n\n hcaptcha.setData(captchaId, data);\n };\n\n _proto.getResponse = function getResponse() {\n var hcaptcha = this._hcaptcha;\n return hcaptcha.getResponse(this.state.captchaId);\n };\n\n _proto.getRespKey = function getRespKey() {\n var hcaptcha = this._hcaptcha;\n return hcaptcha.getRespKey(this.state.captchaId);\n };\n\n _proto.render = function render() {\n var elementId = this.state.elementId;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.ref,\n id: elementId\n });\n };\n\n return HCaptcha;\n}(React.Component);\n\nexport default HCaptcha;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import * as React from \"react\";\r\nimport \".\";\r\nimport { Button } from \"../Button\";\r\nimport HCaptcha from \"@hcaptcha/react-hcaptcha\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nimport { Heading } from \"../Heading\";\r\nimport { isValidEmail, isValidName, isValidPhone } from \"../../utils\";\r\nexport const ContactForm = (props) => {\r\n const initialFormData = {\r\n region: props.regionOptions[0],\r\n firstName: \"\",\r\n email: \"\",\r\n mobilePhone: \"\",\r\n department: props.aboutQuestionOptions[0],\r\n message: \"\",\r\n formFile: [],\r\n agreement: false,\r\n };\r\n const initialValidationHints = {\r\n region: false,\r\n firstName: false,\r\n email: false,\r\n mobilePhone: false,\r\n department: false,\r\n agreement: false,\r\n runOnInput: false,\r\n message: false,\r\n };\r\n const OverlayState = {\r\n HIDDEN: \"HIDDEN\",\r\n WAITING: \"WAITING\",\r\n ERROR: \"ERROR\",\r\n SUCCESS: \"SUCCESS\",\r\n };\r\n const [dataToSend, setDataToSend] = React.useState();\r\n const [validationHints, setValidationHints] = React.useState(initialValidationHints);\r\n const [generalError, setGeneralError] = React.useState(\"\");\r\n const [generalSuccess, setGeneralSuccess] = React.useState(\"\");\r\n const [overlayState, setOverlayState] = React.useState(OverlayState.HIDDEN);\r\n const [isactiveSubmitBtn, setIsactiveSubmitBtn] = React.useState(true);\r\n const [formData, setFormData] = React.useState(initialFormData);\r\n const overlayRef = React.useRef(null);\r\n const captchaRef = React.useRef(null);\r\n const handleCaptchaError = React.useCallback(() => {\r\n setGeneralError(props.generalError);\r\n }, [props.generalError]);\r\n const { region, firstName, email, mobilePhone, department, message, agreement } = formData;\r\n const isValidQuestion = React.useCallback((department) => props.aboutQuestionOptions[0] !== department, [props.aboutQuestionOptions]);\r\n const isValidRegion = React.useCallback((region) => props.regionOptions[0] !== region, [props.regionOptions]);\r\n const isValidAgreement = (agreement) => agreement;\r\n const [captchaSize, setCaptchaSize] = React.useState(\"invisible\");\r\n const [token, setToken] = React.useState();\r\n const handleCaptchaSize = React.useCallback((value) => ((setCaptchaSize(value))), []);\r\n React.useEffect(() => {\r\n if (validationHints.runOnInput) {\r\n const newValidationHints = {\r\n ...validationHints,\r\n firstName: !isValidName(formData.firstName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n department: !isValidQuestion(formData.department),\r\n region: !isValidRegion(formData.region),\r\n agreement: !isValidAgreement(formData.agreement),\r\n message: !formData.message\r\n };\r\n setValidationHints(newValidationHints);\r\n }\r\n }, [formData]);\r\n const inputHandler = React.useCallback((e) => {\r\n setGeneralError(\"\");\r\n setGeneralSuccess(\"\");\r\n const { name, value } = e.target;\r\n if (isactiveSubmitBtn) {\r\n setFormData((formData) => ({ ...formData, [name]: value }));\r\n }\r\n }, [isactiveSubmitBtn]);\r\n const checkboxHandler = React.useCallback(() => {\r\n setGeneralError(\"\");\r\n if (isactiveSubmitBtn) {\r\n setFormData((formData) => ({ ...formData, agreement: !formData.agreement }));\r\n }\r\n }, [isactiveSubmitBtn]);\r\n const resetForm = React.useCallback(() => {\r\n setValidationHints(initialValidationHints);\r\n setTimeout(() => {\r\n setFormData(initialFormData);\r\n }, 10);\r\n setGeneralError(\"\");\r\n setIsactiveSubmitBtn(true);\r\n }, []);\r\n const constructRequestFormData = React.useCallback((captchaResponse) => {\r\n const requestFormData = new FormData();\r\n requestFormData.append(\"captcha_response\", captchaResponse ? captchaResponse : \"\");\r\n for (const key in formData) {\r\n if (key !== \"formFile\") {\r\n requestFormData.append(key, formData[key]);\r\n }\r\n else {\r\n const files = formData[key];\r\n files.forEach((file) => {\r\n requestFormData.append(\"formFile\", file);\r\n });\r\n }\r\n }\r\n props.campaignId && requestFormData.append(\"campaignId\", props.campaignId);\r\n return requestFormData;\r\n }, [formData]);\r\n const getValidation = React.useCallback(() => {\r\n const newValidationHints = {\r\n ...validationHints,\r\n firstName: !isValidName(formData.firstName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n department: !isValidQuestion(formData.department),\r\n region: !isValidRegion(formData.region),\r\n agreement: !isValidAgreement(formData.agreement),\r\n message: !formData.message\r\n };\r\n return { valid: !(Object.values({ ...newValidationHints, runOnInput: false }).some(value => value === true)), newValidationHints };\r\n }, [validationHints, formData.firstName, formData.email, formData.mobilePhone, formData.department, formData.region, formData.agreement, formData.message, isValidQuestion, isValidRegion]);\r\n const setOverlaySucess = React.useCallback(() => {\r\n setGeneralSuccess(props.generalSuccess);\r\n setOverlayState(OverlayState.SUCCESS);\r\n resetForm();\r\n }, [OverlayState.SUCCESS, props.generalSuccess, resetForm]);\r\n const setOverlayError = React.useCallback(() => {\r\n setIsactiveSubmitBtn(true);\r\n setOverlayState(OverlayState.ERROR);\r\n setGeneralError(props.generalError);\r\n }, [OverlayState.ERROR, props.generalError]);\r\n const sendRequest = React.useCallback(async () => {\r\n setOverlayState(OverlayState.WAITING);\r\n try {\r\n const r = await fetch(\"./\", {\r\n method: \"POST\",\r\n body: dataToSend\r\n });\r\n if (r.status === 200) {\r\n setOverlaySucess();\r\n }\r\n else {\r\n setOverlayError();\r\n }\r\n }\r\n catch {\r\n setOverlayError();\r\n }\r\n }, [OverlayState.WAITING, dataToSend, setOverlayError, setOverlaySucess]);\r\n const handleCaptchaResponse = React.useCallback(() => (captchaRef.current?.execute()), []);\r\n const submitHandler = React.useCallback(async (e) => {\r\n e.preventDefault();\r\n setIsactiveSubmitBtn(false);\r\n setGeneralSuccess(\"\");\r\n const { valid, newValidationHints } = getValidation();\r\n if (!valid) {\r\n newValidationHints.runOnInput = true;\r\n setValidationHints(newValidationHints);\r\n setIsactiveSubmitBtn(true);\r\n return;\r\n }\r\n const captchaString = handleCaptchaResponse();\r\n const requestFormData = constructRequestFormData(captchaString || \"\");\r\n handleCaptchaSize(\"normal\");\r\n setDataToSend(requestFormData);\r\n return;\r\n }, [constructRequestFormData, getValidation, handleCaptchaResponse, handleCaptchaSize]);\r\n const closeSendingOverlay = React.useCallback(() => {\r\n setOverlayState(OverlayState.HIDDEN);\r\n setToken(undefined);\r\n handleCaptchaSize(\"invisible\");\r\n }, [OverlayState.HIDDEN, handleCaptchaSize]);\r\n const RequiredStar = React.useCallback(function RequiredStar() {\r\n return React.createElement(\"span\", { className: \"contact-form__required-star\" }, \"*\");\r\n }, []);\r\n const RequiredLabel = React.useCallback(function RequiredLabel({ field }) {\r\n return (validationHints[field] && React.createElement(\"span\", { className: \"contact-form__required-error\" }, props.requiredFieldHint));\r\n }, [validationHints]);\r\n const SubmitBtn = React.useCallback(() => React.createElement(Button, { label: props.submitLabel, primary: true, onClick: submitHandler, classes: `${!isactiveSubmitBtn && \"contact-form__disabled\"} ` }), [props.submitLabel, submitHandler, isactiveSubmitBtn]);\r\n const OverlayMessage = React.useCallback(() => (React.createElement(React.Fragment, null,\r\n \" \",\r\n overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormIsBeingSendMessage)),\r\n overlayState === OverlayState.ERROR && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.generalError)),\r\n overlayState === OverlayState.SUCCESS && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormSucessfullySentMessage)))), [overlayState]);\r\n React.useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (overlayRef.current && !overlayRef.current.contains(event.target)) {\r\n if ((overlayState === OverlayState.ERROR) || (overlayState === OverlayState.SUCCESS)) {\r\n closeSendingOverlay();\r\n }\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [overlayRef, overlayState]);\r\n React.useEffect(() => {\r\n if (token && dataToSend !== undefined) {\r\n void sendRequest();\r\n setToken(undefined);\r\n setDataToSend(undefined);\r\n }\r\n }, [dataToSend, sendRequest, token]);\r\n const Overlay = React.useCallback(() => (React.createElement(React.Fragment, null, overlayState !== OverlayState.HIDDEN &&\r\n React.createElement(\"div\", { className: \"contact-form__loading-overlay\" },\r\n React.createElement(\"div\", { ref: overlayRef, className: \"contact-form__loading-popup\" },\r\n React.createElement(\"div\", { className: \"contact-form__loading-popup-msg-container\" },\r\n React.createElement(OverlayMessage, null)),\r\n React.createElement(\"span\", { className: \"contact-form__spinner-container\" }, overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(LoadingSpinner, null))),\r\n overlayState !== OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(Button, { label: props.popUpOkButtonLabel, primary: true, onClick: closeSendingOverlay })))))), [OverlayMessage, OverlayState.HIDDEN, OverlayState.WAITING, closeSendingOverlay, overlayState, props.popUpOkButtonLabel]);\r\n const handleCaptchaOnVerify = (token) => (setToken(token));\r\n return (React.createElement(\"div\", { className: \"contact-form__container-contact-us__root\" },\r\n React.createElement(\"div\", { className: \"contact-form__container\" },\r\n React.createElement(\"div\", { className: \"contact-form__form\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" }, props.title),\r\n React.createElement(Overlay, null),\r\n React.createElement(\"div\", { className: `contact-form__form-container ${overlayState !== OverlayState.HIDDEN ? \"contact-form__semi-transparent\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half region-input\" },\r\n React.createElement(\"label\", { htmlFor: \"region\", className: \"contact-form__label contact-form__label--required\" },\r\n props.regionLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"region\" })),\r\n React.createElement(\"select\", { onChange: inputHandler, name: \"region\", id: \"region\", value: region }, props.regionOptions.map((option, i) => (React.createElement(\"option\", { key: `region-option-${i}`, value: option, disabled: i === 0 }, option))))),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half firstName-input\" },\r\n React.createElement(\"label\", { htmlFor: \"firstName\", className: \"contact-form__label contact-form__label--required\" },\r\n props.firstNameLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"firstName\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: firstName, type: \"text\", name: \"firstName\", id: \"firstName\", placeholder: props.firstNamePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half email-input\" },\r\n React.createElement(\"label\", { htmlFor: \"email\", className: \"contact-form__label contact-form__label--required\" },\r\n props.emailLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"email\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: email, type: \"email\", name: \"email\", id: \"email\", placeholder: props.emailPlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half mobilePhone-input\" },\r\n React.createElement(\"label\", { htmlFor: \"mobilePhone\", className: \"contact-form__label contact-form__label--required\" },\r\n props.phoneLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"mobilePhone\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: mobilePhone, type: \"number\", name: \"mobilePhone\", id: \"mobilePhone\", placeholder: props.phonePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half aboutQuestion-input\" },\r\n React.createElement(\"label\", { htmlFor: \"aboutQuestion\", className: \"contact-form__label contact-form__label--required\" },\r\n props.aboutQuestionLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"department\" })),\r\n React.createElement(\"select\", { onChange: inputHandler, name: \"department\", id: \"department\", value: department }, props.aboutQuestionOptions.map((option, i) => (React.createElement(\"option\", { key: `aboutQuestion-option-${i}`, value: option, disabled: i === 0 }, option))))),\r\n React.createElement(\"div\", { className: \"contact-form__field message-input\" },\r\n React.createElement(\"label\", { htmlFor: \"message\", className: \"contact-form__label\" },\r\n props.messageLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"message\" })),\r\n React.createElement(\"textarea\", { onChange: inputHandler, name: \"message\", id: \"message\", value: message, rows: 6, placeholder: props.messagePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--checkbox checkbox-input\" },\r\n React.createElement(\"span\", { className: \"checkbox-wrapper\" },\r\n React.createElement(\"input\", { onChange: checkboxHandler, type: \"checkbox\", name: \"agreement\", id: \"agreement\", checked: agreement })),\r\n React.createElement(\"label\", { htmlFor: \"agreement\", className: \"contact-form__label--checkbox\" },\r\n React.createElement(\"span\", { className: \"contact-form__contact privacy-policy\", dangerouslySetInnerHTML: {\r\n __html: props.agreementLabel,\r\n } })),\r\n React.createElement(RequiredLabel, { field: \"agreement\" })),\r\n React.createElement(\"div\", { className: \"contact-form__button\" },\r\n React.createElement(SubmitBtn, null)),\r\n React.createElement(\"div\", { className: \"contact-form__field captcha-input\" },\r\n React.createElement(HCaptcha, { sitekey: props.hcaptchaKey, onError: handleCaptchaError, ref: captchaRef, size: captchaSize, languageOverride: props.hcaptchaLanguageCode, onVerify: handleCaptchaOnVerify })),\r\n generalError && React.createElement(\"div\", { className: \"contact-form__general-error-label\" }, generalError),\r\n generalSuccess && React.createElement(\"div\", { className: \"contact-form__general-success-label\" }, generalSuccess))))));\r\n};\r\n","import * as React from \"react\";\r\nimport \".\";\r\nimport { Button } from \"../Button\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport HCaptcha from \"@hcaptcha/react-hcaptcha\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nexport const PartnershipForm = (props) => {\r\n const initialFormData = {\r\n region: props.regionOptions[0],\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n mobilePhone: \"\",\r\n department: props.aboutQuestionOptions[0],\r\n message: \"\",\r\n formFile: [],\r\n };\r\n const initialValidationHints = {\r\n region: false,\r\n firstName: false,\r\n lastName: false,\r\n email: false,\r\n mobilePhone: false,\r\n department: false,\r\n runOnInput: false,\r\n message: false,\r\n };\r\n const OverlayState = {\r\n HIDDEN: \"HIDDEN\",\r\n WAITING: \"WAITING\",\r\n ERROR: \"ERROR\",\r\n SUCCESS: \"SUCCESS\",\r\n };\r\n const [formData, setFormData] = React.useState(initialFormData);\r\n const [dataToSend, setDataToSend] = React.useState();\r\n const [validationHints, setValidationHints] = React.useState(initialValidationHints);\r\n const [generalError, setGeneralError] = React.useState(\"\");\r\n const [generalSuccess, setGeneralSuccess] = React.useState(\"\");\r\n const [overlayState, setOverlayState] = React.useState(OverlayState.HIDDEN);\r\n const [isactiveSubmitBtn, setIsactiveSubmitBtn] = React.useState(true);\r\n const overlayRef = React.useRef(null);\r\n const captchaRef = React.useRef(null);\r\n const handleCaptchaError = React.useCallback(() => {\r\n setGeneralError(props.generalError);\r\n }, [props.generalError]);\r\n const { region, firstName, lastName, email, mobilePhone, department, message, } = formData;\r\n const isValidName = (name) => !/[!@#$%&=_~<>?:1234567890]/.test(name) && name.length <= 300 && name.length > 0;\r\n const isValidPhone = (phone) => /^\\+?[0-9]([-\\s]?\\d)*$/.test(phone) && phone.length <= 30;\r\n const isValidEmail = (email) => /^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$/.test(email) && email.length <= 300;\r\n const isValidQuestion = React.useCallback((question) => props.aboutQuestionOptions.length !== 1 ? props.aboutQuestionOptions[0] !== question : true, [props.aboutQuestionOptions]);\r\n const isValidRegion = React.useCallback((region) => props.regionOptions[0] !== region, [props.regionOptions]);\r\n const [captchaSize, setCaptchaSize] = React.useState(\"invisible\");\r\n const [token, setToken] = React.useState();\r\n const handleCaptchaSize = React.useCallback((value) => ((setCaptchaSize(value))), []);\r\n React.useEffect(() => {\r\n if (validationHints.runOnInput) {\r\n const newValidationHints = {\r\n ...validationHints,\r\n firstName: !isValidName(formData.firstName),\r\n lastName: !isValidName(formData.lastName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n department: !isValidQuestion(formData.department),\r\n region: !isValidRegion(formData.region),\r\n message: !formData.message\r\n };\r\n setValidationHints(newValidationHints);\r\n }\r\n }, [formData]);\r\n const inputHandler = React.useCallback((e) => {\r\n setGeneralError(\"\");\r\n setGeneralSuccess(\"\");\r\n const { name, value } = e.target;\r\n setFormData((formData) => ({ ...formData, [name]: value }));\r\n }, []);\r\n const resetForm = React.useCallback(() => {\r\n setValidationHints(initialValidationHints);\r\n setTimeout(() => {\r\n setFormData(initialFormData);\r\n }, 10);\r\n setGeneralError(\"\");\r\n setIsactiveSubmitBtn(true);\r\n }, []);\r\n const constructRequestFormData = React.useCallback((captchaResponse) => {\r\n const requestFormData = new FormData();\r\n requestFormData.append(\"captcha_response\", captchaResponse ? captchaResponse : \"\");\r\n for (const key in formData) {\r\n if (key !== \"formFile\") {\r\n requestFormData.append(key, formData[key]);\r\n }\r\n else {\r\n const files = formData[key];\r\n files.forEach((file) => {\r\n requestFormData.append(\"formFile\", file);\r\n });\r\n }\r\n }\r\n props.campaignId && requestFormData.append(\"campaignId\", props.campaignId);\r\n return requestFormData;\r\n }, [formData]);\r\n const getValidation = React.useCallback(() => {\r\n const newValidationHints = {\r\n ...validationHints,\r\n firstName: !isValidName(formData.firstName),\r\n lastName: !isValidName(formData.lastName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n department: !isValidQuestion(formData.department),\r\n region: !isValidRegion(formData.region),\r\n message: !formData.message\r\n };\r\n return { valid: !(Object.values({ ...newValidationHints, runOnInput: false }).some(value => value === true)), newValidationHints };\r\n }, [validationHints, formData.firstName, formData.lastName, formData.email, formData.mobilePhone, formData.department, formData.region, formData.message, isValidQuestion, isValidRegion]);\r\n const setOverlaySucess = React.useCallback(() => {\r\n setGeneralSuccess(props.generalSuccess);\r\n setOverlayState(OverlayState.SUCCESS);\r\n resetForm();\r\n }, [OverlayState.SUCCESS, props.generalSuccess, resetForm]);\r\n const setOverlayError = React.useCallback(() => {\r\n setIsactiveSubmitBtn(true);\r\n setOverlayState(OverlayState.ERROR);\r\n setGeneralError(props.generalError);\r\n }, [OverlayState.ERROR, props.generalError]);\r\n const sendRequest = React.useCallback(async () => {\r\n setOverlayState(OverlayState.WAITING);\r\n try {\r\n const r = await fetch(\"\", {\r\n method: \"POST\",\r\n body: dataToSend\r\n });\r\n if (r.status === 200) {\r\n setOverlaySucess();\r\n }\r\n else {\r\n setOverlayError();\r\n }\r\n }\r\n catch {\r\n setOverlayError();\r\n }\r\n }, [OverlayState.WAITING, dataToSend, setOverlayError, setOverlaySucess]);\r\n const handleCaptchaResponse = React.useCallback(() => (captchaRef.current?.execute()), []);\r\n const submitHandler = React.useCallback(async (e) => {\r\n e.preventDefault();\r\n setIsactiveSubmitBtn(false);\r\n setGeneralSuccess(\"\");\r\n const { valid, newValidationHints } = getValidation();\r\n if (!valid) {\r\n newValidationHints.runOnInput = true;\r\n setValidationHints(newValidationHints);\r\n setIsactiveSubmitBtn(true);\r\n return;\r\n }\r\n const captchaString = handleCaptchaResponse();\r\n const requestFormData = constructRequestFormData(captchaString || \"\");\r\n handleCaptchaSize(\"normal\");\r\n setDataToSend(requestFormData);\r\n return;\r\n }, [constructRequestFormData, getValidation, handleCaptchaResponse, handleCaptchaSize]);\r\n const closeSendingOverlay = React.useCallback(() => {\r\n setOverlayState(OverlayState.HIDDEN);\r\n setToken(undefined);\r\n handleCaptchaSize(\"invisible\");\r\n }, [OverlayState.HIDDEN, handleCaptchaSize]);\r\n const RequiredStar = React.useCallback(function RequiredStar() {\r\n return React.createElement(\"span\", { className: \"contact-form__required-star\" }, \"*\");\r\n }, []);\r\n const RequiredLabel = React.useCallback(function RequiredLabel({ field }) {\r\n return (validationHints[field] && React.createElement(\"span\", { className: \"contact-form__required-error\" }, props.requiredFieldHint));\r\n }, [validationHints]);\r\n const SubmitBtn = React.useCallback(() => React.createElement(Button, { label: props.submitLabel, primary: true, onClick: submitHandler, classes: `${!isactiveSubmitBtn && \"contact-form__disabled\"} ` }), [props.submitLabel, submitHandler, isactiveSubmitBtn]);\r\n const OverlayMessage = React.useCallback(() => (React.createElement(React.Fragment, null,\r\n \" \",\r\n overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormIsBeingSendMessage)),\r\n overlayState === OverlayState.ERROR && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.generalError)),\r\n overlayState === OverlayState.SUCCESS && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormSucessfullySentMessage)))), [overlayState]);\r\n React.useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (overlayRef.current && !overlayRef.current.contains(event.target)) {\r\n if ((overlayState === OverlayState.ERROR) || (overlayState === OverlayState.SUCCESS)) {\r\n closeSendingOverlay();\r\n }\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [overlayRef, overlayState]);\r\n React.useEffect(() => {\r\n if (token && dataToSend !== undefined) {\r\n void sendRequest();\r\n setToken(undefined);\r\n setDataToSend(undefined);\r\n }\r\n }, [dataToSend, sendRequest, token]);\r\n const Overlay = React.useCallback(() => (React.createElement(React.Fragment, null, overlayState !== OverlayState.HIDDEN &&\r\n React.createElement(\"div\", { className: \"contact-form__loading-overlay\" },\r\n React.createElement(\"div\", { ref: overlayRef, className: \"contact-form__loading-popup\" },\r\n React.createElement(\"div\", { className: \"contact-form__loading-popup-msg-container\" },\r\n React.createElement(OverlayMessage, null)),\r\n React.createElement(\"span\", { className: \"contact-form__spinner-container\" }, overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(LoadingSpinner, null))),\r\n overlayState !== OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(Button, { label: props.popUpOkButtonLabel, primary: true, onClick: closeSendingOverlay })))))), [OverlayMessage, OverlayState.HIDDEN, OverlayState.WAITING, closeSendingOverlay, overlayState, props.popUpOkButtonLabel]);\r\n const handleCaptchaOnVerify = (token) => (setToken(token));\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"contact-form__container-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"contact-form__container\" },\r\n React.createElement(\"div\", { className: \"contact-form__form\" },\r\n React.createElement(\"h3\", null, props.title),\r\n React.createElement(Overlay, null),\r\n React.createElement(\"div\", { className: `contact-form__form-container contact-form__form-container--partnership ${overlayState !== OverlayState.HIDDEN ? \"contact-form__semi-transparent\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half firstName-input\" },\r\n React.createElement(\"label\", { htmlFor: \"firstName\", className: \"contact-form__label contact-form__label--required\" },\r\n props.firstNameLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"firstName\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: firstName, type: \"text\", name: \"firstName\", id: \"firstName\", placeholder: props.firstNamePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half region-input\" },\r\n React.createElement(\"label\", { htmlFor: \"region\", className: \"contact-form__label contact-form__label--required\" },\r\n props.regionLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"region\" })),\r\n React.createElement(\"select\", { onChange: inputHandler, name: \"region\", id: \"region\", value: region }, props.regionOptions.map((option, i) => (React.createElement(\"option\", { key: `region-option-${i}`, value: option, disabled: i === 0 }, option))))),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half mobilePhone-input\" },\r\n React.createElement(\"label\", { htmlFor: \"mobilePhone\", className: \"contact-form__label contact-form__label--required\" },\r\n props.phoneLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"mobilePhone\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: mobilePhone, type: \"number\", name: \"mobilePhone\", id: \"mobilePhone\", placeholder: props.phonePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field message-input\" },\r\n React.createElement(\"label\", { htmlFor: \"message\", className: \"contact-form__label\" }, props.messageLabel),\r\n React.createElement(\"textarea\", { onChange: inputHandler, name: \"message\", id: \"message\", value: message, rows: 6, placeholder: props.messagePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half lastName-input\" },\r\n React.createElement(\"label\", { htmlFor: \"lastName\", className: \"contact-form__label contact-form__label--required\" },\r\n props.lastNameLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"lastName\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: lastName, type: \"text\", name: \"lastName\", id: \"lastName\", placeholder: props.lastNamePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half email-input\" },\r\n React.createElement(\"label\", { htmlFor: \"email\", className: \"contact-form__label contact-form__label--required\" },\r\n props.emailLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"email\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: email, type: \"email\", name: \"email\", id: \"email\", placeholder: props.emailPlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form__field contact-form__field--half aboutQuestion-input\" },\r\n React.createElement(\"label\", { htmlFor: \"aboutQuestion\", className: \"contact-form__label contact-form__label--required\" },\r\n props.aboutQuestionLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"department\" })),\r\n React.createElement(\"select\", { onChange: inputHandler, name: \"department\", id: \"department\", value: department }, props.aboutQuestionOptions.map((option, i) => (React.createElement(\"option\", { key: `aboutQuestion-option-${i}`, value: option, disabled: props.aboutQuestionOptions.length !== 1 && i === 0 }, option))))),\r\n React.createElement(\"div\", { className: \"contact-form__button\" },\r\n React.createElement(SubmitBtn, null)),\r\n React.createElement(\"div\", { className: \"contact-form__field captcha-input\" },\r\n React.createElement(HCaptcha, { sitekey: props.hcaptchaKey, onError: handleCaptchaError, ref: captchaRef, size: captchaSize, languageOverride: props.hcaptchaLanguageCode, onVerify: handleCaptchaOnVerify })),\r\n generalError && React.createElement(\"div\", { className: \"contact-form__general-error-label\" }, generalError),\r\n generalSuccess && React.createElement(\"div\", { className: \"contact-form__general-success-label\" }, generalSuccess))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const ContactItemContent = ({ title, imgUrl, imgAlt, }) => (React.createElement(React.Fragment, null,\r\n React.createElement(Img, { src: imgUrl, alt: imgAlt }),\r\n React.createElement(\"p\", { className: \"caption2-bold\" }, title)));\r\n","import React, { useMemo } from \"react\";\r\nimport { ContactItemContent } from \"./ContactItemContent\";\r\nimport { determineContactItemType, handleCardClick, simulateMouseClickOnZendeskChatIcon, } from \"./contactUs.utils\";\r\nexport const StillHaveQuestionItem = ({ imgUrl, imgAlt, title, linkUrl, cardUrl, }) => {\r\n const handleClick = useMemo(() => cardUrl && handleCardClick\r\n ? handleCardClick(cardUrl)\r\n : simulateMouseClickOnZendeskChatIcon, [cardUrl]);\r\n const handleKeyPress = useMemo(() => cardUrl && handleCardClick\r\n ? handleCardClick(cardUrl)\r\n : simulateMouseClickOnZendeskChatIcon, [cardUrl]);\r\n const contactItemType = determineContactItemType(linkUrl);\r\n if (contactItemType === \"tel\") {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"a\", { className: \"still-have-questions-item still-have-questions-item--mobile\", href: linkUrl, dir: \"ltr\" },\r\n React.createElement(ContactItemContent, { title: title, imgUrl: imgUrl, imgAlt: imgAlt })),\r\n React.createElement(\"a\", { className: \"still-have-questions-item still-have-questions-item--non-mobile\", onClick: handleClick, onKeyPress: handleKeyPress, dir: \"ltr\" },\r\n React.createElement(ContactItemContent, { title: title, imgUrl: imgUrl, imgAlt: imgAlt }))));\r\n }\r\n if (contactItemType === \"mailto\") {\r\n return (React.createElement(\"a\", { className: \"still-have-questions-item\", href: linkUrl },\r\n React.createElement(ContactItemContent, { title: title, imgUrl: imgUrl, imgAlt: imgAlt })));\r\n }\r\n return (React.createElement(\"a\", { className: \"still-have-questions-item\", onClick: handleClick, onKeyPress: handleKeyPress },\r\n React.createElement(ContactItemContent, { title: title, imgUrl: imgUrl, imgAlt: imgAlt })));\r\n};\r\n","import React from \"react\";\r\nimport { StillHaveQuestionItem } from \"../StillHaveQuestionsItems/StillHaveQuestionItem\";\r\nexport const ContactOptions = ({ contactOptions }) => (React.createElement(\"div\", { className: \"contact-options-root\" },\r\n React.createElement(\"div\", { className: \"contact-options-root__itemWrapper\" }, contactOptions.length > 0 && contactOptions.map((option) => (React.createElement(StillHaveQuestionItem, { key: `unique${option.title}`, title: option.title, imgUrl: option.imgUrl, imgAlt: option.imgAlt, linkUrl: option.linkUrl }))))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ContactOptions } from \"../ContactOptions\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ContactForm } from \"./ContactForm\";\r\nexport const ContactUsWrapper = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"contact-us-wrapper_root\" },\r\n React.createElement(ContactOptions, { contactOptions: props.contactOptions }),\r\n React.createElement(ContactForm, { ...props, backgroundColor: \"#414D5D\" })))));\r\n};\r\n","import React from \"react\";\r\nconst Addplus = ({ height = 24, width = 24 }) => (React.createElement(\"svg\", { height: height, width: width, fill: \"none\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M11 11V6C11 5.44772 11.4477 5 12 5C12.5523 5 13 5.44772 13 6V11H18C18.5523 11 19 11.4477 19 12C19 12.5523 18.5523 13 18 13H13V18C13 18.5523 12.5523 19 12 19C11.4477 19 11 18.5523 11 18V13H6C5.44772 13 5 12.5523 5 12C5 11.4477 5.44772 11 6 11H11Z\", fill: \"#0E1D31\" })));\r\nexport default Addplus;\r\n","import React from \"react\";\r\nconst Substract = ({ height = \"24\", width = \"24\" }) => (React.createElement(\"svg\", { height: height, width: width, fill: \"none\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6 11C5.44772 11 5 11.4477 5 12C5 12.5523 5.44772 13 6 13H18C18.5523 13 19 12.5523 19 12C19 11.4477 18.5523 11 18 11H6Z\", fill: \"#0E1D31\" })));\r\nexport default Substract;\r\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport Addplus from \"../svgIcons/Addplus\";\r\nimport Substract from \"../svgIcons/Substract\";\r\nimport { getColors, getClassConditionalAppend, getContainerClassPerMaxWidth } from \"../../utils\";\r\nimport { IconChat } from \"../svgIcons\";\r\nconst FaqAccordionCard = ({ id, question, answer, setActiveCardId, activeCardId, bgColor }) => {\r\n const handleExpand = useCallback(() => {\r\n if (setActiveCardId && id === activeCardId) {\r\n setActiveCardId(-1);\r\n }\r\n else if (setActiveCardId && id !== undefined) {\r\n setActiveCardId(id);\r\n }\r\n }, [activeCardId, id, setActiveCardId]);\r\n const [answerValue, setAnswerValue] = useState(\"\");\r\n useEffect(() => {\r\n setAnswerValue(answer);\r\n }, [answer]);\r\n return (React.createElement(\"div\", { itemScope: true, itemProp: \"mainEntity\", itemType: \"https://schema.org/Question\", style: { backgroundColor: bgColor }, className: `faq-accordion-list__faq-card ${id === activeCardId ? \"active\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__faq-card-question\", onClick: handleExpand },\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__plus-minus-text\" },\r\n React.createElement(\"span\", { className: \"faq-accordion-list__plus\" }, Addplus({})),\r\n React.createElement(\"span\", { className: \"faq-accordion-list__minus\" }, Substract({})),\r\n React.createElement(\"h5\", { itemProp: \"name\" }, question))),\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__plus-minus-text\" },\r\n React.createElement(\"span\", { className: \"faq-accordion-list__minus-stub\", style: { visibility: \"hidden\" } }, Substract({})),\r\n React.createElement(\"div\", { itemScope: true, itemProp: \"acceptedAnswer\", itemType: \"https://schema.org/Answer\" },\r\n React.createElement(\"div\", { itemProp: \"text\", className: \"faq-accordion-list__faq-card-answer\", dangerouslySetInnerHTML: { __html: answerValue } })))));\r\n};\r\nexport const FaqAccordionList = ({ title, iconImage, iconAlt, moreQuestions, moreQuestionsLinkText, moreQuestionsLinkUrl, items, backgroundColor, containerMaxWidth }) => {\r\n const [activeCardId, setActiveCardId] = React.useState(-1);\r\n const { bgColor, textColor } = getColors(backgroundColor || \"white\");\r\n const accordion = useMemo(() => (React.createElement(\"div\", { className: \"faq-accordion-list__deck\", style: { backgroundColor: bgColor } }, items.map((item, i) => React.createElement(FaqAccordionCard, { key: `faq-accordion-list__card-${i}`, id: i, question: item.question, answer: item.answer, setActiveCardId: setActiveCardId, activeCardId: activeCardId, bgColor: bgColor })))), [items, setActiveCardId, activeCardId, bgColor]);\r\n const containerMaxWidthClass = getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = getClassConditionalAppend(containerMaxWidthClass);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor, className: containerExtraClass },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"faq-accordion-list\" },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__flex-container\" },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__title-container color-dark-default\" },\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__title-flex\" },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__image-container\" }, iconImage ? React.createElement(Img, { src: iconImage, alt: iconAlt, className: \"faq-accordion-list__icon-image\", loading: \"eager\" }) : React.createElement(\"span\", { className: \"faq-accordion-list__icon-image\" }, IconChat())),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"h2\", { className: \"faq-accordion-list__faq-title\" }, title))),\r\n (moreQuestionsLinkText || moreQuestions) && React.createElement(\"div\", { className: \"flex faq-accordion-list__title-flex hide-small hide-medium\" },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__image-container\" }),\r\n React.createElement(\"p\", null,\r\n moreQuestions,\r\n React.createElement(\"a\", { href: moreQuestionsLinkUrl },\r\n React.createElement(\"span\", { className: \"p-bold\" }, moreQuestionsLinkText))))),\r\n React.createElement(\"div\", { itemScope: true, itemType: \"https://schema.org/FAQPage\", style: { backgroundColor: bgColor } }, accordion),\r\n React.createElement(\"div\", { className: \"hide-large\" }),\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__title-flex hide-large\" },\r\n React.createElement(\"p\", null,\r\n moreQuestions,\r\n React.createElement(\"a\", { href: moreQuestionsLinkUrl },\r\n React.createElement(\"span\", { className: \"p-bold\" }, moreQuestionsLinkText)))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ArticleBanner } from \"../Banners\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { FaqAccordionList } from \"../FaqAccordionList\";\r\nexport const Article = (props) => {\r\n const [h2Tags, setH2tags] = React.useState();\r\n const [loaded, setLoaded] = React.useState(false);\r\n const articleContainerRef = React.useRef(null);\r\n const [scrollTop, setScrollTop] = React.useState(0);\r\n const onScroll = () => {\r\n if (articleContainerRef && articleContainerRef.current) {\r\n const winScroll = document.documentElement.scrollTop;\r\n const height = articleContainerRef.current.scrollHeight - document.documentElement.clientHeight;\r\n const scrolled = (winScroll / height) * 100;\r\n setScrollTop(scrolled);\r\n }\r\n };\r\n const getMonth = function (d) {\r\n const locale = document.documentElement.lang, month = d.toLocaleString(locale, { month: \"long\" });\r\n return month;\r\n };\r\n React.useEffect(() => {\r\n const dom = parseHTML(props.content);\r\n dom.querySelectorAll(\"h2\");\r\n setH2tags([...dom.querySelectorAll(\"h2\")]);\r\n setLoaded(true);\r\n window.addEventListener(\"scroll\", onScroll);\r\n }, [props.content, props.faqTitle]);\r\n const accordion = () => props.faqItems.length ? (React.createElement(FaqAccordionList, { title: props.faqTitle, iconAlt: props.faqLinkText, iconImage: props.iconImage, moreQuestions: props.moreQuestions, items: props.faqItems, moreQuestionsLinkText: props.faqLinkText, moreQuestionsLinkUrl: props.faqLinkUrl })) : \"\";\r\n const date = new Date(props.publishDate);\r\n const published = () => React.createElement(React.Fragment, null,\r\n props.publishedOn,\r\n \" \",\r\n getMonth(date),\r\n \" \",\r\n date.getDate(),\r\n \", \",\r\n date.getFullYear(),\r\n \" \",\r\n props.by,\r\n \" \",\r\n props.authorUrl ? React.createElement(\"a\", { href: props.authorUrl, className: \"color-dark-60\", target: \"_blank\", rel: \"noopener noreferrer\" }, props.author) : props.author);\r\n return (React.createElement(ContainerFW, null,\r\n scrollTop <= 100 && React.createElement(\"div\", { className: \"progressbar\" },\r\n React.createElement(\"div\", { className: \"progressbar__marker\", style: { width: `${scrollTop}%` } })),\r\n React.createElement(\"div\", { className: \"article\" },\r\n React.createElement(ArticleBanner, { image: props.imageUrl, title: props.title, breadcrumbs: props.breadcrumbs, categories: props.category.split(\"|\"), categoryLinks: props.categoryLinks, culture: props.culture, difficulty: props.difficulty, difficultyColor: props.difficultyColor }, published()),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"article__container\", ref: articleContainerRef },\r\n (h2Tags && h2Tags.length >= 3) && (React.createElement(\"div\", { className: \"contents-table\" },\r\n React.createElement(\"h4\", { className: \"h4-bold\" }, props.tableOfContentsTitle),\r\n React.createElement(\"ul\", null, h2Tags.map((item, i) => (React.createElement(SidebarItem, { key: `contents-table-item-${i}`, title: item.innerText })))))),\r\n React.createElement(\"div\", { className: \"article__content\", dangerouslySetInnerHTML: {\r\n __html: loaded ? props.content : \"\",\r\n } }),\r\n accordion(),\r\n props.disclaimerText && React.createElement(\"section\", { className: \"article__disclaimerText\" }, props.disclaimerText))))));\r\n};\r\nconst SidebarItem = React.forwardRef((props, ref) => {\r\n const scrollToHeading = React.useCallback(() => {\r\n [...document.querySelectorAll(\".article h2\")].find(el => el.textContent?.includes(props.title))?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }, [props.title]);\r\n return (React.createElement(\"li\", { onClick: scrollToHeading }, props.title));\r\n});\r\nSidebarItem.displayName = \"SidebarItem\";\r\nfunction parseHTML(html) {\r\n const t = document.createElement(\"template\");\r\n t.innerHTML = html;\r\n return t.content;\r\n}\r\n","import * as React from \"react\";\r\nimport { caretIcon } from \"../Cards/AccordionCardDeck/AccordionCard\";\r\nimport { arrowIcon } from \"../Cards/InformationCardDarkDeck/InformationCardDark\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Container } from \"../global\";\r\nexport const SupportSection = (props) => {\r\n const [activeMenuItem, setActiveMenuItem] = React.useState();\r\n const activeMenuItemHandler = (title) => React.useCallback(() => {\r\n if (activeMenuItem === title) {\r\n setActiveMenuItem(undefined);\r\n }\r\n else {\r\n setActiveMenuItem(title);\r\n }\r\n }, [activeMenuItem]);\r\n React.useEffect(() => {\r\n const activeItem = props.sidebar.map(el => el.links.filter(link => link.title === props.title).length ? el : undefined).filter(e => e !== undefined)[0]?.title;\r\n setActiveMenuItem(activeItem);\r\n }, []);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"support-section\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"support-section__tab\" },\r\n React.createElement(\"div\", { className: \"support-section__content\" },\r\n props.backLinkText && React.createElement(\"a\", { href: props.backLinkUrl, className: \"faq-accordion__link support-section__link\" },\r\n arrowIcon(),\r\n \" \",\r\n props.backLinkText,\r\n \" \"),\r\n props.children ? props.children : React.createElement(React.Fragment, null,\r\n React.createElement(\"h2\", { className: \"support-section__title\" }, props.title),\r\n React.createElement(\"div\", { className: \"support-section__text\", dangerouslySetInnerHTML: { __html: props.content } }))),\r\n React.createElement(\"ul\", { className: \"support-section__navigation\" }, props.sidebar.map((item, id) => (React.createElement(\"li\", { key: `support-section__item-${id}`, className: `support-section__item ${activeMenuItem === item.title ? \"active\" : \"\"}` },\r\n React.createElement(\"h5\", { onClick: activeMenuItemHandler(item.title), className: \"support-section__item-title\" },\r\n item.title,\r\n \" \",\r\n caretIcon()),\r\n React.createElement(\"div\", { className: \"support-section__list\" }, item.links.map((listItem, i) => (React.createElement(\"p\", { key: `support-section__list-item-${i}`, className: `support-section__list-item ${props.title === listItem.title ? \"active\" : \"\"}` },\r\n React.createElement(\"a\", { href: listItem.url }, listItem.title))))))))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { pageViewStyle } from \"../../pageViewStyle\";\r\nimport { PressBanner, updatedDate } from \"../Banners\";\r\nimport { Breadcrumbs } from \"../Breadcrumbs\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { IconArrowLeft, IconCalendar } from \"../svgIcons\";\r\nexport const PressArticle = (props) => {\r\n const [view, setView] = React.useState(pageViewStyle.getView());\r\n const { ref, inView } = useInView({\r\n threshold: 1,\r\n rootMargin: \"500px 0px 0px 0px\"\r\n });\r\n React.useEffect(() => {\r\n !view && setView(pageViewStyle.getView());\r\n }, [view]);\r\n const relatedArticles = React.useMemo(() => props.sidebar?.items?.filter((a) => a.articleTitle !== props.pressBanner.title), [props.pressBanner.title, props.sidebar?.items]);\r\n const sidebarArticles = () => (React.createElement(React.Fragment, null, relatedArticles?.map((item, i) => (React.createElement(\"a\", { href: item.articleURL, className: \"pressArticle__sidebar-item\", key: `sidebar-article-${i}` },\r\n React.createElement(\"div\", { className: \"pressBanner__data\" },\r\n React.createElement(\"span\", { className: \"pressBanner__data--cfd\" }, item.articleCfdTrading),\r\n React.createElement(\"span\", { className: \"pressBanner__data--category\" }, item.articleCategory),\r\n React.createElement(\"span\", { className: \"pressBanner__data--date\" }, updatedDate(item.articleDate))),\r\n React.createElement(\"h5\", null, item.articleTitle))))));\r\n const fixedClass = () => (inView && view === \"large\") ? \"pressArticle__sidebar--fixed\" : \"\";\r\n const getSidebarIcon = (sidebar) => sidebar.headerIcon ? React.createElement(Img, { src: sidebar.headerIcon, alt: sidebar.headerTitle }) : IconCalendar;\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"pressArticle\" },\r\n React.createElement(Container, null,\r\n React.createElement(Breadcrumbs, { ...props.breadcrumbs }),\r\n React.createElement(\"div\", { className: \"pressArticle__inner\" },\r\n React.createElement(PressBanner, { ...props.pressBanner }),\r\n props.imageUrl && (React.createElement(Img, { className: \"pressArticle__teaserImg\", src: props.imageUrl, alt: props.imageAlt })),\r\n React.createElement(\"div\", { className: \"pressArticle__content\", dangerouslySetInnerHTML: { __html: props.content } }),\r\n props.disclaimerText && React.createElement(\"section\", { className: \"pressArticle__disclaimerText\", dangerouslySetInnerHTML: {\r\n __html: props.disclaimerText\r\n } }),\r\n React.createElement(\"div\", { className: \"button-v2-wrapper flex\" },\r\n React.createElement(\"a\", { ref: ref, href: props.bottomLinkUrl, className: \"button-v2 flex ghost-medium-wbg\" },\r\n IconArrowLeft,\r\n props.bottomLinkText))),\r\n props.sidebar &&\r\n React.createElement(\"aside\", { className: `pressArticle__sidebar ${fixedClass()}` },\r\n props.sidebar.headerLink && React.createElement(\"a\", { href: props.sidebar.headerLink, className: \"pressArticle__sidebar-header\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"span\", { className: \"text-weight-bold\" }, props.sidebar.headerTitle),\r\n React.createElement(\"span\", { className: \"caption2-regular\" }, props.sidebar.headerDescription)),\r\n getSidebarIcon(props.sidebar)),\r\n props.sidebar.items && React.createElement(\"div\", { className: \"pressArticle__sidebar-main\" },\r\n React.createElement(\"div\", { className: \"caption-bold\" }, props.sidebar.itemsTitle),\r\n sidebarArticles()),\r\n React.createElement(\"div\", { className: \"pressArticle__sidebar-footer\" },\r\n React.createElement(\"div\", { className: \"text-weight-bold\" }, props.sidebar.footerTitle),\r\n React.createElement(ButtonV2, { design: \"cta-medium-wbg\", href: props.sidebar.footerButtonUrl }, props.sidebar.footerButtonText)))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { pageViewStyle } from \"../../pageViewStyle\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const PopularQuestions = (props) => {\r\n const view = pageViewStyle.getView();\r\n return (React.createElement(\"div\", { className: \"popularQuestions\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"popularQuestions__container\" },\r\n React.createElement(\"div\", { className: \"popularQuestions__text\" },\r\n React.createElement(\"div\", { className: \"popularQuestions__title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n view === \"small\" || view === \"medium\" && React.createElement(\"div\", { className: \"popularQuestions__image\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt })),\r\n props.children ? props.children :\r\n React.createElement(\"div\", { className: \"popularQuestions__list-items\" },\r\n React.createElement(\"ul\", null, props.items.map((item, index) => (React.createElement(\"li\", { key: index, className: \"popularQuestions__list-item\" },\r\n React.createElement(\"a\", { className: \"popularQuestions__list-item-link\", href: item.itemLink }, item.item))))))),\r\n view === \"large\" && React.createElement(\"div\", { className: \"popularQuestions__image\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt })))))));\r\n};\r\n","import * as React from \"react\";\r\nexport const LayoutOptions = ({ viewHandler, view, }) => {\r\n const handleGridViewClick = React.useCallback(() => {\r\n viewHandler(false);\r\n }, [viewHandler]);\r\n const handleListViewClick = React.useCallback(() => {\r\n viewHandler(true);\r\n }, [viewHandler]);\r\n return (React.createElement(\"div\", { className: \"subscribeRibbon__layout-options\" },\r\n React.createElement(\"div\", { className: \"subscribeRibbon__layout-optionsInner\" },\r\n React.createElement(\"div\", { onClick: handleGridViewClick, className: `subscribeRibbon__layout ${view ? \"\" : \"active\"}` }, gridViewIcon()),\r\n React.createElement(\"div\", { onClick: handleListViewClick, className: `subscribeRibbon__layout ${view ? \"active\" : \"\"}` }, listViewIcon()))));\r\n};\r\nconst gridViewIcon = () => (React.createElement(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M13.847 7.74v6.113H7.733V7.74h6.114zm0-.933H7.733a.936.936 0 0 0-.933.933v6.113c0 .514.42.934.933.934h6.114c.513 0 .933-.42.933-.934V7.74a.936.936 0 0 0-.933-.933zM24.266 7.74v6.113h-6.113V7.74h6.113zm0-.933h-6.113a.936.936 0 0 0-.933.933v6.113c0 .514.42.934.933.934h6.113c.514 0 .934-.42.934-.934V7.74a.936.936 0 0 0-.934-.933zM13.847 18.147v6.113H7.733v-6.113h6.114zm0-.934H7.733a.936.936 0 0 0-.933.934v6.113c0 .513.42.933.933.933h6.114c.513 0 .933-.42.933-.933v-6.113a.936.936 0 0 0-.933-.934zM24.266 18.147v6.113h-6.113v-6.113h6.113zm0-.934h-6.113a.936.936 0 0 0-.933.934v6.113c0 .513.42.933.933.933h6.113c.514 0 .934-.42.934-.933v-6.113a.936.936 0 0 0-.934-.934z\", fill: \"#fff\" })));\r\nconst listViewIcon = () => (React.createElement(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M22.967 8.953H12.12a.464.464 0 0 1-.467-.466c0-.26.207-.467.467-.467h10.847c.26 0 .466.207.466.467s-.206.466-.466.466zM22.967 13.96H12.12a.464.464 0 0 1-.467-.467c0-.26.207-.466.467-.466h10.847c.26 0 .466.206.466.466s-.206.467-.466.467zM22.967 18.96H12.12a.464.464 0 0 1-.467-.467c0-.26.207-.466.467-.466h10.847c.26 0 .466.206.466.466s-.206.467-.466.467zM9.36 9.28a.791.791 0 0 1-.794-.793c0-.44.354-.794.794-.794.44 0 .793.354.793.794 0 .44-.353.793-.793.793zM9.36 14.287a.791.791 0 0 1-.794-.794.79.79 0 0 1 .794-.793c.44 0 .793.353.793.793 0 .44-.353.794-.793.794zM9.36 19.287a.791.791 0 0 1-.794-.794.79.79 0 0 1 .794-.793c.44 0 .793.353.793.793 0 .44-.353.794-.793.794zM22.967 23.98H12.12a.464.464 0 0 1-.467-.467c0-.26.207-.466.467-.466h10.847c.26 0 .466.206.466.466s-.206.467-.466.467zM9.36 24.307a.791.791 0 0 1-.794-.794.79.79 0 0 1 .794-.793c.44 0 .793.353.793.793 0 .44-.353.794-.793.794z\", fill: \"#fff\" })));\r\n","import * as React from \"react\";\r\nimport { Button } from \"../Button\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { LayoutOptions } from \"./LayoutOptions/LayoutOptions\";\r\nexport const FiltersRibbon = ({ subscriptionText, searchText, subscriptionButtonText, filterText, type, viewToggle, view, filterToggle, filters, hasLayoutOptions = false, searchQuery, setSearchQuery, hasFiltersApplied, }) => {\r\n const [data, setData] = React.useState(\"\");\r\n const [searchVal, setSearchVal] = React.useState(searchQuery);\r\n React.useEffect(() => {\r\n setSearchVal(searchQuery);\r\n }, [searchQuery]);\r\n const fieldHandler = React.useCallback(e => setData(e.target.value), [data]);\r\n const viewHandler = React.useCallback((v) => viewToggle(v), [viewToggle]);\r\n const searchFieldHandler = React.useCallback(e => {\r\n setData(e.target.value);\r\n setSearchVal(e.target.value);\r\n }, [data]);\r\n const searchClickHandler = React.useCallback((e) => {\r\n e.key === \"Enter\" && setSearchQuery(data);\r\n }, [data]);\r\n const subscribeHandler = React.useCallback((e) => {\r\n e.preventDefault();\r\n console.warn(data);\r\n }, [data]);\r\n const toggleFilters = React.useCallback(() => {\r\n filterToggle(!filters);\r\n }, [filters]);\r\n const ribbonWidgetTypes = {\r\n search: (React.createElement(\"div\", { className: \"subscribeRibbon__widget\" },\r\n React.createElement(\"input\", { onKeyDown: searchClickHandler, onChange: searchFieldHandler, value: searchVal, className: \"search-banner__input subscribeRibbon__input subscribeRibbon__input--search\", type: \"search\", placeholder: searchText, maxLength: 100 }))),\r\n subscribe: (React.createElement(\"div\", { className: \"subscribeRibbon__widget\" },\r\n React.createElement(\"input\", { onChange: fieldHandler, value: data, className: \"search-banner__input subscribeRibbon__input\", type: \"email\", placeholder: subscriptionText }),\r\n subscriptionButtonText && React.createElement(Button, { label: subscriptionButtonText ? subscriptionButtonText : \"\", primary: true, onClick: subscribeHandler })))\r\n };\r\n const ribbonWidget = type ? ribbonWidgetTypes[type] : undefined;\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"subscribeRibbon\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"subscribeRibbon__container\" },\r\n ribbonWidget,\r\n React.createElement(\"div\", { className: \"subscribeRibbon__actions\" },\r\n hasLayoutOptions && React.createElement(LayoutOptions, { viewHandler: viewHandler, view: view }),\r\n React.createElement(\"div\", { onClick: toggleFilters, className: \"subscribeRibbon__toggle-filters\" },\r\n React.createElement(\"p\", { className: `${hasFiltersApplied && \"active\"}` },\r\n filterText,\r\n \" \",\r\n chevronUp()))))))));\r\n};\r\nconst chevronUp = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6.708 14.708a.996.996 0 0 0 1.41 0l3.88-3.88 3.88 3.88a.998.998 0 0 0 1.41-1.41l-4.59-4.59a.996.996 0 0 0-1.41 0l-4.59 4.59c-.38.38-.38 1.02.01 1.41z\", fill: \"#fff\" })));\r\n","import * as React from \"react\";\r\nexport const Checkboxes = (props) => {\r\n const [tabActive, setTabActive] = React.useState(\"\");\r\n const fieldHandler = (title, val) => React.useCallback(() => {\r\n const dataTitle = title.replaceAll(\" \", \"\");\r\n const prevValue = props.filtersData[dataTitle] || \"\";\r\n const value = prevValue.includes(`${val},`) ? prevValue.replace(`${val},`, \"\") : `${prevValue}${val},`;\r\n const tabValueAll = prevValue.includes(props.items.join(\",\").replace(\"All,\", \"\")) ? \"\" : `${props.items.join(\",\").replace(\"All,\", \"\")},`;\r\n val === \"All\" ? props.handler(dataTitle, tabValueAll) : props.handler(dataTitle, value);\r\n }, [props.filtersData]);\r\n const inlineClass = props.inlineLayout ? \"inline\" : \"\";\r\n React.useEffect(() => {\r\n if (props.type === \"tab\") {\r\n Object.keys(props.filtersData).length && setTabActive(props.filtersData[props.title].includes(props.items.join(\",\").replace(\"All,\", \"\")) ? props.items.join(\",\") : props.filtersData[props.title]);\r\n }\r\n }, [props.filtersData]);\r\n return (props.type === \"checkbox\" ?\r\n React.createElement(\"div\", { className: `filters__field-checkboxes ${inlineClass}` }, props.items.map((item, id) => React.createElement(\"div\", { key: `checkbox-${props.id}-${id}`, className: `filters__checkbox ${inlineClass}` },\r\n React.createElement(\"input\", { checked: props.currentValue.includes(item) || false, onChange: fieldHandler(props.title, item), type: \"checkbox\", name: item, id: `checkbox-${props.id}-${id}` }),\r\n React.createElement(\"label\", { htmlFor: `checkbox-${props.id}-${id}` }),\r\n item))) : React.createElement(\"div\", { className: \"filters__tabs-container\" },\r\n React.createElement(\"div\", { className: \"filters__field-tabs\" }, props.items.map((item, id) => React.createElement(\"div\", { key: `filters-tab-${props.id}-${id}`, onClick: fieldHandler(props.title, item), className: `filters__tab ${inlineClass} ${tabActive.includes(item) ? \"filters__tab--active\" : \"\"}` }, item)))));\r\n};\r\n","import * as React from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nexport const CheckboxesDatepicker = (props) => {\r\n const [options, setOptions] = React.useState(\"\");\r\n const [checked, setChecked] = React.useState({});\r\n const [startDate, setStartDate] = React.useState(new Date());\r\n const [endDate, setEndDate] = React.useState(new Date());\r\n React.useEffect(() => {\r\n props.handler(props.title.replaceAll(\" \", \"\"), mapStringsToDates(options));\r\n }, [options]);\r\n React.useEffect(() => {\r\n toggleAll(false);\r\n }, [props.reset]);\r\n const mapStringsToDates = (str) => {\r\n let q = \"\";\r\n const today = new Date();\r\n switch (str.replace(\",\", \"\")) {\r\n case \"Today\":\r\n q = `startdate-${today.toISOString().slice(0, 10)},enddate-${new Date().toISOString().slice(0, 10)}`;\r\n break;\r\n case \"Yesterday\":\r\n q = `startdate-${new Date(today.setDate(today.getDate() - 1)).toISOString().slice(0, 10)},enddate-${new Date().toISOString().slice(0, 10)}`;\r\n break;\r\n case \"This week\":\r\n q = `startdate-${new Date(today.setDate(today.getDate() - 7)).toISOString().slice(0, 10)},enddate-${new Date().toISOString().slice(0, 10)}`;\r\n break;\r\n case \"This month\":\r\n q = `startdate-${new Date(today.setDate(today.getDate() - 30)).toISOString().slice(0, 10)},enddate-${new Date().toISOString().slice(0, 10)}`;\r\n break;\r\n case \"All time\":\r\n q = \"startdate-,enddate-\";\r\n break;\r\n default:\r\n q = str;\r\n }\r\n return q;\r\n };\r\n function updateCheckedValues(obj, updater) {\r\n const objectForUpdate = obj;\r\n for (const key in objectForUpdate) {\r\n if (objectForUpdate.hasOwnProperty(key)) {\r\n objectForUpdate[key] = updater(objectForUpdate[key]);\r\n }\r\n }\r\n return objectForUpdate;\r\n }\r\n function dateString(date, prefix) {\r\n return `${prefix}${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, \"0\")}-${date.getDate().toString().padStart(2, \"0\")}`;\r\n }\r\n const toggleAll = (val) => {\r\n const initialCheckedState = {};\r\n props.items.forEach(item => initialCheckedState[item.categoryId] = val);\r\n setChecked(initialCheckedState);\r\n setOptions(\"\");\r\n };\r\n const fieldHandler = (val, itemChecked) => React.useCallback(() => {\r\n const updateAll = updateCheckedValues(checked, (e) => e = false);\r\n const updatedChecked = itemChecked ? updateAll : { ...updateAll, [val]: true };\r\n setChecked(prevChecked => ({ ...prevChecked, ...updatedChecked }));\r\n val === \"Customised\" ?\r\n setOptions(prevCheckboxes => prevCheckboxes.includes(\"date\") ? \"\" : `startdate-${new Date().toISOString().slice(0, 10)},enddate-${new Date().toISOString().slice(0, 10)}`)\r\n : setOptions(prevCheckboxes => prevCheckboxes.includes(`${val}`) ? prevCheckboxes.replace(`${val},`, \"\") : `${val},`);\r\n }, [options, checked]);\r\n const dateHandler = (type) => React.useCallback((date) => {\r\n const startPrefix = \"startdate-\";\r\n const endPrefix = \"enddate-\";\r\n if (type === \"start\") {\r\n setStartDate(date);\r\n setOptions(`${dateString(date, startPrefix)},${dateString(endDate, endPrefix)},`);\r\n }\r\n else {\r\n setOptions(`${dateString(startDate, startPrefix)},${dateString(date, endPrefix)},`);\r\n setEndDate(date);\r\n }\r\n }, [startDate, endDate, options]);\r\n const inlineClass = props.inlineLayout ? \"inline\" : \"\";\r\n return (React.createElement(\"div\", { className: `filters__field-radios ${inlineClass}` }, props.items.map((item, id) => (React.createElement(\"div\", { key: `radio-${props.id}-${id}`, className: `filters__radio ${inlineClass} ${item.categoryTitle === \"Customised\" ? \"datepicker-box\" : \"\"}` },\r\n React.createElement(\"input\", { checked: checked[item.categoryId] || false, onChange: fieldHandler(item.categoryId, checked[item.categoryId]), type: \"radio\", name: item.categoryId, id: `radio-${props.id}-${id}` }),\r\n React.createElement(\"label\", { htmlFor: `radio-${props.id}-${id}` }),\r\n item.categoryTitle,\r\n item.categoryTitle === \"Customised\" &&\r\n React.createElement(\"div\", { className: \"datepickers\" },\r\n React.createElement(DatePicker, { disabled: !checked[\"Customised\"], selected: startDate, onChange: dateHandler(\"start\"), selectsStart: true, startDate: startDate, maxDate: endDate }),\r\n React.createElement(DatePicker, { disabled: !checked[\"Customised\"], selected: endDate, onChange: dateHandler(\"end\"), selectsEnd: true, startDate: endDate, minDate: startDate })))))));\r\n};\r\n","import * as React from \"react\";\r\nexport const Range = (props) => {\r\n const [range, setRangeValue] = React.useState(props.value ? props.value : 0);\r\n const [step, setStep] = React.useState(0);\r\n const ref = React.useRef(undefined);\r\n React.useEffect(() => {\r\n setRange();\r\n if (ref.current !== undefined) {\r\n const rangeLinePadding = 16;\r\n const calcStep = (ref.current.offsetWidth - rangeLinePadding) / (props.max - props.min);\r\n setStep(calcStep);\r\n }\r\n }, []);\r\n React.useEffect(() => {\r\n setRangeValue(props.max / 2),\r\n setTimeout(() => setRange());\r\n }, [props.reset]);\r\n const onRangeInput = (element) => {\r\n {\r\n const valPercent = (element.valueAsNumber - parseInt(element.min)) / (parseInt(element.max) - parseInt(element.min));\r\n const style = `background-image: -webkit-gradient(linear, 0% 0%, 100% 0%, color-stop(${valPercent}, #0E1D31), color-stop(${valPercent}, #f2f4f6))`;\r\n element.setAttribute(\"style\", style);\r\n }\r\n };\r\n const setRange = () => {\r\n document?.querySelectorAll(\".range\")?.forEach(function (el) {\r\n const element = el;\r\n onRangeInput(element);\r\n });\r\n };\r\n React.useEffect(() => {\r\n props.handler(props.title.replaceAll(\" \", \"\"), range);\r\n }, [range]);\r\n const fieldHandler = React.useCallback((e) => {\r\n setRangeValue(e.target.value);\r\n setRange();\r\n }, [range, props.data]);\r\n return (React.createElement(\"div\", { className: \"range__container\" },\r\n React.createElement(\"input\", { ref: ref, onInput: fieldHandler, className: \"range\", id: `range-${props.id}`, type: \"range\", value: range, min: props.min, max: props.max }),\r\n React.createElement(\"label\", { htmlFor: \"range\", style: {\r\n transform: `translateX(${range * step - step * props.min}px)`,\r\n } },\r\n React.createElement(\"sub\", null,\r\n \" \",\r\n range * 1 !== props.max ? `${range}min.` : `${range}min+`,\r\n \" \")),\r\n React.createElement(\"div\", { className: \"range__options\" }, [...Array(10).keys()].filter(item => item % (props.max / 5) === 0).map((el, i) => React.createElement(\"sub\", { key: `range__option-${i}`, className: \"range__option\" }, i !== 4 ? `${el + 1} min.` : `${props.max} min+`)))));\r\n};\r\n","export const getFilterItemsType = (filterData) => {\r\n const firstItem = filterData.items[0];\r\n if (typeof firstItem === \"string\") {\r\n return \"string\";\r\n }\r\n if (typeof firstItem === \"object\") {\r\n return \"object\";\r\n }\r\n return undefined;\r\n};\r\n","import * as React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { IconClose } from \"../svgIcons\";\r\nimport { Checkboxes } from \"./Checkboxes/Checkboxes\";\r\nimport { CheckboxesDatepicker } from \"./Checkboxes/CheckboxesDatepicker\";\r\nimport { Range } from \"./Range/Range\";\r\nimport { getFilterItemsType } from \"./utils\";\r\nexport const Filters = ({ resetText, applyText, fields, data, setData, reset, setReset, submit, filterToggle, areAnyFiltersSet, checkAll, }) => {\r\n const [hasValuesToClear, setHasValuesToClear] = React.useState(false);\r\n const getCurrentlySelectedItem = (filterField, data) => {\r\n const dataKey = filterField.title.replaceAll(\" \", \"\");\r\n const dataValue = data[dataKey];\r\n if (filterField.type === \"range\") {\r\n return \"\";\r\n }\r\n if (filterField.type === \"checkbox\") {\r\n const values = (dataValue || \"\").split(\",\");\r\n return values;\r\n }\r\n if (filterField.type === \"checkbox-date\") {\r\n return dataValue;\r\n }\r\n return \"\";\r\n };\r\n const extendedFields = fields.map((filterField) => ({\r\n ...filterField,\r\n currentValue: getCurrentlySelectedItem(filterField, data)\r\n }));\r\n const resetFilters = React.useCallback(() => {\r\n const newData = {};\r\n fields.forEach((field) => {\r\n newData[field.title.replaceAll(\" \", \"\")] = \"\";\r\n });\r\n setData(newData);\r\n }, [fields, setData]);\r\n const resetHandler = React.useCallback((e) => {\r\n e.preventDefault();\r\n setReset(e);\r\n resetFilters();\r\n filterToggle(false);\r\n }, [filterToggle, resetFilters, setReset]);\r\n const applyFilters = React.useCallback((e) => {\r\n e.preventDefault();\r\n let q = \"\";\r\n Object.keys(data).map(k => q += `${data[k].title}=${data[k].value}`);\r\n submit(q);\r\n filterToggle(false);\r\n }, [data, filterToggle, submit]);\r\n React.useEffect(() => {\r\n if (!areAnyFiltersSet) {\r\n resetFilters();\r\n }\r\n }, [areAnyFiltersSet, resetFilters]);\r\n const fieldHandler = React.useCallback((title, v) => {\r\n setData(prevData => {\r\n const copiedData = { ...prevData };\r\n return {\r\n ...copiedData,\r\n [title]: v\r\n };\r\n });\r\n }, [setData]);\r\n const closeFilters = React.useCallback(() => filterToggle(false), [filterToggle]);\r\n React.useEffect(() => {\r\n const dataValues = Object.values(data);\r\n const validValues = dataValues.filter((a) => a !== \"\");\r\n if (validValues.length > 0) {\r\n setHasValuesToClear(true);\r\n }\r\n if (validValues.length === 0) {\r\n setHasValuesToClear(false);\r\n }\r\n }, [data]);\r\n const processFilterItems = React.useCallback((index) => {\r\n const fieldType = fields[index].type;\r\n const itemsType = getFilterItemsType(fields[index]);\r\n const filterItems = fields[index].items;\r\n if (itemsType === \"string\") {\r\n if (fieldType === \"checkbox-date\") {\r\n return filterItems.map((item) => ({\r\n categoryId: item,\r\n categoryTitle: item\r\n }));\r\n }\r\n return filterItems.map(item => item);\r\n }\r\n if (itemsType === \"object\") {\r\n return filterItems.map((a) => a.categoryTitle);\r\n }\r\n return [];\r\n }, [fields]);\r\n const getFieldDisplayText = (field) => field.displayText || field.title;\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"filters\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h4\", { className: \"filters__header\" },\r\n \"Filters\",\r\n React.createElement(\"span\", { onClick: closeFilters, className: \"filters__close\" }, IconClose())),\r\n React.createElement(\"div\", { className: \"filters__wrap\" },\r\n React.createElement(\"div\", { className: \"filters__container\" }, extendedFields.map((field, i) => (React.createElement(\"div\", { key: `filter-${i}`, className: `filters__field filters__field-${field.type}` },\r\n React.createElement(\"div\", { className: \"filters__field-title caption-bold\" },\r\n getFieldDisplayText(field),\r\n \" \",\r\n field.type === \"checkbox\" && React.createElement(\"a\", { href: \"#\", onClick: checkAll(field.title) }, \"Select all\")),\r\n field.type === \"range\" && React.createElement(Range, { reset: reset, title: field.title, handler: fieldHandler, data: fields, value: 5, min: field.min, max: field.max, id: i }),\r\n (field.type === \"checkbox\" || field.type === \"tab\") &&\r\n React.createElement(Checkboxes, { type: field.type, checkAll: checkAll[field.title], handler: fieldHandler, data: fields, filtersData: data, inlineLayout: field.inlineLayout, title: field.title, items: processFilterItems(i), id: i, currentValue: field.currentValue }),\r\n field.type === \"checkbox-date\" &&\r\n React.createElement(CheckboxesDatepicker, { reset: reset, handler: fieldHandler, data: fields, inlineLayout: field.inlineLayout, title: field.title, items: processFilterItems(i), id: i })))))),\r\n React.createElement(\"div\", { className: \"filters__actions\" },\r\n (hasValuesToClear) && React.createElement(\"a\", { href: \"#\", onClick: resetHandler, className: \"filters__reset\" }, resetText),\r\n React.createElement(ButtonV2, { onClick: applyFilters, design: \"ghost-medium-wbg\" }, applyText))))));\r\n};\r\n","import React from \"react\";\r\nimport { Button } from \"../Button\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const TradersGym = (props) => (React.createElement(\"div\", { className: \"traders-gym\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"traders-gym__inner\" },\r\n React.createElement(\"div\", { className: \"traders-gym__desktop\" },\r\n React.createElement(\"div\", { className: \"traders-gym__content\" },\r\n React.createElement(\"h1\", { dangerouslySetInnerHTML: {\r\n __html: props.title,\r\n } }),\r\n React.createElement(\"div\", { className: \"traders-gym__content-inner\" },\r\n React.createElement(\"p\", null, props.text),\r\n React.createElement(Button, { label: props.linkText, href: props.linkUrl, primary: true }))),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt })),\r\n React.createElement(\"div\", { className: \"traders-gym__mobile\" },\r\n React.createElement(\"h1\", { dangerouslySetInnerHTML: { __html: props.title } }),\r\n React.createElement(\"p\", null, props.text),\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt }),\r\n React.createElement(Button, { label: props.linkText, href: props.linkUrl, primary: true })))))));\r\n","import React, { useCallback } from \"react\";\r\nexport const AlphabetsSearchCard = ({ title, linkURL, onClick, icon }) => {\r\n const handleClick = useCallback((e) => {\r\n if (onClick) {\r\n e.preventDefault();\r\n onClick();\r\n }\r\n }, [onClick]);\r\n const activeClass = window.location.pathname === linkURL ? \"alphabets-search-card__title--active\" : \"\";\r\n return (React.createElement(\"a\", { href: linkURL || \"#\", className: \"alphabets-search-card\", onClick: handleClick },\r\n React.createElement(\"div\", { className: `alphabets-search-card__title centered-container ${activeClass}` },\r\n React.createElement(\"span\", { className: \"alphabets-search-card__text p-regular\" }, icon || title))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { AlphabetsSearchCard } from \"./AlphabetsSearchCard/AlphabetsSearchCard\";\r\nimport { IconHome } from \"../svgIcons/homeIcon\";\r\nexport const AlphabetsSearch = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const homelink = window.location.pathname.split(\"/\").slice(0, -1).join(\"/\");\r\n const content = props.noWrappers ?\r\n React.createElement(\"div\", { className: \"alphabets-search\" },\r\n React.createElement(\"div\", { className: \"alphabets-search__title-container\" },\r\n React.createElement(\"p\", null, props.title)),\r\n React.createElement(\"div\", { className: \"alphabets-search__container\" },\r\n React.createElement(AlphabetsSearchCard, { title: \"\", icon: IconHome, linkURL: homelink }),\r\n props.content.map((item, i) => React.createElement(AlphabetsSearchCard, { key: `alphabets-search-${i}`, ...item })))) :\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"alphabets-search\" },\r\n React.createElement(\"div\", { className: \"alphabets-search__title-container\" },\r\n React.createElement(\"p\", null, props.title)),\r\n React.createElement(\"div\", { className: \"alphabets-search__container\" },\r\n React.createElement(AlphabetsSearchCard, { title: \"\", icon: IconHome, linkURL: homelink }),\r\n props.content.map((item, i) => React.createElement(AlphabetsSearchCard, { key: `alphabets-search-${i}`, ...item }))))));\r\n return content;\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nexport const CardsGridIconAndTitle = ({ cards, backgroundColor, noWrappers, title, activeCardValue }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const handleActiveCard = useCallback((index) => {\r\n if (activeCardValue === cards[index].description.toLocaleLowerCase()) {\r\n return \"active-card\";\r\n }\r\n return \"\";\r\n }, [activeCardValue, cards]);\r\n const card = useCallback((card, i) => React.createElement(\"a\", { href: card.linkUrl, key: i, className: `cards-grid-icon-and-title__card bg-color-neutral-accent-background centered-container color-dark-default ${handleActiveCard(i)}` },\r\n React.createElement(\"div\", { className: \"cards-grid-icon-and-title__inner\" },\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"img\", { width: \"24px\", src: card.imageUrl, alt: card.imageAlt })),\r\n React.createElement(\"div\", { className: \"p-bold cards-grid-icon-and-title__text-container centered-container\" },\r\n React.createElement(\"p\", { className: \"p-bold cards-grid-icon-and-title__text-description centered-container\" }, card.description)))), [handleActiveCard]);\r\n const content = noWrappers ?\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-icon-and-title\" },\r\n title &&\r\n React.createElement(\"div\", { className: \"alphabets-search__title-container\" },\r\n React.createElement(\"p\", null, title)),\r\n React.createElement(\"div\", { className: \"cards-grid-icon-and-title__cards-grid\" }, cards.map((c, i) => card(c, i)))) :\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-icon-and-title\" },\r\n React.createElement(\"div\", { className: \"cards-grid-icon-and-title__cards-grid\" }, cards.map((c, i) => card(c, i))))));\r\n return content;\r\n};\r\n","import React from \"react\";\r\nimport { AlphabetList } from \"../AlphabetList/AlphabetList\";\r\nimport { AlphabetsSearch } from \"../AlphabetsSearch\";\r\nimport { CardsGridIconAndTitle } from \"../CardsGridIconAndTitle\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nexport const TradingGlossary = (props) => (React.createElement(\"div\", { className: \"trading-glossary\" },\r\n React.createElement(\"div\", { className: \"trading-glossary__main\" },\r\n React.createElement(AlphabetList, { ...props.list, noResultsText: props.noResultsText, searchResultsText: props.searchResultsText, searchQuery: props.searchQuery })),\r\n React.createElement(\"div\", { className: \"trading-glossary__side-bar\" },\r\n React.createElement(AlphabetsSearch, { ...props.alphabetContent }),\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"40px\" }),\r\n React.createElement(CardsGridIconAndTitle, { ...props.categories, activeCardValue: props.list.title }))));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nexport const SectionHeader = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"largeImageSection\" },\r\n React.createElement(Container, null,\r\n props.title && React.createElement(\"h2\", null, props.title),\r\n props.subtitle && React.createElement(\"p\", null, props.subtitle)))));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const BrokerLocationMap = ({ title, subtitle, imageUrl, imageAlt, backgroundColor }) => {\r\n const { textColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"broker-location-map\", style: { \"--text-color\": textColor } },\r\n React.createElement(\"h2\", { className: \"broker-location-map__title\", dangerouslySetInnerHTML: { __html: title } }),\r\n React.createElement(\"h6\", { className: \"broker-location-map__subtitle\", dangerouslySetInnerHTML: { __html: subtitle } }),\r\n React.createElement(Img, { className: \"broker-location-map__mapImage\", alt: imageAlt, src: imageUrl })))));\r\n};\r\n","import React from \"react\";\r\nexport const ellipse = () => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"4\", height: \"4\", viewBox: \"0 0 4 4\", fill: \"none\" },\r\n React.createElement(\"circle\", { cx: \"2\", cy: \"2\", r: \"2\", fill: \"#878787\", fillOpacity: \"0.35\" })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ellipse } from \"../svgIcons/ellipse\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nexport const LatestMarketNews = (props) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n let numberOfCharacters = 0;\r\n isSmall ? numberOfCharacters = 42 : (isMedium ? numberOfCharacters = 85 : (isLarge ? numberOfCharacters = 83 : 0));\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"latest-market-news\" },\r\n React.createElement(\"div\", { className: \"latest-market-news__title\" },\r\n React.createElement(\"h1\", { className: \"h1-regular-small\" }, props.title)),\r\n React.createElement(\"div\", { className: \"latest-market-news__container\" },\r\n React.createElement(\"div\", { className: \"latest-market-news__last-news\", style: { backgroundImage: `url(${props.news[0].imageURL})` } },\r\n React.createElement(\"div\", { className: \"latest-market-news__image\" },\r\n React.createElement(\"div\", { className: \"latest-market-news__text\" },\r\n React.createElement(\"a\", { href: props.news[0].articleURL },\r\n React.createElement(\"div\", { className: \"latest-market-news__news-details\" },\r\n React.createElement(\"div\", { className: \"latest-market-news__left-details\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", { className: \"latest-market-news__green-text\" }, props.news[0].articleCfdTrading),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"latest-market-news__category-text\" }, props.news[0].articleCategory),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"latest-market-news__date-text\" }, new Date(props.news[0].articleDate ? props.news[0].articleDate : \"\").toDateString().slice(4)))),\r\n React.createElement(\"div\", { className: \"latest-market-news__right-details\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", { className: \"latest-market-news__author-text\" }, props.news[0].articleAuthor)))),\r\n React.createElement(\"div\", { className: \"latest-market-news__news-title\" },\r\n React.createElement(\"h4\", null, props.news[0].articleTitle)),\r\n React.createElement(\"div\", { className: \"latest-market-news__news-summary\" },\r\n React.createElement(\"p\", null,\r\n props.news[0].articleSummary.slice(0, numberOfCharacters),\r\n \"...\")))))),\r\n React.createElement(\"div\", { className: \"latest-market-news__news-list\" }, props.news.map((item, i) => {\r\n if (i > 0) {\r\n return (React.createElement(\"div\", { key: `news-number-${i}`, className: `latest-market-news__news-list-item-${i}` },\r\n React.createElement(\"a\", { className: `latest-market-news__item-container-${i}`, href: item.articleURL },\r\n React.createElement(\"div\", { className: \"latest-market-news__item-details\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", { className: \"latest-market-news__green-text\" }, item.articleCfdTrading),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"latest-market-news__list-category-text\" }, item.articleCategory),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"latest-market-news__list-date-text\" }, new Date(item.articleDate ? item.articleDate : \"\").toDateString().slice(4)))),\r\n React.createElement(\"div\", { className: \"latest-market-news__item-title\" },\r\n React.createElement(\"h4\", null, item.articleTitle)))));\r\n }\r\n return \"\";\r\n })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { useMarketSentiment } from \"../../hooks\";\r\nimport { getColors } from \"../../utils\";\r\nimport { handIcon } from \"../svgIcons\";\r\nconst CardComponent = ({ symbol, longPercent, shortPercent, baseLinkUrl, startTradingUrl }) => {\r\n const longValue = parseFloat(longPercent);\r\n const shortValue = parseFloat(shortPercent);\r\n if (isNaN(longValue) || isNaN(shortValue) || longValue + shortValue !== 100) {\r\n return React.createElement(React.Fragment, null);\r\n }\r\n const renderCardContent = () => ((React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__card-outline\" },\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__card-inner\" },\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__title caption-bold color-dark-default\" }, symbol),\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__bar\" },\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__percent-bar-main\" },\r\n React.createElement(\"div\", { style: { width: `${longPercent}` }, className: \"instruments-buy-sell-cards-bar__percent-bar-green\" }))),\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar__percent flex color-dark-default caption\" },\r\n React.createElement(\"div\", null, longPercent),\r\n React.createElement(\"div\", null, shortPercent))))));\r\n const instrumentLinkUrl = baseLinkUrl ? baseLinkUrl + symbol.toLowerCase() : symbol.toLowerCase();\r\n const linkUrl = startTradingUrl ? startTradingUrl : instrumentLinkUrl;\r\n return (React.createElement(\"a\", { href: linkUrl, target: \"_blank\", className: \"instruments-buy-sell-cards-bar__card-link\", rel: \"noreferrer\" }, renderCardContent()));\r\n};\r\nexport const InstrumentsBuySellCardsBar = ({ title, designStyles, symbols, securityKey, baseLinkUrl, startTradingUrl, startTradingDescription }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n const { marketSentiments, error } = useMarketSentiment(symbols || \"USDJPY,USDCAD,EURUSD,US30,GER30,XAUUSD,GBPUSD,AUDUSD\", securityKey || \"zzz9bbb59df534b077c0e9a7e425ea97ffc\");\r\n if (error || !marketSentiments.length) {\r\n return React.createElement(React.Fragment, null);\r\n }\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"instruments-buy-sell-cards-bar\", style: { color: textColor } },\r\n React.createElement(\"div\", { className: \"caption-bold instruments-buy-sell-cards-bar__mini-title\" },\r\n title,\r\n React.createElement(\"span\", { className: \"caption flex\" },\r\n startTradingDescription && handIcon,\r\n startTradingDescription)),\r\n React.createElement(\"div\", null,\r\n React.createElement(Swiper, { spaceBetween: 8, slidesPerView: \"auto\" }, marketSentiments?.map((card) => React.createElement(SwiperSlide, { key: `platforms-slider-slide-${card.symbol}${card.longPercent}` },\r\n React.createElement(CardComponent, { symbol: card.symbol, baseLinkUrl: baseLinkUrl, startTradingUrl: startTradingUrl, longPercent: card.longPercent, shortPercent: card.shortPercent })))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { FiltersRibbon } from \"../FiltersRibbon\";\r\nimport { NewsCardDeck, VideoCardDeck, VideoCardDeckWithPagination } from \"../Cards\";\r\nimport { Filters } from \"../Filters\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nimport { LatestMarketNews } from \"../LatestMarketNews\";\r\nimport { InstrumentsBuySellCardsBar } from \"../InstrumentsBuySellCardsBar\";\r\nimport { getFilterItemsType } from \"../Filters/utils\";\r\nimport { usePagination } from \"../../hooks\";\r\nfunction isVideoCardArr(containsVideos, cards) {\r\n return containsVideos;\r\n}\r\nexport const FilterCards = (props) => {\r\n const [listView, setListView] = React.useState(false);\r\n const [filtersActive, setFiltersActive] = React.useState(false);\r\n const [filtersData, setFiltersData] = React.useState({});\r\n const [resetFilters, setResetFilters] = React.useState(0);\r\n const [cards, setCards] = React.useState([]);\r\n const [searchQuery, setSearchQuery] = React.useState(\"\");\r\n const [isFilterOrSearchApplied, setIsFilterOrSearchApplied] = React.useState(false);\r\n const [hasFiltersApplied, setHasFiltersApplied] = React.useState(false);\r\n const getSlicedCards = ((cards) => cards.slice(props.dropInitialCards || 0));\r\n const getAdjustedCards = (cards) => {\r\n if (props.containsVideos && searchQuery) {\r\n return cards.filter((card) => card.title.toLowerCase().includes(searchQuery.toLocaleLowerCase()));\r\n }\r\n return cards;\r\n };\r\n const adjustedCards = getAdjustedCards(getSlicedCards(cards));\r\n const { currentPage, currentPageItems, numOfPages, setCurrentPage } = usePagination(adjustedCards, 10);\r\n const getConditionalRenderingContext = () => {\r\n const hasCards = currentPageItems.length > 0;\r\n const areAnyFiltersSet = Object.values(filtersData).filter(el => el !== \"\" && el !== 5).length > 0;\r\n const isSearch = searchQuery !== \"\";\r\n const isFilteredResult = isFilterOrSearchApplied && searchQuery === \"\";\r\n const shouldShowLatestNews = hasCards && !isFilterOrSearchApplied;\r\n return {\r\n hasCards,\r\n areAnyFiltersSet,\r\n isFilteredResult,\r\n isSearch,\r\n shouldShowLatestNews,\r\n };\r\n };\r\n const { areAnyFiltersSet, isSearch, isFilteredResult, shouldShowLatestNews, } = getConditionalRenderingContext();\r\n const getInitialCheckedAllState = React.useCallback(() => props.fields.reduce((acc, item) => {\r\n acc[item.title] = false;\r\n return acc;\r\n }, {}), [props.fields]);\r\n const [checkedAll, setCheckedAll] = React.useState(() => getInitialCheckedAllState());\r\n const getDataKeyForFilterTitle = (filterTitle) => filterTitle.replaceAll(\" \", \"\");\r\n const checkAll = React.useCallback((item) => (e) => {\r\n e.preventDefault();\r\n const field = props.fields.find(field => field.title === item);\r\n if (!field || field.type !== \"checkbox\" || typeof field.items === \"undefined\") {\r\n return;\r\n }\r\n const itemsType = getFilterItemsType(field);\r\n const getNewValue = () => {\r\n if (itemsType === \"string\") {\r\n return field.items;\r\n }\r\n if (itemsType === \"object\") {\r\n return field.items.map((a) => a.categoryTitle);\r\n }\r\n return [];\r\n };\r\n const newValue = getNewValue();\r\n const mustCheckAll = !checkedAll[item];\r\n const fieldItems = newValue;\r\n const allValues = mustCheckAll ? fieldItems.join(\",\") : \"\";\r\n const dataKey = getDataKeyForFilterTitle(item);\r\n setFiltersData(prevFilterData => ({\r\n ...prevFilterData,\r\n [dataKey]: allValues,\r\n }));\r\n setCheckedAll({ ...checkedAll, [item]: !checkedAll[item] });\r\n }, [checkedAll, props.fields]);\r\n const handlerHasFiltersApplied = React.useCallback((value) => {\r\n if (value.includes(\"Difficulty\") || value.includes(\"Category\") || value.includes(\"Readingtime\")) {\r\n setHasFiltersApplied(true);\r\n return;\r\n }\r\n setHasFiltersApplied(false);\r\n }, []);\r\n const fetchArticles = React.useCallback((q) => {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ culture: props.culture, ...q })\r\n };\r\n handlerHasFiltersApplied(requestOptions.body);\r\n const endpoint = props.allArticles ? \"FilterAcademyArticles\" : (props.containsVideos ? \"FilterVideos\" : \"FilterArticles\");\r\n fetch(`/api/${endpoint}?token=${props.token}`, requestOptions)\r\n .then((response) => response.json())\r\n .then((responseData) => {\r\n setCards(responseData);\r\n setCurrentPage(0);\r\n })\r\n .catch(err => console.warn(err));\r\n }, [handlerHasFiltersApplied, props.allArticles, props.containsVideos, props.culture, props.token, setCurrentPage]);\r\n React.useEffect(() => {\r\n fetchArticles({});\r\n setIsFilterOrSearchApplied(false);\r\n }, [fetchArticles]);\r\n const handleSearchQuery = React.useCallback((searchText) => {\r\n fetchArticles({ searchString: searchText });\r\n setSearchQuery(searchText);\r\n setFiltersData({});\r\n setResetFilters(Math.random() * 100);\r\n }, [fetchArticles]);\r\n const dataHandler = React.useCallback((d) => {\r\n setFiltersData(d);\r\n }, []);\r\n const filterHandier = React.useCallback(() => {\r\n const o = Object.fromEntries(Object.entries(filtersData).filter(([, v]) => v !== \"\"));\r\n Object.keys(o).map((el) => {\r\n const type = props.fields.filter(f => f.title.replaceAll(\" \", \"\") === el)[0].type;\r\n if ((type === \"range\")) {\r\n o[el] = o[el] * 1;\r\n }\r\n else if (type === \"checkbox-date\") {\r\n const startDate = o[el].split(\",\").filter((v) => v !== \"\")[0]?.replace(\"startdate-\", \"\");\r\n const endDate = o[el].split(\",\").filter((v) => v !== \"\")[1]?.replace(\"enddate-\", \"\");\r\n if (startDate) {\r\n o[\"Date\"] = startDate;\r\n }\r\n if (endDate) {\r\n o[\"EndDate\"] = endDate;\r\n }\r\n delete o[el];\r\n }\r\n else {\r\n o[el] = o[el].split(\",\").filter((v) => v !== \"\").filter((v) => v !== \"All\");\r\n Object.keys(o).map(el => (!o[el].length && typeof (o[el]) !== \"number\") ? delete o[el] : o[el]);\r\n }\r\n });\r\n fetchArticles(o);\r\n setSearchQuery(\"\");\r\n setIsFilterOrSearchApplied(true);\r\n }, [fetchArticles, filtersData, props.fields]);\r\n const resetHandler = React.useCallback((e) => {\r\n e.preventDefault();\r\n setResetFilters(Math.random() * 100);\r\n const newFilters = {};\r\n Object.keys(filtersData).map(e => newFilters[e] = \"\");\r\n setFiltersData(newFilters);\r\n setCheckedAll(getInitialCheckedAllState());\r\n fetchArticles({});\r\n setIsFilterOrSearchApplied(false);\r\n setSearchQuery(\"\");\r\n setHasFiltersApplied(false);\r\n }, [filtersData, getInitialCheckedAllState, fetchArticles]);\r\n const filtersRibbonElement = React.createElement(FiltersRibbon, { subscriptionButtonText: props.subscriptionButtonText, subscriptionText: props.subscriptionText, filterText: props.filterText, type: \"search\", filterToggle: setFiltersActive, filters: filtersActive, viewToggle: setListView, view: listView, searchQuery: searchQuery, setSearchQuery: handleSearchQuery, searchText: props.searchText, hasFiltersApplied: hasFiltersApplied });\r\n const filtersElement = React.createElement(Filters, { filterToggle: setFiltersActive, submit: filterHandier, reset: resetFilters, setReset: resetHandler, fields: props.fields, data: filtersData, setData: dataHandler, resetText: props.resetText, applyText: props.applyText, areAnyFiltersSet: areAnyFiltersSet, checkedAll: checkedAll, checkAll: checkAll });\r\n const mostTradedContent = (props.mostTradedIntruments && props.mostTradedIntrumentsTitle && props.securityKey) && React.createElement(InstrumentsBuySellCardsBar, { title: props.mostTradedIntrumentsTitle, symbols: props.mostTradedIntruments, securityKey: props.securityKey, startTradingUrl: props.startTradingUrl, startTradingDescription: props.startTradingDescription });\r\n const showClearFilters = React.useMemo(() => (isFilteredResult || searchQuery), [isFilteredResult, searchQuery]);\r\n const renderNewsContent = (cards) => {\r\n let deckTitle = \"All news\";\r\n if (isSearch) {\r\n deckTitle = \"Search results\";\r\n }\r\n else if (isFilteredResult) {\r\n deckTitle = \"Filter results\";\r\n }\r\n return (React.createElement(React.Fragment, null,\r\n shouldShowLatestNews && React.createElement(LatestMarketNews, { news: cards?.slice(0, 5), title: props.title || \"\" }),\r\n React.createElement(Gap, { mobileGap: \"24px\", desktopGap: \"48px\", gapColor: \"#fff\" }),\r\n mostTradedContent,\r\n React.createElement(Gap, { mobileGap: \"24px\", desktopGap: \"48px\", gapColor: \"#fff\" }),\r\n React.createElement(NewsCardDeck, { currentPage: currentPage, currentPageItems: currentPageItems, numOfPages: numOfPages, setCurrentPage: setCurrentPage, title: deckTitle, isListView: listView, filtersToggle: setFiltersActive, areFiltersDisplayed: filtersActive, filtersRibbonElement: filtersRibbonElement, filtersElement: filtersElement, twitterFeed: props.twitterFeed },\r\n React.createElement(\"p\", { className: \"filter-cards__results-count\" },\r\n adjustedCards.length,\r\n \" results found\",\r\n \" \",\r\n (showClearFilters) && React.createElement(\"a\", { href: \"#\", onClick: resetHandler, className: \"filters__reset\" }, props.resetText)))));\r\n };\r\n const renderContent = () => {\r\n const videoCards = (c) => {\r\n if (Object.values(filtersData).filter(el => el !== \"\").length || searchQuery) {\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"40px\" }),\r\n React.createElement(VideoCardDeckWithPagination, { cards: c, title: \"Filter results\", filtersRibbonElement: filtersRibbonElement, filtersElement: filtersElement },\r\n React.createElement(\"p\", { className: \"filter-cards__results-count\" },\r\n c.length,\r\n \" results found\",\r\n \" \",\r\n React.createElement(\"a\", { href: \"#\", onClick: resetHandler, className: \"filters__reset\" }, props.resetText)))));\r\n }\r\n const latestVideoCards = c?.slice(0, 3);\r\n const pastVideoCards = c?.slice(3);\r\n return (React.createElement(React.Fragment, null,\r\n filtersRibbonElement,\r\n filtersElement,\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"40px\" }),\r\n React.createElement(VideoCardDeck, { cards: latestVideoCards, title: \"Trending videos\", isSliderOnMobile: false, webSiteRootUrl: props.webSiteRootUrl }),\r\n React.createElement(Gap, { mobileGap: \"64px\", desktopGap: \"80px\" }),\r\n React.createElement(VideoCardDeckWithPagination, { cards: pastVideoCards, title: \"All videos\", webSiteRootUrl: props.webSiteRootUrl })));\r\n };\r\n if (props.allArticles) {\r\n return React.createElement(React.Fragment, null);\r\n }\r\n else {\r\n if (isVideoCardArr(props.containsVideos, currentPageItems)) {\r\n return videoCards(currentPageItems);\r\n }\r\n return renderNewsContent(currentPageItems);\r\n }\r\n };\r\n React.useEffect(() => {\r\n document.body.classList.toggle(\"body-scroll-disabled\", filtersActive);\r\n }, [filtersActive]);\r\n return (React.createElement(\"div\", { className: \"filter-cards__container\" },\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: `filter-cards ${filtersActive ? \"active-filters\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"filters-overlay\" }),\r\n renderContent()))));\r\n};\r\n","import React from \"react\";\r\nimport { Dropdown } from \"../../../Dropdown\";\r\nexport const DropdownFilter = ({ options, selectedOption, onSelect, filterTitle, placeholder }) => (React.createElement(\"div\", { className: \"dropdown-filter\" },\r\n React.createElement(\"label\", null,\r\n filterTitle,\r\n React.createElement(Dropdown, { options: options, onSelect: onSelect, classes: \"dropdown-filter__select\", selectedOption: selectedOption, placeholder: placeholder, isPlaceholderDisabled: false, style: { backgroundColor: \"#F2F6F6\" } }))));\r\n","import React, { useCallback } from \"react\";\r\nexport const TabsFilter = ({ options, onSelect, selectedOption, filterTitle }) => {\r\n const handleChange = useCallback((event) => {\r\n if (onSelect) {\r\n onSelect(event.target.value);\r\n }\r\n }, [onSelect]);\r\n return (React.createElement(\"div\", { className: \"tabs-filter\" },\r\n React.createElement(\"fieldset\", null,\r\n React.createElement(\"legend\", null, filterTitle),\r\n React.createElement(\"div\", { className: \"tabs-filter__radios-container\" }, options.map((option, index) => {\r\n const [optionText, optionValue] = typeof option === \"string\" ? [option, option] : [option.text, option.value];\r\n return (React.createElement(\"label\", { key: index, className: \"tabs-filter__tab\" },\r\n React.createElement(\"input\", { type: \"radio\", onChange: handleChange, value: optionValue, checked: selectedOption === optionValue }),\r\n React.createElement(\"span\", null, optionText)));\r\n })))));\r\n};\r\n","import React from \"react\";\r\nimport { DropdownFilter, TabsFilter } from \"../../FilterUIs\";\r\nexport const ContractSpecsFilterFactory = ({ filterType, options, onSelect, selectedOption, filterTitle, placeholder }) => (React.createElement(React.Fragment, null,\r\n filterType === \"dropdown\" && React.createElement(DropdownFilter, { options: options, onSelect: onSelect, selectedOption: selectedOption, filterTitle: filterTitle, placeholder: placeholder }),\r\n filterType === \"tabs\" && React.createElement(TabsFilter, { options: options, onSelect: onSelect, selectedOption: selectedOption, filterTitle: filterTitle })));\r\n","import React from \"react\";\r\nimport { ContractSpecsFilterFactory } from \"./ContractSpecsFilterFactory\";\r\nexport const getConditionalValue = (preferredValue, fallbackValue) => preferredValue || fallbackValue;\r\nconst getAdjustedFilterOptions = (options, optionsTexts) => {\r\n if (!options) {\r\n return;\r\n }\r\n return options.map((option, index) => {\r\n if (typeof option === \"string\") {\r\n return {\r\n value: option,\r\n text: optionsTexts?.[index] || option\r\n };\r\n }\r\n return {\r\n value: option.value,\r\n text: optionsTexts?.[index] || option.text || option.value\r\n };\r\n });\r\n};\r\nexport const ContractSpecsFilterSet = ({ positionQualities, countries, currencies, accountTypes, instrumentSubtypes, leverageTypes, activePositionQuality, activeCountry, activeCurrency, activeAccountType, activeInstrumentSubtype, activeLeverageType, onPositionQualityChange, onCountryChange, onCurrencyChange, onAccountTypeChange, onInstrumentSubtypeChange, onLeverageTypeChange, filtersTranslations }) => {\r\n const allPossibleFiltersOrdered = [\r\n {\r\n options: getAdjustedFilterOptions(accountTypes?.options, filtersTranslations?.accountTypes?.options),\r\n filterType: \"dropdown\",\r\n onSelect: onAccountTypeChange,\r\n selectedOption: activeAccountType,\r\n filterTitle: getConditionalValue(filtersTranslations?.accountTypes?.title, \"Account Type\"),\r\n },\r\n {\r\n options: getAdjustedFilterOptions(positionQualities?.options, filtersTranslations?.positionQualities?.options),\r\n filterType: \"tabs\",\r\n onSelect: onPositionQualityChange,\r\n selectedOption: activePositionQuality,\r\n filterTitle: getConditionalValue(filtersTranslations?.positionQualities?.title, \"Type\"),\r\n },\r\n {\r\n options: getAdjustedFilterOptions(instrumentSubtypes?.options, filtersTranslations?.instrumentSubtypes?.options),\r\n filterType: \"tabs\",\r\n onSelect: onInstrumentSubtypeChange,\r\n selectedOption: activeInstrumentSubtype,\r\n filterTitle: getConditionalValue(filtersTranslations?.instrumentSubtypes?.title, \"Platform\"),\r\n },\r\n {\r\n options: getAdjustedFilterOptions(countries?.options, filtersTranslations?.countries?.options),\r\n filterType: \"dropdown\",\r\n onSelect: onCountryChange,\r\n selectedOption: activeCountry,\r\n filterTitle: getConditionalValue(filtersTranslations?.countries?.title, \"Country\"),\r\n placeholder: \"-\"\r\n },\r\n {\r\n options: getAdjustedFilterOptions(currencies?.options, filtersTranslations?.currencies?.options),\r\n filterType: \"dropdown\",\r\n onSelect: onCurrencyChange,\r\n selectedOption: activeCurrency,\r\n filterTitle: getConditionalValue(filtersTranslations?.currencies?.title, \"Currency\"),\r\n placeholder: \"-\"\r\n },\r\n {\r\n options: getAdjustedFilterOptions(leverageTypes?.options, filtersTranslations?.leverageTypes?.options),\r\n filterType: \"dropdown\",\r\n onSelect: onLeverageTypeChange,\r\n selectedOption: activeLeverageType,\r\n filterTitle: getConditionalValue(filtersTranslations?.leverageTypes?.title, \"Classification\"),\r\n },\r\n ];\r\n return (React.createElement(React.Fragment, null, allPossibleFiltersOrdered.filter(filterDefinition => filterDefinition.options).map(({ options, filterType, onSelect, selectedOption, filterTitle, placeholder }, index) => {\r\n if (!options?.length) {\r\n return undefined;\r\n }\r\n return React.createElement(ContractSpecsFilterFactory, { key: index, filterType: filterType, options: options, onSelect: onSelect, selectedOption: selectedOption, filterTitle: filterTitle, placeholder: placeholder });\r\n })));\r\n};\r\n","import React from \"react\";\r\nconst getDefaultIconUrlVar = (buttonFunction) => {\r\n switch (buttonFunction) {\r\n case \"expand\":\r\n return \"var(--expand-button-icon-url)\";\r\n case \"collapse\":\r\n return \"var(--collapse-button-icon-url)\";\r\n case \"toggle\":\r\n default:\r\n return \"var(--toggle-button-icon-url)\";\r\n }\r\n};\r\nconst getDefaultText = (buttonFunction) => {\r\n switch (buttonFunction) {\r\n case \"expand\":\r\n return \"Show\";\r\n case \"collapse\":\r\n return \"Hide\";\r\n case \"toggle\":\r\n default:\r\n return \"Toggle\";\r\n }\r\n};\r\nexport const ToggleExpandCollapseButton = ({ buttonText, buttonIconUrl, onToggle, buttonFunction = \"toggle\" }) => {\r\n const iconUrlVar = `${buttonIconUrl ? `url(${buttonIconUrl})` : getDefaultIconUrlVar(buttonFunction)}`;\r\n const styleObj = { \"--toggle-button-icon-url\": `${iconUrlVar}` };\r\n return (React.createElement(\"button\", { className: `toggle-expand-collapse-button toggle-expand-collapse-button--${buttonFunction}`, onClick: onToggle, style: styleObj }, buttonText || getDefaultText(buttonFunction)));\r\n};\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { ToggleExpandCollapseButton } from \"./ToggleExpandCollapseButton\";\r\nconst getComponentClassname = (cssClasses) => `toggle-expand-collapse ${cssClasses ? cssClasses : \"\"}`;\r\nconst getContentContainerClassname = (isContainerExpanded) => `toggle-expand-collapse__content-container ${isContainerExpanded ? \"toggle-expand-collapse__content-container--open\" : \"\"}`;\r\nexport const ToggleExpandCollapse = ({ isDefaultExpanded = false, isOnlyToggledFromOutside = false, children, cssClasses, onToggleExpand, onTransitionEnd, toggleButtonsProps, toggleViews = [\"small\"] }) => {\r\n const [isExpanded, setIsExpanded] = useState(isDefaultExpanded);\r\n const { viewStyle: view } = usePageViewStyle();\r\n const handleToggle = useCallback(() => {\r\n if (onToggleExpand) {\r\n onToggleExpand(!isExpanded);\r\n }\r\n setIsExpanded(!isExpanded);\r\n }, [isExpanded, onToggleExpand]);\r\n const handleTransitionEnd = useCallback(() => {\r\n if (onTransitionEnd) {\r\n onTransitionEnd();\r\n }\r\n }, [onTransitionEnd]);\r\n const checkShowToggleUI = () => toggleViews.includes(view);\r\n useEffect(() => {\r\n setIsExpanded(isDefaultExpanded);\r\n }, [isDefaultExpanded]);\r\n if (!checkShowToggleUI()) {\r\n return (React.createElement(React.Fragment, null, children));\r\n }\r\n return (React.createElement(\"div\", { className: getComponentClassname(cssClasses) },\r\n !isOnlyToggledFromOutside && !isExpanded && React.createElement(ToggleExpandCollapseButton, { buttonFunction: \"expand\", onToggle: handleToggle, buttonIconUrl: toggleButtonsProps?.expandButtonProps?.buttonIconUrl, buttonText: toggleButtonsProps?.expandButtonProps?.buttonText }),\r\n React.createElement(\"div\", { className: getContentContainerClassname(isExpanded), onTransitionEnd: handleTransitionEnd },\r\n React.createElement(\"div\", { className: \"toggle-expand-collapse__content\" }, children)),\r\n !isOnlyToggledFromOutside && isExpanded && React.createElement(ToggleExpandCollapseButton, { buttonFunction: \"collapse\", onToggle: handleToggle, buttonIconUrl: toggleButtonsProps?.collapseButtonProps?.buttonIconUrl, buttonText: toggleButtonsProps?.collapseButtonProps?.buttonText })));\r\n};\r\n","import React, { useState, useCallback, useEffect } from \"react\";\r\nimport { ContractSpecsFilterSet } from \"./ContractSpecsFilterSet\";\r\nimport { ToggleExpandCollapse } from \"./ToggleExpandCollapse\";\r\nconst toggleButtonsProps = {\r\n expandButtonProps: {\r\n buttonText: \"Show filters\"\r\n },\r\n collapseButtonProps: {\r\n buttonText: \"Hide filters\"\r\n }\r\n};\r\nexport const ContractSpecsFilters = ({ countries, currencies, accountTypes, leverageTypes, positionQualities, instrumentSubtypes, iniActivePositionQuality, iniActiveCountry, iniActiveCurrency, iniActiveAccountType, iniActiveInstrumentSubtype, iniActiveLeverageType, onSearchChange, onPositionQualityChange, onCountryChange, onCurrencyChange, onAccountTypeChange, onLeverageTypeChange, onInstrumentSubtypeChange, onToggleFiltersExpand, onFiltersTransitionEnd, onResetAllFilters, mustResetFiltersInternally = false, areFiltersExpanded, showClearFiltersButton = true, filtersTranslations, filtersEmptyState }) => {\r\n const getActivePositionQuality = useCallback(() => iniActivePositionQuality || \"All\", [iniActivePositionQuality]);\r\n const getActiveCountry = useCallback(() => iniActiveCountry || \"\", [iniActiveCountry]);\r\n const getActiveCurrency = useCallback(() => iniActiveCurrency || \"\", [iniActiveCurrency]);\r\n const getActiveAccountType = useCallback(() => iniActiveAccountType || \"\", [iniActiveAccountType]);\r\n const getActiveInstrumentType = useCallback(() => {\r\n if (iniActiveInstrumentSubtype) {\r\n return iniActiveInstrumentSubtype;\r\n }\r\n return typeof instrumentSubtypes?.[0] === \"string\" ? instrumentSubtypes?.[0] : instrumentSubtypes?.[0]?.value;\r\n }, [iniActiveInstrumentSubtype, instrumentSubtypes]);\r\n const getActiveLeverageType = useCallback(() => {\r\n if (iniActiveLeverageType) {\r\n return iniActiveLeverageType;\r\n }\r\n return typeof leverageTypes?.[0] === \"string\" ? leverageTypes?.[0] : leverageTypes?.[0]?.value;\r\n }, [iniActiveLeverageType, leverageTypes]);\r\n const [search, setSearch] = useState(\"\");\r\n const [activePositionQuality, setActivePositionQuality] = useState(getActivePositionQuality);\r\n const [activeCountry, setActiveCountry] = useState(getActiveCountry);\r\n const [activeCurrency, setActiveCurrency] = useState(getActiveCurrency);\r\n const [activeAccountType, setActiveAccountType] = useState(getActiveAccountType);\r\n const [activeInstrumentSubtype, setActiveInstrumentSubtype] = useState(getActiveInstrumentType);\r\n const [activeLeverageType, setActiveLeverageType] = useState(getActiveLeverageType);\r\n const searchHandler = React.useCallback((e) => {\r\n setSearch(e.target.value);\r\n onSearchChange && onSearchChange(e.target.value);\r\n }, [onSearchChange]);\r\n const handlePositionQualityChange = React.useCallback((value) => {\r\n setActivePositionQuality(value);\r\n onPositionQualityChange && onPositionQualityChange(value);\r\n }, [onPositionQualityChange]);\r\n const handleCountryChange = React.useCallback((countryCode) => {\r\n setActiveCountry(countryCode);\r\n onCountryChange && onCountryChange(countryCode);\r\n }, [onCountryChange]);\r\n const handleCurrencyChange = React.useCallback((currencyCode) => {\r\n setActiveCurrency(currencyCode);\r\n onCurrencyChange && onCurrencyChange(currencyCode);\r\n }, [onCurrencyChange]);\r\n const handleInstrumentSubtypeChange = useCallback((indexString) => {\r\n const instrumentSubtype = indexString || \"\";\r\n setActiveInstrumentSubtype(instrumentSubtype);\r\n onInstrumentSubtypeChange && onInstrumentSubtypeChange(instrumentSubtype);\r\n }, [onInstrumentSubtypeChange]);\r\n const handleAccountTypeChange = React.useCallback((accountType) => {\r\n setActiveAccountType(accountType);\r\n onAccountTypeChange && onAccountTypeChange(accountType);\r\n }, [onAccountTypeChange]);\r\n const handleLeverageChange = React.useCallback((leverageType) => {\r\n setActiveLeverageType(leverageType);\r\n onLeverageTypeChange && onLeverageTypeChange(leverageType);\r\n }, [onLeverageTypeChange]);\r\n const handleSearchInputEnterKeyUp = useCallback((e) => {\r\n if (e.key === \"Enter\" || e.keyCode === 13) {\r\n e.target.blur();\r\n }\r\n }, []);\r\n useEffect(() => {\r\n if (!mustResetFiltersInternally) {\r\n return;\r\n }\r\n setActivePositionQuality(getActivePositionQuality());\r\n setActiveCountry(getActiveCountry());\r\n setActiveCurrency(getActiveCurrency());\r\n setActiveAccountType(getActiveAccountType());\r\n setActiveInstrumentSubtype(getActiveInstrumentType());\r\n setActiveLeverageType(getActiveLeverageType());\r\n }, [getActiveAccountType, getActiveCountry, getActiveCurrency, getActiveInstrumentType, getActiveLeverageType, getActivePositionQuality, mustResetFiltersInternally]);\r\n const hasRealFilters = !filtersEmptyState?.areRealFiltersEmpty;\r\n return (React.createElement(\"div\", { className: \"contractspecs-filters\" },\r\n hasRealFilters && (React.createElement(\"div\", { className: \"contractspecs-filters__filter-bar-container\" },\r\n React.createElement(ToggleExpandCollapse, { isDefaultExpanded: areFiltersExpanded, toggleButtonsProps: toggleButtonsProps, onToggleExpand: onToggleFiltersExpand, onTransitionEnd: onFiltersTransitionEnd },\r\n React.createElement(\"div\", { className: \"contractspecs-filters__filter-bar\" },\r\n React.createElement(ContractSpecsFilterSet, { positionQualities: positionQualities, countries: countries, currencies: currencies, accountTypes: accountTypes, leverageTypes: leverageTypes, instrumentSubtypes: instrumentSubtypes, activePositionQuality: activePositionQuality, activeCountry: activeCountry, activeCurrency: activeCurrency, activeAccountType: activeAccountType, activeInstrumentSubtype: activeInstrumentSubtype, activeLeverageType: activeLeverageType, onPositionQualityChange: handlePositionQualityChange, onCountryChange: handleCountryChange, onCurrencyChange: handleCurrencyChange, onAccountTypeChange: handleAccountTypeChange, onInstrumentSubtypeChange: handleInstrumentSubtypeChange, onLeverageTypeChange: handleLeverageChange, filtersTranslations: filtersTranslations })),\r\n React.createElement(ToggleExpandCollapse, { isOnlyToggledFromOutside: true, isDefaultExpanded: showClearFiltersButton, toggleViews: [\"small\", \"medium\", \"large\"], onToggleExpand: onToggleFiltersExpand, onTransitionEnd: onFiltersTransitionEnd },\r\n React.createElement(\"button\", { className: \"contractspecs-filters__clear-filters-button\", onClick: onResetAllFilters }, \"Clear filters\"))))),\r\n React.createElement(\"div\", { className: \"contractspecs-filters__search\" },\r\n React.createElement(\"input\", { onChange: searchHandler, onKeyUp: handleSearchInputEnterKeyUp, value: search, className: \"search-banner__input\", type: \"text\", placeholder: filtersTranslations?.searchText?.title }))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nexport const SearchRibbon = (props) => {\r\n const [data, setData] = React.useState(\"\");\r\n const searchFieldHandler = React.useCallback(e => setData(e.target.value), [data]);\r\n const clickHandler = React.useCallback((e) => {\r\n e.key === \"Enter\" && props.search(data);\r\n }, [data]);\r\n return (React.createElement(ContainerFW, { backgroundColor: props.backgrounColor ? props.backgrounColor : \"inherit\" },\r\n React.createElement(\"div\", { className: \"subscribeRibbon\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"subscribeRibbon__container\" },\r\n React.createElement(\"div\", { className: \"subscribeRibbon__widget subscribeRibbon__widget--search\" },\r\n React.createElement(\"input\", { maxLength: 20, onKeyDown: clickHandler, onChange: searchFieldHandler, value: data, className: \"search-banner__input subscribeRibbon__input subscribeRibbon__input--search\", type: \"text\", placeholder: props.searchText })))))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { SearchRibbon } from \"../SearchRibbon\";\r\nimport { TradingGlossary } from \"../TradingGlossary/TradingGlossary\";\r\nexport const TradingGlossarySearch = (props) => {\r\n const [data, setData] = useState(props.list);\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n useEffect(() => {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n };\r\n const filteredQuery = searchQuery.replace(/[^a-zA-Z0-9 ]/gm, \"\");\r\n searchQuery === \"\" ? setData(props.list) : fetch(`/${props.culture}/api/GlossarySearch?token=${props.token}&terms=${filteredQuery}`, requestOptions)\r\n .then((response) => response.json())\r\n .then((responseData) => setData({ ...data, content: responseData }))\r\n .catch(err => {\r\n setData({ content: [] });\r\n console.warn(err);\r\n });\r\n }, [searchQuery]);\r\n return (React.createElement(\"div\", { className: \"trading-glossary-search\" },\r\n React.createElement(SearchRibbon, { backgrounColor: \"#fff\", search: setSearchQuery, searchText: props.searchText }),\r\n React.createElement(TradingGlossary, { categories: props.categoriesProps, alphabetContent: props.alphabetProps, noResultsText: \"result not found\", searchResultsText: \"Search result of\", searchQuery: searchQuery, list: data })));\r\n};\r\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\n}\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nfunction alwaysNewT(i18n, language, namespace, keyPrefix) {\n return i18n.getFixedT(language, namespace, keyPrefix);\n}\nfunction useMemoizedT(i18n, language, namespace, keyPrefix) {\n return useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\n}\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n function boundReset() {\n if (isMounted.current) setT(getNewT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n}","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport const date = () => '';\nexport const time = () => '';\nexport const number = () => '';\nexport const select = () => '';\nexport const plural = () => '';\nexport const selectOrdinal = () => '';","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const AdditionalInformation = ({ subtitle1, subtitle2, content1, content2 = \"\", miniContent = \"\" }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"additionalInformation\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"additionalInformation__content\" },\r\n React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"additionalInformation__subContent\" },\r\n subtitle1 && React.createElement(\"h3\", null, subtitle1),\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: content1 } })),\r\n content2 && React.createElement(\"div\", { className: \"additionalInformation__subContent\" },\r\n subtitle2 && React.createElement(\"h3\", null, subtitle2),\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: content2 } }))),\r\n miniContent && React.createElement(\"div\", { className: \"additionalInformation__subContentMini\", dangerouslySetInnerHTML: { __html: miniContent } }))))));\r\n","import React, { useCallback, useRef } from \"react\";\r\nimport { checkDoesDataHaveColumn, checkIsValueDisplayable, getNormalizedColumnName, getValueWithSpecialCase, getTranslatedColumnName, logAnyEmptyValues } from \"../\";\r\nimport { stringHtmlFromString } from \"../../../utils/stripHtmlFromString\";\r\nconst translateFieldValue = (originalValue, fieldName, translateFieldFunction) => translateFieldFunction ? translateFieldFunction(fieldName, originalValue) : originalValue;\r\nexport const ContractSpecsTable = ({ data, columnInfo, className, columnsThatAllowHtml, columnsTranslations, translateFieldFunction }) => (React.createElement(\"table\", { className: className },\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null, columnInfo.map((column, columnIndex) => React.createElement(\"th\", { key: columnIndex, \"data-field-name\": column.dataColumnName },\r\n React.createElement(\"div\", null, getTranslatedColumnName(column.dataColumnName, columnsTranslations))))),\r\n React.createElement(\"tr\", null, columnInfo.map((_, columnIndex) => React.createElement(\"td\", { key: columnIndex })))),\r\n React.createElement(\"tbody\", null, data.map((row, rowIndex) => React.createElement(\"tr\", { key: rowIndex, \"data-id\": rowIndex }, columnInfo.map((column, columnIndex) => {\r\n const normalizedColumnName = getNormalizedColumnName(column.dataColumnName);\r\n const value = getValueWithSpecialCase(normalizedColumnName, column, row);\r\n const isStringifiableData = typeof value === \"string\" || typeof value === \"number\";\r\n const dataField = isStringifiableData ? String(value) : \"\";\r\n const translatedDataField = translateFieldValue(dataField, normalizedColumnName, translateFieldFunction);\r\n const urlSuffix = row.urlSuffix;\r\n const instrumentGroup = row.instrumentGroup;\r\n const isInstrumentCell = column.dataColumnName === \"Instrument\";\r\n const cellTitle = column.columnName.toUpperCase();\r\n { }\r\n const rowHasThisField = checkDoesDataHaveColumn(row, normalizedColumnName);\r\n const isValueDisplayable = checkIsValueDisplayable(dataField);\r\n const isCellEmpty = !rowHasThisField || !isValueDisplayable;\r\n const isHtmlAllowed = columnsThatAllowHtml?.includes(column.dataColumnName);\r\n const altText = stringHtmlFromString(translatedDataField);\r\n return React.createElement(ContractsSpecsTableCell, { key: `${rowIndex}-${columnIndex}`, cellFieldName: column.dataColumnName, cellTitle: cellTitle },\r\n React.createElement(\"div\", { className: \"price-feed-cs__table-instrument\" },\r\n isInstrumentCell && row.iconOrFlag && React.createElement(ContractSpecsImage, { iconOrFlag: row.iconOrFlag, altText: altText }),\r\n React.createElement(ContractsSpecsTableCellContent, { index: columnIndex, urlSuffix: urlSuffix, instrumentGroup: instrumentGroup, value: translatedDataField, isCellEmpty: isCellEmpty, isHtmlAllowed: isHtmlAllowed, instrumentName: row[\"instrument\"], columnName: column.dataColumnName })));\r\n }))))));\r\nconst ContractsSpecsTableCell = ({ cellFieldName, cellTitle, children }) => React.createElement(\"td\", { \"data-field-name\": cellFieldName, title: cellTitle }, children);\r\nconst ContractsSpecsTableCellContent = ({ value, isCellEmpty, isHtmlAllowed, columnName, instrumentName }) => {\r\n logAnyEmptyValues(instrumentName, columnName, value);\r\n if (isHtmlAllowed) {\r\n return React.createElement(\"div\", { className: \"price-feed-cs__table-instrument-name\", dangerouslySetInnerHTML: { __html: value } });\r\n }\r\n return React.createElement(React.Fragment, null, isCellEmpty ? \"\" : React.createElement(\"div\", { className: \"price-feed-cs__table-instrument-name\" }, value));\r\n};\r\nconst ContractSpecsImage = ({ iconOrFlag, altText }) => {\r\n const imgRef = useRef(null);\r\n const handleImageError = useCallback((event) => {\r\n event.target.classList.add(\"hide-alt-text\");\r\n }, []);\r\n return React.createElement(\"img\", { ref: imgRef, src: iconOrFlag, alt: altText, onError: handleImageError });\r\n};\r\n","export const stringHtmlFromString = (originalString) => originalString.replace(/(<([^>]+)>)/gi, \"\");\r\n","export const checkIsCorrectLeverageColumn = ({ columnName, leverageType, columnsPerLeverageType, culture, leverageDataGroups, isStrictCheck }) => {\r\n const columnNameLessAnyCulture = columnName.split(\"__\")[0];\r\n const isSuffixlessColumnName = columnName === columnNameLessAnyCulture;\r\n const possibleLeverageColumn = Object.values(columnsPerLeverageType).find(listOfColumns => listOfColumns.includes(columnNameLessAnyCulture));\r\n if (!possibleLeverageColumn) {\r\n return isStrictCheck ? false : true;\r\n }\r\n const leverageGroupSuffix = leverageDataGroups?.find(leverageDataGroup => leverageDataGroup.cultures.includes(culture))?.columnSuffix;\r\n if (isSuffixlessColumnName) {\r\n if (!leverageGroupSuffix) {\r\n return columnsPerLeverageType[leverageType].includes(columnName);\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n if (!leverageGroupSuffix) {\r\n return columnsPerLeverageType[leverageType].includes(columnName);\r\n }\r\n else {\r\n return columnsPerLeverageType[leverageType].includes(columnNameLessAnyCulture) && columnName === columnNameLessAnyCulture + leverageGroupSuffix;\r\n }\r\n};\r\nexport const getCultureSpecialCaseColumn = (specialCase, culture, leverageType, columnsPerLeverageType) => {\r\n if (specialCase.target !== \"culture\") {\r\n return;\r\n }\r\n if (specialCase.specialCaseCultures.includes(culture)) {\r\n const possibleLeverageColumn = Object.values(columnsPerLeverageType[leverageType])[0];\r\n if (possibleLeverageColumn) {\r\n return `${possibleLeverageColumn}__${culture.split(\"-\")[1].toUpperCase()}`;\r\n }\r\n }\r\n return;\r\n};\r\nexport const getInstrGroupSpecialCaseColumn = (specialCase, instrumentGroupsAndSubgroups, instrumentGroupOrSubgroup) => {\r\n if (specialCase.target !== \"instrumentGroup\") {\r\n return;\r\n }\r\n const groupNamesToLookFor = getGroupsAndSubgroupsByMember(instrumentGroupsAndSubgroups, instrumentGroupOrSubgroup);\r\n if (groupNamesToLookFor) {\r\n if (groupNamesToLookFor.some(value => specialCase.specialCaseInstrumentGroups.includes(value))) {\r\n return specialCase.correctionColumn;\r\n }\r\n }\r\n return;\r\n};\r\nexport const getSpecialCaseLeverageColumn = ({ leverageType, instrumentGroupOrSubgroup, instrumentGroupsAndSubgroups, columnsPerLeverageType, culture, leverageDataGroups }) => {\r\n const possibleSpecialLeverageCase = leverageDataGroups?.find(leverageDataGroup => leverageDataGroup.cultures.includes(culture) && leverageDataGroup.specialCase)?.specialCase;\r\n if (!possibleSpecialLeverageCase) {\r\n return;\r\n }\r\n if (possibleSpecialLeverageCase.target === \"culture\") {\r\n const cultureSpecialCaseColumn = getCultureSpecialCaseColumn(possibleSpecialLeverageCase, culture, leverageType, columnsPerLeverageType);\r\n if (cultureSpecialCaseColumn) {\r\n return cultureSpecialCaseColumn;\r\n }\r\n }\r\n if (possibleSpecialLeverageCase.target === \"instrumentGroup\") {\r\n const instrGroupSpecialCaseColumn = getInstrGroupSpecialCaseColumn(possibleSpecialLeverageCase, instrumentGroupsAndSubgroups, instrumentGroupOrSubgroup);\r\n if (instrGroupSpecialCaseColumn) {\r\n return instrGroupSpecialCaseColumn;\r\n }\r\n }\r\n return;\r\n};\r\nexport const getEnhancedTableInfo = ({ tableColumns, leverageType, instrumentGroupOrSubgroup, instrumentGroupsAndSubgroups, columnsPerLeverageType, culture, leverageDataGroups }) => tableColumns.map(columnInfo => {\r\n const isLeverageColumn = checkIsCorrectLeverageColumn({ columnName: columnInfo.dataColumnName, leverageType, instrumentGroupOrSubgroup, columnsPerLeverageType, culture, leverageDataGroups, isStrictCheck: true });\r\n const specialCaseColumn = isLeverageColumn && getSpecialCaseLeverageColumn({ leverageType, instrumentGroupOrSubgroup, instrumentGroupsAndSubgroups, columnsPerLeverageType, culture, leverageDataGroups }) || undefined;\r\n return {\r\n ...columnInfo,\r\n isLeverageColumn,\r\n specialCaseColumn\r\n };\r\n});\r\nconst extractInstrumentGroupData = ({ instrumentGroupName, instrumentSubgroupName }, data) => {\r\n const temp = data.filter((item) => item.instrumentGroup?.toLowerCase() ===\r\n instrumentSubgroupName?.toLowerCase() ||\r\n item.instrumentGroup?.toLowerCase() === instrumentGroupName.toLowerCase());\r\n return temp;\r\n};\r\nconst getDataForCulture = (data, _culture) => data;\r\nconst getGroupConfigKeyName = ({ instrumentGroupName, instrumentSubgroupName }) => (instrumentSubgroupName || instrumentGroupName).toLowerCase();\r\nexport const getCultureConfigData = (culture, pageConfig) => pageConfig.find(cultureConfig => cultureConfig.cultures.map(cultureName => cultureName.toLowerCase()).includes(culture.toLowerCase()));\r\nexport const getInstrumentGroupConfigData = ({ instrumentGroupName, instrumentSubgroupName }, cultureConfig) => {\r\n const instrumentGroupKey = getGroupConfigKeyName({ instrumentGroupName, instrumentSubgroupName });\r\n const instrumentGroupConfigData = cultureConfig && Object.entries(cultureConfig.instrumentGroupsConfig)?.find(([instrumentGroupConfigKey,]) => instrumentGroupConfigKey.toLowerCase() === instrumentGroupKey)?.[1];\r\n if (!instrumentGroupConfigData) {\r\n console.info(`No instrument group config data could be found for subgroup '${instrumentSubgroupName}' in group '${instrumentGroupName}'`);\r\n }\r\n return instrumentGroupConfigData;\r\n};\r\nexport const getRelevantData = (culture, instrumentGroupName, instrumentSubgroupName, instrumentGroupConfig, inputData) => {\r\n const dataPerCulture = getDataForCulture(inputData, culture);\r\n const extractedData = extractInstrumentGroupData({ instrumentGroupName, instrumentSubgroupName }, [...dataPerCulture]);\r\n const defaultData = instrumentGroupConfig?.getRelevantData?.(extractedData, instrumentSubgroupName, instrumentGroupName) || extractedData;\r\n return defaultData;\r\n};\r\nexport const getRelevantFilters = (instrumentGroupConfig) => instrumentGroupConfig?.getRelevantFilters?.() || {};\r\nexport const getDefaultFilterValues = (instrumentGroupConfig) => instrumentGroupConfig?.getDefaultFilterValues?.() || {};\r\nexport const getAutoExecutedHandlers = (instrumentGroupConfig) => instrumentGroupConfig?.getAutoExecutedHandlers?.() || {};\r\nexport const getAccountTypeIds = (cultureConfig) => cultureConfig.accountTypeIds;\r\nexport const getColumnsPerLeverageType = (cultureConfig, instrumentGroupConfig) => instrumentGroupConfig?.columnsPerLeverageType || cultureConfig.columnsPerLeverageType;\r\nexport const getColumnsThatAllowHtml = (cultureConfig, instrumentGroupConfig) => instrumentGroupConfig?.columnsThatAllowHtml || cultureConfig?.columnsThatAllowHtml || [];\r\nexport const checkColumnExistsForAccountType = (accountTypes, accountTypeName, accountTypeIds) => {\r\n if (!accountTypeIds) {\r\n return false;\r\n }\r\n const columnAccTypesArray = accountTypes.split(\"|\");\r\n const accountTypeId = Object.entries(accountTypeIds)?.find(([, accountName]) => accountName.toLowerCase() === accountTypeName.toLocaleLowerCase())?.[0];\r\n return columnAccTypesArray.includes(String(accountTypeId));\r\n};\r\nexport const getAdditionInfoMap = (cultureConfig) => cultureConfig.addInfoMap || {};\r\nexport const getAdditionaInfo = (cultureConfig, localInfoKey, additionalInfos) => {\r\n if (!cultureConfig) {\r\n return;\r\n }\r\n const addInfoKey = getAdditionInfoMap(cultureConfig)?.[localInfoKey];\r\n return additionalInfos.find(item => item.group === addInfoKey);\r\n};\r\nexport const capitalizeString = (string) => {\r\n const t = string.charAt(0).toUpperCase() + string.slice(1);\r\n return t;\r\n};\r\nexport const decapitalizeString = (string) => {\r\n const t = string.charAt(0).toLowerCase() + string.slice(1);\r\n return t;\r\n};\r\nexport const groomInitFilterName = (filterName) => decapitalizeString(filterName.replace(\"iniActive\", \"\"));\r\nexport const getGroupFiltersTranslations = (filters, filtersTranslations) => Object.entries(filters).reduce((accumulatedObject, currentFilter) => {\r\n const [filterName, filterConfig] = currentFilter;\r\n const translationKey = filterConfig?.translationKey;\r\n const translatedTitle = (translationKey && filtersTranslations?.[translationKey]?.title) || filterName;\r\n const translatedOptions = (translationKey && filtersTranslations?.[translationKey]?.options) || filterConfig?.options;\r\n return ({\r\n ...accumulatedObject,\r\n [filterName]: {\r\n title: translatedTitle,\r\n options: translatedOptions\r\n }\r\n });\r\n}, {});\r\nexport const getAccountTypes = (culture, instrumentGroup, accountTypesPerCulture, accountTypeIdsToNames) => {\r\n const accountIds = accountTypesPerCulture.find(culturesSettings => culturesSettings.cultures.includes(culture))?.accTypesIdsPerInstrGroup[instrumentGroup] || [];\r\n return accountIds.map((accountId) => accountTypeIdsToNames[accountId]);\r\n};\r\nexport const mustShowLeverageFilter = (cultureCode, leverageDataGroupsConfig) => leverageDataGroupsConfig.find(group => group.name.toLowerCase() === \"eu\")?.cultures.includes(cultureCode);\r\nexport const getGroupsAndSubgroupsByMember = (instrumentGroupsAndSubgroups, groupOrSubgroup) => {\r\n const possibleGroupsAndSubgroups = Object.entries(instrumentGroupsAndSubgroups).find(([, groupingMembers]) => groupingMembers.includes(groupOrSubgroup));\r\n if (!possibleGroupsAndSubgroups) {\r\n return;\r\n }\r\n return possibleGroupsAndSubgroups[1];\r\n};\r\nexport const getPossibleReassignMap = (reassignMapConfig, instrumentGroupsAndSubgroups, culture, instrumentGroupOrSubgroup) => {\r\n const configMap = reassignMapConfig[culture];\r\n if (!configMap) {\r\n return;\r\n }\r\n const namesToLookFor = getGroupsAndSubgroupsByMember(instrumentGroupsAndSubgroups, instrumentGroupOrSubgroup);\r\n if (!namesToLookFor) {\r\n return;\r\n }\r\n const reassignMap = {};\r\n configMap.forEach(entry => {\r\n if (!namesToLookFor.includes(entry.groupOrSubgroup)) {\r\n return;\r\n }\r\n entry.instrumentCodes.forEach(code => {\r\n reassignMap[code] = {\r\n propertyName: entry.propertyName,\r\n newValue: entry.newValue\r\n };\r\n });\r\n });\r\n return reassignMap;\r\n};\r\nexport const getGroomedData = (data, reassignMapConfig, instrumentGroupsAndSubgroups, culture, instrumentGroupOrSubgroup) => {\r\n const reassignMap = getPossibleReassignMap(reassignMapConfig, instrumentGroupsAndSubgroups, culture, instrumentGroupOrSubgroup);\r\n if (!reassignMap) {\r\n return data;\r\n }\r\n const groomedData = [...data].map(dataItem => {\r\n const reassingEntry = dataItem.instrument && reassignMap[dataItem.instrument];\r\n if (reassingEntry) {\r\n return {\r\n ...dataItem,\r\n [reassingEntry.propertyName]: reassingEntry.newValue\r\n };\r\n }\r\n return dataItem;\r\n });\r\n return groomedData;\r\n};\r\nexport const getFiltersEmptyState = (filters) => {\r\n const filterEntries = Object.entries(filters);\r\n const nonEmptyRealFiltersList = [];\r\n const emptyRealFiltersList = [];\r\n let searchTextEmptyState = true;\r\n const getEmptyState = (filterKey, filterValues) => {\r\n if (filterKey === \"searchText\") {\r\n searchTextEmptyState = !filterValues;\r\n }\r\n else {\r\n const isValuesArray = Array.isArray(filterValues);\r\n if ((!isValuesArray && filterValues) || (isValuesArray && filterValues.length)) {\r\n nonEmptyRealFiltersList.push(filterKey);\r\n }\r\n else {\r\n emptyRealFiltersList.push(filterKey);\r\n }\r\n }\r\n };\r\n for (let i = 0; i < filterEntries.length; i++) {\r\n const [filterKey, filterValues] = filterEntries[i];\r\n getEmptyState(filterKey, filterValues);\r\n }\r\n return {\r\n areAllFiltersEmpty: nonEmptyRealFiltersList.length === 0 && searchTextEmptyState,\r\n areRealFiltersEmpty: nonEmptyRealFiltersList.length === 0,\r\n isSearchEmpty: searchTextEmptyState,\r\n emptyList: emptyRealFiltersList,\r\n nonEmptyList: nonEmptyRealFiltersList\r\n };\r\n};\r\n","const compareColumnPositions = (column1, column2) => {\r\n const firstColumnPosition = Number(column1.columnPosition);\r\n const secondColumnPosition = Number(column2.columnPosition);\r\n if (firstColumnPosition < secondColumnPosition) {\r\n return -1;\r\n }\r\n if (firstColumnPosition > secondColumnPosition) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\nexport const getOrderedColumns = (columns) => [...columns].sort(compareColumnPositions);\r\nexport const getNormalizedColumnName = (columnName) => columnName.charAt(0).toLowerCase() + columnName.slice(1);\r\nexport const checkDoesDataHaveColumn = (dataRow, columnName) => Object.keys(dataRow).map(key => key.toLowerCase()).includes(columnName.toLowerCase());\r\nexport const checkIsValueDisplayable = (value) => value !== -1;\r\nexport const isInstrumentIncludedInMini = (instrumentData) => instrumentData.minTradeSizeMini !== -1\r\n && instrumentData.maxTradeSizeMini !== -1\r\n && instrumentData.targetSpreadMini !== \"\"\r\n && instrumentData.maxLeverageMini !== \"\";\r\nconst checkIsMatchingSearchString = (item, searchString) => searchString\r\n ? item.instrument?.toLowerCase().includes(searchString.toLowerCase())\r\n : true;\r\nexport const checkIsMatchingPositionQuality = (item, positionQuality) => (positionQuality && positionQuality !== \"All\")\r\n ? item.positionQuality === positionQuality\r\n : true;\r\nexport const checkIsMatchingCountry = (item, country) => country\r\n ? item.country === country\r\n : true;\r\nexport const checkIsMatchingCurrency = (item, currency) => currency\r\n ? item.currency === currency\r\n : true;\r\nexport const getSearchResults = (data, searchString) => data.filter((item) => checkIsMatchingSearchString(item, searchString));\r\nexport const checkIsMetalInAccountType = (metal, accountType) => {\r\n if (!accountType) {\r\n return true;\r\n }\r\n const isMetalInMiniAccount = metal.maxTradeSizeMini !== -1 && Boolean(metal.maxTradeSizeMini);\r\n const isMetalInThinkzeroAccount = metal.maxTradeSizeThinkZero !== -1 && Boolean(metal.maxTradeSizeThinkZero);\r\n const isMetalInAccountType = {\r\n mini: isMetalInMiniAccount,\r\n thinkzero: isMetalInThinkzeroAccount,\r\n standard: !isMetalInMiniAccount && !isMetalInThinkzeroAccount,\r\n thinktrader: !isMetalInMiniAccount && !isMetalInThinkzeroAccount,\r\n };\r\n return Boolean(isMetalInAccountType[accountType?.toLowerCase()]);\r\n};\r\nexport const getDataPerAccountType = ({ searchString, accountType, instrumentGroup, positionQuality, instrumentSubtype, country, currency, culture }, data) => {\r\n const GROUP_FUNCTIONS_OBJ__MINI = {\r\n forex: (data) => data?.filter(item => (item.instrumentGroup === instrumentGroup\r\n && isInstrumentIncludedInMini(item)\r\n && checkIsMatchingPositionQuality(item, positionQuality)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency))),\r\n indices: (data) => data.filter(item => (item.instrumentGroup === instrumentGroup\r\n && isInstrumentIncludedInMini(item)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency))),\r\n commodities: (data) => data.filter(item => (item.instrumentGroup === instrumentSubtype\r\n && isInstrumentIncludedInMini(item)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency)\r\n && (instrumentSubtype?.toLowerCase() === \"metals\" ? checkIsMetalInAccountType(item, accountType) : true))),\r\n crypto: (data) => data.filter(item => (item.instrumentGroup === instrumentGroup\r\n && isInstrumentIncludedInMini(item)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency)))\r\n };\r\n const GROUP_FUNCTIONS_OBJ__GENERAL = {\r\n forex: (data) => data.filter(item => (item.instrumentGroup === instrumentGroup\r\n && checkIsMatchingPositionQuality(item, positionQuality)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency))),\r\n commodities: (data) => data.filter(item => (item.instrumentGroup === instrumentSubtype\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency)\r\n && (instrumentSubtype?.toLowerCase() === \"metals\" ? checkIsMetalInAccountType(item, accountType) : true)))\r\n };\r\n const applyCommonFilteringRules = (data) => data.filter((item) => checkIsMatchingSearchString(item, searchString)\r\n && checkIsMatchingCountry(item, country)\r\n && checkIsMatchingCurrency(item, currency));\r\n const lcInstrGroupName = instrumentGroup?.toLowerCase() || \"\";\r\n const lcAccountType = accountType?.toLowerCase();\r\n const functionMappingObject = lcAccountType === \"mini\" ? GROUP_FUNCTIONS_OBJ__MINI : GROUP_FUNCTIONS_OBJ__GENERAL;\r\n const groupFunctionsMap = new Map(Object.entries(functionMappingObject));\r\n const filteringFunction = groupFunctionsMap.get(lcInstrGroupName);\r\n if (typeof filteringFunction === \"function\") {\r\n return applyCommonFilteringRules(filteringFunction(data));\r\n }\r\n return applyCommonFilteringRules(data);\r\n};\r\nexport const getTranslatedColumnName = (columnName, columnsTranslations) => {\r\n const normalizedColumnName = getNormalizedColumnName(columnName);\r\n const translatedColumnName = columnsTranslations?.[normalizedColumnName];\r\n return translatedColumnName || columnName;\r\n};\r\nexport const getValueWithSpecialCase = (normalizedColumnName, columnInfo, dataRow) => {\r\n const specialCaseValue = columnInfo.specialCaseColumn && dataRow[getNormalizedColumnName(columnInfo.specialCaseColumn)];\r\n if (typeof specialCaseValue !== \"undefined\" && specialCaseValue !== \"\") {\r\n return specialCaseValue;\r\n }\r\n return dataRow[normalizedColumnName];\r\n};\r\nexport const logAnyEmptyValues = (instrumentName, columnName, columnValue) => {\r\n if (columnValue !== \"\") {\r\n return;\r\n }\r\n console.debug(`ContractSpecs: non-conforming value for instrument ${instrumentName} column ${columnName} value ${columnValue}`);\r\n};\r\n","export const getCultureTranslateConfigData = (culture, pageConfig) => pageConfig.find(cultureConfig => cultureConfig.cultures.map(cultureName => cultureName.toLowerCase()).includes(culture.toLowerCase()));\r\nconst getGroupConfigKeyName = (instrumentGroupName, instrumentSubgroupName) => instrumentSubgroupName?.toLowerCase() || instrumentGroupName.toLowerCase();\r\nexport const getInstrGroupTranslateConfigData = (instrumentGroupName, instrumentSubgroupName, cultureConfig) => {\r\n const instrumentGroupKey = getGroupConfigKeyName(instrumentGroupName, instrumentSubgroupName);\r\n const instrumentGroupConfigData = cultureConfig && Object.entries(cultureConfig.instrumentGroupsCfg)?.find(([instrumentGroupConfigKey,]) => instrumentGroupConfigKey.toLowerCase() === instrumentGroupKey.toLowerCase())?.[1];\r\n if (!instrumentGroupConfigData) {\r\n console.info(`No instrument group config data could be found for group/subgroup '${instrumentGroupName}'`);\r\n }\r\n return instrumentGroupConfigData;\r\n};\r\nexport const getReplacementValue = ({ key, keyType, keyPath, originalValue, translationFunction }) => {\r\n let realKey;\r\n if (keyType === \"dynamicOriginal\") {\r\n realKey = `${keyPath}.${originalValue}`;\r\n }\r\n else {\r\n realKey = key;\r\n }\r\n if (typeof realKey === \"undefined\") {\r\n return originalValue;\r\n }\r\n const translatedValue = translationFunction(realKey, { value: originalValue });\r\n return translatedValue === realKey ? originalValue : translatedValue;\r\n};\r\nexport const getTranslatedValue = ({ fieldName, originalValue, instrumentGroupConfig, translationFunction }) => {\r\n if (!instrumentGroupConfig) {\r\n return originalValue;\r\n }\r\n const fieldTranslationRules = instrumentGroupConfig.filter((translationRule) => translationRule.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n if (!fieldTranslationRules.length) {\r\n return originalValue;\r\n }\r\n const translatedValue = fieldTranslationRules.reduce((valueSoFar, newRule) => {\r\n const targetString = newRule.targetString || valueSoFar;\r\n return valueSoFar.replace(targetString, getReplacementValue({\r\n key: newRule.translationKey,\r\n keyType: newRule.translationKeyType,\r\n keyPath: newRule.translationKeyPath,\r\n originalValue: valueSoFar,\r\n translationFunction\r\n }));\r\n }, originalValue);\r\n return translatedValue;\r\n};\r\n","import * as utils from \"./tabInitialization.utils\";\r\nexport class ContractSpecsTabObj {\r\n constructor(contextInfo) {\r\n this.culture = contextInfo.culture;\r\n this.instrumentGroup = contextInfo.instrumentGroupName;\r\n this.instrumentSubgroup = contextInfo.instrumentSubgroupName;\r\n this.instrumentGroupsAndSubgroups = contextInfo.instrumentGroupsAndSubgroups;\r\n this.pageConfig = contextInfo.pageConfig;\r\n this.cultureConfig = utils.getCultureConfigData(this.culture, this.pageConfig);\r\n this.instrumentGroupOrSubgroup = this.instrumentSubgroup || this.instrumentGroup || \"\";\r\n if (!this.cultureConfig) {\r\n console.warn(\"No contract specs config found for this culture\");\r\n return;\r\n }\r\n this.instrumentGroupConfig = utils.getInstrumentGroupConfigData({\r\n instrumentGroupName: this.instrumentGroup,\r\n instrumentSubgroupName: this.instrumentSubgroup\r\n }, this.cultureConfig);\r\n this.filters = utils.getRelevantFilters(this.instrumentGroupConfig);\r\n this.accountTypeIds = utils.getAccountTypeIds(this.cultureConfig);\r\n this.columnsPerLeverageType = utils.getColumnsPerLeverageType(this.cultureConfig, this.instrumentGroupConfig);\r\n }\r\n setProps(objectProps) {\r\n Object.entries(objectProps).forEach(([key, value]) => this[key] = value);\r\n }\r\n getRelevantData(inputData) {\r\n return utils.getRelevantData(this.culture, this.instrumentGroup, this.instrumentSubgroup, this.instrumentGroupConfig, inputData);\r\n }\r\n getFilters() {\r\n return this.filters;\r\n }\r\n getDefaultFilterValues() {\r\n return utils.getDefaultFilterValues(this.instrumentGroupConfig);\r\n }\r\n getAutoExecutedHandlers() {\r\n return utils.getAutoExecutedHandlers(this.instrumentGroupConfig);\r\n }\r\n getColumnsThatAllowHtml() {\r\n return utils.getColumnsThatAllowHtml(this.cultureConfig, this.instrumentGroupConfig);\r\n }\r\n getAdditionaInfo(localInfoKey, additionalInfo) {\r\n return utils.getAdditionaInfo(this.cultureConfig, localInfoKey, additionalInfo);\r\n }\r\n checkColumnExistsForAccountType(accountTypes, accountTypeName) {\r\n if (typeof this.accountTypeIds === \"undefined\") {\r\n return true;\r\n }\r\n return utils.checkColumnExistsForAccountType(accountTypes, accountTypeName, this.accountTypeIds);\r\n }\r\n checkIsCorrectLeverageColumn(columnName, leverageType, isStrictCheck = false) {\r\n if (typeof this.columnsPerLeverageType === \"undefined\") {\r\n return true;\r\n }\r\n return utils.checkIsCorrectLeverageColumn({\r\n columnName,\r\n leverageType,\r\n instrumentGroupOrSubgroup: this.instrumentGroupOrSubgroup,\r\n columnsPerLeverageType: this.columnsPerLeverageType,\r\n culture: this.culture,\r\n leverageDataGroups: this.cultureConfig?.leverageDataGroups,\r\n isStrictCheck\r\n });\r\n }\r\n getEnhancedTableInfo(tableColumns, leverageType) {\r\n if (typeof this.columnsPerLeverageType === \"undefined\") {\r\n return tableColumns;\r\n }\r\n return utils.getEnhancedTableInfo({\r\n tableColumns,\r\n leverageType,\r\n instrumentGroupOrSubgroup: this.instrumentGroupOrSubgroup,\r\n instrumentGroupsAndSubgroups: this.instrumentGroupsAndSubgroups,\r\n columnsPerLeverageType: this.columnsPerLeverageType,\r\n culture: this.culture,\r\n leverageDataGroups: this.cultureConfig?.leverageDataGroups\r\n });\r\n }\r\n getSpecialCaseLeverageColumn(leverageType) {\r\n if (typeof this.columnsPerLeverageType === \"undefined\") {\r\n return true;\r\n }\r\n return utils.getSpecialCaseLeverageColumn({\r\n leverageType,\r\n instrumentGroupOrSubgroup: this.instrumentGroupOrSubgroup,\r\n instrumentGroupsAndSubgroups: this.instrumentGroupsAndSubgroups,\r\n columnsPerLeverageType: this.columnsPerLeverageType,\r\n culture: this.culture,\r\n leverageDataGroups: this.cultureConfig?.leverageDataGroups\r\n });\r\n }\r\n getTabFiltersTranslations(filterTranslations) {\r\n if (!this.filters) {\r\n return;\r\n }\r\n return utils.getGroupFiltersTranslations(this.filters, filterTranslations);\r\n }\r\n getPossibleReassignMap(reassignMapConfig, instrumentGroupOrSubgroups) {\r\n return utils.getPossibleReassignMap(reassignMapConfig, instrumentGroupOrSubgroups, this.culture, this.instrumentSubgroup || \"\");\r\n }\r\n getGroomedData(data, reassignMapConfig) {\r\n return utils.getGroomedData(data, reassignMapConfig, this.instrumentGroupsAndSubgroups, this.culture, this.instrumentGroupOrSubgroup);\r\n }\r\n}\r\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback, altFetch) {\n var resolver = function resolver(response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n };\n if (altFetch) {\n var altResponse = altFetch(url, fetchOptions);\n if (altResponse instanceof Promise) {\n altResponse.then(resolver).catch(callback);\n return;\n }\n }\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-http-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = _objectSpread({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n var altFetch = typeof options.alternateFetch === 'function' && options.alternateFetch.length >= 1 ? options.alternateFetch : undefined;\n try {\n fetchIt(url, fetchOptions, callback, altFetch);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback, altFetch);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n return _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options || {}), options);\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n var timer = setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n if (_typeof(timer) === 'object' && typeof timer.unref === 'function') timer.unref();\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (typeof callback === 'function') callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n}();\nBackend.type = 'backend';\nexport default Backend;","export const CULTURES_TO_LOCALE_MAP = {\r\n \"en-US\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-GB\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-AU\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-NZ\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-ZA\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-EU\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-AE\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"en-KY\": {\r\n language: \"en\",\r\n skipTranslation: true\r\n },\r\n \"es-ES\": {\r\n language: \"es\"\r\n },\r\n \"de-DE\": {\r\n language: \"de\",\r\n },\r\n \"es-CO\": {\r\n language: \"latam\",\r\n },\r\n \"th-TH\": {\r\n language: \"th\",\r\n },\r\n \"zh-TW\": {\r\n language: \"tw\",\r\n },\r\n \"pt-BR\": {\r\n language: \"pt\",\r\n },\r\n \"ar-AE\": {\r\n language: \"ar\",\r\n },\r\n};\r\n","import i18n from \"i18next\";\r\nimport HttpBackend from \"i18next-http-backend\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport { CULTURES_TO_LOCALE_MAP } from \"./culturesToLocaleMap\";\r\nconst getCultureConfig = (culture) => Object.entries(CULTURES_TO_LOCALE_MAP).find(([cultureCode]) => cultureCode === culture)?.[1];\r\nexport const setUpReactI18n = async (culture) => {\r\n const cultureConfig = getCultureConfig(culture);\r\n const lang = cultureConfig?.language;\r\n const mustSkipTranslation = cultureConfig?.skipTranslation ?? false;\r\n await i18n\r\n .use(HttpBackend)\r\n .use(initReactI18next)\r\n .init({\r\n lng: lang,\r\n fallbackLng: false,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n debug: true,\r\n backend: {\r\n loadPath() {\r\n if (mustSkipTranslation) {\r\n return undefined;\r\n }\r\n return \"/locales/{{lng}}/{{ns}}.json\";\r\n }\r\n },\r\n });\r\n};\r\nif (typeof window !== \"undefined\") {\r\n const cultureCode = document.documentElement.getAttribute(\"lang\") || undefined;\r\n setUpReactI18n(cultureCode).catch((e) => {\r\n throw new Error(e);\r\n });\r\n}\r\n","import { CULTURES_TO_LOCALE_MAP } from \"../../../i18n\";\r\nimport * as utils from \"./instrumentTranslations.utils\";\r\nexport class InstrumentFieldsTranslator {\r\n constructor(contextInfo) {\r\n this.culture = contextInfo.culture;\r\n this.instrumentGroupName = contextInfo.instrumentGroupName;\r\n this.instrumentSubgroupName = contextInfo.instrumentSubgroupName;\r\n this.instrFieldsTranslateConfig = contextInfo.instrFieldsTranslateConfig;\r\n this.translationFunction = contextInfo.translationFunction;\r\n this.getTranslatedValue = this.getTranslatedValue.bind(this);\r\n this.cultureConfig = utils.getCultureTranslateConfigData(this.culture, this.instrFieldsTranslateConfig);\r\n if (!this.cultureConfig) {\r\n console.info(\"No contract specs translation config found for this culture\");\r\n this.instrumentGroupConfig = undefined;\r\n return;\r\n }\r\n if (!CULTURES_TO_LOCALE_MAP[this.culture]) {\r\n console.info(\"No locale mapping found for this culture\");\r\n this.instrumentGroupConfig = undefined;\r\n return;\r\n }\r\n this.instrumentGroupConfig = utils.getInstrGroupTranslateConfigData(this.instrumentGroupName, this.instrumentSubgroupName, this.cultureConfig);\r\n }\r\n getTranslatedValue(fieldName, originalValue) {\r\n if (!this.instrumentGroupConfig) {\r\n return originalValue;\r\n }\r\n return utils.getTranslatedValue({ fieldName, originalValue, instrumentGroupConfig: this.instrumentGroupConfig, translationFunction: this.translationFunction });\r\n }\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nexport const useExecuteTriggerCallback = (callbackFunc) => {\r\n const getTimestamp = () => Date.now();\r\n const [, setRefreshTime] = useState(() => getTimestamp());\r\n const triggerRefresh = () => {\r\n setRefreshTime(getTimestamp());\r\n };\r\n useEffect(() => {\r\n callbackFunc();\r\n });\r\n return {\r\n triggerRefresh\r\n };\r\n};\r\n","import { getAccountTypes, mustShowLeverageFilter } from \"../utils/tabInitialization.utils\";\r\nconst ACCOUNT_TYPE_IDS_TO_NAMES = {\r\n 1: \"Standard\",\r\n 2: \"ThinkZero\",\r\n 3: \"Mini\",\r\n 4: \"ThinkTrader\",\r\n};\r\nexport const ACCOUNT_TYPES_PER_CULTURE = [\r\n {\r\n cultures: [\"en-EU\", \"en-AU\", \"en-GB\", \"es-ES\", \"de-DE\"],\r\n accTypesIdsPerInstrGroup: {\r\n Forex: [1, 2, 4],\r\n Indices: [1, 2, 4],\r\n Energy: [1, 2, 4],\r\n Metals: [1, 2, 4],\r\n \"ETFs TT & MT5\": [1, 2, 4],\r\n \"Shares TT & MT5\": [1, 2, 4],\r\n \"Shares MT4\": [1, 2, 4],\r\n Futures: [1, 2],\r\n Crypto: [1, 2, 4]\r\n }\r\n },\r\n {\r\n cultures: [\"ar-AE\", \"zh-TW\", \"en-KY\", \"en-ZA\", \"en-US\", \"it-IT\", \"pt-BR\", \"es-CO\", \"th-TH\", \"vi-VN\", \"tr-TR\"],\r\n accTypesIdsPerInstrGroup: {\r\n Forex: [1, 2, 4],\r\n Indices: [1, 2, 4],\r\n Energy: [1, 2, 4],\r\n Metals: [1, 2, 4],\r\n \"ETFs TT & MT5\": [1, 2, 4],\r\n \"Shares TT & MT5\": [1, 2, 4],\r\n \"Shares MT4\": [1, 2, 4],\r\n Futures: [1, 2],\r\n Crypto: [1, 2, 4]\r\n },\r\n },\r\n {\r\n cultures: [\"en-NZ\", \"en-AE\"],\r\n accTypesIdsPerInstrGroup: {\r\n Forex: [4],\r\n Indices: [4],\r\n Energy: [4],\r\n Metals: [4],\r\n \"ETFs TT & MT5\": [4],\r\n \"Shares TT & MT5\": [4],\r\n \"Shares MT4\": [4],\r\n Futures: [4],\r\n Crypto: [4]\r\n }\r\n },\r\n];\r\nconst DEFAULT_ADDINFO_KEY_MAP = {\r\n Forex: \"Forex\",\r\n Indices: \"Indices\",\r\n Energy: \"Energy\",\r\n Metals: \"Metals\",\r\n \"ETFs TT & MT5\": \"TT & MT5\",\r\n \"Shares TT & MT5\": \"TT & MT5\",\r\n \"Shares MT4\": \"MT4\",\r\n Futures: \"Futures\",\r\n Crypto: \"Crypto\"\r\n};\r\nexport const LEVERAGE_DATA_GROUPS = [\r\n {\r\n name: \"generalGroup\",\r\n columnSuffix: \"\",\r\n cultures: [\"en-US\", \"en-ZA\", \"en-KY\", \"es-CO\", \"pt-BR\", \"th-TH\", \"zh-TW\", \"ar-AE\", \"vi-VN\", \"tr-TR\"],\r\n specialCase: {\r\n target: \"instrumentGroup\",\r\n specialCaseInstrumentGroups: [\"ETFs\", \"Shares\"],\r\n correctionColumn: \"MaxLeverageProfTraders__EU\"\r\n }\r\n },\r\n {\r\n name: \"eu\",\r\n columnSuffix: \"__EU\",\r\n cultures: [\"en-GB\", \"en-AU\", \"en-NZ\", \"en-AE\", \"en-EU\", \"es-ES\", \"de-DE\"],\r\n specialCase: {\r\n target: \"culture\",\r\n specialCaseCultures: [\"en-AU\"],\r\n },\r\n instrumentGroups: undefined\r\n },\r\n];\r\nexport const DEFAULT_CS_PAGE_CONFIG = (culture) => [\r\n {\r\n cultures: [\"ar-AE\", \"zh-TW\", \"en-AE\", \"en-AU\", \"en-KY\", \"en-EU\", \"en-NZ\", \"en-ZA\", \"en-US\", \"de-DE\", \"it-IT\", \"pt-BR\", \"es-CO\", \"es-ES\", \"th-TH\", \"vi-VN\", \"tr-TR\"],\r\n instrumentGroupsConfig: {\r\n Forex: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n positionQualities: { options: [\"All\", \"Major\", \"Minor\", \"Exotic\"], translationKey: \"positionQualities\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Forex\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActivePositionQuality: \"Major\",\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n positionQuality: \"Major\",\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\",\r\n })\r\n },\r\n Indices: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Indices\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"TradingHours\"]\r\n },\r\n Energy: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Energy\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n instrumentSubtypes: { options: [\"Metals\", \"Energy\"], translationKey: \"instrumentSubtypes\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveInstrumentSubtype: \"Metals\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"Metals\",\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"TradingHours\"]\r\n },\r\n \"ETFs TT & MT5\": {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"ETFs TT & MT5\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n countries: { options: [\"US\", \"SA\", \"AU\"], translationKey: \"countries\" },\r\n currencies: { options: [\"USD\", \"AUD\", \"ZAR\"], translationKey: \"currencies\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveInstrumentSubtype: \"ETFs TT & MT5\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n country: \"\",\r\n currency: \"\",\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"ETFs TT & MT5\",\r\n leverageType: \"Retail\",\r\n }),\r\n },\r\n \"Shares TT & MT5\": {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Shares TT & MT5\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n countries: { options: [\"US\", \"SA\", \"HK\", \"AU\"], translationKey: \"countries\" },\r\n currencies: { options: [\"USD\", \"AUD\", \"HKD\", \"ZAR\"], translationKey: \"currencies\" },\r\n instrumentSubtypes: { options: [\"Shares TT & MT5\", \"Shares MT4\"], translationKey: \"sharesPlatform\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveInstrumentSubtype: \"Shares TT & MT5\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n country: \"\",\r\n currency: \"\",\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"Shares TT & MT5\",\r\n leverageType: \"Retail\",\r\n }),\r\n },\r\n Futures: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Futures\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"Instrument\"]\r\n },\r\n Crypto: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Crypto\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: mustShowLeverageFilter(culture, LEVERAGE_DATA_GROUPS) ? { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" } : undefined\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\",\r\n })\r\n },\r\n },\r\n addInfoMap: DEFAULT_ADDINFO_KEY_MAP,\r\n accountTypeIds: ACCOUNT_TYPE_IDS_TO_NAMES,\r\n columnsPerLeverageType: {\r\n Retail: [\"MaxLeverageRetailTraders\"],\r\n Professional: [\"MaxLeverageProfTraders\"]\r\n },\r\n leverageDataGroups: LEVERAGE_DATA_GROUPS,\r\n },\r\n {\r\n cultures: [\"en-GB\"],\r\n instrumentGroupsConfig: {\r\n Forex: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n positionQualities: { options: [\"All\", \"Major\", \"Minor\", \"Exotic\"], translationKey: \"positionQualities\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Forex\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActivePositionQuality: \"Major\",\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\"\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n positionQuality: \"Major\",\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\"\r\n })\r\n },\r\n Indices: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Indices\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\"\r\n })\r\n },\r\n Energy: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Energy\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n instrumentSubtypes: { options: [\"Metals\", \"Energy\"], translationKey: \"instrumentSubtypes\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"ThinkTrader\",\r\n iniActiveInstrumentSubtype: \"Metals\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"Metals\",\r\n leverageType: \"Retail\",\r\n })\r\n },\r\n \"ETFs TT & MT5\": {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"ETFs TT & MT5\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n countries: { options: [\"US\", \"SA\", \"AU\"], translationKey: \"countries\" },\r\n currencies: { options: [\"USD\", \"AUD\", \"ZAR\"], translationKey: \"currencies\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveInstrumentSubtype: \"ETFs TT & MT5\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n country: \"\",\r\n currency: \"\",\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"ETFs TT & MT5\",\r\n leverageType: \"Retail\",\r\n }),\r\n },\r\n \"Shares TT & MT5\": {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Shares TT & MT5\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n countries: { options: [\"US\", \"SA\", \"HK\", \"AU\"], translationKey: \"countries\" },\r\n currencies: { options: [\"USD\", \"AUD\", \"HKD\", \"ZAR\"], translationKey: \"currencies\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n instrumentSubtypes: { options: [\"Shares TT & MT5\", \"Shares MT4\"], translationKey: \"sharesPlatform\" }\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveInstrumentSubtype: \"Shares TT & MT5\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n country: \"\",\r\n currency: \"\",\r\n accountType: \"Standard\",\r\n instrumentSubtype: \"Shares TT & MT5\",\r\n leverageType: \"Retail\",\r\n }),\r\n },\r\n Futures: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: { options: getAccountTypes(culture, \"Futures\", ACCOUNT_TYPES_PER_CULTURE, ACCOUNT_TYPE_IDS_TO_NAMES), translationKey: \"accountTypes\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Retail\",\r\n }),\r\n },\r\n Crypto: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n accountTypes: undefined,\r\n leverageTypes: undefined,\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveAccountType: \"Standard\",\r\n iniActiveLeverageType: \"Professional\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n accountType: \"Standard\",\r\n leverageType: \"Professional\",\r\n })\r\n },\r\n },\r\n addInfoMap: DEFAULT_ADDINFO_KEY_MAP,\r\n accountTypeIds: ACCOUNT_TYPE_IDS_TO_NAMES,\r\n columnsPerLeverageType: {\r\n Retail: [\"MaxLeverageRetailTraders\"],\r\n Professional: [\"MaxLeverageProfTraders\"]\r\n },\r\n leverageDataGroups: LEVERAGE_DATA_GROUPS\r\n }\r\n];\r\n","export const CS_FIELDS_TRANSLATE_CONFIG = [\r\n {\r\n cultures: [\"de-DE\", \"pt-BR\", \"es-CO\", \"es-ES\", \"th-TH\"],\r\n instrumentGroupsCfg: {\r\n Energy: [\r\n {\r\n fieldName: \"TradingHours\",\r\n targetString: \"Mon\",\r\n translationKey: \"weekdays.Mon\"\r\n },\r\n {\r\n fieldName: \"TradingHours\",\r\n targetString: \"Fri\",\r\n translationKey: \"weekdays.Fri\"\r\n }\r\n ],\r\n Futures: [\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Monthly\",\r\n translationKey: \"futures.monthly\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Mar\",\r\n translationKey: \"months.Mar\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Jun\",\r\n translationKey: \"months.Jun\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Sep\",\r\n translationKey: \"months.Sep\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Dec\",\r\n translationKey: \"months.Dec\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The last business day of the second month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.lastBusinessDayOf2ndMonthPrecedingCM\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 4th business day prior to the 25th calendar day of the month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.4thBusinessDayPriorTo25thCalendarDayOfMonthPrecedingCM\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 3rd Friday of the contract month\",\r\n translationKey: \"futures.lastTradingDay.3rdFridayOfCM\"\r\n },\r\n ]\r\n }\r\n },\r\n {\r\n cultures: [\"ar-AE\"],\r\n instrumentGroupsCfg: {\r\n Indices: [\r\n {\r\n fieldName: \"Currency\",\r\n targetString: \"EUR\",\r\n translationKey: \"currencies.EUR\"\r\n },\r\n {\r\n fieldName: \"Currency\",\r\n targetString: \"GBP\",\r\n translationKey: \"currencies.GBP\"\r\n }\r\n ],\r\n Futures: [\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Mar\",\r\n translationKey: \"months.Mar\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Jun\",\r\n translationKey: \"months.Jun\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Sep\",\r\n translationKey: \"months.Sep\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Dec\",\r\n translationKey: \"months.Dec\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Monthly\",\r\n translationKey: \"futures.monthly\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 3rd Friday of the contract month\",\r\n translationKey: \"futures.lastTradingDay.3rdFridayOfCMo\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 4th business day prior to the 25th calendar day of the month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.4thBusinessDayPriorTo25thCalendarDayOfMonthPrecedingCM\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The last business day of the second month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.lastBusinessDayOf2ndMonthPrecedingCM\"\r\n },\r\n ]\r\n }\r\n },\r\n {\r\n cultures: [\"zh-TW\"],\r\n instrumentGroupsCfg: {\r\n Indices: [\r\n {\r\n fieldName: \"Instrument\",\r\n targetString: undefined,\r\n translationKey: undefined,\r\n translationKeyType: \"dynamicOriginal\",\r\n translationKeyPath: \"instrumentNames.indices\"\r\n },\r\n ],\r\n Energy: [\r\n {\r\n fieldName: \"Instrument\",\r\n targetString: undefined,\r\n translationKey: undefined,\r\n translationKeyType: \"dynamicOriginal\",\r\n translationKeyPath: \"instrumentNames.commodities\"\r\n },\r\n {\r\n fieldName: \"Instrument\",\r\n targetString: \"Mon\",\r\n translationKey: \"weekdays.Mon\"\r\n },\r\n {\r\n fieldName: \"TradingHours\",\r\n targetString: \"Mon\",\r\n translationKey: \"weekdays.Mon\"\r\n },\r\n {\r\n fieldName: \"TradingHours\",\r\n targetString: \"Fri\",\r\n translationKey: \"weekdays.Fri\"\r\n }\r\n ],\r\n \"Shares TT & MT5\": [{\r\n fieldName: \"Instrument\",\r\n targetString: undefined,\r\n translationKey: undefined,\r\n translationKeyType: \"dynamicOriginal\",\r\n translationKeyPath: \"instrumentNames.shares\"\r\n },\r\n ],\r\n Crypto: [\r\n {\r\n fieldName: \"Instrument\",\r\n targetString: undefined,\r\n translationKey: undefined,\r\n translationKeyType: \"dynamicOriginal\",\r\n translationKeyPath: \"instrumentNames.crypto\"\r\n },\r\n ],\r\n Futures: [\r\n {\r\n fieldName: \"Instrument\",\r\n targetString: undefined,\r\n translationKey: undefined,\r\n translationKeyType: \"dynamicOriginal\",\r\n translationKeyPath: \"instrumentNames.futures\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Monthly\",\r\n translationKey: \"futures.monthly\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Mar\",\r\n translationKey: \"months.Mar\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Jun\",\r\n translationKey: \"months.Jun\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Sep\",\r\n translationKey: \"months.Sep\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Dec\",\r\n translationKey: \"months.Dec\"\r\n },\r\n {\r\n fieldName: \"ContractMonths\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"Continuous contract\",\r\n translationKey: \"futures.continuousContract\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The last business day of the second month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.lastBusinessDayOf2ndMonthPrecedingCM\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 4th business day prior to the 25th calendar day of the month preceding the contract month.\",\r\n translationKey: \"futures.lastTradingDay.4thBusinessDayPriorTo25thCalendarDayOfMonthPrecedingCM\"\r\n },\r\n {\r\n fieldName: \"LastDealingDay\",\r\n targetString: \"The 3rd Friday of the contract month\",\r\n translationKey: \"futures.lastTradingDay.3rdFridayOfCM\"\r\n },\r\n ]\r\n }\r\n },\r\n];\r\n","export const instrumentGroupsAndSubgroups = {\r\n Forex: [\"Forex\"],\r\n Indices: [\"Indices\"],\r\n Commodities: [\"Commodities\", \"Energy\", \"Metals\"],\r\n ETFs: [\"ETFs\", \"ETFs TT & MT5\"],\r\n Shares: [\"Shares\", \"Shares TT & MT5\", \"Shares MT4\"],\r\n Futures: [\"Futures\"],\r\n Crypto: [\"Crypto\"]\r\n};\r\nexport const propertyReassignMap = {\r\n \"en-AU\": [\r\n {\r\n groupOrSubgroup: \"Forex\",\r\n instrumentCodes: [\"AUD/CAD\", \"AUD/CHF\", \"AUD/JPY\", \"AUD/USD\", \"EUR/AUD\", \"GBP/AUD\"],\r\n propertyName: \"positionQuality\",\r\n newValue: \"Major\"\r\n },\r\n ]\r\n};\r\n","import React from \"react\";\r\nexport const CardsDeckInfoBox = ({ text, title, className }) => (React.createElement(\"div\", { className: `cards-deck-info-box ${className ? ` ${className}` : \"\"}` },\r\n React.createElement(\"div\", { className: \"cards-deck-info-box__inner\" },\r\n React.createElement(\"div\", { className: \"cards-deck-info-box__content\" },\r\n title && React.createElement(\"h4\", { className: \"cards-deck-info-box__title\", dangerouslySetInnerHTML: {\r\n __html: title,\r\n } }),\r\n React.createElement(\"div\", { className: \"cards-deck-info-box__text\", dangerouslySetInnerHTML: {\r\n __html: text,\r\n } })))));\r\n","import React from \"react\";\r\nimport { CardsDeckInfoBox } from \"../../CardsDeckWithTitle/CardsDeckInfoBox\";\r\nexport const ImportantNote = ({ text, mustShowImportantNote = true, className }) => {\r\n if (text && mustShowImportantNote) {\r\n return React.createElement(CardsDeckInfoBox, { text: text, className: `cards-deck-info-box--width-auto ${className ? ` ${className}` : \"\"}` });\r\n }\r\n return null;\r\n};\r\n","import React, { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AdditionalInformation } from \"../ContractSpecs/AdditionalInformation\";\r\nimport { ContractSpecsFilters } from \"../ContractSpecsFilters\";\r\nimport { JobBoardPagination } from \"../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nimport { ContractSpecsTable } from \"./ContractSpecsTable\";\r\nimport { Container } from \"../global\";\r\nimport { ContractSpecsTabObj, getOrderedColumns, getDataPerAccountType, getSearchResults, groomInitFilterName, InstrumentFieldsTranslator, useExecuteTriggerCallback, getFiltersEmptyState } from \"./utils\";\r\nimport { CS_FIELDS_TRANSLATE_CONFIG, instrumentGroupsAndSubgroups, propertyReassignMap } from \"./config\";\r\nimport { IconNoResults } from \"../svgIcons\";\r\nimport { ImportantNote } from \"./ImportantNote\";\r\nexport const ContractSpecsTab = ({ group, subGroup, pageConfig, listOfPossibleFilters, data, culture, tableInfos, additionalInfos, swiperHandler, onToggleFiltersExpand, areFiltersExpanded, filtersTranslations, columnsTranslations }) => {\r\n const tabContextConfigInfo = useMemo(() => ({\r\n culture,\r\n instrumentGroupName: group,\r\n instrumentSubgroupName: subGroup,\r\n instrumentGroupsAndSubgroups,\r\n pageConfig\r\n }), [culture, group, pageConfig, subGroup]);\r\n const { t } = useTranslation();\r\n const TabObject = useMemo(() => new ContractSpecsTabObj(tabContextConfigInfo), [tabContextConfigInfo]);\r\n const groomedData = useMemo(() => TabObject.getGroomedData(data, propertyReassignMap), [TabObject, data]);\r\n const mounted = useRef(false);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const itemsPerPage = 50;\r\n const allTabData = useRef([]);\r\n if (!mounted.current) {\r\n allTabData.current = TabObject.getRelevantData(groomedData);\r\n }\r\n const adjustedFilters = TabObject.getFilters();\r\n const defaultFilterSelectedValues = TabObject.getDefaultFilterValues();\r\n const adjustedFilterTranslations = TabObject.getTabFiltersTranslations(filtersTranslations);\r\n const [numOfPages, setNumberOfPages] = useState(Math.ceil(allTabData.current.length / itemsPerPage));\r\n const allPagesData = useRef(allTabData.current);\r\n const currentData = groomedData\r\n .filter((item) => item.instrumentGroup?.toLowerCase() ===\r\n subGroup?.toLowerCase() ||\r\n item.instrumentGroup?.toLowerCase() ===\r\n group.toLowerCase())\r\n .slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage);\r\n const tableInfo = tableInfos.filter(item => item.instrumentGroup?.toLowerCase() === subGroup?.toLowerCase() || item.instrumentGroup?.toLowerCase() === group.toLowerCase());\r\n const [filteredData, setFilteredData] = useState(currentData);\r\n const [filteredTableInfo, setFilteredTableInfo] = useState(tableInfo);\r\n const initialFiltersState = {\r\n searchText: \"\",\r\n accountType: \"\",\r\n instrumentSubtype: \"\",\r\n leverageType: \"Retail\",\r\n positionQuality: \"\",\r\n country: \"\",\r\n currency: \"\"\r\n };\r\n const [filtersState, setFiltersState] = useState(initialFiltersState);\r\n const updateFiltersState = (filterName, filterValue) => {\r\n setFiltersState((prevState) => ({\r\n ...prevState,\r\n [filterName]: filterValue\r\n }));\r\n };\r\n const [mustResetFiltersInternally, setMustResetFiltersInternally] = useState(false);\r\n const [filterDefaultsValues, setFilterDefaultValues] = useState(() => listOfPossibleFilters.reduce((accumulatedObject, currentFilterName) => {\r\n const keyName = groomInitFilterName(currentFilterName);\r\n return ({\r\n ...accumulatedObject,\r\n [keyName]: defaultFilterSelectedValues[keyName] ?? \"\"\r\n });\r\n }, {}));\r\n const currentFilterValuesSet = {\r\n accountType: filtersState.accountType,\r\n instrumentSubtype: filtersState.instrumentSubtype,\r\n leverageType: filtersState.leverageType,\r\n positionQuality: filtersState.positionQuality,\r\n country: filtersState.country,\r\n currency: filtersState.currency\r\n };\r\n const adjustFilterDefaulValues = (filterName, newDefaultValue) => {\r\n setFilterDefaultValues((prevValues) => ({\r\n ...prevValues,\r\n [filterName]: newDefaultValue\r\n }));\r\n };\r\n const handleDisplayedRows = useCallback((accountType, positionQuality, instrumentSubtype, country, currency, searchString) => {\r\n const dataPerAccountType = getDataPerAccountType({ searchString, accountType, instrumentGroup: group, positionQuality, instrumentSubtype, country, currency, culture }, allTabData.current);\r\n allPagesData.current = dataPerAccountType;\r\n setFilteredData(dataPerAccountType.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n }, [culture, currentPage, group]);\r\n const handleDisplayedColumns = useCallback((accountType, instrumentSubtype, leverageType) => {\r\n setFilteredTableInfo(tableInfos.filter((item) => (item.instrumentGroup === group || item.instrumentGroup === instrumentSubtype || item.instrumentGroup === `${group} ${instrumentSubtype}`)\r\n && TabObject.checkColumnExistsForAccountType(item.accountType, accountType)\r\n && TabObject.checkIsCorrectLeverageColumn(item.dataColumnName, leverageType)));\r\n }, [TabObject, group, tableInfos]);\r\n const forceDisplayColumns = useCallback(() => {\r\n handleDisplayedColumns(filtersState.accountType, filtersState.instrumentSubtype, filtersState.leverageType);\r\n }, [filtersState.accountType, handleDisplayedColumns, filtersState.leverageType, filtersState.instrumentSubtype]);\r\n const handleSearchFilter = useCallback((query) => {\r\n setCurrentPage(0);\r\n const allFilteredData = getSearchResults(allTabData.current, query);\r\n allPagesData.current = allFilteredData;\r\n setFilteredData(allFilteredData.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(allFilteredData.length / itemsPerPage));\r\n updateFiltersState(\"searchText\", query);\r\n swiperHandler();\r\n }, [currentPage, swiperHandler]);\r\n const handlePositionQualityFilter = useCallback((value, isDefaultValue = false) => {\r\n setCurrentPage(0);\r\n if (value === \"All\") {\r\n const dataPerAccountType = getDataPerAccountType({ accountType: filtersState.accountType, instrumentGroup: group, positionQuality: value, instrumentSubtype: filtersState.instrumentSubtype, country: filtersState.country, currency: filtersState.currency, culture }, allTabData.current);\r\n allPagesData.current = dataPerAccountType;\r\n setFilteredData(dataPerAccountType.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(dataPerAccountType.length / itemsPerPage));\r\n }\r\n else {\r\n const allFilteredData = allTabData.current.filter((item) => item.positionQuality === value);\r\n const dataPerAccountType = getDataPerAccountType({ accountType: filtersState.accountType, instrumentGroup: group, positionQuality: value, instrumentSubtype: filtersState.instrumentSubtype, country: filtersState.country, currency: filtersState.currency, culture }, allFilteredData);\r\n allPagesData.current = dataPerAccountType;\r\n setFilteredData(dataPerAccountType.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(dataPerAccountType.length / itemsPerPage));\r\n }\r\n updateFiltersState(\"positionQuality\", value);\r\n isDefaultValue && adjustFilterDefaulValues(\"positionQuality\", value);\r\n forceDisplayColumns();\r\n swiperHandler();\r\n }, [forceDisplayColumns, swiperHandler, filtersState.accountType, filtersState.instrumentSubtype, filtersState.country, filtersState.currency, group, culture, currentPage]);\r\n const handleCountryFilter = useCallback((country, isDefaultValue = false) => {\r\n setCurrentPage(0);\r\n const allFilteredData = country ? allTabData.current.filter((item) => item.country === country) : allTabData.current;\r\n allPagesData.current = allFilteredData;\r\n setFilteredData(allFilteredData.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(allFilteredData.length / itemsPerPage));\r\n updateFiltersState(\"country\", country);\r\n isDefaultValue && adjustFilterDefaulValues(\"country\", country);\r\n forceDisplayColumns();\r\n swiperHandler();\r\n }, [currentPage, forceDisplayColumns, swiperHandler]);\r\n const handleCurrencyFilter = useCallback((currency, isDefaultValue = false) => {\r\n setCurrentPage(0);\r\n const allFilteredData = currency ? allTabData.current.filter((item) => item.currency === currency) : allTabData.current;\r\n allPagesData.current = allFilteredData;\r\n setFilteredData(allFilteredData.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(allFilteredData.length / itemsPerPage));\r\n updateFiltersState(\"currency\", currency);\r\n isDefaultValue && adjustFilterDefaulValues(\"currency\", currency);\r\n forceDisplayColumns();\r\n swiperHandler();\r\n }, [currentPage, forceDisplayColumns, swiperHandler]);\r\n const handleAccountTypeFilter = useCallback((accountType, isDefaultValue = false) => {\r\n updateFiltersState(\"accountType\", accountType);\r\n isDefaultValue && adjustFilterDefaulValues(\"accountType\", accountType);\r\n handleDisplayedColumns(accountType, filtersState.instrumentSubtype, filtersState.leverageType);\r\n handleDisplayedRows(accountType, filtersState.positionQuality, filtersState.instrumentSubtype, filtersState.country, filtersState.currency, filtersState.searchText);\r\n swiperHandler();\r\n }, [filtersState.country, filtersState.currency, filtersState.positionQuality, filtersState.searchText, filtersState.instrumentSubtype, handleDisplayedColumns, handleDisplayedRows, filtersState.leverageType, swiperHandler]);\r\n const handleLeverageTypeFilter = useCallback((leverageType, isDefaultValue = false) => {\r\n updateFiltersState(\"leverageType\", leverageType);\r\n isDefaultValue && adjustFilterDefaulValues(\"leverageType\", leverageType);\r\n handleDisplayedColumns(filtersState.accountType, filtersState.instrumentSubtype, leverageType);\r\n swiperHandler();\r\n }, [filtersState.accountType, filtersState.instrumentSubtype, handleDisplayedColumns, swiperHandler]);\r\n const handleInstrumentSubtype = useCallback((instrumentSubtype, isDefaultValue = false) => {\r\n setCurrentPage(0);\r\n let allFilteredData = [];\r\n if (group === \"Commodities\") {\r\n allFilteredData = groomedData.filter((item => item.instrumentGroup?.includes(instrumentSubtype)));\r\n }\r\n else {\r\n allFilteredData = groomedData.filter((item => item.instrumentGroup?.includes(instrumentSubtype) && item.instrumentGroup?.includes(group)));\r\n }\r\n TabObject.setProps({\r\n instrumentSubgroup: instrumentSubtype\r\n });\r\n const adjustedFilteredData = TabObject.getRelevantData(allFilteredData);\r\n const dataPerAccountType = getDataPerAccountType({ accountType: filtersState.accountType, instrumentGroup: group, positionQuality: filtersState.positionQuality, instrumentSubtype, country: filtersState.country, currency: filtersState.currency, culture }, adjustedFilteredData);\r\n allTabData.current = adjustedFilteredData;\r\n allPagesData.current = dataPerAccountType;\r\n setFilteredData(dataPerAccountType.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n setNumberOfPages(Math.ceil(dataPerAccountType.length / itemsPerPage));\r\n updateFiltersState(\"instrumentSubtype\", instrumentSubtype);\r\n isDefaultValue && adjustFilterDefaulValues(\"instrumentSubtype\", instrumentSubtype);\r\n handleDisplayedColumns(filtersState.accountType, instrumentSubtype, filtersState.leverageType);\r\n swiperHandler();\r\n }, [group, TabObject, filtersState.accountType, filtersState.positionQuality, filtersState.country, filtersState.currency, filtersState.leverageType, culture, currentPage, handleDisplayedColumns, swiperHandler, groomedData]);\r\n const handlerFunctions = useMemo(() => ({\r\n positionQuality: handlePositionQualityFilter,\r\n country: handleCountryFilter,\r\n currency: handleCurrencyFilter,\r\n accountType: handleAccountTypeFilter,\r\n leverageType: handleLeverageTypeFilter,\r\n instrumentSubtype: handleInstrumentSubtype\r\n }), [handleAccountTypeFilter, handleCountryFilter, handleCurrencyFilter, handleLeverageTypeFilter, handlePositionQualityFilter, handleInstrumentSubtype]);\r\n const autoExecuteRelevantHandlers = useCallback(() => {\r\n const handlersToExecute = TabObject.getAutoExecutedHandlers();\r\n Object.entries(handlersToExecute)?.forEach(([handlerKey, handlerValue]) => {\r\n if (typeof handlerValue === \"undefined\") {\r\n return;\r\n }\r\n handlerFunctions[handlerKey]?.(handlerValue, true);\r\n });\r\n }, [TabObject, handlerFunctions]);\r\n const handleResetAllFilters = useCallback(() => {\r\n autoExecuteRelevantHandlers();\r\n setMustResetFiltersInternally(true);\r\n }, [autoExecuteRelevantHandlers]);\r\n useEffect(() => {\r\n if (mustResetFiltersInternally) {\r\n setMustResetFiltersInternally(false);\r\n }\r\n }, [mustResetFiltersInternally]);\r\n const tabElementRef = useRef(null);\r\n const scrollToТabElementRef = useCallback(() => {\r\n const filtersElementCoordY = tabElementRef.current?.getBoundingClientRect().top;\r\n const headerEl = document.body.querySelector(\"header\") || undefined;\r\n const headerHeight = headerEl?.getBoundingClientRect().height;\r\n if (typeof filtersElementCoordY !== \"undefined\" && typeof headerHeight !== \"undefined\") {\r\n const scrollToY = window.scrollY + filtersElementCoordY - headerHeight;\r\n window.scroll(0, scrollToY);\r\n }\r\n }, []);\r\n const checkAreDefaultFilterValues = () => {\r\n for (const filterName in filterDefaultsValues) {\r\n if (Object.prototype.hasOwnProperty.call(filterDefaultsValues, filterName)) {\r\n if (filterDefaultsValues[filterName] !== currentFilterValuesSet[filterName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n useEffect(() => {\r\n setFilteredData(allPagesData.current.slice(currentPage * itemsPerPage, (currentPage + 1) * itemsPerPage));\r\n swiperHandler();\r\n }, [currentPage, swiperHandler]);\r\n useEffect(() => {\r\n if (mounted.current) {\r\n scrollToТabElementRef();\r\n }\r\n else {\r\n mounted.current = true;\r\n }\r\n }, [currentPage, scrollToТabElementRef]);\r\n const haveAutoHandlersBeenExecuted = useRef(false);\r\n useEffect(() => {\r\n if (haveAutoHandlersBeenExecuted.current) {\r\n return;\r\n }\r\n autoExecuteRelevantHandlers();\r\n haveAutoHandlersBeenExecuted.current = true;\r\n }, [autoExecuteRelevantHandlers]);\r\n useEffect(() => {\r\n handleDisplayedColumns(filtersState.accountType, filtersState.instrumentSubtype, filtersState.leverageType);\r\n handleDisplayedRows(filtersState.accountType, filtersState.positionQuality, filtersState.instrumentSubtype, filtersState.country, filtersState.currency, filtersState.searchText);\r\n }, [filtersState.accountType, filtersState.country, filtersState.currency, handleDisplayedColumns, handleDisplayedRows, filtersState.leverageType, filtersState.positionQuality, filtersState.searchText, filtersState.instrumentSubtype]);\r\n useEffect(() => {\r\n setNumberOfPages(Math.ceil(allPagesData.current.length / itemsPerPage));\r\n }, [allPagesData.current.length]);\r\n const orderedTableInfo = getOrderedColumns(filteredTableInfo);\r\n const getLocalInfoKey = () => filtersState.instrumentSubtype || subGroup || group;\r\n const additionalInfo = TabObject.getAdditionaInfo(getLocalInfoKey(), additionalInfos);\r\n const instrFieldTranslator = new InstrumentFieldsTranslator({ culture, instrumentGroupName: group, instrumentSubgroupName: subGroup, instrFieldsTranslateConfig: CS_FIELDS_TRANSLATE_CONFIG, translationFunction: t });\r\n const { triggerRefresh } = useExecuteTriggerCallback(() => {\r\n swiperHandler();\r\n });\r\n const handleFiltersTransition = React.useCallback(() => {\r\n triggerRefresh();\r\n }, [triggerRefresh]);\r\n const filtersEmptyState = getFiltersEmptyState(adjustedFilters);\r\n const mustShowImportantNote = !filtersEmptyState?.nonEmptyList.includes(\"leverageTypes\");\r\n return (React.createElement(\"div\", { ref: tabElementRef, className: \"contract-specs-tab\" },\r\n React.createElement(Container, null,\r\n React.createElement(ImportantNote, { mustShowImportantNote: mustShowImportantNote, text: additionalInfo?.importantNote, className: \"contract-specs-tab__important-note\" }),\r\n React.createElement(ContractSpecsFilters, { ...adjustedFilters, ...defaultFilterSelectedValues, filtersEmptyState: filtersEmptyState, onSearchChange: handleSearchFilter, onPositionQualityChange: handlePositionQualityFilter, onCountryChange: handleCountryFilter, onCurrencyChange: handleCurrencyFilter, onAccountTypeChange: handleAccountTypeFilter, onLeverageTypeChange: handleLeverageTypeFilter, onInstrumentSubtypeChange: handleInstrumentSubtype, onToggleFiltersExpand: onToggleFiltersExpand, onFiltersTransitionEnd: handleFiltersTransition, onResetAllFilters: handleResetAllFilters, mustResetFiltersInternally: mustResetFiltersInternally, areFiltersExpanded: areFiltersExpanded, showClearFiltersButton: !checkAreDefaultFilterValues(), filtersTranslations: adjustedFilterTranslations }),\r\n numOfPages > 0 ?\r\n React.createElement(\"div\", { className: \"price-feed-cs__table-container\" },\r\n React.createElement(ContractSpecsTable, { data: filteredData, columnInfo: TabObject.getEnhancedTableInfo(orderedTableInfo, filtersState.leverageType), className: `price-feed-cs__table--${group}`, columnsThatAllowHtml: TabObject.getColumnsThatAllowHtml(), columnsTranslations: columnsTranslations, translateFieldFunction: instrFieldTranslator.getTranslatedValue })) : (React.createElement(\"div\", { className: \"price-feed-cs__table-container contract-specs-tab__no-results-container\" },\r\n IconNoResults,\r\n React.createElement(\"span\", null, \"No results found\"))),\r\n numOfPages > 1 && React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPage, numOfPages: numOfPages, setCurrentPage: setCurrentPage, isSmallScreen: false }))),\r\n additionalInfo && React.createElement(AdditionalInformation, { ...additionalInfo })));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { EffectFade, Pagination } from \"swiper\";\r\nimport { ContractSpecsTab } from \"./ContractSpecsTab\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { getCultureConfigData } from \"./utils\";\r\nimport { DEFAULT_CS_PAGE_CONFIG } from \"./config\";\r\nimport { Suspense } from \"react\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nconst listOfPossibleFilters = [\"positionQuality\", \"country\", \"currency\", \"accountType\", \"leverageType\", \"instrumentSubtype\"];\r\nexport const ContractSpecsTabs = (props) => {\r\n const swiperRef = React.useRef();\r\n const { viewStyle: view } = usePageViewStyle();\r\n const swiperOnBeforeInit = React.useCallback((swiper) => {\r\n swiperRef.current = swiper;\r\n }, []);\r\n const handleSwiperHeightUpdate = React.useCallback(() => {\r\n swiperRef.current?.update();\r\n }, []);\r\n const renderBulletFunction = (index, className) => {\r\n const { title, iconUrl, iconActiveUrl } = props.items[index];\r\n const iconActiveUrlAdjusted = iconActiveUrl || iconUrl || \"\";\r\n const navItemInlineStyle = `--icon-idle-url: url(${iconUrl}); --icon-active-url: url(${iconActiveUrlAdjusted});`;\r\n return `
\r\n

${title}

\r\n
`;\r\n };\r\n React.useEffect(() => {\r\n swiperRef.current?.slideTo(props.activeTabIndex);\r\n }, [props.activeTabIndex]);\r\n React.useEffect(() => {\r\n window.addEventListener(\"load\", handleSwiperHeightUpdate);\r\n return () => {\r\n window.removeEventListener(\"load\", handleSwiperHeightUpdate);\r\n };\r\n }, [handleSwiperHeightUpdate]);\r\n const pageConfigInfo = props.pageConfig || DEFAULT_CS_PAGE_CONFIG(props.culture);\r\n if (!getCultureConfigData(props.culture, pageConfigInfo)) {\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"contract-specs-tabs__error\" }, \"Error loading contract specs: no config data found for current culture\"))));\r\n }\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"careerTabsSlider contract-specs-tabs\" },\r\n React.createElement(\"div\", { className: \"careerTabsSlider__sliderWrap\" },\r\n React.createElement(\"div\", { className: \"pagination-container\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"careerTabsSlider__customPagination\" }))),\r\n React.createElement(Suspense, { fallback: React.createElement(\"div\", { className: \"spinner-wrapper\" },\r\n React.createElement(LoadingSpinner, null)) },\r\n React.createElement(Swiper, { onBeforeInit: swiperOnBeforeInit, effect: view === \"large\" ? \"fade\" : undefined, pagination: {\r\n el: \".careerTabsSlider__customPagination\",\r\n clickable: true,\r\n renderBullet: renderBulletFunction\r\n }, modules: [EffectFade, Pagination], className: \"careerTabsSlider__swiper\", autoHeight: true, allowTouchMove: false }, Object.values(props.items).map((child, index) => (React.createElement(SwiperSlide, { key: index },\r\n React.createElement(ContractSpecsTab, { listOfPossibleFilters: listOfPossibleFilters, title: child.title, group: child.group, subGroup: child.subGroup, subGroupAdditionalInfo: child.subGroupAdditionalInfo, data: props.data, culture: props.culture, pageConfig: pageConfigInfo, tableInfos: props.tableInfo, additionalInfos: props.additionalInfo, swiperHandler: handleSwiperHeightUpdate, areFiltersExpanded: false, filtersTranslations: props.filtersTranslations, columnsTranslations: props.columnsTranslations }))))))))));\r\n};\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport { pageViewStyle } from \"../../pageViewStyle/pageViewStyle\";\r\nimport { FlameIcon } from \"../svgIcons\";\r\nexport const InstrumentSliderNew = ({ title, items, onMarketClick, currentMarketTab, children, renderFlameIcon }) => {\r\n const [activeMarketIndex, setActiveMarketIndex] = useState(items.findIndex((i) => i.title === currentMarketTab));\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const onViewUpdate = (view) => {\r\n setView(view);\r\n };\r\n useEffect(() => {\r\n pageViewStyle.subscribe(onViewUpdate);\r\n return () => {\r\n pageViewStyle.unsubscribe(onViewUpdate);\r\n };\r\n }, [view]);\r\n const handleMarketClick = useCallback((event) => {\r\n if (view === \"large\") {\r\n event.preventDefault();\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveMarketIndex(index);\r\n onMarketClick(items[index].market);\r\n }\r\n }, []);\r\n const handleOnTouchStart = useCallback((event) => {\r\n if (event.touches.length > 1) {\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveMarketIndex(index);\r\n }\r\n if (view !== \"large\" && event.touches.length <= 1) {\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveMarketIndex(index);\r\n onMarketClick(items[index].market);\r\n }\r\n }, []);\r\n const handleOnTouchMove = useCallback((event) => {\r\n setActiveMarketIndex(-1);\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"instrument-slider--new\" },\r\n title && (React.createElement(\"h2\", { className: \"instrument-slider--new__title\", dangerouslySetInnerHTML: { __html: title } })),\r\n React.createElement(\"div\", { className: \"instrument-slider--new__items\" }, items.map((item, i) => (React.createElement(\"div\", { key: `instrument-slider--new-item-${i}`, className: `instrument-slider--new__item ${activeMarketIndex === i &&\r\n \"instrument-slider--new__highlighted\"}`, \"data-id\": i, onClick: handleMarketClick, onTouchStart: handleOnTouchStart, onTouchMove: handleOnTouchMove },\r\n React.createElement(\"div\", { className: \"instrument-slider--new__item-title\" },\r\n (i === 0 && renderFlameIcon) && React.createElement(\"div\", { className: \"price-feed__headCell-icon\" }, FlameIcon()),\r\n item.title))))),\r\n children));\r\n};\r\n","import React, { useEffect, useState, useCallback, useRef } from \"react\";\r\nimport pako from \"pako\";\r\nimport { Img } from \"../Img\";\r\nimport { InstrumentSliderNew } from \"../InstrumentSliderNew\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { CaretUp, CaretDown } from \"../svgIcons\";\r\nexport const PriceFeedNewSocketComponent = ({ tableInfo, instrumentIcons, marketsInfo, footerText, session, wsUrl, activeMarket, buttonLinkText, buttonLinkUrl, instrumentItems, popularInstrumentToRemove, popularInstrumentToAdd, instrumentsData, culture, hasButtons = false, buttonOpenInNewTab = false }) => {\r\n const [instruments, setInstruments] = useState([]);\r\n const [filteredInstruments, setFilteredInstruments] = useState([]);\r\n const [currentMarketTab, setCurrentMarketTab] = useState(activeMarket);\r\n const prevAskPrices = useRef(new Map());\r\n const prevBidPrices = useRef(new Map());\r\n function getValueByKey(data, key) {\r\n for (const category of data) {\r\n if (category[key]) {\r\n return category[key];\r\n }\r\n }\r\n return [];\r\n }\r\n const Forex = getValueByKey(instrumentsData, \"forex\");\r\n const Indices = getValueByKey(instrumentsData, \"indices\");\r\n const Commodities = getValueByKey(instrumentsData, \"commodities\");\r\n const ETFs = getValueByKey(instrumentsData, \"etfs\");\r\n const Futures = getValueByKey(instrumentsData, \"futures\");\r\n const Stocks = getValueByKey(instrumentsData, \"stocks\");\r\n const Crypto = getValueByKey(instrumentsData, \"crypto\");\r\n const Popular = getValueByKey(instrumentsData, \"popular\")?.map(item => item === popularInstrumentToRemove ? popularInstrumentToAdd : item);\r\n const instrumentsMap = {\r\n \"\": [],\r\n forex: Forex,\r\n indices: Indices,\r\n commodities: Commodities,\r\n etfs: ETFs,\r\n futures: Futures,\r\n stocks: Stocks,\r\n crypto: Crypto,\r\n popular: Popular,\r\n };\r\n useEffect(() => {\r\n let websocket;\r\n let interval;\r\n const startWebsocket = () => {\r\n websocket = new WebSocket(`${wsUrl}/price-feed/${session}`);\r\n websocket.binaryType = \"arraybuffer\";\r\n const pingRequest = new TextEncoder().encode(\"ping\");\r\n websocket.onopen = () => {\r\n interval = setInterval(() => {\r\n websocket.send(pingRequest);\r\n }, 1000);\r\n };\r\n websocket.onmessage = (event) => {\r\n const data = event.data;\r\n const message = pako.inflate(data, { to: \"string\" });\r\n if (message) {\r\n updatePriceFeedNewSocketComponent(message);\r\n }\r\n };\r\n };\r\n startWebsocket();\r\n setTimeout(() => {\r\n if (!websocket.OPEN) {\r\n startWebsocket();\r\n }\r\n }, 5000);\r\n return () => {\r\n clearInterval(interval);\r\n websocket.close();\r\n };\r\n }, [currentMarketTab]);\r\n useEffect(() => {\r\n setFilteredInstruments(instruments.filter((item) => item.groupCode === currentMarketTab));\r\n }, [currentMarketTab, instruments]);\r\n const updatePriceFeedNewSocketComponent = (message) => {\r\n const dict = JSON.parse(message);\r\n const instruments = [];\r\n for (const key in dict) {\r\n if (key.includes(\"quote\")) {\r\n const group = key.split(\"_\")[0];\r\n const parsedValues = JSON.parse(dict[key]);\r\n if (instrumentsMap[group.toLowerCase()]?.includes(parsedValues.Code)) {\r\n const dailyChange = calcDailyChange(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict);\r\n const prevBid = prevBidPrices.current.get(parsedValues.Code) ?? 0;\r\n const prevAsk = prevAskPrices.current.get(parsedValues.Code) ?? 0;\r\n const instrument = {\r\n code: parsedValues.Code,\r\n groupCode: group,\r\n bid: parsedValues.Bid,\r\n bidStyle: bidAskStyle(parsedValues.Bid, prevBid),\r\n bidIcon: bidAskIcon(parsedValues.Bid, prevBid),\r\n ask: parsedValues.Ask,\r\n askStyle: bidAskStyle(parsedValues.Ask, prevAsk),\r\n askIcon: bidAskIcon(parsedValues.Ask, prevAsk),\r\n spread: calcSpread(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict),\r\n dailyChange: `${dailyChange}%`,\r\n dailyChangeStyle: dailyChangeStyle(+dailyChange),\r\n dailyChangeIcon: dailyChangeIcon(+dailyChange),\r\n };\r\n prevAskPrices.current.set(parsedValues.Code, parsedValues.Ask);\r\n prevBidPrices.current.set(parsedValues.Code, parsedValues.Bid);\r\n instruments.push(instrument);\r\n }\r\n }\r\n }\r\n setInstruments(instruments);\r\n setFilteredInstruments(instruments.filter((item) => item.groupCode === currentMarketTab));\r\n };\r\n const calcSpread = (group, code, bid, ask, dict) => {\r\n const marketItem = JSON.parse(dict[`${group}_marketItem_${code}`]);\r\n let decimalPrecision = 0;\r\n let tickSize = 0;\r\n if (dict[`${group}_marketItemInfo_${code}`]) {\r\n const marketItemInfo = JSON.parse(dict[`${group}_marketItemInfo_${code}`]);\r\n decimalPrecision =\r\n marketItemInfo.DecimalPrecision ?? marketItem.DecimalPrecision;\r\n tickSize = marketItemInfo.TickSize ?? marketItem.TickSize;\r\n }\r\n else {\r\n decimalPrecision = marketItem.DecimalPrecision;\r\n tickSize = marketItem.TickSize;\r\n }\r\n let decimal = tickSize >= 1.0 ? 0 : decimalPrecision;\r\n decimal = decimal > 2 ? decimal - 1 : decimal;\r\n const spread = ((ask - bid) * Math.pow(10, decimal)).toFixed(1);\r\n return spread;\r\n };\r\n const calcDailyChange = (group, code, bid, ask, dict) => {\r\n const now = new Date();\r\n const day = now.getUTCDate() - 1;\r\n if (dict[`${group}_prevDayClosePrice_${code}_${day}`]) {\r\n const parsedValues = JSON.parse(dict[`${group}_prevDayClosePrice_${code}_${day}`]);\r\n const prevClose = parsedValues.PrevClose ?? 0;\r\n const averageCurrentPrice = (ask + bid) / 2;\r\n const dailyValue = averageCurrentPrice - prevClose;\r\n const dailyPercent = ((dailyValue / prevClose) * 100).toFixed(2);\r\n return `${dailyPercent}`;\r\n }\r\n return \"N/A\";\r\n };\r\n const bidAskStyle = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const dailyChangeStyle = (value) => {\r\n if (value >= 0) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const bidAskIcon = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return CaretUp();\r\n }\r\n else {\r\n return CaretDown();\r\n }\r\n };\r\n const dailyChangeIcon = (value) => {\r\n if (value >= 0) {\r\n return CaretUp();\r\n }\r\n else {\r\n return CaretDown();\r\n }\r\n };\r\n const handleMarketClick = useCallback((market) => {\r\n setCurrentMarketTab(market);\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"price-feed__table\" },\r\n React.createElement(InstrumentSliderNew, { items: marketsInfo, currentMarketTab: activeMarket, onMarketClick: handleMarketClick, renderFlameIcon: true }),\r\n React.createElement(\"div\", { className: \"price-feed__table-data-wrapper\" },\r\n React.createElement(\"table\", { className: \"price-feed__table-data\" },\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", { className: \"price-feed__header\" },\r\n tableInfo.map((item, i) => (React.createElement(\"th\", { key: `price-feed__headerCell-${i}`, className: \"price-feed__headerCell\" }, item.title))),\r\n hasButtons && React.createElement(\"th\", { className: \"price-feed__headerCell price-feed__buttonCell\" })),\r\n React.createElement(\"tr\", null,\r\n tableInfo.map((_, i) => (React.createElement(\"td\", { key: `price-feed__headerCell-${i}`, className: \"price-feed__headerBorder\" }))),\r\n hasButtons && React.createElement(\"td\", { className: \"price-feed__headerBorder price-feed__buttonCell\" }))),\r\n React.createElement(\"tbody\", { className: \"price-feed__body\" }, filteredInstruments.slice(0, 5).map((item, i) => (React.createElement(\"tr\", { key: `price-feed__row-${i}`, className: `price-feed__row price-feed__row--${i}` },\r\n React.createElement(\"td\", { className: \"price-feed__cellContainer price-feed__cellContainer--instrument\" },\r\n React.createElement(Img, { className: \"div price-feed__instrumentIcon\", src: instrumentIcons.filter((el) => el.title === item.code)[0]?.imageUrl ?? \"\", alt: instrumentIcons.filter((el) => el.title === item.code)[0]?.imageAlt ?? \"\" }),\r\n React.createElement(\"a\", { href: `/${culture}/${instrumentItems[item.code.toLowerCase()] !== undefined ? instrumentItems[item.code.toLowerCase()] : \"contract-specifications\"}` }, item.code)),\r\n React.createElement(\"td\", { className: `price-feed__cellContainer ${item.askStyle}` }, item.ask),\r\n React.createElement(\"td\", { className: \"price-feed__cellContainer\" }, item.spread),\r\n React.createElement(\"td\", { className: `price-feed__cellContainer price-feed__cellContainer--with-icon price-feed__cellTitle ${item.dailyChangeStyle}` },\r\n item.dailyChange,\r\n item.dailyChangeIcon),\r\n hasButtons && React.createElement(\"td\", { className: \"price-feed__cellContainer price-feed__buttonCell\" },\r\n React.createElement(ButtonV2, { design: \"secondary-medium-wbg\", href: buttonLinkUrl, openInNewTab: buttonOpenInNewTab }, buttonLinkText)))))))),\r\n hasButtons && React.createElement(\"div\", { className: \"price-feed__mobile-button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"secondary-medium-wbg\", href: buttonLinkUrl, openInNewTab: buttonOpenInNewTab }, buttonLinkText)),\r\n footerText && React.createElement(\"div\", { className: \"price-feed__footerText\" }, footerText)));\r\n};\r\n","import React from \"react\";\r\nimport { PriceFeedNewSocketComponent } from \"./PriceFeedNewSocketComponent\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nexport const PriceFeedNew = ({ title, textContent, tableInfo, instrumentIcons, marketsInfo, resources, footerText, session, wsUrl, apiUrl, activeMarket, instrumentParagraph, instrumentLinkText, instrumentLinkUrl, buttonLinkText, buttonLinkUrl, instrumentItems, popularInstrumentToRemove, popularInstrumentToAdd, instrumentsData, culture, hasButtons = false, buttonOpenInNewTab = false, }) => {\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"price-feed price-feed-new\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"price-feed-new__wrap\" },\r\n React.createElement(\"div\", { className: \"price-feed__wrap--left\" },\r\n React.createElement(\"h2\", null, title),\r\n React.createElement(\"div\", { className: \"price-feed__column\", dangerouslySetInnerHTML: { __html: textContent } })),\r\n React.createElement(PriceFeedNewSocketComponent, { title: title, textContent: textContent, tableInfo: tableInfo, instrumentIcons: instrumentIcons, marketsInfo: marketsInfo, resources: resources, footerText: footerText, session: session, wsUrl: wsUrl, apiUrl: apiUrl, activeMarket: activeMarket, instrumentParagraph: instrumentParagraph, instrumentLinkText: instrumentLinkText, instrumentLinkUrl: instrumentLinkUrl, buttonLinkText: buttonLinkText, buttonLinkUrl: buttonLinkUrl, instrumentItems: instrumentItems, popularInstrumentToRemove: popularInstrumentToRemove, popularInstrumentToAdd: popularInstrumentToAdd, instrumentsData: instrumentsData, culture: culture, hasButtons: hasButtons, buttonOpenInNewTab: buttonOpenInNewTab }))))));\r\n};\r\n","import React from \"react\";\r\nimport { PriceFeedNewSocketComponent } from \"./PriceFeedNewSocketComponent\";\r\nexport const PriceFeedNewWidget = ({ title, textContent, tableInfo, instrumentIcons, marketsInfo, resources, footerText, session, wsUrl, apiUrl, activeMarket, instrumentParagraph, instrumentLinkText, instrumentLinkUrl, buttonLinkText, buttonLinkUrl, instrumentItems, popularInstrumentToRemove, popularInstrumentToAdd, instrumentsData, culture, hasButtons = false, buttonOpenInNewTab = false, }) => (React.createElement(\"div\", { className: \"price-feed price-feed-new\" },\r\n React.createElement(\"div\", { className: \"price-feed-new__wrap\" },\r\n React.createElement(\"div\", { className: \"price-feed__wrap--left\" },\r\n React.createElement(\"h2\", null, title),\r\n React.createElement(\"div\", { className: \"price-feed__column\", dangerouslySetInnerHTML: { __html: textContent } })),\r\n React.createElement(PriceFeedNewSocketComponent, { title: title, textContent: textContent, tableInfo: tableInfo, instrumentIcons: instrumentIcons, marketsInfo: marketsInfo, resources: resources, footerText: footerText, session: session, wsUrl: wsUrl, apiUrl: apiUrl, activeMarket: activeMarket, instrumentParagraph: instrumentParagraph, instrumentLinkText: instrumentLinkText, instrumentLinkUrl: instrumentLinkUrl, buttonLinkText: buttonLinkText, buttonLinkUrl: buttonLinkUrl, instrumentItems: instrumentItems, popularInstrumentToRemove: popularInstrumentToRemove, popularInstrumentToAdd: popularInstrumentToAdd, instrumentsData: instrumentsData, culture: culture, hasButtons: hasButtons, buttonOpenInNewTab: buttonOpenInNewTab }))));\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nexport const CardsGridImageAndDescription = ({ title, designStyles, cards }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-image-and-description\" },\r\n React.createElement(\"div\", { className: \"caption-bold\" }, title),\r\n React.createElement(\"div\", { className: \"cards-grid-image-and-description__cards-grid\" }, cards.map((card, i) => React.createElement(\"a\", { key: `cards-grid-image-and-description-${i}`, href: card.link, className: \"cards-grid-image-and-description__card-container\" },\r\n React.createElement(\"div\", { className: \"cards-grid-image-and-description__card-image-container\" },\r\n React.createElement(\"img\", { className: \"cards-grid-image-and-description__card-image\", src: card.imageUrl, alt: card.imageAlt })),\r\n React.createElement(\"div\", { className: \"cards-grid-image-and-description__text-container\" },\r\n React.createElement(\"h5\", { className: \"h5-semi-bold\" }, card.text)))))))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { Autoplay } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { ImgV2 } from \"../ImgV2/ImgV2\";\r\nimport { Heading } from \"../Heading/Heading\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nexport const AnimatedImageBoxesGridSimple = ({ markets, social, paymentMethods, designStyles }) => {\r\n if (!designStyles) {\r\n designStyles = {\r\n titleDesign: \"h3-bold\",\r\n backgroundColor: \"white\"\r\n };\r\n }\r\n const paymentRoller = useCallback((items, reverseDirection = false) => (React.createElement(Swiper, { spaceBetween: 37, slidesPerView: 2, loop: true, autoplay: {\r\n delay: 0,\r\n disableOnInteraction: false,\r\n reverseDirection,\r\n }, breakpoints: {\r\n 1024: {\r\n slidesPerView: 3,\r\n spaceBetween: 175\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 100\r\n },\r\n }, speed: 2000, modules: [Autoplay], className: \"animated-image-boxes-grid-simple__swiper\" }, [...items,\r\n ...items,\r\n ...items].filter(item => item.image).map((item, index) => (React.createElement(SwiperSlide, { key: index },\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid-simple__payment-slide-img-container bg-color-pure-white\" },\r\n React.createElement(ImgV2, { src: item.image, alt: item.alt, loading: \"eager\" }))))))), []);\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"animated-image-boxes-grid-simple\" },\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid-simple__markets-container bg-color-neutral-accent-background\" },\r\n React.createElement(\"div\", { className: \"centered-container-column animated-image-boxes-grid-simple__title-container\" },\r\n React.createElement(\"p\", { className: \"caption-bold\" }, markets.upperTitleMarkets),\r\n React.createElement(Heading, { design: designStyles?.titleDesign ? designStyles?.titleDesign : \"h3-bold\" }, markets.titleMarkets)),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(ImgV2, { className: \"centered-container animated-image-boxes-grid-simple__main-image\", smallUrl: markets?.mainImageSmall, largeUrl: markets?.mainImageLarge, alt: markets?.mainImageAlt }))),\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid-simple__social-container bg-color-neutral-accent-background\" },\r\n React.createElement(\"div\", { className: \"centered-container-column animated-image-boxes-grid-simple__title-container\" },\r\n React.createElement(\"p\", { className: \"caption-bold\" }, social.upperTitleSocial),\r\n React.createElement(Heading, { design: designStyles?.titleDesign ? designStyles?.titleDesign : \"h3-bold\" }, social.titleSocial)),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid-simple__social-img-container\" },\r\n React.createElement(ImgV2, { src: social.imageMain, alt: social.altMain, className: \"animated-image-boxes-grid-simple__social-img\" })))),\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid-simple__payment-container bg-color-neutral-accent-background\" },\r\n React.createElement(\"div\", { className: \"centered-container-column animated-image-boxes-grid-simple__title-container\" },\r\n React.createElement(\"p\", { className: \"caption-bold\" }, paymentMethods.upperTitlePayment),\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, paymentMethods.titlePayment)),\r\n paymentRoller(paymentMethods.paymentImagesUpperRow),\r\n paymentRoller(paymentMethods.paymentImagesLowerRow, true))))));\r\n};\r\n","import { ContainerFW, Container } from \"../global\";\r\nimport React, { useMemo, useState, useCallback } from \"react\";\r\nexport const TradingScenarios = ({ title, summary, radioSelector, scenarios }) => {\r\n const [long, setLong] = useState(true);\r\n const toggleRadioLong = useCallback(() => {\r\n setLong(true);\r\n }, []);\r\n const toggleRadioShort = useCallback(() => {\r\n setLong(false);\r\n }, []);\r\n const summaryFragment = useMemo(() => (React.createElement(\"div\", { className: \"trading-scenarios__summary\" }, summary.map((item) => React.createElement(\"div\", { key: item.text + item.title },\r\n React.createElement(\"div\", { className: 'caption-bold color-dark-80' },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.title } })),\r\n React.createElement(\"h5\", { className: 'h5-semi-bold color-dark-default' },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.text } })))))), [summary]);\r\n const radioFragment = useMemo(() => (React.createElement(\"div\", { className: \"trading-scenarios__radio-container\" },\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios__radio centered-container a bg-color-pure-white\" },\r\n React.createElement(\"div\", { onClick: toggleRadioLong, className: `trading-scenarios__radio-item caption centered-container ${long ? \"bg-color-dark-default caption-bold color-pure-white\" : \"\"}` }, radioSelector.longPosition.radioText),\r\n React.createElement(\"div\", { onClick: toggleRadioShort, className: `trading-scenarios__radio-item caption centered-container ${!long ? \"bg-color-dark-default caption-bold color-pure-white\" : \"\"}` }, radioSelector.shortPosition.radioText))),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n long && React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: radioSelector.longPosition.title } }),\r\n !long && React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: radioSelector.shortPosition.title } })))), [long]);\r\n const renderScenario = useCallback((sc) => (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"trading-scenarios__scenario\" },\r\n React.createElement(\"span\", { className: \"caption-bold\" }, sc.title),\r\n React.createElement(\"div\", { className: \"trading-scenarios__scenario-div bg-color-pure-white\" },\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: sc.htmlContent } }))))), [long, scenarios]);\r\n const scenariosFragment = useMemo(() => (React.createElement(\"div\", null,\r\n long && React.createElement(\"div\", { className: \"trading-scenarios__two-scenarios-div\" },\r\n renderScenario(scenarios.longPosition.scenarioA),\r\n renderScenario(scenarios.longPosition.scenarioB)),\r\n !long && React.createElement(\"div\", { className: \"trading-scenarios__two-scenarios-div\" },\r\n renderScenario(scenarios.shortPosition.scenarioA),\r\n renderScenario(scenarios.shortPosition.scenarioB)))), [long, scenarios]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trading-scenarios__title centered-container\" },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: \"trading-scenarios bg-color-neutral-accent-background\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios__summary-container\" }, summaryFragment),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"trading-scenarios__radio-selector\" }, radioFragment),\r\n React.createElement(\"div\", { className: \"trading-scenarios__scenarios\" }, scenariosFragment))))));\r\n};\r\n","import { Dropdown } from \"../Dropdown\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport React, { useMemo, useState, useCallback } from \"react\";\r\nexport const TradingScenariosMultiple = ({ title, subtitle, examples }) => {\r\n const [exampleIndex, setExampleIndex] = useState(0);\r\n const handleRadioClick = useCallback((event) => {\r\n const index = parseInt(event.currentTarget.dataset.index, 10);\r\n setExampleIndex(index);\r\n }, [setExampleIndex]);\r\n const handleDropdownClick = useCallback((event) => {\r\n setExampleIndex(examples.findIndex((example) => example.radioSelector.title === event));\r\n }, [setExampleIndex, examples]);\r\n const summaryToTraverse = useMemo(() => {\r\n const { summary } = examples[exampleIndex];\r\n return summary;\r\n }, [exampleIndex, examples]);\r\n const summaryFragment = useMemo(() => (React.createElement(\"div\", { className: \"trading-scenarios-multiple__summary\" }, summaryToTraverse.map((item, i) => React.createElement(\"div\", { key: i },\r\n React.createElement(\"div\", { className: 'caption-bold color-dark-80' },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.title } })),\r\n React.createElement(\"h5\", { className: 'h5-semi-bold color-dark-default' },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.text } })))))), [summaryToTraverse]);\r\n const dropdownFragment = useMemo(() => (React.createElement(Dropdown, { onSelect: handleDropdownClick, classes: \"hide-large-ndb hide-medium-ndb\", options: examples.map((e) => e.radioSelector.title) })), [examples, handleDropdownClick]);\r\n const radioFragment = useMemo(() => (React.createElement(\"div\", { className: \"trading-scenarios-multiple__radio-container\" },\r\n React.createElement(\"div\", { className: \"centered-container trading-scenarios-multiple__radio-selector-container\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__radio centered-container bg-color-pure-white hide-small-ndb\" }, examples.map((example, i) => React.createElement(\"div\", { key: i, onClick: handleRadioClick, \"data-index\": i, className: `trading-scenarios__radio-item caption centered-container ${i === exampleIndex ? \"bg-color-dark-default caption-bold color-pure-white\" : \"\"}` }, example.radioSelector.title)))),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__radio-title\", dangerouslySetInnerHTML: { __html: examples[exampleIndex]?.radioSelector.radioText } })))), [exampleIndex, examples, handleRadioClick]);\r\n const exampleFragment = useMemo(() => (React.createElement(\"div\", null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__two-scenarios-div\" }, examples[exampleIndex].scenarios.map((scenario, i) => React.createElement(\"div\", { key: i, className: \"trading-scenarios-multiple__scenario\" },\r\n React.createElement(\"span\", { className: \"caption-bold\" },\r\n \" \",\r\n scenario.title),\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__scenario-div bg-color-pure-white\" },\r\n React.createElement(\"div\", { className: \"flex trading-scenarios-multiple__two-samples\" },\r\n scenario.htmlContent1 && React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: scenario.htmlContent1 } }),\r\n scenario.htmlContent2 && React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: scenario.htmlContent2 } })),\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: scenario.htmlContent3 } })))))))), [exampleIndex, examples]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__title centered-container\" },\r\n React.createElement(\"h2\", null, title),\r\n subtitle && React.createElement(\"h5\", { className: \"h5-semi-bold\" }, subtitle)),\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple bg-color-neutral-accent-background\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__dropdown-selector-container hide-large hide-medium\" }, dropdownFragment),\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__summary-container\" }, summaryFragment),\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__scenarios-container\" },\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__radio-selector\" }, radioFragment),\r\n React.createElement(\"div\", { className: \"trading-scenarios-multiple__scenarios\" }, exampleFragment))))));\r\n};\r\n","import React from \"react\";\r\nimport DarkStarSet from \"../../svgIcons/darkStarSet\";\r\nexport const TrustpilotCard = (props) => {\r\n const theMonth = new Date(props.dateValue || \"01\").toLocaleString(props.monthTranslations, { month: \"short\" });\r\n const theDay = new Date(props.dateValue || \"01\").getDate();\r\n const theYear = new Date(props.dateValue || \"2023\").getFullYear();\r\n const fulldate = `${theDay} ${theMonth} ${theYear}`;\r\n return (React.createElement(\"div\", { className: \"trustpilot-card\" },\r\n React.createElement(\"h5\", { className: \"trustpilot-card__title\" }, props.title),\r\n React.createElement(\"div\", { className: \"trustpilot-card__rating\" },\r\n DarkStarSet(),\r\n \" \",\r\n fulldate && React.createElement(\"sub\", { className: \"trustpilot-card__date\" }, fulldate)),\r\n React.createElement(\"div\", { className: \"trustpilot-card__review\", dangerouslySetInnerHTML: {\r\n __html: props.content,\r\n } }),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"sub\", { className: \"trustpilot-card__author\" },\r\n props.author,\r\n \" \\u2022 \",\r\n props.country))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const TrustPilotEvaluation = ({ excellentLabel, rating, starsImage, trustpilotImage }) => (React.createElement(\"div\", { className: \"trustPilotEvaluation\" },\r\n React.createElement(\"h5\", { className: \"trustPilotEvaluation__excellentLabel\" }, excellentLabel),\r\n React.createElement(Img, { className: \"trustPilotEvaluation__starsImage\", src: starsImage, alt: \"starsImage\" }),\r\n React.createElement(\"p\", { className: \"trustPilotEvaluation__rating\" }, rating),\r\n React.createElement(Img, { className: \"trustPilotEvaluation__trustpilotImage\", src: trustpilotImage, alt: \"trustpilotImage\" })));\r\n","import React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { TrustpilotCard } from \"./TrustpilotCard\";\r\nimport { viewSizes } from \"../../pageViewStyle\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { TrustPilotEvaluation } from \"./TrustPilotEvalutation/TrustPilotEvaluation\";\r\nexport const TrustpilotSlider = (props) => (React.createElement(\"div\", { className: \"trustpilot-slider-wrapper\" },\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"trustpilot-slider\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"p\", { className: \"sliderTitle h4-semi-bold color-dark-default\" }, props.title),\r\n React.createElement(Swiper, { slidesPerView: \"auto\", breakpoints: {\r\n 375: {\r\n slidesPerView: 1.3,\r\n spaceBetween: 30\r\n },\r\n [viewSizes.smallMaxWidth]: {\r\n slidesPerView: 3\r\n }\r\n } }, props.cards.map((card, i) => React.createElement(SwiperSlide, { key: `trustpilot-slide-${i}` }, React.createElement(TrustpilotCard, { ...card }))))))),\r\n props.excellentLabel && React.createElement(TrustPilotEvaluation, { excellentLabel: props.excellentLabel, rating: props.rating, starsImage: props.starsImage, trustpilotImage: props.trustpilotImage }),\r\n props.bottomText && React.createElement(\"div\", { className: \"reviews-global-traders-box\" },\r\n React.createElement(ImgV2, { src: props.bottomTextIcon, alt: props.bottomText, className: \"account-types-v2__titleIcon\" }),\r\n props.bottomText)));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { AlphabetsSearch } from \"../AlphabetsSearch\";\r\nimport { CardsGridIconAndTitle } from \"../CardsGridIconAndTitle\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nimport { SearchRibbon } from \"../SearchRibbon\";\r\nimport { TradingGlossary } from \"../TradingGlossary/TradingGlossary\";\r\nexport const TradingGlossaryLanding = (props) => {\r\n const [data, setData] = useState();\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const bg = props.backgroundColor ? props.backgroundColor : \"inherit\";\r\n useEffect(() => {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n };\r\n const filteredQuery = searchQuery.replaceAll(\" \", \"\").replace(/[^a-zA-Z0-9 ]/gm, \"\");\r\n filteredQuery === \"\" && setData({ content: [] });\r\n filteredQuery !== \"\" && fetch(`/${props.culture}/api/GlossarySearch?token=${props.token}&terms=${searchQuery}`, requestOptions)\r\n .then((response) => response.json())\r\n .then((responseData) => setData({ ...data, content: responseData }))\r\n .catch(err => console.warn(err));\r\n }, [searchQuery]);\r\n return (React.createElement(\"div\", { className: \"trading-glossary-landing\" },\r\n React.createElement(SearchRibbon, { search: setSearchQuery, searchText: props.searchText, backgrounColor: bg }),\r\n searchQuery ?\r\n data && React.createElement(TradingGlossary, { alphabetContent: props.alphabetContent, noResultsText: props.noResultsText, searchResultsText: props.searchResultsText, searchQuery: searchQuery, list: data, categories: props.categoryContent })\r\n :\r\n React.createElement(React.Fragment, null,\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"40px\", gapColor: bg }),\r\n React.createElement(AlphabetsSearch, { ...props.alphabetContent, noWrappers: false }),\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"40px\", gapColor: bg }),\r\n React.createElement(CardsGridIconAndTitle, { ...props.categoryContent, noWrappers: false }))));\r\n};\r\n","import * as React from \"react\";\r\nimport { PopularQuestions } from \"../PopularQuestions\";\r\nimport { SupportSection } from \"../SupportSection\";\r\nimport { SearchBanner } from \"../Banners/SearchBanner\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nexport const SupportSearch = (props) => {\r\n const [items, setItems] = React.useState([]);\r\n const [searchQuery, setSearchQuery] = React.useState(\"\");\r\n const contentRef = React.createRef();\r\n React.useEffect(() => {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ culture: document.getElementsByTagName(\"html\")[0].getAttribute(\"lang\") })\r\n };\r\n searchQuery !== \"\" ? fetch(`/${props.culture}/api/FilterFAQs?token=${props.token}&query=${searchQuery}`, requestOptions)\r\n .then((response) => response.json())\r\n .then((responseData) => setItems(responseData))\r\n .catch(err => console.warn(err)) : setItems([]);\r\n }, [searchQuery]);\r\n React.useEffect(() => {\r\n contentRef.current && changeTextOfChildren(document.querySelector(\"div.support-search__container\"), searchQuery);\r\n }, [searchQuery, contentRef]);\r\n const results = React.createElement(\"div\", { ref: contentRef, className: \"support-search__container\" }, items.map((item, i) => React.createElement(\"div\", { className: \"support-search__item\", key: `faq-${i}`, dangerouslySetInnerHTML: { __html: `
${item.question}

${item.answer}

` } })));\r\n return (React.createElement(React.Fragment, null,\r\n props.search && React.createElement(SearchBanner, { ...props.search, search: setSearchQuery, query: searchQuery }),\r\n props.popularQuestions && (React.createElement(React.Fragment, null,\r\n React.createElement(Gap, { desktopGap: \"40px\", mobileGap: \"32px\" }),\r\n React.createElement(PopularQuestions, { ...props.popularQuestions }, items.length ? results : \"\"))),\r\n props.supportSection && React.createElement(SupportSection, { ...props.supportSection }, items.length ? results : \"\")));\r\n};\r\nfunction changeTextOfChildren(element, query) {\r\n element.querySelectorAll(\"*\").forEach((element) => {\r\n const regex = new RegExp(query, \"gi\");\r\n const nodes = element.childNodes;\r\n nodes.forEach((node) => {\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n const text = node.textContent;\r\n const replacedText = text.replace(regex, (match) => `${match}`);\r\n if (replacedText !== text) {\r\n const tempElement = document.createElement(\"div\");\r\n tempElement.innerHTML = replacedText;\r\n while (tempElement.firstChild) {\r\n element.insertBefore(tempElement.firstChild, node);\r\n }\r\n element.removeChild(node);\r\n }\r\n }\r\n });\r\n });\r\n}\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nexport const FreeText = (props) => {\r\n const cssClass = `free-text${props.isWarningText ? \" free-text--warning\" : \"\"}${props.className ? ` ${props.className}` : \"\"}`;\r\n return (React.createElement(\"div\", { className: cssClass, style: { backgroundColor: props.backgroundColor ? props.backgroundColor : \"#fff\" } },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, { className: props.mainWidth === \"1400px\" ? \"g-container--new\" : \"\" },\r\n props.heading && React.createElement(Heading, { design: \"h2-regular\", style: { \"--title-alignment\": props.titleAlignment } }, props.heading),\r\n React.createElement(\"div\", { className: \"free-text__content\", dangerouslySetInnerHTML: { __html: props.content } })))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2/ImgV2\";\r\nimport { getColors, getClassConditionalAppend, getContainerClassPerMaxWidth } from \"../../utils\";\r\nimport { FaqAccordionList } from \"../FaqAccordionList/FaqAccordionList\";\r\nexport const FaqAccordionListWithImage = ({ image, imageAlt, containerMaxWidth, ...args }) => {\r\n const { bgColor, textColor } = getColors(args.backgroundColor || \"white\");\r\n const [imageValue, setImageValue] = useState(\"\");\r\n const [altValue, setAltValue] = useState(\"\");\r\n useEffect(() => {\r\n setImageValue(image);\r\n setAltValue(imageAlt);\r\n }, [image, imageAlt]);\r\n const containerMaxWidthClass = getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = getClassConditionalAppend(containerMaxWidthClass);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor, className: containerExtraClass },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"faq-accordion-list-with-image\" },\r\n React.createElement(\"div\", { className: \"faq-accordion-list-with-image__grid\" },\r\n React.createElement(FaqAccordionList, { ...args }),\r\n React.createElement(\"div\", { className: \"faq-accordion-list-with-image__image-container centered-container hide-small-ndb hide-medium-ndb\" },\r\n React.createElement(ImgV2, { largeUrl: imageValue, strictRender: true, alt: altValue })))))));\r\n};\r\n","import React, { useRef, useEffect, useCallback } from \"react\";\r\nexport const TradingViewCard = () => {\r\n const containerRef = useRef(null);\r\n useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src = \"https://www.tradingview-widget.com/widget/broker-rating.js?locale=en&broker=thinkmarkets\";\r\n script.async = true;\r\n script.type = \"text/javascript\";\r\n if (containerRef.current) {\r\n containerRef.current.appendChild(script);\r\n }\r\n }, []);\r\n const handleTVWidget = useCallback(() => (`
\r\n \r\n
`), []);\r\n return (React.createElement(\"div\", { ref: containerRef, dangerouslySetInnerHTML: {\r\n __html: handleTVWidget(),\r\n } }));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nexport const BlackSectionItems = ({ buttonLabel, buttonLink, imageUrl, subTitle, title }) => (React.createElement(\"div\", { className: \"otherAccountWrapper__sectionWrapper__section blackCard__section\", key: `unique${title}` },\r\n React.createElement(\"h5\", { className: \"otherAccountWrapper__sectionWrapper__section__title blackCard__title\" }, title),\r\n subTitle && React.createElement(\"p\", { className: \"otherAccountWrapper__sectionWrapper__section__subtitle blackCard__subtitle\" }, subTitle),\r\n buttonLabel && React.createElement(ButtonSquare, { label: buttonLabel, href: buttonLink }),\r\n React.createElement(\"div\", { className: \"otherAccountWrapper-root__bg-image\", style: { \"--background-image-url\": `url(${imageUrl})` } })));\r\n","import React from \"react\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nimport { Img } from \"../../Img\";\r\nexport const CommonCard = ({ buttonLabel, buttonLink, imageAlt, imageUrl, subTitle, title, cardBackground, blackCardButtonLabel }) => (React.createElement(\"div\", { className: \"otherAccountWrapper__sectionWrapper__section\", style: { backgroundColor: cardBackground || \"#F2F6F6\" }, key: `unique${title}` },\r\n React.createElement(Img, { className: \"otherAccountWrapper__sectionWrapper__section__image\", src: imageUrl, alt: imageAlt }),\r\n React.createElement(\"h5\", { className: \"otherAccountWrapper__sectionWrapper__section__title\" }, title),\r\n React.createElement(\"div\", { className: \"otherAccountWrapper__sectionWrapper__section__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle,\r\n } }),\r\n (buttonLabel && !blackCardButtonLabel) && React.createElement(ButtonSquare, { label: buttonLabel, href: buttonLink })));\r\n","import React, { useCallback } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { TradingViewCard } from \"./TradingView\";\r\nimport { BlackSectionItems } from \"./BlackCard\";\r\nimport { CommonCard } from \"./CommonCards\";\r\nexport const OtherAccounts = ({ mainSubTitle, mainTitle, sectionItems, blackCard, buttonUrl, buttonLabel, tradingViewCard }) => {\r\n const handleVisibleButton = useCallback(() => {\r\n if (buttonUrl && buttonLabel) {\r\n return React.createElement(\"div\", { className: \"otherAccountWrapper__buttonWrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonUrl }, buttonLabel));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, [buttonLabel, buttonUrl]);\r\n const mainTitleSection = () => (mainTitle && React.createElement(\"h2\", { className: \"otherAccountWrapper__mainTitle\" }, mainTitle));\r\n const mainSubTitleSection = () => (mainSubTitle && React.createElement(\"h5\", { className: \"otherAccountWrapper__mainSubTitle\" }, mainSubTitle));\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"otherAccountWrapper-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `${blackCard?.title ? \"otherAccountWrapperWithBlackCard\" : \"otherAccountWrapper\"}` },\r\n mainTitleSection(),\r\n mainSubTitleSection(),\r\n React.createElement(\"div\", { className: \"otherAccountWrapper__sectionWrapper\" },\r\n sectionItems.length > 0 && sectionItems.map((a) => (React.createElement(CommonCard, { key: `unique${a.title}`, blackCardButtonLabel: blackCard?.title, ...a }))),\r\n blackCard?.title && React.createElement(BlackSectionItems, { ...blackCard }),\r\n tradingViewCard && React.createElement(TradingViewCard, null)),\r\n handleVisibleButton())))));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../../ButtonV2\";\r\nimport { handleLinkTarget } from \"../../../../utils\";\r\nexport const ButtonWrapper = ({ buttonHref, buttonLabel, linkHref, linkLabel, openInNewTabButton, linkOpenInNewTab }) => {\r\n const linkHrefTarget = handleLinkTarget(linkOpenInNewTab);\r\n return (React.createElement(\"div\", { className: \"tradeWithComponent-buttonWrapper\" },\r\n buttonLabel && React.createElement(ButtonV2, { design: \"cta-large-dbg\", href: buttonHref, openInNewTab: openInNewTabButton },\r\n \" \",\r\n buttonLabel),\r\n linkLabel && (React.createElement(\"span\", { className: \"tradeWithComponent-buttonWrapper-linkWrapper\" },\r\n React.createElement(\"a\", { href: linkHref, target: linkHrefTarget }, linkLabel)))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonWrapper } from \"./ButtonWrapper/ButtonWrapper\";\r\nimport { Breadcrumbs } from \"../../Breadcrumbs\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { getContainerClassPerMaxWidth } from \"../../../utils\";\r\nconst getBackgroundColor = (backgroundColor) => backgroundColor === \"dark\" ? \"#0E1D31\" : \"#fff\";\r\nconst checkHasComponentButton = ({ buttonHref, buttonLabel, linkHref, linkLabel }) => (buttonHref && buttonLabel) || (linkHref && linkLabel);\r\nconst getClassName = (backgroundColor, intrinsicImgSize, evenSetsForm2ColsMobile, numItems) => {\r\n let className = backgroundColor === \"dark\" ? \"tradeWithComponentBlackBackground-dark\" : \"tradeWithComponentBlackBackground\";\r\n if (intrinsicImgSize) {\r\n className += \" tradeWithComponentBlackBackground--intrinsic-img-size\";\r\n }\r\n if (evenSetsForm2ColsMobile && numItems % 2 === 0) {\r\n className += \" tradeWithComponentBlackBackground--two-cols-mobile\";\r\n }\r\n return className;\r\n};\r\nconst getTitle = (title, h2Ttile, mainTitleWidth) => {\r\n if (title) {\r\n return !h2Ttile ? React.createElement(\"h1\", { className: \"tradeWithComponent-mainTitle\", dangerouslySetInnerHTML: { __html: title }, style: { \"--main-title-width\": mainTitleWidth } }) : React.createElement(\"h2\", { className: \"tradeWithComponent-mainTitle\", dangerouslySetInnerHTML: { __html: title }, style: { \"--main-title-width\": mainTitleWidth } });\r\n }\r\n else {\r\n return \"\";\r\n }\r\n};\r\nconst getContainerExtraClass = (containerMaxWidth) => {\r\n const containerMaxWidthClass = containerMaxWidth && getContainerClassPerMaxWidth(containerMaxWidth);\r\n return containerMaxWidthClass ? ` ${containerMaxWidthClass}` : \"\";\r\n};\r\nexport const TradeWithComponentBlackBackground = ({ mainTitle, h2title, subMainTitle, sectionItems, buttonHref, buttonLabel, linkLabel, linkHref, backgroundColor, breadcrumbs, openInNewTabButton, linkOpenInNewTab, containerMaxWidth, subTitleColor, subTitlePosition, subTitleFontWeight, titleColor, titlePosition, titleFontWeight, intrinsicImgSize = false, evenSetsForm2ColsMobile = false, mainTitleWidth }) => {\r\n const correctedBgColor = getBackgroundColor(backgroundColor);\r\n const hasButton = checkHasComponentButton({ buttonHref, buttonLabel, linkHref, linkLabel });\r\n const className = getClassName(backgroundColor, intrinsicImgSize, evenSetsForm2ColsMobile, sectionItems.length);\r\n const wrapperClass = sectionItems.length <= 3 ? \"tradeWithComponent-sectionWrapper\" : \"tradeWithComponent-sectionWrapper--larger\";\r\n const containerExtraClass = getContainerExtraClass(containerMaxWidth);\r\n return (React.createElement(ContainerFW, { backgroundColor: correctedBgColor, className: containerExtraClass },\r\n React.createElement(\"div\", { className: className, style: { \"--title-color\": titleColor, \"--title-position\": titlePosition, \"--title-font-weight\": titleFontWeight, \"--subtitle-color\": subTitleColor, \"--subtitle-position\": subTitlePosition, \"--subtitle-font-weight\": subTitleFontWeight } },\r\n breadcrumbs && React.createElement(\"div\", { className: \"breadcrumbs__container\" },\r\n React.createElement(Breadcrumbs, { breadcrumbs: breadcrumbs })),\r\n React.createElement(Container, { className: containerExtraClass },\r\n getTitle(mainTitle, h2title, mainTitleWidth),\r\n subMainTitle && React.createElement(\"p\", { className: \"tradeWithComponent-subTitle\" }, subMainTitle),\r\n React.createElement(\"div\", { className: wrapperClass }, sectionItems.length > 0 && sectionItems?.map((a, i) => (React.createElement(\"span\", { key: i, className: \"tradeWithComponent-sectionWrapper__section\" },\r\n React.createElement(Img, { src: a.imageUrl, className: \"tradeWithComponent-sectionWrapper__section__image\", alt: a.imageAlt }),\r\n React.createElement(Heading, { design: \"h4-semi-bold\" }, a.title),\r\n React.createElement(\"div\", { className: \"tradeWithComponent-sectionWrapper__section__subTitle\", dangerouslySetInnerHTML: { __html: a.subTitle } }))))),\r\n hasButton && React.createElement(ButtonWrapper, { buttonHref: buttonHref, buttonLabel: buttonLabel, linkHref: linkHref, linkLabel: linkLabel, openInNewTabButton: openInNewTabButton, linkOpenInNewTab: linkOpenInNewTab })))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nexport const TradeWithComponent3Items = ({ mainTitle, subTitle, sectionItems }) => {\r\n const renderAdditionalIcons = (item) => (React.createElement(\"div\", { className: \"flex3\" },\r\n item.additionalIcon1 && (React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: item.additionalIcon1LinkUrl },\r\n React.createElement(Img, { src: item.additionalIcon1, className: \"trade-with-component-3-items__platform-icon\", alt: item.imageAlt }))),\r\n item.additionalIcon2 && (React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: item.additionalIcon2LinkUrl },\r\n React.createElement(Img, { src: item.additionalIcon2, className: \"trade-with-component-3-items__platform-icon\", alt: item.imageAlt }))),\r\n item.additionalIcon3 && (React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: item.additionalIcon3LinkUrl },\r\n React.createElement(Img, { src: item.additionalIcon3, className: \"trade-with-component-3-items__platform-icon\", alt: item.imageAlt })))));\r\n const renderSectionImageAndHeading = (item, headingClass) => (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: `trade-with-component-3-items__section-image ${headingClass}` },\r\n React.createElement(Img, { src: item.imageUrl, alt: item.imageAlt })),\r\n React.createElement(\"div\", { className: `trade-with-component-3-items__section-heading hide-medium-ndb ${headingClass}` },\r\n React.createElement(\"h5\", { className: \"h5-bold color-dark-default\" }, item.title))));\r\n const renderSectionItem = (item, index) => (React.createElement(\"div\", { key: index, className: \"trade-with-component-3-items__section\" },\r\n React.createElement(\"div\", { className: \"hide-small-ndb hide-large-ndb flex2\" },\r\n renderSectionImageAndHeading(item, \"\"),\r\n React.createElement(\"div\", { className: \"trade-with-component-3-items__section-heading3\" },\r\n React.createElement(\"h5\", { className: \"h5-bold color-dark-default\" }, item.title),\r\n React.createElement(\"div\", { className: \"color-dark-80\", dangerouslySetInnerHTML: { __html: item.subTitle } }),\r\n item.additionalIcon1 && renderAdditionalIcons(item))),\r\n React.createElement(\"div\", { className: \"hide-medium-ndb\" },\r\n renderSectionImageAndHeading(item, \"trade-with-component-3-items__center-content\"),\r\n React.createElement(\"div\", { className: \"trade-with-component-3-items__section-subtitle color-dark-80 trade-with-component-3-items__center-content\" },\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: item.subTitle } })),\r\n item.additionalIcon1 && (React.createElement(\"div\", { className: \"flex3 centered-container hide-large-ndb\" }, renderAdditionalIcons(item))))));\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"trade-with-component-3-items\" },\r\n mainTitle && React.createElement(React.Fragment, null,\r\n React.createElement(\"h3\", { className: \"trade-with-component-3-items__main-title color-dark-default h3-bold hide-small-ndb hide-large-ndb\" }, mainTitle),\r\n React.createElement(\"h3\", { className: \"trade-with-component-3-items__main-title color-dark-default h3-bold centered-container hide-medium-ndb\" }, mainTitle)),\r\n subTitle &&\r\n React.createElement(\"p\", { className: \"centered-container\" }, subTitle),\r\n React.createElement(\"div\", { className: \"trade-with-component-3-items__main-flex\" }, sectionItems.length > 0 &&\r\n sectionItems.map((item, index) => renderSectionItem(item, index)))))));\r\n};\r\n","import React from \"react\";\r\nexport const IconPDF = (React.createElement(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_9083_2875)\" },\r\n React.createElement(\"rect\", { x: \"9.09998\", y: \"7.82422\", width: \"14.7\", height: \"16.875\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M6.39815 4C5.73694 4 5.19995 4.53286 5.19995 5.19016V26.8098C5.19995 27.4536 5.73366 28 6.39203 28H25.6079C26.2661 28 26.8 27.4587 26.8 26.791L26.7996 11.6567C26.7996 10.5959 26.3782 9.5786 25.6281 8.82848L21.9715 5.17166C21.2214 4.42146 20.2039 4 19.143 4H6.39815ZM14.1877 11.0996C14.201 10.8238 14.4238 10.6 14.7 10.6H16.1C16.3761 10.6 16.5978 10.8242 16.6234 11.0992C16.8749 13.8019 19.1206 16.5742 21.9504 17.7045C22.1907 17.8004 22.3339 18.0545 22.2744 18.3063L21.9352 19.7433C21.8758 19.9951 21.6341 20.1586 21.3765 20.1335C17.899 19.7946 14.3305 21.2297 11.066 23.3359C10.841 23.481 10.541 23.4281 10.383 23.212L9.5329 22.0494C9.37489 21.8333 9.41616 21.532 9.61416 21.3519C10.7845 20.2869 11.8901 18.6577 12.7299 16.7841C13.5731 14.9033 14.1023 12.8787 14.1877 11.0996ZM14.92 17.7659C15.1836 17.1776 15.4227 16.5711 15.6324 15.9553C15.6868 15.7956 15.9041 15.7658 16.0015 15.9036C16.4415 16.5261 16.9483 17.1077 17.5062 17.6351C17.6278 17.7501 17.5693 17.9589 17.4054 17.9927C16.5436 18.1703 15.6955 18.4185 14.8662 18.7215C14.692 18.7852 14.5248 18.5991 14.6067 18.4326C14.7151 18.2122 14.8196 17.9898 14.92 17.7659Z\", fill: \"#0E1D31\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_9083_2875\" },\r\n React.createElement(\"rect\", { width: \"24\", height: \"24\", fill: \"white\", transform: \"translate(4 4)\" })))));\r\n","import React, { useCallback } from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { IconPDF } from \"../../svgIcons/pdf\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nexport const TradeWithComponent = ({ imageUrl, imageAlt, h2title, backgroundColor, informationItems, mainSubTitle, mainTitle, buttonLabel, downloadButton, buttonHref, imagePosition = \"left\", buttonOpenInNewTab, titleFontSize, tabletDesign, greenButton }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const renderButton = useCallback(() => {\r\n const buttonOpenInNewTabValue = (buttonOpenInNewTab === true ? true : false);\r\n if (buttonLabel && downloadButton) {\r\n return React.createElement(\"div\", { style: { marginTop: \"32px\" } },\r\n React.createElement(\"a\", { href: buttonHref, className: \"button button--secondary WideCardWithList__link\", download: true },\r\n IconPDF,\r\n buttonLabel));\r\n }\r\n else if (buttonLabel) {\r\n return greenButton ? React.createElement(ButtonV2, { href: buttonHref, design: \"cta-large-wbg\", openInNewTab: buttonOpenInNewTabValue }, buttonLabel) : React.createElement(ButtonSquare, { label: buttonLabel, href: buttonHref, openinnewtab: buttonOpenInNewTabValue.toString() });\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }, [downloadButton, buttonLabel, buttonHref, buttonOpenInNewTab, greenButton]);\r\n const getTitle = useCallback(() => {\r\n if (mainTitle) {\r\n return h2title ? React.createElement(Heading, { design: titleFontSize === \"h2-regular-small\" ? \"h2-regular-small\" : \"h2-regular\" }, mainTitle) : React.createElement(Heading, { design: \"h1-regular\" }, mainTitle);\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }, [mainTitle, h2title, titleFontSize]);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? bgColor : \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `${imagePosition === \"left\" ? \"TradeWithComponentWrapper\" : \"TradeWithComponentWrapperRight\"} ${tabletDesign === \"col-2\" ? \"col-2\" : \"\"}` },\r\n getTitle(),\r\n React.createElement(\"p\", { className: \"TradeWithComponentWrapper__mainSubTitle\", dangerouslySetInnerHTML: {\r\n __html: mainSubTitle ? mainSubTitle : \"\",\r\n } }),\r\n React.createElement(Img, { src: imageUrl, className: \"TradeWithComponentWrapper__image\", alt: imageAlt }),\r\n informationItems.length > 0 && React.createElement(\"div\", { className: \"TradeWithComponentWrapper__sectionWrapper\" }, informationItems.map((a, index) => (React.createElement(\"div\", { key: index, className: \"TradeWithComponentWrapper__sectionWrapper__section\" },\r\n React.createElement(Img, { src: a.icon, alt: a.iconAlt, className: \"TradeWithComponentWrapper__sectionWrapper__section__image\" }),\r\n React.createElement(\"span\", { className: \"TradeWithComponentWrapper__sectionWrapper__section__titleWrapper\" },\r\n React.createElement(Heading, { design: \"h5-bold\" }, a.title),\r\n a.subTitle && React.createElement(\"p\", { className: \"TradeWithComponentWrapper__sectionWrapper__section__titleWrapper__subTitle\", dangerouslySetInnerHTML: { __html: a.subTitle } })))))),\r\n renderButton()))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { usePageViewStyle } from \"../../../hooks\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2/ButtonV2\";\r\nconst getScroolPX = ({ isLarge, isMedium }) => {\r\n if (isLarge) {\r\n return 3700;\r\n }\r\n if (isMedium) {\r\n return 4150;\r\n }\r\n return 4700;\r\n};\r\nexport const TradeWithThinkCopy = ({ imageUrl, imageAlt, informationItems, mainSubTitle, mainTitle, buttonLabel, buttonHref, imagePosition = \"left\" }) => {\r\n const { isLarge, isMedium } = usePageViewStyle();\r\n const scrollPX = getScroolPX({ isLarge, isMedium });\r\n const scrollTopHandler = React.useCallback(() => {\r\n window.scroll({ top: scrollPX, left: 0, behavior: \"smooth\" });\r\n }, [scrollPX]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"TradeWithThinkCopy-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `${imagePosition === \"left\" ? \"TradeWithThinkCopyWrapper\" : \"TradeWithThinkCopyWrapperRight\"} ` },\r\n React.createElement(\"h2\", { className: \"TradeWithThinkCopyWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"TradeWithThinkCopyWrapper__mainSubTitle\", dangerouslySetInnerHTML: { __html: mainSubTitle } }),\r\n React.createElement(Img, { src: imageUrl, className: \"TradeWithThinkCopyWrapper__image\", alt: imageAlt }),\r\n React.createElement(\"div\", { className: \"TradeWithThinkCopyWrapper__sectionWrapper\" }, informationItems.length > 0 && informationItems.map((a) => (React.createElement(\"div\", { key: `unique${a.title}`, className: \"TradeWithThinkCopyWrapper__sectionWrapper__section\" },\r\n React.createElement(Img, { src: a.icon, alt: a.iconAlt, className: \"TradeWithThinkCopyWrapper__sectionWrapper__section__image\" }),\r\n React.createElement(\"div\", { className: \"TradeWithThinkCopyWrapper__sectionWrapper__section__titleWrapper\" },\r\n React.createElement(\"h5\", { className: \"TradeWithThinkCopyWrapper__sectionWrapper__section__titleWrapper__title\", dangerouslySetInnerHTML: { __html: a.title } }),\r\n React.createElement(\"div\", { className: \"TradeWithThinkCopyWrapper__sectionWrapper__section__titleWrapper__subTitle\", dangerouslySetInnerHTML: { __html: a.subTitle } })))))),\r\n buttonLabel && React.createElement(\"div\", { className: \"TradeWithThinkCopyWrapper__button-container\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", classes: \"TradeWithThinkCopyWrapper__squaredButton\", href: buttonHref, onClick: buttonHref ? undefined : scrollTopHandler }, buttonLabel)))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { ImgV2 } from \"../../ImgV2/ImgV2\";\r\nimport { getColors } from \"../../../utils\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const TradeWithThinkTrader = ({ imageUrlDesktop, imageUrlMobile, informationItems, imageAlt, title, subTitle, buttonLabel, buttonHref, designStyles, cardBackgroundColor, componentMode }) => {\r\n const { bgColor } = getColors(designStyles?.backgroundColor);\r\n const textColorClassName = componentMode === \"dark\" ? \"dark-mode-text-color\" : \"light-mode-text-color\";\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { style: { backgroundColor: cardBackgroundColor ? cardBackgroundColor : \"#EFFCEE\" }, className: `trade-with-think-trader ${textColorClassName}` },\r\n React.createElement(\"div\", { className: \"trade-with-think-trader__main-container\" },\r\n React.createElement(\"div\", { className: \"trade-with-think-trader__text-content-container\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title),\r\n React.createElement(Heading, { design: \"h5-lp\" }, subTitle)),\r\n React.createElement(\"div\", { className: \"trade-with-think-trader__cards-container\" }, informationItems.map((item, i) => (React.createElement(\"div\", { key: i, className: \"trade-with-think-trader__card\" },\r\n React.createElement(\"img\", { src: item.iconUrl, alt: item.iconAlt }),\r\n React.createElement(\"div\", { className: `main-error-container__help-pages-link ${textColorClassName}`, dangerouslySetInnerHTML: {\r\n __html: item.cardHtml,\r\n } }))))),\r\n React.createElement(\"div\", { className: \"trade-with-think-trader__button-container\" },\r\n React.createElement(ButtonV2, { href: buttonHref, design: designStyles?.buttonDesign }, buttonLabel))),\r\n React.createElement(\"div\", { className: \"trade-with-think-trader__img-container centered-container\" },\r\n React.createElement(ImgV2, { smallUrl: imageUrlMobile, largeUrl: imageUrlDesktop, alt: imageAlt })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const InstrumentSliderCard = (props) => (React.createElement(\"div\", { className: \"instrument-slider-card\" },\r\n React.createElement(\"div\", { className: \"instrument-slider-card__header\" },\r\n React.createElement(\"div\", { className: \"instrument-slider-card__text\" },\r\n React.createElement(\"h6\", { className: \"instrument-slider-card__title text-weight-bold\" }, props.title),\r\n React.createElement(\"p\", { className: \"instrument-slider-card__description footnote\" }, props.description)),\r\n React.createElement(Img, { className: \"instrument-slider-card__img\", src: props.icon, alt: props.title })),\r\n React.createElement(\"div\", { className: \"instrument-slider-card__footer\" },\r\n React.createElement(\"a\", { href: \"https://web.thinktrader.com/\", target: \"_blank\", rel: \"noreferrer\", className: `instrument-slider-card__price ${props.price1status}` }, props.price1),\r\n React.createElement(\"a\", { href: \"https://web.thinktrader.com/\", target: \"_blank\", rel: \"noreferrer\", className: `instrument-slider-card__price ${props.price2status}` }, props.price2))));\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { pageViewStyle } from \"../../pageViewStyle\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { InstrumentSliderCard } from \"../Cards/InstrumentSliderCard/InstrumentSliderCard\";\r\nimport pako from \"pako\";\r\nimport { instrumentsMap } from \"../PriceFeed/PriceFeed\";\r\nimport { Autoplay } from \"swiper\";\r\nexport const TwoInstrumentSliders = ({ instrumentIcons, resources, session, wsUrl, activeMarket, noteUnderPrices }) => {\r\n const [instruments, setInstruments] = useState([]);\r\n const [filteredInstrumentIcons, setFilteredInstrumentIcons] = useState([]);\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const prevAskPrices = useRef(new Map());\r\n const prevBidPrices = useRef(new Map());\r\n useEffect(() => {\r\n !view && setView(pageViewStyle.getView());\r\n const websocket = new WebSocket(`${wsUrl}/price-feed/${session}`);\r\n websocket.binaryType = \"arraybuffer\";\r\n const pingRequest = new TextEncoder().encode(\"ping\");\r\n let interval;\r\n websocket.onopen = () => {\r\n interval = setInterval(() => {\r\n websocket.send(pingRequest);\r\n }, 1000);\r\n };\r\n websocket.onmessage = (event) => {\r\n const data = event.data;\r\n const message = pako.inflate(data, { to: \"string\" });\r\n updatePriceFeed(message);\r\n };\r\n setFilteredInstrumentIcons(instrumentIcons.filter((item) => item.market === activeMarket).map(item => item.title === item.title ? { ...item, showTitle: item.title.replace(\"/\", \"\") } : item));\r\n return () => {\r\n clearInterval(interval);\r\n websocket.close();\r\n };\r\n }, []);\r\n const updatePriceFeed = (message) => {\r\n const dict = JSON.parse(message);\r\n const instruments = [];\r\n for (const key in dict) {\r\n if (key.includes(\"quote\")) {\r\n const group = key.split(\"_\")[0];\r\n const parsedValues = JSON.parse(dict[key]);\r\n const n = JSON.parse(dict[`${group}_marketItem_${key.split(\"_\")[2]}`]).Name;\r\n if (instrumentsMap[group.toLowerCase()].includes(parsedValues.Code)) {\r\n const dailyChange = calcDailyChange(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict);\r\n const prevBid = prevBidPrices.current.get(parsedValues.Code) ?? 0;\r\n const prevAsk = prevAskPrices.current.get(parsedValues.Code) ?? 0;\r\n const instrument = {\r\n name: n,\r\n code: parsedValues.Code,\r\n groupCode: group,\r\n bid: parsedValues.Bid,\r\n bidStyle: bidAskStyle(parsedValues.Bid, prevBid),\r\n bidIcon: bidAskIcon(parsedValues.Bid, prevBid),\r\n ask: parsedValues.Ask,\r\n askStyle: bidAskStyle(parsedValues.Ask, prevAsk),\r\n askIcon: bidAskIcon(parsedValues.Ask, prevAsk),\r\n spread: calcSpread(group, parsedValues.Code, parsedValues.Bid, parsedValues.Ask, dict),\r\n dailyChange,\r\n dailyChangeStyle: dailyChangeStyle(+dailyChange),\r\n dailyChangeIcon: dailyChangeIcon(+dailyChange),\r\n };\r\n prevAskPrices.current.set(parsedValues.Code, parsedValues.Ask);\r\n prevBidPrices.current.set(parsedValues.Code, parsedValues.Bid);\r\n instruments.push(instrument);\r\n }\r\n }\r\n }\r\n setInstruments(instruments.filter(instrument => instrument.groupCode === activeMarket));\r\n };\r\n const calcSpread = (group, code, bid, ask, dict) => {\r\n const marketItem = JSON.parse(dict[`${group}_marketItem_${code}`]);\r\n let decimalPrecision = 0;\r\n let tickSize = 0;\r\n if (dict[`${group}_marketItemInfo_${code}`]) {\r\n const marketItemInfo = JSON.parse(dict[`${group}_marketItemInfo_${code}`]);\r\n decimalPrecision =\r\n marketItemInfo.DecimalPrecision ?? marketItem.DecimalPrecision;\r\n tickSize = marketItemInfo.TickSize ?? marketItem.TickSize;\r\n }\r\n else {\r\n decimalPrecision = marketItem.DecimalPrecision;\r\n tickSize = marketItem.TickSize;\r\n }\r\n let decimal = tickSize >= 1.0 ? 0 : decimalPrecision;\r\n decimal = decimal > 2 ? decimal - 1 : decimal;\r\n const spread = ((ask - bid) * Math.pow(10, decimal)).toFixed(1);\r\n return spread;\r\n };\r\n const calcDailyChange = (group, code, bid, ask, dict) => {\r\n if (dict[`${group}_prevDayClosePrice_${code}`]) {\r\n const parsedValues = JSON.parse(dict[`${group}_prevDayClosePrice_${code}`]);\r\n const prevClose = parsedValues.PrevClose ?? 0;\r\n const averageCurrentPrice = (ask + bid) / 2;\r\n const dailyValue = averageCurrentPrice - prevClose;\r\n const dailyPercent = ((dailyValue / prevClose) * 100).toFixed(2);\r\n return `${dailyPercent}%`;\r\n }\r\n return \"N/A\";\r\n };\r\n const bidAskStyle = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const dailyChangeStyle = (value) => {\r\n if (value >= 0) {\r\n return \"price-feed__positive\";\r\n }\r\n else {\r\n return \"price-feed__negative\";\r\n }\r\n };\r\n const bidAskIcon = (currentPrice, previousPrice) => {\r\n if (currentPrice >= previousPrice) {\r\n return resources[0];\r\n }\r\n else {\r\n return resources[1];\r\n }\r\n };\r\n const dailyChangeIcon = (value) => {\r\n if (value >= 0) {\r\n return resources[0];\r\n }\r\n else {\r\n return resources[1];\r\n }\r\n };\r\n const multiplyInstruments = (originalArray) => Array(originalArray.length * 3).fill(originalArray).flat();\r\n const paymentRoller = React.useCallback((items, reverseDirection = false) => React.createElement(Swiper, { spaceBetween: 16, slidesPerView: \"auto\", loop: true, autoplay: {\r\n delay: 0,\r\n disableOnInteraction: false,\r\n reverseDirection,\r\n }, speed: 4000, modules: [Autoplay], className: \"awardsSli1derDark__swiper\" }, [...items,\r\n ...items,\r\n ...items].map((item, index) => (React.createElement(SwiperSlide, { key: `instrument-card-${index}` },\r\n React.createElement(InstrumentSliderCard, { title: filteredInstrumentIcons.filter((el) => el.showTitle === item.code)[0]?.title ?? \"\", description: item.name, icon: filteredInstrumentIcons.filter((el) => el.showTitle === item.code)[0]?.imageUrl ?? \"\", price1: `${item.bid}`, price2: `${item.ask}`, price1status: item.bidStyle, price2status: item.askStyle }))))), [filteredInstrumentIcons]);\r\n return (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"two-instrument-sliders\" }, instruments.length ? (React.createElement(React.Fragment, null, view !== \"large\" ?\r\n React.createElement(\"div\", { className: \"mobile-slider\" },\r\n paymentRoller(multiplyInstruments(instruments.filter((el, i) => i % 2 === 0))),\r\n React.createElement(\"br\", null),\r\n paymentRoller(multiplyInstruments(instruments.filter((el, i) => i % 2 !== 0)), true)) : React.createElement(React.Fragment, null,\r\n React.createElement(Swiper, { spaceBetween: 16, direction: \"vertical\", loop: true, slidesPerView: \"auto\", className: \"awardsSli1derDark__swiper\", speed: 5000, slidesOffsetBefore: 20, autoplay: {\r\n delay: 1,\r\n disableOnInteraction: false,\r\n } }, multiplyInstruments(instruments.filter((el, i) => i % 2 === 0)).map((instrument, index) => React.createElement(SwiperSlide, { key: `instrument-card-${index}` },\r\n React.createElement(InstrumentSliderCard, { title: filteredInstrumentIcons.filter((el) => el.showTitle === instrument.code)[0]?.title ?? \"\", description: instrument.name, icon: filteredInstrumentIcons.filter((el) => el.showTitle === instrument.code)[0]?.imageUrl ?? \"\", price1: `${instrument.bid}`, price2: `${instrument.ask}`, price1status: instrument.bidStyle, price2status: instrument.askStyle })))),\r\n React.createElement(Swiper, { spaceBetween: 16, direction: \"vertical\", loop: true, slidesPerView: \"auto\", className: \"awardsSli1derDark__swiper\", speed: 5000, autoplay: {\r\n delay: 1,\r\n disableOnInteraction: false,\r\n reverseDirection: true,\r\n } }, multiplyInstruments(instruments.filter((el, i) => i % 2 !== 0)).map((instrument, index) => React.createElement(SwiperSlide, { key: `instrument-card2-${index}` },\r\n React.createElement(InstrumentSliderCard, { title: filteredInstrumentIcons.filter((el) => el.showTitle === instrument.code)[0]?.title ?? \"\", description: instrument.name, icon: filteredInstrumentIcons.filter((el) => el.showTitle === instrument.code)[0]?.imageUrl ?? \"\", price1: `${instrument.bid}`, price2: `${instrument.ask}`, price1status: instrument.bidStyle, price2status: instrument.askStyle }))))))) : \"\"),\r\n noteUnderPrices && React.createElement(\"div\", { className: \"two-instrument-sliders__note-under-prices-container\" },\r\n React.createElement(\"span\", { className: \"two-instrument-sliders__note-under-prices\" }, noteUnderPrices))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img/Img\";\r\nimport { TwoInstrumentSliders } from \"../TwoInstrumentSliders\";\r\nexport const HeroBannerWithInstruments = (props) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"hero-banner-instruments\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"hero-banner-instruments__inner\" },\r\n React.createElement(\"div\", { className: \"hero-banner-instruments__text\" },\r\n React.createElement(\"h1\", { className: \"hero-banner-instruments__desktop-title\" }, props.title),\r\n React.createElement(\"div\", { className: \"hero-banner-instruments__content\", dangerouslySetInnerHTML: { __html: props.text } }),\r\n props.linkText && (React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: props.linkUrl, openInNewTab: props.linkOpenInNewTab }, props.linkText))),\r\n props.image ? React.createElement(Img, { src: props.image, className: \"hero-banner-instruments__image\" }) : React.createElement(TwoInstrumentSliders, { ...props.priceFeed }))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport Addplus from \"../../svgIcons/Addplus\";\r\nimport Substract from \"../../svgIcons/Substract\";\r\nexport const ExpandableCard = ({ cardComments, cardImage, cardImageAlt, cardSubtitle, cardTitle, currenciesTitle, currenciesValues, feeLabel, feeValue, isOpen = false, onPlusIconClick, cardId, showLoadMore = false, showLoadMoreFunc, loadMoreLabel }) => (React.createElement(\"div\", { key: cardId, className: `${isOpen === false ? \"ExpandableCardWrapperClosed\" : \"ExpandableCardWrapper\"}` },\r\n React.createElement(\"div\", { className: \"ExpandableCardWrapper__visibleHeader\" },\r\n React.createElement(\"div\", { className: \"ExpandableCardWrapper__visibleHeader__topCardInfo\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(Img, { src: cardImage, alt: cardImageAlt, className: \"ExpandableCardWrapper__visibleHeader__topCardInfo__image\" }),\r\n React.createElement(\"h4\", { className: \"ExpandableCardWrapper__visibleHeader__topCardInfo__cardTitle\" }, cardTitle)),\r\n React.createElement(\"span\", { className: \"ExpandableCardWrapper__visibleHeader__topCardInfo__signsWrapper\", onClick: onPlusIconClick && onPlusIconClick(cardId) }, isOpen === false ? Addplus({}) : Substract({}))),\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__visibleHeader__cardSubTitle\" }, cardSubtitle)),\r\n React.createElement(\"div\", { className: \"ExpandableCardWrapper__cardBody\" },\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__cardBody__cardComments\" }, cardComments),\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__cardBody__feeLabel\" }, feeLabel),\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__cardBody__feeValue\" }, feeValue),\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__cardBody__currenciesTitle\" }, currenciesTitle),\r\n React.createElement(\"div\", { className: \"ExpandableCardWrapper__cardBody__currenciesCurrenciesWrapper\" },\r\n React.createElement(\"p\", { className: \"ExpandableCardWrapper__cardBody__currenciesCurrenciesWrapper__currenciesValues\" },\r\n currenciesValues,\r\n showLoadMore && React.createElement(\"span\", { className: \"ExpandableCardWrapper__cardBody__currenciesCurrenciesWrapper__loadMore\", onClick: showLoadMoreFunc && showLoadMoreFunc(cardId) }, loadMoreLabel))))));\r\n","import React from \"react\";\r\nexport const ComponentHeader = ({ mainTitle, subTitle }) => (React.createElement(\"div\", { className: \"ComponentHeader\" },\r\n React.createElement(\"h2\", { className: \"ComponentHeader__mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"ComponentHeader__subTitle\" }, subTitle)));\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { ExpandableCard } from \"./ExpandableCard/ExpandableCard\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { ComponentHeader } from \"./ComponentHeader\";\r\nexport const ExpandableCardsContainer = ({ componentMainTitle, componentSubTitleTitle, cards, }) => {\r\n const [readyCards, setReadyCards] = useState([]);\r\n const { isSmall } = usePageViewStyle();\r\n const handleCardOpingCard = useCallback((id) => () => {\r\n const result = readyCards.map((a) => {\r\n if (a.cardId !== id) {\r\n return { ...a, isOpen: false };\r\n }\r\n return { ...a, isOpen: !a.isOpen };\r\n });\r\n setReadyCards(result);\r\n }, [readyCards]);\r\n useEffect(() => {\r\n if (cards.length > 0) {\r\n const value = cards.map((a) => {\r\n if (isSmall) {\r\n return { ...a, showLoadMore: false };\r\n }\r\n return ({ ...a, showLoadMore: (a.currenciesValues.length > 60) });\r\n });\r\n setReadyCards(value);\r\n }\r\n }, [cards, isSmall]);\r\n const handleCurrencyLength = useCallback((id) => {\r\n const value = readyCards.filter((a) => a.cardId === id)[0];\r\n if (value.showLoadMore === true) {\r\n return value.currenciesValues.slice(0, 45).trim().concat(\"...\");\r\n }\r\n return value.currenciesValues;\r\n }, [readyCards]);\r\n const handleShowLoadMoreFunc = useCallback((id) => () => {\r\n const result = readyCards.map((a) => {\r\n if (a.cardId === id) {\r\n return { ...a, showLoadMore: false };\r\n }\r\n return a;\r\n });\r\n setReadyCards(result);\r\n }, [readyCards]);\r\n const handleCardSubtitle = useCallback((value) => {\r\n const result = value.replace(\",\", \" | \");\r\n return result;\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"ExpandableCardsContainer\" },\r\n React.createElement(ComponentHeader, { mainTitle: componentMainTitle, subTitle: componentSubTitleTitle }),\r\n React.createElement(\"div\", { className: \"ExpandableCardsContainer__cardsWrapper\" }, readyCards.length > 0 &&\r\n readyCards.map((a) => (React.createElement(ExpandableCard, { cardId: a.cardId, key: a.cardId, cardComments: a.cardComments, cardImage: a.cardImage, cardImageAlt: a.cardImageAlt, cardSubtitle: handleCardSubtitle(a.cardSubtitle), cardTitle: a.cardTitle, feeLabel: a.feeLabel, feeValue: a.feeValue, currenciesTitle: a.currenciesTitle, isOpen: a.isOpen, showLoadMore: a.showLoadMore, currenciesValues: handleCurrencyLength(a.cardId), onPlusIconClick: handleCardOpingCard, showLoadMoreFunc: handleShowLoadMoreFunc, loadMoreLabel: a.loadMoreLabel }))))));\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { arrowRight } from \"../svgIcons/arrowRight\";\r\nconst MIN_QUANTITY_INSTRUMENTS = 3;\r\nexport const PopularInstruments = ({ title, centeredTitle, bottomLinkUrl, bottomLinkText, instruments, buttonLoadMoreText, threeColumns, instrumentsQuantity = MIN_QUANTITY_INSTRUMENTS }) => {\r\n const [allowManyOnMobile, setAllowManyOnMobile] = useState(false);\r\n const renderInstrument = (inst, index) => (React.createElement(\"div\", { key: inst.name + inst.linkUrl, className: `${((index < instrumentsQuantity) || allowManyOnMobile) ? \"\" : \"hide-small-ndb\"} popular-instruments__grid-item` },\r\n React.createElement(\"a\", { href: inst.linkUrl, style: { textDecoration: \"none\", color: \"inherit\", display: \"block\" } },\r\n React.createElement(\"div\", { className: \"popular-instruments__instrument-container\" },\r\n React.createElement(\"div\", { className: \"centered-container popular-instruments__icon\" },\r\n React.createElement(Img, { src: inst.iconImg, alt: inst.iconAlt, loading: \"eager\" })),\r\n React.createElement(\"div\", { className: \"centered-container1 popular-instruments__name\" },\r\n React.createElement(\"h5\", { className: \"h5-semi-bold\" }, inst.name)),\r\n React.createElement(\"p\", { className: \"caption popular-instruments__description\" }, inst.description),\r\n React.createElement(\"div\", { className: \"caption popular-instruments__arrow-icon\" }, arrowRight())))));\r\n const showMore = useCallback((e) => {\r\n e.preventDefault();\r\n setAllowManyOnMobile(() => true);\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"popular-instruments\" },\r\n React.createElement(\"div\", { className: `popular-instruments__title-container ${centeredTitle ? \"centered-container\" : \"\"}` },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: `popular-instruments__grid ${threeColumns ? \"popular-instruments__grid--three-cols\" : \"\"}` }, instruments?.map((instrument, i) => renderInstrument(instrument, i))),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"hide-medium-ndb hide-large-ndb\" }, !allowManyOnMobile && React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", onClick: showMore }, buttonLoadMoreText)),\r\n bottomLinkText && React.createElement(\"a\", { className: \"color-dark-default popular-instruments__bottom-link\", href: bottomLinkUrl },\r\n React.createElement(\"b\", null, bottomLinkText)))))));\r\n};\r\n","import React from \"react\";\r\nexport const arrowRight = () => (React.createElement(\"svg\", { width: \"17\", height: \"17\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M26.3 18.8c.235.234.366.552.367.883v.634c-.004.33-.136.647-.367.883l-8.567 8.55a.834.834 0 0 1-1.183 0l-1.183-1.183a.816.816 0 0 1 0-1.167l7.416-7.4-7.416-7.4a.833.833 0 0 1 0-1.183l1.183-1.167a.833.833 0 0 1 1.183 0L26.3 18.8z\", fill: \"currentColor\" })));\r\n","import React from \"react\";\r\nexport const CardDescription = ({ mainTitle, mainDescription }) => (React.createElement(\"div\", { className: \"CardDescription\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: { __html: mainTitle } }),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: mainDescription } })));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const KeepTraderInOrderSwiperCard = ({ comments, imageUrl, imageAlt }) => (React.createElement(\"div\", { className: \"keepTraderInOrderSwiperCard\" },\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt, className: \"keepTraderInOrderSwiperCard__image\", loading: \"eager\" }),\r\n React.createElement(\"span\", { className: \"keepTraderInOrderSwiperCard__textWrapper\" },\r\n React.createElement(\"h5\", { className: \"keepTraderInOrderSwiperCard__textWrapper__title\", dangerouslySetInnerHTML: { __html: comments.title } }),\r\n React.createElement(\"p\", { className: \"keepTraderInOrderSwiperCard__textWrapper__description\", dangerouslySetInnerHTML: {\r\n __html: comments.description\r\n } }))));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nimport { CardDescription } from \"./CardDescription/CardDescription\";\r\nimport { KeepTraderInOrderSwiperCard } from \"./KeepTraderInOrderSwiperCard/KeepTraderInOrderSwiperCard\";\r\nimport { getColors } from \"../../utils\";\r\nexport const KeepTraderInOrderSwiper = ({ mainTitle, mainDescription, localizationStringOF, cards, backgroundColor }) => {\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const { bgColor } = getColors(backgroundColor);\r\n const handleCurrentIndex = useCallback((swiper) => {\r\n setCurrentIndex(swiper.realIndex);\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"keepTraderInOrderSwiper__container\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"keepTraderInOrderSwiper\" },\r\n React.createElement(\"div\", { className: \"description-container\" },\r\n React.createElement(CardDescription, { mainTitle: mainTitle, mainDescription: mainDescription }),\r\n React.createElement(\"span\", { className: \"keepTraderInOrderSwiper__arrowsWrapper\" },\r\n React.createElement(\"a\", { className: \"arrow-prev-selector\" }, IconChevronDown({})),\r\n React.createElement(\"p\", { className: \"keepTraderInOrderSwiper__arrowsWrapper__currentPage\" },\r\n currentIndex + 1,\r\n \" \",\r\n ` ${localizationStringOF} `,\r\n \" \",\r\n cards.length),\r\n React.createElement(\"a\", { className: \"arrow-next-selector\" }, IconChevronDown({})))),\r\n React.createElement(\"div\", { className: \"keepTraderInOrderSwiper__swiperWrapper\" },\r\n React.createElement(Container, null,\r\n React.createElement(Swiper, { navigation: {\r\n nextEl: \".arrow-next-selector\",\r\n prevEl: \".arrow-prev-selector\"\r\n }, modules: [Mousewheel], onRealIndexChange: handleCurrentIndex, loop: true, mousewheel: true, breakpoints: {\r\n [601]: {\r\n slidesPerView: 2,\r\n spaceBetween: 0,\r\n },\r\n [1025]: {\r\n slidesPerView: (cards.length > 2) ? 2 : 1,\r\n spaceBetween: (cards.length > 3) ? -160 : 0,\r\n }\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `trader-slide-${i}` }, React.createElement(KeepTraderInOrderSwiperCard, { ...card })))))))))));\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Breadcrumbs } from \"../Breadcrumbs\";\r\nimport { Heading } from \"../Heading\";\r\nexport const CentredTitleWithSubtitle = ({ title, subtitle, imageSmall, imageLarge, alt, videoSmall, videoLarge, backgroundColor, titlePosition = \"center\", subtitlePosition = \"center\", breadcrumbs, breadcrumbBottomMargin = \"30px\", buttonHref, buttonLabel, h2title }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const mainCssClasses = \"centred-title-with-subtitle__main-container\"\r\n + `${titlePosition !== \"center\" ? ` centred-title-with-subtitle__main-container--title-${titlePosition}` : \"\"}`\r\n + `${subtitlePosition !== \"center\" ? ` centred-title-with-subtitle__main-container--subtitle-${subtitlePosition}` : \"\"}`;\r\n const imgLarge = useMemo(() => (videoLarge ?\r\n React.createElement(\"video\", { className: \"centred-title-with-subtitle__video\", autoPlay: true, loop: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: videoLarge || videoSmall, type: \"video/mp4\" }),\r\n React.createElement(Img, { className: \"centred-title-with-subtitle__image\", src: imageLarge || imageSmall, alt: alt })) :\r\n React.createElement(Img, { className: \"centred-title-with-subtitle__image\", src: imageLarge || imageSmall, alt: alt })), [alt, imageLarge, imageSmall, videoLarge, videoSmall]);\r\n const imgSmall = useMemo(() => (videoSmall ?\r\n React.createElement(\"video\", { className: \"centred-title-with-subtitle__video\", autoPlay: true, loop: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: videoSmall || videoLarge, type: \"video/mp4\" }),\r\n React.createElement(Img, { className: \"centred-title-with-subtitle__image\", src: imageSmall || imageLarge, alt: alt })) :\r\n React.createElement(Img, { className: \"centred-title-with-subtitle__image\", src: imageSmall || imageLarge, alt: alt })), [alt, imageLarge, imageSmall, videoLarge, videoSmall]);\r\n const getTitleStyle = () => h2title ? \"h2-regular\" : \"h1-regular\";\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n breadcrumbs && React.createElement(Breadcrumbs, { breadcrumbs: breadcrumbs, lightMode: backgroundColor === \"white\" }),\r\n React.createElement(\"div\", { style: { color: textColor, marginTop: breadcrumbBottomMargin }, className: \"centred-title-with-subtitle\" },\r\n React.createElement(\"div\", { className: mainCssClasses },\r\n React.createElement(\"div\", { className: \"centred-title-with-subtitle__title\" },\r\n React.createElement(Heading, { design: getTitleStyle() }, title)),\r\n React.createElement(\"div\", { className: \"centred-title-with-subtitle__subtitle\" },\r\n React.createElement(\"div\", { className: \"h5-semi-bold centred-title-with-subtitle__description\", dangerouslySetInnerHTML: { __html: subtitle } })),\r\n imgLarge &&\r\n React.createElement(\"div\", { className: \"centred-title-with-subtitle__images\" },\r\n React.createElement(\"div\", { className: \"centred-title-with-subtitle__image-container hide-small\" }, imgLarge),\r\n React.createElement(\"div\", { className: \"centred-title-with-subtitle__image-container hide-medium hide-large\" }, imgSmall))),\r\n buttonLabel && React.createElement(\"div\", { className: \"centred-title-with-subtitle__button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonHref }, buttonLabel))))));\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Img } from \"../Img\";\r\nimport { Heading } from \"../Heading\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nimport { CardsDeckInfoBox } from \"./CardsDeckInfoBox\";\r\nexport const CardsDeckWithTitle = ({ itemSection, mainTitle, mainButtonHref, mainButtonLabel, firstButtonHref, firstButtonLabel, secondButtonHref, secondButtonLabel, firstButtonImage, secondButtonImage, buttonDesign = \"cta-large-wbg\", secondInfoTitle, secondInfoSubtitle, darkMode, openInNewTabButton, firstButtonTarget, secondButtonTarget, infoTextIcon, infoText, infoBox }) => {\r\n const renderSecondInfoTitle = () => (secondInfoTitle && React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__second-info-container__info-title\", dangerouslySetInnerHTML: { __html: secondInfoTitle } }));\r\n const renderSecondInfoSubtitle = () => (secondInfoSubtitle && React.createElement(\"p\", { className: \"cardsDeckWithTitle-container__second-info-container__info-subtitle\" }, secondInfoSubtitle));\r\n const renderThirdInfoSection = () => (infoText && React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__second-info-container__info-text-dis\" },\r\n React.createElement(Img, { src: infoTextIcon }),\r\n React.createElement(\"p\", null, infoText)));\r\n const renderMainButtonSection = () => (mainButtonLabel && React.createElement(ButtonV2, { design: buttonDesign, href: mainButtonHref, openInNewTab: openInNewTabButton, classesWrapper: \"cardsDeckWithTitle-container__main-button\" }, mainButtonLabel));\r\n const renderButtonsSection = () => ((firstButtonLabel || secondButtonLabel) && React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__conditionalButtonsWrapper\" },\r\n firstButtonLabel && React.createElement(\"span\", { className: \"cardsDeckWithTitle-container__conditionalButtonsWrapper__firstButtonWrapper\" },\r\n React.createElement(Img, { src: firstButtonImage }),\r\n React.createElement(\"a\", { href: firstButtonHref, target: firstLinkHrefTarget }, firstButtonLabel)),\r\n secondButtonLabel && React.createElement(\"span\", { className: \"cardsDeckWithTitle-container__conditionalButtonsWrapper__secondButtonWrapper\" },\r\n React.createElement(Img, { src: secondButtonImage }),\r\n React.createElement(\"a\", { href: secondButtonHref, target: secondLinkHrefTarget }, secondButtonLabel))));\r\n const firstLinkHrefTarget = handleLinkTarget(firstButtonTarget);\r\n const secondLinkHrefTarget = handleLinkTarget(secondButtonTarget);\r\n return (React.createElement(\"div\", { className: `cardsDeckWithTitle-container ${darkMode ? \"cardsDeckWithTitle-container--dark\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__mainTitle\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, mainTitle)),\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__sectionWrapper\" }, itemSection.length > 0 && itemSection.map((a, index) => (React.createElement(Fragment, { key: `card-${index}` },\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__image-container\" },\r\n React.createElement(Img, { className: \"cardsDeckWithTitle-container__section-image\", src: a.imageUrl, alt: a.imageAlt })),\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__text-container\" },\r\n React.createElement(\"h5\", { dangerouslySetInnerHTML: {\r\n __html: a.title\r\n } }),\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__comments\", dangerouslySetInnerHTML: {\r\n __html: a.comment\r\n } })))))),\r\n renderButtonsSection(),\r\n infoBox?.text && React.createElement(CardsDeckInfoBox, { text: infoBox.text, title: infoBox.title }),\r\n renderMainButtonSection(),\r\n React.createElement(\"div\", { className: \"cardsDeckWithTitle-container__second-info-container__info-text\" },\r\n renderSecondInfoTitle(),\r\n renderSecondInfoSubtitle(),\r\n renderThirdInfoSection())));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nexport const CardsDeckWithTitleSimple = ({ title, items, buttonLink, buttonText, openInNewTab }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-simple\" },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-simple__title-container centered-container\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, title)),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-simple__cards-wrapper\" }, items && items.map((a, index) => (React.createElement(\"div\", { className: \"cards-deck-with-title-simple__card\", key: `card-${index}` },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-simple__image-container\" },\r\n React.createElement(ImgV2, { className: \"cards-deck-with-title-simple__section-image\", src: a.imageUrl, alt: a.imageAlt })),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-simple__text-container\" },\r\n React.createElement(\"h5\", { className: \"h5-bold\", dangerouslySetInnerHTML: {\r\n __html: a.title\r\n } }),\r\n React.createElement(\"p\", { className: \"p-regular\", dangerouslySetInnerHTML: {\r\n __html: a.text\r\n } })))))),\r\n buttonLink && React.createElement(\"div\", { className: \"cards-deck-with-title-simple__buttons-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"tmx25-round-green-lightgreen\", href: buttonLink, openInNewTab: openInNewTab, showArrowRight: true }, buttonText))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nimport { ButtonSquare } from \"../../ButtonSquare\";\r\nexport const TradeMiniAccountCard = ({ title, description, buttonLabel, buttonHref, mobileImg }) => (React.createElement(\"div\", { className: \"tradeMiniAccountCardWrapper\" },\r\n React.createElement(\"div\", { className: \"tradeMiniAccountCardWrapper__imageWrapper\" },\r\n React.createElement(Img, { src: mobileImg, alt: `unique${title}` })),\r\n React.createElement(\"div\", { className: \"tradeMiniAccountCardWrapper__comment__section-wrapper\" },\r\n React.createElement(\"h4\", null, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: description } }),\r\n React.createElement(ButtonSquare, { label: buttonLabel, href: buttonHref }))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { TradeMiniAccountCard } from \"./TradeMiniAccountCard/TradeMiniAccountCard\";\r\nexport const TradeMiniAccount = ({ mainTitle, subTitle, cards, cardOrientation = \"horizontal\" }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"tradeMiniAccount-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"tradeMiniAccount\" },\r\n React.createElement(\"div\", { className: \"tradeMiniAccount__text-container\" },\r\n React.createElement(\"h2\", null, mainTitle),\r\n React.createElement(\"p\", null, subTitle)),\r\n React.createElement(\"div\", { className: `${cardOrientation === \"horizontal\" ? \"tradeMiniAccount-cards-wrapper\" : \"tradeMiniAccount-cards-wrapperVertical\"}` }, cards.length > 0 && cards.map((a) => (React.createElement(TradeMiniAccountCard, { key: `unique${a.title}`, title: a.title, description: a.description, buttonLabel: a.buttonLabel, buttonHref: a.buttonHref, mobileImg: a.mobileImg, tabletImg: a.tabletImg, desktopImg: a.desktopImg })))))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { Heading } from \"../Heading\";\r\nexport const ItemDeckWithTitle = ({ cards, backgroundColor = \"white\", title, numColumns = 3, buttonUrl, buttonText, openInNewTabButton }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: `${backgroundColor === \"dark\" ? \"itemDeckWithTitle-dark-wrapper\" : \"itemDeckWithTitle-wrapper\"} itemDeckWithTitle-wrapper--${numColumns}-cols` },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapper__grid-wrapper\" },\r\n title && React.createElement(Heading, { design: \"h2-regular-small\" }, title),\r\n React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapper__grid-wrapper__cards-root\" }, cards.length > 0 && cards.map((a) => (React.createElement(\"div\", { key: `unique${a.title}`, className: \"itemDeckWithTitle-wrapper__grid-wrapper__cards-root__cards-wrapper\" },\r\n React.createElement(Img, { src: a.imageUrl, alt: a.imageAlt }),\r\n React.createElement(\"span\", { className: \"itemDeckWithTitle-wrapper__grid-wrapper__cards-root__cards-wrapper__texts\" },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, a.title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: a.comment,\r\n } })))))),\r\n buttonText && React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapper__button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonUrl, openInNewTab: openInNewTabButton }, buttonText)))))));\r\n};\r\n","import React from \"react\";\r\nexport const IconCloseWhite = (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M20.4853 0.687262L11.9993 9.17326L3.51331 0.687261C2.73238 -0.0936701 1.46624 -0.0936704 0.685307 0.68726C-0.0956236 1.46819 -0.0956217 2.73433 0.685309 3.51526L9.17131 12.0013L0.685308 20.4873C-0.0956231 21.2682 -0.0956236 22.5343 0.685307 23.3153C1.46624 24.0962 2.73238 24.0962 3.51331 23.3153L11.9993 14.8293L20.4853 23.3153C21.2662 24.0962 22.5324 24.0962 23.3133 23.3153C24.0942 22.5343 24.0942 21.2682 23.3133 20.4873L14.8273 12.0013L23.3133 3.51526C24.0942 2.73433 24.0942 1.46819 23.3133 0.687261C22.5324 -0.0936704 21.2662 -0.0936685 20.4853 0.687262Z\", fill: \"white\" })));\r\n","import React from \"react\";\r\nexport const IconPlayButton = (React.createElement(\"svg\", { width: \"25\", height: \"24\", viewBox: \"0 0 25 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M12.5 22C6.97715 22 2.5 17.5228 2.5 12C2.5 6.47715 6.97715 2 12.5 2C18.0228 2 22.5 6.47715 22.5 12C22.5 17.5228 18.0228 22 12.5 22ZM12.5 20C16.9183 20 20.5 16.4183 20.5 12C20.5 7.58172 16.9183 4 12.5 4C8.08172 4 4.5 7.58172 4.5 12C4.5 16.4183 8.08172 20 12.5 20ZM11.1219 8.41459L16.0008 11.6672C16.1846 11.7897 16.2343 12.0381 16.1117 12.2219C16.0824 12.2658 16.0447 12.3035 16.0008 12.3328L11.1219 15.5854C10.9381 15.708 10.6897 15.6583 10.5672 15.4745C10.5234 15.4088 10.5 15.3316 10.5 15.2526V8.74741C10.5 8.52649 10.6791 8.34741 10.9 8.34741C10.979 8.34741 11.0562 8.37078 11.1219 8.41459Z\", fill: \"black\" })));\r\n","import * as React from \"react\";\r\nimport \".\";\r\nimport { Button } from \"../Button\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { IconCloseWhite } from \"../svgIcons/iconCloseWhite\";\r\nimport { IconPlayButton } from \"../svgIcons/playButton\";\r\nexport const HeroBannerWithVideo = ({ title, text, text2, imageUrl, imageAlt, linkText, linkUrl, videoText, videoText2, videoUrl, imageTopUrl, imageTopAlt, buttonOpenInNewTab = false }) => {\r\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\r\n const openInNewTabValue = buttonOpenInNewTab !== true ? false : true;\r\n const handlePopoverToggle = React.useCallback((e) => {\r\n e.preventDefault();\r\n setPopoverOpen(!isPopoverOpen);\r\n }, [isPopoverOpen]);\r\n const handlePopoverClose = React.useCallback((e) => {\r\n e.preventDefault();\r\n setPopoverOpen(false);\r\n }, []);\r\n const FullscreenPopover = ({ isOpen, onClose, children }) => (React.createElement(\"div\", { className: `fullscreen-popover ${isOpen ? \"open\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"fullscreen-popover__content\" },\r\n React.createElement(\"span\", { onClick: onClose, className: \"fullscreen-popover__close\" }, IconCloseWhite),\r\n children)));\r\n const renderVideoLinks = React.useCallback(() => (React.createElement(React.Fragment, null,\r\n videoText && (React.createElement(\"a\", { onClick: handlePopoverToggle, href: \"#\", className: \"HeroBannerWithVideo__link color-dark-default\" },\r\n IconPlayButton,\r\n React.createElement(\"span\", null, videoText))),\r\n videoText2 && (React.createElement(\"a\", { onClick: handlePopoverToggle, href: \"#\", className: \"HeroBannerWithVideo__link2 color-dark-default p-bold\" },\r\n IconPlayButton,\r\n React.createElement(\"span\", null, videoText2))))), [videoText, videoText2, handlePopoverToggle]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"HeroBannerWithVideo\" },\r\n imageTopUrl && React.createElement(ImgV2, { className: \"HeroBannerWithVideo__img-top img-top\", src: imageTopUrl, alt: imageTopAlt }),\r\n React.createElement(\"h1\", { className: \"color-dark-default\" }, title),\r\n text && React.createElement(\"h5\", { className: \"HeroBannerWithVideo__description color-dark-default h5-semi-bold\" }, text),\r\n text2 && React.createElement(\"h5\", { className: \"HeroBannerWithVideo__description color-dark-80 h5-semi-bold\" }, text2),\r\n React.createElement(Button, { label: linkText, href: linkUrl, openinnewtab: openInNewTabValue.toString(), style: { color: \"#0E1D31\" }, primary: true }),\r\n imageUrl && React.createElement(Img, { src: imageUrl, alt: imageAlt }),\r\n renderVideoLinks())),\r\n React.createElement(FullscreenPopover, { isOpen: isPopoverOpen, onClose: handlePopoverClose },\r\n React.createElement(\"iframe\", { width: \"100%\", height: \"100%\", src: videoUrl, title: \"Introducing ThinkCopy\", frameBorder: \"0\", allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\", allowFullScreen: true }))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nexport const AnimatedRollingNumber = ({ rollTo, classes, rollFrom = 0, duration = 1000, step = 5 }) => {\r\n const [currentNumber, setCurrentNumber] = useState(rollFrom);\r\n const validStep = Math.max(1, Math.floor(step || 1));\r\n useEffect(() => {\r\n let isMounted = true;\r\n const incrementTime = duration / Math.ceil((rollTo - rollFrom) / validStep);\r\n const interval = setInterval(() => {\r\n if (isMounted) {\r\n setCurrentNumber((prevNumber) => {\r\n if (prevNumber < rollTo) {\r\n return prevNumber + validStep;\r\n }\r\n else {\r\n clearInterval(interval);\r\n return prevNumber;\r\n }\r\n });\r\n }\r\n }, incrementTime);\r\n return () => {\r\n isMounted = false;\r\n clearInterval(interval);\r\n };\r\n }, [rollFrom, rollTo, duration, validStep]);\r\n return (React.createElement(\"div\", { style: { marginRight: \"-10px\" }, className: \"animated-rolling-number\" },\r\n React.createElement(\"div\", { className: classes, style: { textAlign: \"left\" } }, currentNumber),\r\n React.createElement(\"div\", { className: classes, style: { visibility: \"hidden\", height: 0, marginRight: \"10px\" } }, rollTo)));\r\n};\r\n","import * as React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { AnimatedRollingNumber } from \"../AnimatedRollingNumber\";\r\nexport const HeroBannerWithRollingAnimationVideoBG = ({ title, text, buttonText, buttonUrl, buttonDesign = \"cta-large-dbg\", backgroundColor, videoUrl, rollingItems }) => {\r\n const { textColor } = getColors(backgroundColor);\r\n return (React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg\", style: { color: textColor } },\r\n React.createElement(\"h1\", null, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: text,\r\n } }),\r\n React.createElement(ButtonV2, { classes: \"hero-banner-with-rolling-animation-video-bg__button\", href: buttonUrl, design: buttonDesign },\r\n buttonText,\r\n \" \"),\r\n React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg__rolling-items-container\" }, rollingItems.map((item, i) => (React.createElement(\"div\", { key: i, className: \"hero-banner-with-rolling-animation-video-bg__rolling-item\" },\r\n React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg__rolling-item-upper flex centered-container\" },\r\n React.createElement(AnimatedRollingNumber, { classes: \"h3-bold\", rollTo: item.upperAmount, step: item.upperAmount > 100 ? 5 : 1 }),\r\n React.createElement(\"h3\", null, item.staticElement),\r\n React.createElement(Img, { alt: item.iconAlt, src: item.iconUrl, style: { width: \"40px\", marginBottom: \"3px\" } })),\r\n React.createElement(\"div\", { style: { textAlign: \"left\" }, className: \"caption color-dark-20\" }, item.description)))))))),\r\n React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg__video-container\" },\r\n React.createElement(\"div\", { className: \"hero-banner-with-rolling-animation-video-bg__video-mask\" }),\r\n React.createElement(\"video\", { className: \"hero-banner-with-rolling-animation-video-bg__video\", autoPlay: true, loop: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: videoUrl, type: 'video/mp4' })))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2/ImgV2\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Heading } from \"../Heading\";\r\nimport { CardsDeckInfoBox } from \"../CardsDeckWithTitle/CardsDeckInfoBox\";\r\nexport const ComponentColItemsDeckWithTitle = ({ cards, backgroundColor, mainTitle, mainSubtitle, mainTitlePosition, buttonUrl, buttonLabel, buttonOpenOnNewPage, infoBox }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const titleWrapper = () => (React.createElement(\"div\", { className: `ComponentColItemsDeckWithTitle-wrapper__title-wrapper ${mainTitlePosition === \"left\" ? \"main-title-position-left\" : (mainTitlePosition === \"right\" ? \"main-title-position-right\" : \"\")}` },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, mainTitle),\r\n React.createElement(\"p\", null, mainSubtitle)));\r\n const buttonWrapper = () => (buttonUrl && React.createElement(\"div\", { className: \"ComponentColItemsDeckWithTitle-wrapper__button-wrapper\" },\r\n React.createElement(ButtonV2, { href: buttonUrl, openInNewTab: buttonOpenOnNewPage, design: \"cta-large-dbg\" }, buttonLabel)));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"ComponentColItemsDeckWithTitle-wrapper\" },\r\n React.createElement(Container, null,\r\n titleWrapper(),\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"ComponentColItemsDeckWithTitle-wrapper__grid-wrapper\" }, cards.length > 0 &&\r\n cards.map((a) => (React.createElement(\"div\", { key: `unique${a.title}`, className: \"ComponentColItemsDeckWithTitle-wrapper__grid-wrapper__cards-wrapper\", style: {\r\n textAlign: a.titleSubtitlePosition === undefined ? \"center\" : a.titleSubtitlePosition.toLowerCase(),\r\n justifyItems: a.imagePosition === undefined ? \"center\" : a.imagePosition.toLowerCase()\r\n } },\r\n React.createElement(ImgV2, { src: a.imageUrl, alt: a.imageAlt, loading: \"eager\" }),\r\n React.createElement(\"span\", { className: \"ComponentColItemsDeckWithTitle-wrapper__grid-wrapper__cards-wrapper__texts\" },\r\n React.createElement(Heading, { design: \"h5-bold\" }, a.title),\r\n React.createElement(\"p\", { className: \"cardsDeckWithTitle-container__comments\", dangerouslySetInnerHTML: {\r\n __html: a.comment\r\n } })))))),\r\n buttonWrapper(),\r\n infoBox?.text && React.createElement(CardsDeckInfoBox, { text: infoBox.text, title: infoBox.title })))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { IconPDF } from \"../svgIcons/pdf\";\r\nexport const WideCardWithList = ({ title, subtitle, text, icon, iconAlt, linkText, linkUrl, listItems }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"WideCardWithList__title\" }, title),\r\n React.createElement(\"div\", { className: \"WideCardWithList__subtitle\" },\r\n React.createElement(Img, { src: icon, alt: iconAlt }),\r\n React.createElement(\"h4\", null, subtitle)),\r\n React.createElement(\"div\", { className: \"WideCardWithList\" },\r\n React.createElement(\"div\", { className: \"color-dark-80\", dangerouslySetInnerHTML: { __html: text } }),\r\n React.createElement(\"div\", { className: \"WideCardWithList__link-container\" },\r\n React.createElement(\"a\", { href: linkUrl, className: \"button button--secondary WideCardWithList__link\" },\r\n IconPDF,\r\n linkText)),\r\n React.createElement(\"ol\", { className: \"WideCardWithList__list\" }, listItems.map((item, i) => React.createElement(\"li\", { key: `WideCardWithList-item-${i}` },\r\n i + 1,\r\n \". \",\r\n item.text)))))));\r\n","import React from \"react\";\r\nexport const IconPDFDark = (React.createElement(\"svg\", { width: \"14\", height: \"16\", viewBox: \"0 0 14 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M4.66667 0.666992C4.48985 0.666992 4.32029 0.737232 4.19526 0.862252L0.19526 4.86225C0.07024 4.98728 0 5.15685 0 5.33366V13.3337C0 14.4383 0.895433 15.3337 2 15.3337H2.66667C3.03485 15.3337 3.33333 15.0352 3.33333 14.667C3.33333 14.2988 3.03485 14.0003 2.66667 14.0003H2C1.63181 14.0003 1.33333 13.7019 1.33333 13.3337V6.00033H4.66667C5.03487 6.00033 5.33333 5.70185 5.33333 5.33366V2.00033H10C10.3682 2.00033 10.6667 2.29881 10.6667 2.66699V7.33366C10.6667 7.70186 10.9651 8.00033 11.3333 8.00033C11.7015 8.00033 12 7.70186 12 7.33366V2.66699C12 1.56243 11.1046 0.666992 10 0.666992H4.66667ZM4 4.66699H2.27614L4 2.94313V4.66699ZM4.87187 15.7089C4.97713 15.8387 5.13013 15.9451 5.32307 15.9845C5.50373 16.0214 5.66153 15.9877 5.77087 15.9478C5.97207 15.8744 6.1304 15.736 6.23367 15.6341C6.39607 15.474 6.56607 15.2569 6.73527 15.0116C7.4748 14.7565 8.51407 14.5217 9.52467 14.3738C10.0865 14.2915 10.611 14.2405 11.0526 14.2232C11.2275 14.4291 11.3867 14.6066 11.5192 14.7407C11.6021 14.8245 11.6943 14.9117 11.7845 14.9784C11.8252 15.0085 11.9013 15.0617 11.9993 15.0999C12.0503 15.1197 12.3854 15.2477 12.6949 14.9983C12.8771 14.8515 13.0457 14.6873 13.1629 14.502C13.2808 14.3159 13.3919 14.0317 13.2994 13.7087C13.2087 13.3924 12.9725 13.2151 12.7987 13.1235C12.6213 13.0302 12.4219 12.9782 12.2391 12.9461C12.0733 12.9171 11.8859 12.8989 11.6822 12.8899C11.2695 12.3747 10.787 11.7338 10.3287 11.0802C9.92667 10.507 9.55187 9.93633 9.26067 9.43946C9.2906 9.31126 9.3156 9.18806 9.335 9.07099C9.3682 8.87046 9.38827 8.66966 9.38387 8.48106C9.37967 8.30013 9.35227 8.08226 9.25333 7.87879C9.1436 7.65333 8.944 7.44806 8.64547 7.36766C8.3776 7.29553 8.1222 7.34959 7.92627 7.42206C7.62393 7.53393 7.4582 7.78206 7.40093 8.02439C7.35253 8.22946 7.37873 8.42746 7.40907 8.56892C7.47173 8.86132 7.61793 9.19739 7.78633 9.52652C7.80133 9.55579 7.81673 9.58546 7.83247 9.61532C7.67353 10.1385 7.43853 10.7555 7.15947 11.3936C6.7504 12.3289 6.27033 13.2561 5.85687 13.919C5.5746 14.0373 5.31413 14.1726 5.1164 14.3281C4.98173 14.434 4.80127 14.6063 4.71493 14.8582C4.6088 15.1679 4.68407 15.4773 4.87187 15.7089ZM9.3316 13.0545C8.789 13.1339 8.22967 13.2381 7.69987 13.3598C7.93607 12.9019 8.1686 12.4137 8.38107 11.9279C8.50173 11.652 8.61793 11.3724 8.72567 11.0957C8.89067 11.3453 9.0628 11.5974 9.237 11.8457C9.5054 12.2284 9.78227 12.6077 10.0506 12.9628C9.8124 12.9885 9.57113 13.0195 9.3316 13.0545ZM8.70727 8.25646C8.7072 8.25559 8.70713 8.25519 8.70707 8.25519C8.70707 8.25513 8.70713 8.25619 8.70733 8.25846C8.70733 8.25766 8.70727 8.25699 8.70727 8.25646Z\", fill: \"black\" })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { IconPDFDark } from \"../svgIcons/pdfDark\";\r\nexport const WideCardWithListV2 = ({ wideCardWithListCard1, wideCardWithListCard2, title }) => {\r\n const card = React.useCallback((widecardwithlistpropscard) => (React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"wide-card-with-list-v2__subtitle p-regular color-dark-default\" },\r\n React.createElement(\"h3\", { className: \"h3-semi-bold-small\" }, widecardwithlistpropscard?.subtitle)),\r\n React.createElement(\"div\", { className: \"wide-card-with-list-v2\" },\r\n React.createElement(\"div\", { className: \"color-dark-80 wide-card-with-list-v2__richtext1\", dangerouslySetInnerHTML: {\r\n __html: widecardwithlistpropscard?.text?.split(\"#####\")[0] || \"\",\r\n } }),\r\n React.createElement(\"ol\", { className: \"wide-card-with-list-v2__list\" }, widecardwithlistpropscard?.listItems?.map((item, i) => item ? (React.createElement(\"li\", { key: `wide-card-with-list-v2-item-${i}` },\r\n React.createElement(\"div\", { className: \"wide-card-with-list-v2__gap-item1 flex\" },\r\n item.iconUrl && (React.createElement(ImgV2, { src: item.iconUrl, alt: item.iconAlt || \"icon\" })),\r\n React.createElement(\"div\", { className: \"centered-container text-nav color-dark-default\" }, item?.text)))) : React.createElement(React.Fragment, null))),\r\n React.createElement(\"div\", { className: \"color-dark-80 wide-card-with-list-v2__richtext2\", dangerouslySetInnerHTML: {\r\n __html: widecardwithlistpropscard?.text?.split(\"#####\")[1] || \"\",\r\n } }),\r\n widecardwithlistpropscard?.linkUrl && widecardwithlistpropscard?.linkText && (React.createElement(\"div\", { className: \"wide-card-with-list-v2__link-container\" },\r\n React.createElement(\"a\", { href: widecardwithlistpropscard.linkUrl, className: \"button button--secondary wide-card-with-list-v2__link\" },\r\n React.createElement(\"div\", { className: \"centered-container wide-card-with-list-v2__gap-item2 color-dark-default\" },\r\n IconPDFDark,\r\n widecardwithlistpropscard.linkText))))))), []);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"wide-card-with-list-v2__title color-dark-default\" }, title),\r\n React.createElement(\"div\", { className: \"wide-card-with-list-v2__top-level-flex\" },\r\n card(wideCardWithListCard1),\r\n card(wideCardWithListCard2))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nexport const SectionWithList = ({ informationItems, mainSubTitle, mainTitle }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"TradeWithComponentWrapper SectionWithList\" },\r\n React.createElement(\"div\", { className: \"\" },\r\n React.createElement(\"h2\", { className: \"TradeWithComponentWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"TradeWithComponentWrapper__mainSubTitle\", dangerouslySetInnerHTML: {\r\n __html: mainSubTitle ? mainSubTitle : \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"TradeWithComponentWrapper__sectionWrapper\" }, informationItems.length > 0 && informationItems.map((a) => (React.createElement(\"div\", { key: `unique${a.title}`, className: \"TradeWithComponentWrapper__sectionWrapper__section\" },\r\n React.createElement(Img, { src: a.icon, className: \"TradeWithComponentWrapper__sectionWrapper__section__image\", alt: a.iconAlt }),\r\n React.createElement(\"span\", { className: \"TradeWithComponentWrapper__sectionWrapper__section__titleWrapper\" },\r\n React.createElement(\"h5\", { className: \"TradeWithComponentWrapper__sectionWrapper__section__titleWrapper__title\" }, a.title),\r\n React.createElement(\"p\", { className: \"TradeWithComponentWrapper__sectionWrapper__section__titleWrapper__subTitle\" }, a.subTitle))))))))));\r\n","import React from \"react\";\r\nexport const IconChevronUpp = () => (React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M12.72 15.78a.75.75 0 0 1-.53.22h-.38a.77.77 0 0 1-.53-.22l-5.13-5.14a.5.5 0 0 1 0-.71l.71-.71a.49.49 0 0 1 .7 0L12 13.67l4.44-4.45a.5.5 0 0 1 .71 0l.7.71a.5.5 0 0 1 0 .71l-5.13 5.14z\", fill: \"#0E1D31\" })));\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../../Components/Img\";\r\nimport { IconChevronUpp } from \"../svgIcons/IconChevronUpp\";\r\nimport { ExternalLink } from \"../svgIcons/externalLink\";\r\nexport const AccessThinkPortalToday = (props) => {\r\n const [expandedIndex, setExpandedIndex] = useState(false);\r\n const [expandedIndexDesktop, setExpandedIndexDesktop] = useState(false);\r\n const onClickHandler = useCallback(function () {\r\n setExpandedIndex(!expandedIndex);\r\n }, [expandedIndex]);\r\n const onClickHandlerDesktop = useCallback(function () {\r\n setExpandedIndexDesktop(!expandedIndexDesktop);\r\n }, [expandedIndexDesktop]);\r\n const mobileButtonIcon = (index) => (React.createElement(\"div\", { className: index ? \"access-think-portal-today__expandableSection-open\" : \"access-think-portal-today__expandableSection\" }, index ? React.createElement(\"div\", { className: \"access-think-portal-today__expandableSection-open-container\" },\r\n React.createElement(Img, { src: props.mobileQRCode, alt: props.mobileQRCodeAlt }),\r\n React.createElement(\"p\", null, props.buttonMobileText)) : \"\"));\r\n const desktopButtonIcon = (index) => (React.createElement(\"div\", { className: index ? \"access-think-portal-today__expandableSection-open-d\" : \"access-think-portal-today__expandableSection-d\" }, index ? React.createElement(\"div\", { className: \"access-think-portal-today__expandableSection-open-d-buttons-container\" },\r\n React.createElement(\"a\", { rel: \"noopener\", href: props.buttonDesktopWindowsLink }, props.buttonDesktopWindowsText),\r\n React.createElement(\"a\", { rel: \"noopener\", href: props.buttonDesktopMacLink }, props.buttonDesktopMacText)) : \"\"));\r\n const arrowIcon = (index) => (React.createElement(\"span\", { className: index ? \"access-think-portal-today__arrow-active\" : \"access-think-portal-today__arrow\" }, IconChevronUpp()));\r\n const arrowIconDesktop = (index) => (React.createElement(\"span\", { className: index ? \"access-think-portal-today__arrow-active-d\" : \"access-think-portal-today__arrow-d\" }, IconChevronUpp()));\r\n return (React.createElement(\"div\", { className: \"access-think-portal-today\", id: \"MTSection\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-image\" },\r\n React.createElement(Img, { src: props.mainImageUrl, alt: props.mainImageAlt })),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-text\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-description\" },\r\n React.createElement(\"p\", null, props.description)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-buttons\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-button-m\" },\r\n React.createElement(\"h6\", { className: \"h4-semi-bold\", onClick: onClickHandler },\r\n React.createElement(Img, { src: props.mobileSVGIcon, alt: props.mobileSVGIconAlt }),\r\n props.buttonMobileTitle,\r\n arrowIcon(expandedIndex)),\r\n mobileButtonIcon(expandedIndex)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-button-w\" },\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.buttonWebLink },\r\n React.createElement(\"h6\", { className: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.browserSVGIcon, alt: props.browserSVGIconAlt }),\r\n props.buttonWebText,\r\n React.createElement(\"span\", null, ExternalLink())))),\r\n props.buttonDesktopText && React.createElement(\"div\", { className: \"access-think-portal-today__desktop-container-button-d\" },\r\n React.createElement(\"h6\", { className: \"h4-semi-bold\", onClick: onClickHandlerDesktop },\r\n React.createElement(Img, { src: props.desktopSVGIcon, alt: props.desktopSVGIconAlt }),\r\n props.buttonDesktopText,\r\n arrowIconDesktop(expandedIndexDesktop)),\r\n desktopButtonIcon(expandedIndexDesktop)))))),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-text\" },\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"p\", null, props.description)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-image\" },\r\n React.createElement(Img, { src: props.mainImageUrl, alt: props.mainImageAlt })),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-buttons\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-button-m\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-button-text\" },\r\n React.createElement(Img, { src: props.mobileSVGIcon, alt: props.mobileSVGIconAlt }),\r\n React.createElement(\"h4\", null, props.buttonMobileTitle)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-button-logos\" },\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.googlePlayUrl },\r\n React.createElement(Img, { src: props.googlePlayImageUrl, alt: props.googlePlayImageAlt })),\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.appStoreUrl },\r\n React.createElement(Img, { src: props.appStoreImageUrl, alt: props.appStoreImageAlt })))),\r\n React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-button-w\" },\r\n React.createElement(\"h4\", null,\r\n React.createElement(Img, { src: props.browserSVGIcon, alt: props.browserSVGIconAlt }),\r\n props.buttonWebText,\r\n React.createElement(\"div\", { style: { alignSelf: \"center\" } },\r\n \" \",\r\n ExternalLink())),\r\n props.buttonWebMobileDescription && React.createElement(\"p\", null, props.buttonWebMobileDescription)),\r\n props.buttonDesktopText && React.createElement(\"div\", { className: \"access-think-portal-today__mobile-container-button-d\" },\r\n React.createElement(\"h4\", null,\r\n React.createElement(Img, { src: props.desktopSVGIcon, alt: props.desktopSVGIconAlt }),\r\n props.buttonDesktopText),\r\n React.createElement(\"p\", null, props.buttonDesktopMobileDescription)))))))));\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const ImageToggle = ({ toggleImages: { mainImageUrl, mainImageAlt, toggledImageUrl, toggledImageAlt, }, imgContainerCssClass }) => {\r\n const [isImageToggled, setIsImageToggled] = useState(undefined);\r\n const handleShowMainImage = useCallback(() => {\r\n setIsImageToggled(false);\r\n }, []);\r\n const handleShowToggledImage = useCallback(() => {\r\n setIsImageToggled(true);\r\n }, []);\r\n return (React.createElement(\"div\", { className: `image-toggle image-toggle__main-image ${isImageToggled ? \"image-toggle--toggled\" : \"\"} ${isImageToggled !== undefined ? \"image-toggle--activate-animations\" : \"\"}` },\r\n React.createElement(\"div\", { className: `image-toggle__image-container ${imgContainerCssClass}` },\r\n React.createElement(\"div\", { className: \"image-toggle__main-image\" },\r\n React.createElement(Img, { src: mainImageUrl, alt: mainImageAlt })),\r\n React.createElement(\"div\", { className: \"image-toggle__toggled-image\" },\r\n React.createElement(Img, { src: toggledImageUrl, alt: toggledImageAlt }))),\r\n React.createElement(\"div\", { className: `image-toggle__control ${isImageToggled ? \" image-toggle__control--toggled\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"image-toggle__control-option image-toggle__control-option--main\", onClick: handleShowMainImage }),\r\n React.createElement(\"div\", { className: \"image-toggle__control-option image-toggle__control-option--toggled\", onClick: handleShowToggledImage }))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ExternalLink } from \"../svgIcons/externalLink\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImageToggle } from \"./ImageToggle\";\r\nexport const AccessThinkPortalTodayImgToggle = (props) => (React.createElement(\"div\", { className: \"access-think-portal-today access-think-portal-today-img-toggle\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__inner\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__options-container\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, props.title),\r\n React.createElement(\"p\", null, props.description),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__options\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option access-think-portal-today-img-toggle__option-mobile-app access-think-portal-today-img-toggle--desktop-view\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-info\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.mobileSVGIcon, alt: props.mobileSVGIconAlt }),\r\n props.buttonMobileTitle),\r\n React.createElement(\"p\", null, props.buttonMobileText)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-links\" },\r\n React.createElement(Img, { src: props.mobileQRCode, alt: props.mobileQRCodeAlt, className: \"access-think-portal-today-img-toggle__qr-code\" }))),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option access-think-portal-today-img-toggle__option-mobile-app access-think-portal-today-img-toggle--mobile-view\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-info\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.mobileSVGIcon, alt: props.mobileSVGIconAlt }),\r\n props.buttonMobileTitle)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-links\" },\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.googlePlayUrl },\r\n React.createElement(Img, { src: props.googlePlayImageUrl, alt: props.googlePlayImageAlt })),\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.appStoreUrl },\r\n React.createElement(Img, { src: props.appStoreImageUrl, alt: props.appStoreImageAlt })))),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option access-think-portal-today-img-toggle__option-web access-think-portal-today-img-toggle--desktop-view\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-info\" },\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.buttonWebLink },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.browserSVGIcon, alt: props.browserSVGIconAlt }),\r\n props.buttonWebText))),\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: props.buttonWebLink }, ExternalLink())),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option access-think-portal-today-img-toggle__option-web access-think-portal-today-img-toggle--mobile-view\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-info\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.browserSVGIcon, alt: props.browserSVGIconAlt }),\r\n props.buttonWebText)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-links\" },\r\n props.buttonWebMobileDescription,\r\n \" \",\r\n ExternalLink())),\r\n props.buttonDesktopText && React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option access-think-portal-today-img-toggle__option-desktop-app\" },\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-info\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(Img, { src: props.desktopSVGIcon, alt: props.desktopSVGIconAlt }),\r\n props.buttonDesktopText)),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__option-links\" },\r\n React.createElement(\"a\", { rel: \"noopener\", href: props.buttonDesktopWindowsLink }, props.buttonDesktopWindowsText),\r\n React.createElement(\"a\", { rel: \"noopener\", href: props.buttonDesktopMacLink }, props.buttonDesktopMacText))))),\r\n React.createElement(\"div\", { className: \"access-think-portal-today-img-toggle__img-block\" },\r\n React.createElement(ImageToggle, { toggleImages: {\r\n mainImageUrl: props.mainImageUrl,\r\n mainImageAlt: props.mainImageAlt,\r\n toggledImageUrl: props.toggledImageUrl,\r\n toggledImageAlt: props.toggledImageAlt\r\n }, imgContainerCssClass: \"access-think-portal-today-img-toggle__img-container\" })))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonLink } from \"../ButtonLink/ButtonLink\";\r\nimport { Heading } from \"../Heading\";\r\nexport const TitleWithSubtitleAndThreeSimpleCards = ({ title, description, buttons, designStyles }) => {\r\n const { bgColor, textColor } = getColors(designStyles.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"title-with-subtitle-and-cards\" },\r\n React.createElement(\"div\", { className: \"flex title-with-subtitle-and-cards__title-container\" },\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(Heading, { design: designStyles.titleDesign }, title)),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"h5-semi-bold\" },\r\n \" \",\r\n description))),\r\n React.createElement(\"br\", null),\r\n React.createElement(\"div\", { className: \"grid title-with-subtitle-and-cards__buttons-container\" }, buttons.map((b, i) => React.createElement(\"div\", { key: i },\r\n React.createElement(ButtonLink, { style: { width: \"100%\" }, href: b.url },\r\n React.createElement(\"span\", { className: \"h4-semi-bold\" }, b.title)))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const ThreeImagesCardComponent = ({ imageUrl, imageAlt, comment, title }) => (React.createElement(\"div\", { className: \"threeImagesCardComponent\" },\r\n React.createElement(\"div\", { className: \"threeImagesCardComponent__imageWrapper\" },\r\n React.createElement(Img, { loading: \"eager\", src: imageUrl, alt: imageAlt })),\r\n React.createElement(\"h4\", null, title),\r\n React.createElement(\"p\", null, comment)));\r\n","import React from \"react\";\r\nimport { ThreeImagesCardComponent } from \"../ThreeImagesCardComponent/ThreeImagesCardComponent\";\r\nexport const ThreeImagesCardComponentLarge = ({ inView, cards }) => (React.createElement(\"div\", { className: `threeImagesCardsWrapper__cardsWrapper ${inView ? \"threeImagesCardsWrapper__cardsWrapper--animated\" : \"\"}` }, cards.map((card) => (React.createElement(ThreeImagesCardComponent, { key: `threeImagesCard-slide-${card.title}`, ...card })))));\r\n","import React from \"react\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide, } from \"swiper/react\";\r\nimport { ThreeImagesCardComponent } from \"../ThreeImagesCardComponent/ThreeImagesCardComponent\";\r\nexport const ThreeImagesCardComponentSwiper = ({ cards }) => (React.createElement(\"div\", { className: \"threeImagesCardsWrapper__cardsWrapper\" },\r\n React.createElement(Swiper, { modules: [Mousewheel], mousewheel: true, spaceBetween: 10, breakpoints: {\r\n [375]: {\r\n slidesPerView: \"auto\",\r\n spaceBetween: -60,\r\n },\r\n [601]: {\r\n slidesPerView: 2.2,\r\n spaceBetween: 24,\r\n },\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `threeImagesCard-slide-${i}` }, React.createElement(ThreeImagesCardComponent, { ...card }))))));\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ThreeImagesCardComponentLarge } from \"./ThreeImagesCardComponentLarge/ThreeImagesCardComponentLarge\";\r\nimport { ThreeImagesCardComponentSwiper } from \"./ThreeImagesCardComponentSwiper/ThreeImagesCardComponentSwiper\";\r\nexport const ThreeImagesCards = ({ cards, mainTitle, subTitle, animation }) => {\r\n const { isLarge } = usePageViewStyle();\r\n const [alternativeComponent, setAlternativeComponent] = useState(React.createElement(React.Fragment, null));\r\n const { ref, inView } = useInView({\r\n threshold: 0,\r\n triggerOnce: true,\r\n });\r\n const currentComponentHandler = useCallback(() => {\r\n if (!isLarge && animation) {\r\n return React.createElement(ThreeImagesCardComponentSwiper, { cards: cards });\r\n }\r\n else {\r\n return React.createElement(ThreeImagesCardComponentLarge, { cards: cards, inView: inView });\r\n }\r\n }, [animation, cards, inView, isLarge]);\r\n useEffect(() => {\r\n setAlternativeComponent(currentComponentHandler());\r\n }, [currentComponentHandler]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"threeImagesCardsWrapper\", ref: ref },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"threeImagesCardsWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"threeImagesCardsWrapper__subTitle\" }, subTitle),\r\n alternativeComponent))));\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { IconPlayButton } from \"../svgIcons/playButton\";\r\nimport { Img } from \"../Img\";\r\nimport { YouTubeVideoEmbed } from \"../Cards/VideoCardDeck/YouTubeVideoEmbed\";\r\nimport { IconClose } from \"../svgIcons\";\r\nimport { pageViewStyle } from \"../../pageViewStyle\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nexport const ManagePortfolioWithEase = ({ mainSubTitle, mainTitle, mobileLinkLabel, mobileLink, webLinkLabel, webLink, imageUrlDesktop, imageUrlMobile, imageAlt }) => {\r\n const [currentUrlVideo, setCurrentUrlVideo] = useState();\r\n const [showVideo, setShowVideo] = useState();\r\n const [view, setView] = useState(pageViewStyle.getView());\r\n const { ref, inView } = useInView({\r\n threshold: 0,\r\n });\r\n const handleCurrentVideo = useCallback((videoUrl) => () => {\r\n setCurrentUrlVideo(videoUrl);\r\n setShowVideo(prev => !prev);\r\n }, []);\r\n const handleCloseVideo = useCallback(() => (setShowVideo(prev => !prev)), []);\r\n const handleDeviceImage = () => {\r\n if (view === \"small\") {\r\n return React.createElement(Img, { src: imageUrlMobile, alt: imageAlt });\r\n }\r\n return React.createElement(Img, { src: imageUrlDesktop, alt: imageAlt });\r\n };\r\n useEffect(() => {\r\n !view && setView(pageViewStyle.getView());\r\n }, [view]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"managePortfolioWithEase-root\", ref: ref },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `managePortfolioWithEaseWrapper ${inView ? \"managePortfolioWithEaseWrapper--animated\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"managePortfolioWithEaseWrapper__textsWrapper\" },\r\n React.createElement(\"h2\", null, mainTitle),\r\n React.createElement(\"h5\", null, mainSubTitle)),\r\n React.createElement(\"div\", { className: \"managePortfolioWithEaseWrapper__links-wrapper\" },\r\n React.createElement(\"span\", { className: \"managePortfolioWithEaseWrapper__links-wrapper__webLinkWrapper\", onClick: handleCurrentVideo(webLink) },\r\n IconPlayButton,\r\n React.createElement(\"span\", null, webLinkLabel)),\r\n React.createElement(\"span\", { className: \"managePortfolioWithEaseWrapper__links-wrapper__mobileLinkWrapper\", onClick: handleCurrentVideo(mobileLink) },\r\n IconPlayButton,\r\n React.createElement(\"span\", null, mobileLinkLabel))),\r\n handleDeviceImage(),\r\n (showVideo && currentUrlVideo) &&\r\n React.createElement(\"div\", { className: \"managePortfolioWithEaseWrapper__modal\" }, currentUrlVideo && React.createElement(\"div\", { className: \"managePortfolioWithEaseWrapper__modal__videoWrapper\" },\r\n React.createElement(\"span\", { onClick: handleCloseVideo, className: \"iconWrapper\" }, IconClose()),\r\n React.createElement(YouTubeVideoEmbed, { videoUrl: currentUrlVideo }))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Button } from \"../Button\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const HeroBannerWithVideoBG = ({ title, text, imageUrl, imageAlt, linkText, linkUrl, backgroundColor, videoUrl }) => {\r\n const { textColor } = getColors(backgroundColor);\r\n return (React.createElement(\"div\", { className: \"HeroBannerWithVideoBG__container\" },\r\n React.createElement(ContainerFW, null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"HeroBannerWithVideoBG\", style: { color: textColor } },\r\n React.createElement(\"h1\", null, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: text,\r\n } }),\r\n linkText && React.createElement(Button, { label: linkText, href: linkUrl, style: { color: \"#0E1D31\" }, primary: true }),\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt })))),\r\n React.createElement(\"div\", { className: \"HeroBannerWithVideoBG__video-container\" },\r\n React.createElement(\"div\", { className: \"HeroBannerWithVideoBG__video-mask\" }),\r\n React.createElement(\"video\", { className: \"HeroBannerWithVideoBG__video\", autoPlay: true, loop: true, muted: true },\r\n React.createElement(\"source\", { src: videoUrl, type: 'video/mp4' })))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nexport const BubbleTitleDescButtons = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const linkHrefTarget = handleLinkTarget(props.linkOpenInNewTab);\r\n const buttonkHrefTarget = handleLinkTarget(props.buttonOpenInNewTab);\r\n return (React.createElement(\"div\", { className: \"bubbleTitleDescButtons\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"bubbleTitleDescButtons__main-container\" },\r\n React.createElement(\"div\", { className: \"bubbleTitleDescButtons__text-container\" },\r\n React.createElement(\"h3\", null, props.title),\r\n props.description && React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: props.description } })),\r\n (props.buttonLabel || props.linkLabel) && React.createElement(\"div\", { className: \"bubbleTitleDescButtons__buttons-container\" },\r\n props.buttonLabel && React.createElement(\"a\", { className: \"bubbleTitleDescButtons__main-button\", href: props.buttonURL, target: buttonkHrefTarget }, props.buttonLabel),\r\n props.linkLabel && (React.createElement(\"a\", { className: \"bubbleTitleDescButtons__demo-link bubbleTitleDescButtons__with-arrow\", href: props.linkURL, target: linkHrefTarget }, props.linkLabel))))))));\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const PhonesGridContainer = ({ mainTitle, subTitle, upperTitle, phonesImageUrl }) => {\r\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if (currentImageIndex < phonesImageUrl.length - 1) {\r\n setCurrentImageIndex(currentImageIndex + 1);\r\n }\r\n else {\r\n setCurrentImageIndex(0);\r\n }\r\n }, 2000);\r\n return () => clearInterval(interval);\r\n }, [currentImageIndex, phonesImageUrl.length]);\r\n return (React.createElement(\"div\", { className: \"phonesGridContainerWrapper\" },\r\n React.createElement(\"p\", { className: \"phonesGridContainerWrapper__upperTitle\" }, upperTitle),\r\n React.createElement(\"h3\", { className: \"phonesGridContainerWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"phonesGridContainerWrapper__mainSubTItle\" }, subTitle),\r\n React.createElement(\"div\", { className: \"phonesGridContainerWrapper__phoneImagesWrapper\" }, phonesImageUrl.length > 0 && phonesImageUrl.map((a, index) => (React.createElement(Img, { key: `unique${a}`, src: phonesImageUrl[index], alt: mainTitle, className: `${currentImageIndex === index ? \"elementToFadeIn\" : \"elementToFadeOut\"}` }))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const ChartsGridContainer = ({ mainTitle, subTitle, chartsUrl }) => (React.createElement(\"div\", { className: \"chartsGridContainerWrapper\" },\r\n React.createElement(\"h3\", { className: \"chartsGridContainerWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"h5\", { className: \"chartsGridContainerWrapper__subTitle\" }, subTitle),\r\n React.createElement(\"div\", { className: \"chartsGridContainerWrapper__chartsImageWrapper\" },\r\n React.createElement(Img, { src: chartsUrl, alt: mainTitle }))));\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const NotificationCard = ({ mainTitle, subTitle, imageUrl, elapsedTime }) => (React.createElement(\"div\", { key: `unique${mainTitle}`, className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard\" },\r\n React.createElement(\"div\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__imageContainer\" },\r\n React.createElement(Img, { src: imageUrl, alt: mainTitle })),\r\n React.createElement(\"div\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__notificationsTexts\" },\r\n React.createElement(\"div\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__notificationsTexts__headerWrapper\" },\r\n React.createElement(\"p\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__notificationsTexts__headerWrapper__notification-mainTitle\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__notificationsTexts__headerWrapper__notification-elapsedTime\" }, elapsedTime)),\r\n React.createElement(\"p\", { className: \"notificationsGridContainerWrapper__notificationsWrapper__notificationCard__notificationsTexts__notification-subTitle\" }, subTitle))));\r\n","import React from \"react\";\r\nimport { Autoplay, Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { NotificationCard } from \"./NotificationCard\";\r\nexport const NotificationsGridContainer = ({ mainTitle, subTitle, notifications, imageUrl }) => (React.createElement(\"div\", { className: \"notificationsGridContainerWrapper\" },\r\n React.createElement(\"div\", { className: \"notificationsGridContainerWrapper__textsWrapper\" },\r\n React.createElement(\"h3\", { className: \"notificationsGridContainerWrapper__textsWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"h5\", { className: \"notificationsGridContainerWrapper__textsWrapper__subTitle\" }, subTitle)),\r\n React.createElement(\"div\", { className: \"notificationsGridContainerWrapper__notificationsWrapper\" },\r\n React.createElement(Swiper, { autoHeight: true, slidesPerView: \"auto\", loop: true, mousewheel: true, autoplay: {\r\n delay: 1000,\r\n disableOnInteraction: false,\r\n }, speed: 2000, modules: [Autoplay, Mousewheel], direction: \"vertical\" }, [...notifications, ...notifications].map((card, i) => React.createElement(SwiperSlide, { key: `trader-slide-${i}` }, React.createElement(NotificationCard, { key: `unique${card.mainTitle}${i}`, imageUrl: imageUrl, ...card })))))));\r\n","import React from \"react\";\r\nimport { PhonesGridContainer } from \"./MiniComponentsGridContainer/PhonesGridContainer/PhonesGridContainer\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ChartsGridContainer } from \"./MiniComponentsGridContainer/ChartsGridContainer/ChartsGridContainer\";\r\nimport { NotificationsGridContainer } from \"./MiniComponentsGridContainer/NotificationsGridContainer/NotificationsGridContainer\";\r\nexport const AnimatedBoxGrid = ({ mainTitle, subTitle, phoneGridContent, chartGridContent, notificationsGridContent, }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(\"div\", { className: \"animatedBoxGridWrapper\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"span\", { className: \"animatedBoxGridWrapper__titlesWrapper\" },\r\n React.createElement(\"h2\", { className: \"animatedBoxGridWrapper__titlesWrapper__mainTitle\" }, mainTitle),\r\n React.createElement(\"h5\", { className: \"animatedBoxGridWrapper__titlesWrapper__mainSubTitle\" }, subTitle)),\r\n React.createElement(\"div\", { className: \"animatedBoxGridWrapper__phoneGridWrapper\" },\r\n React.createElement(PhonesGridContainer, { mainTitle: phoneGridContent.mainTitle, subTitle: phoneGridContent.subTitle, upperTitle: phoneGridContent.upperTitle, phonesImageUrl: phoneGridContent.phonesImageUrl })),\r\n React.createElement(\"div\", { className: \"animatedBoxGridWrapper__chartsGridWrapper\" },\r\n React.createElement(ChartsGridContainer, { mainTitle: chartGridContent.mainTitle, subTitle: chartGridContent.subTitle, chartsUrl: chartGridContent.chartsUrl })),\r\n React.createElement(\"div\", { className: \"animatedBoxGridWrapper__notificationsGridWrapper\" },\r\n React.createElement(NotificationsGridContainer, { mainTitle: notificationsGridContent.mainTitle, subTitle: notificationsGridContent.subTitle, imageUrl: notificationsGridContent.imageUrl, notifications: notificationsGridContent.notifications }))))));\r\n","import React, { useCallback } from \"react\";\r\nexport const ClickAndPlayButton = ({ buttonIndex, buttonLabel, isActive, onClick }) => {\r\n const handleButtonClick = useCallback((event) => {\r\n onClick(event, buttonIndex);\r\n }, [buttonIndex, onClick]);\r\n return React.createElement(\"button\", { className: isActive ? \"active\" : \"\", onClick: handleButtonClick }, buttonLabel);\r\n};\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport { getVideoType } from \"../../../../src/utils\";\r\nimport { ContainerFW, } from \"../../global\";\r\nimport { ClickAndPlayButton } from \"./ClickAndPlayButton\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nconst checkHasVideos = (videosProp) => videosProp && videosProp.length ? true : false;\r\nconst getContainerClassName = (inView) => {\r\n let className = \"click-and-play-video-card__video-container\";\r\n if (inView) {\r\n className += \" click-and-play-video-card__video-container--animated\";\r\n }\r\n return className;\r\n};\r\nexport const ClickAndPlayVideoCard = (props) => {\r\n const hasVideos = checkHasVideos(props.videos);\r\n const videoPosition = props.videoPosition || \"left\";\r\n const currentVideoIndex = hasVideos ? 0 : undefined;\r\n const [videoIndex, setVideoIndex] = useState(currentVideoIndex);\r\n const [playbackStatus, setPlaybackStatus] = useState(\"idle\");\r\n const { ref, inView } = useInView({\r\n threshold: 0,\r\n triggerOnce: true,\r\n });\r\n const videoElRef = useRef(null);\r\n const allowAutoPlay = useRef(false);\r\n const activeVideo = videoIndex !== undefined ? props.videos[videoIndex] : undefined;\r\n const playVideo = async () => {\r\n await videoElRef?.current?.play()\r\n .then(() => {\r\n setPlaybackStatus(\"playing\");\r\n })\r\n .catch(console.error);\r\n };\r\n const changeVideoStatus = useCallback((newIndex, forcedIsPlayingStatus = undefined) => {\r\n const isSameIndex = videoIndex === newIndex;\r\n if (isSameIndex) {\r\n if (playbackStatus === \"playing\" && forcedIsPlayingStatus === undefined) {\r\n return;\r\n }\r\n const newStatus = forcedIsPlayingStatus || \"pending\";\r\n setPlaybackStatus(newStatus);\r\n }\r\n else {\r\n videoElRef?.current?.load();\r\n setVideoIndex(newIndex);\r\n if ([\"idle\", \"playing\"].includes(playbackStatus)) {\r\n setPlaybackStatus(\"pending\");\r\n }\r\n }\r\n }, [playbackStatus, videoIndex]);\r\n const handleVideoTransitionEnd = useCallback(() => {\r\n allowAutoPlay.current = true;\r\n if (videoIndex === undefined) {\r\n return;\r\n }\r\n changeVideoStatus(videoIndex, \"pending\");\r\n }, [changeVideoStatus, videoIndex]);\r\n const handleButtonClick = useCallback((_event, index) => {\r\n changeVideoStatus(index);\r\n }, [changeVideoStatus]);\r\n useEffect(() => {\r\n if (videoIndex !== undefined && playbackStatus === \"pending\" && allowAutoPlay.current) {\r\n void playVideo();\r\n }\r\n });\r\n useEffect(() => {\r\n const onVideoEndHandler = () => {\r\n setPlaybackStatus(\"idle\");\r\n };\r\n const videoEl = videoElRef?.current;\r\n videoEl?.addEventListener(\"ended\", onVideoEndHandler);\r\n return () => videoEl?.removeEventListener(\"ended\", onVideoEndHandler);\r\n }, []);\r\n const realVideoSrc = activeVideo?.src;\r\n return (React.createElement(ContainerFW, { className: \"click-and-play-video-card-container\" },\r\n React.createElement(\"div\", { className: `click-and-play-video-card click-and-play-video-card--video-${videoPosition}` },\r\n React.createElement(\"header\", null,\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: props.text } })),\r\n hasVideos && (React.createElement(React.Fragment, null,\r\n React.createElement(\"ul\", { className: \"click-and-play-video-card__video-list\" }, props.videos.map((videoData, index) => (React.createElement(\"li\", { key: index },\r\n React.createElement(ClickAndPlayButton, { buttonIndex: index, buttonLabel: videoData.title, onClick: handleButtonClick, isActive: index === videoIndex }))))),\r\n React.createElement(\"div\", { ref: ref, className: getContainerClassName(inView), onAnimationEnd: handleVideoTransitionEnd }, realVideoSrc && React.createElement(\"video\", { ref: videoElRef, muted: true, poster: activeVideo.posterUrl },\r\n React.createElement(\"source\", { src: realVideoSrc, type: getVideoType(realVideoSrc) }))))))));\r\n};\r\n","import React from \"react\";\r\nimport { AnimatedBanner } from \"../../Components/Banners/AnimatedBanner/AnimatedBanner\";\r\nimport { ManagePortfolioWithEase } from \"../../Components/ManagePortfolioWithEase/ManagePortfolioWithEase\";\r\nimport { ClickAndPlayVideoCard } from \"../../Components/Cards/ClickAndPlayVideoCard/ClickAndPlayVideoCard\";\r\nimport { ThreeImagesCards } from \"../../Components/ThreeImagesCards/ThreeImagesCards\";\r\nimport { OptionalButtonBanner } from \"../../Components/Banners/OptionalButtonBanner/OptionalButtonBanner\";\r\nimport { InstrumentCategoryDeck } from \"../../Components/Cards/InstrumentCategoryDeck/InstrumentCategoryDeck\";\r\nimport { AccessThinkPortalToday } from \"../../Components/AccessThinkPortalToday/AccessThinkPortalToday\";\r\nimport { Gap } from \"../../Components/Gaps/Gap\";\r\nimport { AnimatedBoxGrid } from \"../../Components\";\r\nexport const ThinkTrader = (props) => (React.createElement(React.Fragment, null,\r\n React.createElement(Gap, { mobileGap: \"16px\", desktopGap: \"32px\", gapColor: \"#fff\" }),\r\n React.createElement(AnimatedBanner, { ...props.animatedBanner }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"64px\", gapColor: \"#fff\" }),\r\n React.createElement(ManagePortfolioWithEase, { ...props.managePortfolioWithEase }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(ClickAndPlayVideoCard, { ...props.clickAndPlayVideoCard }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(ThreeImagesCards, { ...props.threeImagesCard }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(OptionalButtonBanner, { ...props.optionalButtonBanner }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(AnimatedBoxGrid, { ...props.animatedBoxGrid }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(InstrumentCategoryDeck, { ...props.instrumentCategoryDeck }),\r\n React.createElement(Gap, { mobileGap: \"32px\", desktopGap: \"80px\", gapColor: \"#fff\" }),\r\n React.createElement(AccessThinkPortalToday, { ...props.accessThinkPortalToday })));\r\n","import React from \"react\";\r\nimport { IconPDF } from \"../svgIcons/pdf\";\r\nimport { downloadExternalIcon } from \"../svgIcons\";\r\nexport const DownloadButton = ({ href, label, style }) => (React.createElement(\"a\", { href: href, className: \"download-button h5-bold\", style: style, target: \"_blank\", rel: \"noreferrer\" },\r\n IconPDF,\r\n \" \",\r\n label,\r\n \" \",\r\n downloadExternalIcon({})));\r\n","import React from \"react\";\r\nimport { DownloadButton } from \"../DownloadButton\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nexport const DownloadButtonDeck = ({ title, buttons }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"download-button-deck\" },\r\n React.createElement(\"h3\", { className: \"h3-bold\" }, title),\r\n React.createElement(\"div\", { className: \"download-button-deck__container\" }, buttons.map(button => React.createElement(DownloadButton, { key: `${button.label.replace(/\\s+/g, \"\")}`, ...button })))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nexport const CardItem = ({ groupName, instrumentItems }) => (React.createElement(\"div\", { className: \"cardItem-instrument-by-groups\" },\r\n groupName && React.createElement(\"p\", { className: \"cardItem-instrument-by-groups__groupName\" }, groupName),\r\n React.createElement(\"div\", { className: \"cardItem-instrument-by-groups__itemWrapper\" }, instrumentItems.length > 0 && instrumentItems.map((a) => (React.createElement(\"a\", { key: `unique${a.name}`, href: a.linkUrl, className: \"cardItem-instrument-by-groups__link-container\" },\r\n React.createElement(Img, { src: a.iconImg, alt: a.iconAlt || a.name }),\r\n React.createElement(\"span\", { className: \"cardItem-instrument-by-groups__link-container__texts-wrapper\" },\r\n React.createElement(\"span\", null,\r\n React.createElement(\"h5\", { className: \"cardItem-instrument-by-groups__link-container__texts-wrapper__name\" }, a.name),\r\n React.createElement(\"p\", { className: \"cardItem-instrument-by-groups__link-container__texts-wrapper__description\" }, a.description)),\r\n IconChevronDown({}))))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { CardItem } from \"./CardItem\";\r\nimport { getColors } from \"../../utils\";\r\nexport const PopularInstrumentsByGroups = ({ title, instruments, linkLabel, linkUrl, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"popular-instruments-by-groups-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"h2\", { className: \"popular-instruments-by-groups-root__title\" }, title),\r\n React.createElement(\"div\", { className: \"popular-instruments-by-groups-root__cards-container\" }, instruments.length > 0 && instruments.map((a) => (React.createElement(\"div\", { key: `unique${a.groupName}`, className: \"popular-instruments-by-groups-root__cards-container__cardItem\" },\r\n React.createElement(CardItem, { groupName: a.groupName, instrumentItems: a.instrumentItems }))))),\r\n React.createElement(\"a\", { className: \"popular-instruments-by-groups-root__link\", href: linkUrl }, linkLabel)))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nexport const WhatWeOffer = (props) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [isSmallValue, setIsSmallValue] = useState(false);\r\n const [isMediumValue, setIsMediumValue] = useState(false);\r\n const [isLargeValue, setIsLargeValue] = useState(false);\r\n useEffect(() => {\r\n setIsSmallValue(isSmall);\r\n setIsMediumValue(isMedium);\r\n setIsLargeValue(isLarge);\r\n }, [isSmall, isMedium, isLarge]);\r\n const card = (i, className) => (React.createElement(\"div\", { className: className },\r\n isLargeValue && React.createElement(Img, { src: props.cards[i].desktopImage, alt: props.cards[i].imageAlt }),\r\n isMediumValue && React.createElement(Img, { src: props.cards[i].tabletImage, alt: props.cards[i].imageAlt }),\r\n isSmallValue && React.createElement(Img, { src: props.cards[i].phoneImage, alt: props.cards[i].imageAlt })));\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"what-we-offer\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__title-container\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n React.createElement(\"div\", { className: \"what-we-offer__cards-container\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__left-container\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__up-container\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__up-container-text\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__up-container-text-title\" },\r\n React.createElement(\"h4\", null, props.cards[0].title)),\r\n React.createElement(\"div\", { className: \"what-we-offer__up-container-text-description\" },\r\n React.createElement(\"p\", null, props.cards[0].description))),\r\n card(0, \"what-we-offer__up-container-img\")),\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-left\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-left-text\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-left-text-title\" },\r\n React.createElement(\"h4\", null, props.cards[1].title)),\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-left-text-description\" },\r\n React.createElement(\"p\", null, props.cards[1].description))),\r\n card(1, \"what-we-offer__down-container-left-img\")),\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-right\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-right-text\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-right-text-title\" },\r\n React.createElement(\"h4\", null, props.cards[2].title)),\r\n React.createElement(\"div\", { className: \"what-we-offer__down-container-right-text-description\" },\r\n React.createElement(\"p\", null, props.cards[2].description))),\r\n card(2, \"what-we-offer__down-container-right-img\")))),\r\n React.createElement(\"div\", { className: \"what-we-offer__right-container\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__right-container-text\" },\r\n React.createElement(\"div\", { className: \"what-we-offer__right-container-text-title\" },\r\n React.createElement(\"h4\", null, props.cards[3].title)),\r\n React.createElement(\"div\", { className: \"what-we-offer__right-container-text-description\" },\r\n React.createElement(\"p\", null, props.cards[3].description))),\r\n card(3, \"what-we-offer__right-container-img\")))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const CulturesContainer = ({ title, itemInfo }) => (React.createElement(\"div\", { className: \"cultures-container-root\" },\r\n React.createElement(\"p\", { className: \"cultures-container-root__cultureTitle\" }, title),\r\n React.createElement(\"div\", { className: \"cultures-container-root__containerWrapper\" }, itemInfo.length > 0 && itemInfo.map((a) => (React.createElement(\"div\", { key: `unique${a.cultureName}`, className: \"cultures-container-root__containerWrapper__cultureItem\" },\r\n React.createElement(Img, { src: a.cultureFlag, alt: a.cultureFlagAlt }),\r\n React.createElement(\"span\", { className: \"cultures-container-root__containerWrapper__cultureItem__cultureName\" }, a.cultureName)))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { CulturesContainer } from \"./CulturesContainer\";\r\nexport const TitleWithImageAndCountries = ({ title, imgUrl, imgAlt, backgroundColor, cultures }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"title-with-image-and-countries-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"title-with-image-and-countries-root__contentWrapper\" },\r\n React.createElement(\"h2\", null, title),\r\n React.createElement(\"div\", { className: \"title-with-image-and-countries-root__contentWrapper__imageContainer\" },\r\n React.createElement(Img, { src: imgUrl, alt: imgAlt })),\r\n React.createElement(\"div\", { className: \"title-with-image-and-countries-root__contentWrapper__culturesWrapper\" }, cultures.length > 0 && cultures.map((a) => (React.createElement(CulturesContainer, { key: `unique${a.title}`, title: a.title, itemInfo: a.itemInfo })))))))));\r\n","import React from \"react\";\r\nimport checkIcon from \"../svgIcons/Check\";\r\nimport alertIcon from \"../svgIcons/Alert\";\r\nexport const TwoSectionWithTitleCard = ({ title, items, iconType }) => (React.createElement(\"div\", { className: \"two-section-with-title-card-root\" },\r\n React.createElement(\"h4\", null, title),\r\n React.createElement(\"div\", { className: \"two-section-with-title-card-root__contentWrapper\" }, items && items.map((a, i) => (React.createElement(\"div\", { key: `unique${i}`, className: \"two-section-with-title-card-root__contentWrapper__content\" },\r\n iconType === \"check\" ? React.createElement(React.Fragment, null, checkIcon({})) : (iconType === \"alert\" ? React.createElement(React.Fragment, null, alertIcon()) : \"\"),\r\n React.createElement(\"h5\", null, a)))))));\r\n","import React from \"react\";\r\nconst checkIcon = ({ height = \"24\", width = \"24\" }) => (React.createElement(\"svg\", { width: width, height: height, viewBox: \"0 0 25 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { id: \"Check\", clipPath: \"url(#clip0_15151_4990)\" },\r\n React.createElement(\"g\", { id: \"Group 6258\" },\r\n React.createElement(\"path\", { id: \"Vector\", d: \"M7.40407 0H17.2502C21.1518 0 24.3271 3.17538 24.3271 7.07692V16.9231C24.3271 20.8246 21.1518 24 17.2502 24H7.40407C3.50253 24 0.327148 20.8246 0.327148 16.9231V7.07692C0.327148 3.17538 3.50253 0 7.40407 0Z\", fill: \"#6E7783\" }),\r\n React.createElement(\"path\", { id: \"Vector_2\", fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M19.1734 7.20222C19.3749 7.40376 19.4881 7.67707 19.4881 7.96204C19.4881 8.24701 19.3749 8.52032 19.1734 8.72186L11.1182 16.7771C11.0117 16.8836 10.8853 16.9681 10.7462 17.0257C10.6071 17.0833 10.458 17.113 10.3075 17.113C10.1569 17.113 10.0078 17.0833 9.86873 17.0257C9.72963 16.9681 9.60325 16.8836 9.4968 16.7771L5.4946 12.7756C5.39195 12.6765 5.31008 12.5579 5.25376 12.4268C5.19743 12.2957 5.16778 12.1547 5.16654 12.012C5.1653 11.8693 5.1925 11.7277 5.24653 11.5957C5.30057 11.4636 5.38037 11.3436 5.48128 11.2427C5.58218 11.1418 5.70218 11.062 5.83425 11.0079C5.96633 10.9539 6.10785 10.9267 6.25055 10.928C6.39325 10.9292 6.53427 10.9588 6.66539 11.0152C6.7965 11.0715 6.91509 11.1534 7.01423 11.256L10.3071 14.5489L17.6531 7.20222C17.7529 7.10236 17.8714 7.02313 18.0018 6.96908C18.1323 6.91503 18.2721 6.88721 18.4133 6.88721C18.5545 6.88721 18.6943 6.91503 18.8247 6.96908C18.9551 7.02313 19.0736 7.10236 19.1734 7.20222Z\", fill: \"#5EE15A\" }))),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_15151_4990\" },\r\n React.createElement(\"rect\", { width: \"24\", height: \"24\", fill: \"white\", transform: \"translate(0.327148)\" })))));\r\nexport default checkIcon;\r\n","import React from \"react\";\r\nconst alertIcon = () => (React.createElement(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"rect\", { x: \"14\", y: \"10.1665\", width: \"4.66667\", height: \"13.5\", fill: \"#5EE15A\" }),\r\n React.createElement(\"path\", { d: \"M27.4518 20.9554L18.7425 7.48694C18.1357 6.547 17.1125 5.98779 15.9941 5.98779C14.8756 5.98779 13.8524 6.547 13.2456 7.48694L4.53631 20.9554C3.87002 21.9787 3.82243 23.2279 4.40543 24.2988C4.98843 25.3696 6.05925 26.0121 7.28474 26.0121H24.7153C25.9289 26.0121 27.0116 25.3696 27.5946 24.2988C28.1776 23.2279 28.13 21.9787 27.4637 20.9554H27.4518ZM15.1017 12.0201C15.1017 11.5322 15.5062 11.1277 15.9941 11.1277C16.4819 11.1277 16.8864 11.5322 16.8864 12.0201V17.969C16.8864 18.4569 16.4819 18.8614 15.9941 18.8614C15.5062 18.8614 15.1017 18.4569 15.1017 17.969V12.0201ZM16.0178 22.4308C15.53 22.4308 15.1255 22.0262 15.1255 21.5384C15.1255 21.0506 15.5181 20.6461 16.0178 20.6461C16.5176 20.6461 16.9102 21.0506 16.9102 21.5384C16.9102 22.0262 16.5176 22.4308 16.0178 22.4308Z\", fill: \"#6E7783\" })));\r\nexport default alertIcon;\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { TwoSectionWithTitleCard } from \"./TwoSectionWithTitleCard\";\r\nexport const TwoSectionWithTitle = ({ mainTitle, mainSubTitle, leftCardContent, rightCardContent, bgColor }) => {\r\n const { bgColor: backgroundColor } = getColors(bgColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"two-section-with-title-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"two-section-with-title\" },\r\n React.createElement(\"div\", { className: \"two-section-with-title__titleWrapper\" },\r\n React.createElement(\"h2\", null, mainTitle),\r\n React.createElement(\"h5\", null, mainSubTitle)),\r\n React.createElement(\"div\", { className: \"two-section-with-title__cardsWrapper\" },\r\n React.createElement(TwoSectionWithTitleCard, { title: leftCardContent.title, items: leftCardContent.items, iconType: \"check\" }),\r\n React.createElement(TwoSectionWithTitleCard, { title: rightCardContent.title, items: rightCardContent.items, iconType: \"alert\" })))))));\r\n};\r\n","import Lottie from \"lottie-react\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const CustomLottie = ({ animation, className, loop = true, animationAlt }) => {\r\n const [image, setImage] = useState();\r\n useEffect(() => {\r\n animation.includes(\"json\") ? fetch(animation)\r\n .then(response => response.json())\r\n .then((jsonData) => {\r\n setImage(jsonData);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n }) : setImage(animation);\r\n }, [animation]);\r\n return (React.createElement(\"div\", { className: className }, typeof (image) === \"object\" ? React.createElement(Lottie, { animationData: image, loop: loop }) : React.createElement(Img, { src: animation, alt: animationAlt })));\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { Container, ContainerFW } from \"../../Components\";\r\nimport { InstrumentSliderNew } from \"../InstrumentSliderNew\";\r\nimport { CustomLottie } from \"../CustomLottie/CustomLottie\";\r\nexport const DynamicLeveragePricingTable = ({ title, marketsInfo, activeMarket, tableInfo, tableContent, animation }) => {\r\n const [activeRowIndex, setActiveRowIndex] = useState(-1);\r\n const [currentMarketTab, setCurrentMarketTab] = useState();\r\n const [filteredInstruments, setFilteredInstruments] = useState();\r\n const handleMarketClick = useCallback((market) => {\r\n setCurrentMarketTab(market);\r\n }, []);\r\n const handleRowClick = useCallback((event) => {\r\n event.preventDefault();\r\n const index = parseInt(event.currentTarget.getAttribute(\"data-id\") ?? \"0\");\r\n setActiveRowIndex(index);\r\n }, []);\r\n useEffect(() => {\r\n if (currentMarketTab !== undefined) {\r\n const filteredInfo = tableContent.filter((a) => (a.marketName === currentMarketTab));\r\n setFilteredInstruments(filteredInfo[0]);\r\n return;\r\n }\r\n if (tableContent.length > 0 && tableContent[0].marketInfo !== undefined) {\r\n const filteredInfo = tableContent.filter((a) => (a.marketName === activeMarket));\r\n setFilteredInstruments(filteredInfo[0]);\r\n }\r\n }, [activeMarket, currentMarketTab, tableContent]);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"dynamic-leverage-pricing-table-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"dynamic-leverage-pricing-table-root__animationContainer\" },\r\n React.createElement(CustomLottie, { animation: animation })),\r\n React.createElement(\"div\", { className: \"price-feed__tableWrapper\" },\r\n React.createElement(\"h2\", { className: \"price-feed__title\" }, title),\r\n React.createElement(InstrumentSliderNew, { items: marketsInfo, currentMarketTab: activeMarket, onMarketClick: handleMarketClick }),\r\n React.createElement(\"div\", { className: \"price-feed__table\" },\r\n React.createElement(\"div\", { className: \"price-feed__header\" }, tableInfo.map((item, i) => (React.createElement(\"div\", { key: `price-feed__headerCell-${i}`, className: \"price-feed__headerCell\" }, item.title.toUpperCase())))),\r\n filteredInstruments?.marketInfo.map((item, i) => (React.createElement(\"div\", { key: `price-feed__row-${i}`, className: `price-feed__row ${activeRowIndex === i && \"price-feed__highlighted\"} price-feed__row--${i}`, \"data-id\": i, onClick: handleRowClick, onKeyPress: handleRowClick },\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(\"div\", { className: \"price-feed__cellTitle\" }, item.openLots)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(\"div\", { className: `price-feed__cellTitle ${item.maximumLeverage}` }, item.marginRequirement)),\r\n React.createElement(\"div\", { className: \"price-feed__cellContainer\" },\r\n React.createElement(\"span\", null, item.maximumLeverage)))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Container } from \"../global\";\r\nimport { SimpleLightbox } from \"../Cards/VideoCardDeck/SimpleLightbox/SimpleLightbox\";\r\nimport { YouTubeVideoEmbed } from \"../Cards/VideoCardDeck/YouTubeVideoEmbed\";\r\nimport timeClock from \"../svgIcons/timeClock\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nexport const TrendingVideos = (props) => (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor ? props.backgroundColor : \"inherit\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trending-videos\" },\r\n React.createElement(\"div\", { className: \"trending-videos__title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n props.videosList.length &&\r\n React.createElement(\"div\", { className: \"trending-videos__container\" },\r\n React.createElement(\"div\", { className: \"trending-videos__main\" },\r\n React.createElement(\"div\", { className: \"trending-videos__main-img\" },\r\n React.createElement(SimpleLightbox, { className: \"trending-videos__lightbox-trigger\" },\r\n React.createElement(YouTubeVideoEmbed, { videoUrl: props.videosList[0].videoURL, webSiteRootUrl: props.videosList[0].videoURL }))),\r\n React.createElement(\"div\", { className: \"trending-videos__main-text\" },\r\n React.createElement(\"div\", { className: \"trending-videos__upload-time\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", null, timeClock({})),\r\n props.videosList[0].videoUploadTime)),\r\n React.createElement(\"div\", { className: \"trending-videos__upload-title\" },\r\n React.createElement(\"h4\", null, props.videosList[0].videoTitle)))),\r\n React.createElement(\"div\", { className: \"trending-videos__list\" }, props.videosList.slice(1).map((item, i) => (React.createElement(\"div\", { key: i, className: `trending-videos__list-item-${i}` },\r\n React.createElement(\"div\", { className: \"trending-videos__list-item-img\" },\r\n React.createElement(SimpleLightbox, { className: `trending-videos__list-lightbox-trigger-${i}` },\r\n React.createElement(YouTubeVideoEmbed, { videoUrl: item.videoURL, webSiteRootUrl: item.videoURL }))),\r\n React.createElement(\"div\", { className: \"trending-videos__list-item-text\" },\r\n React.createElement(\"div\", { className: \"trending-videos__list-upload-time\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", null, timeClock({})),\r\n item.videoUploadTime)),\r\n React.createElement(\"div\", { className: \"trending-videos__list-title\" },\r\n React.createElement(\"h5\", null, item.videoTitle)))))))),\r\n props.buttonUrl && React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", href: props.buttonUrl }, props.buttonText)))));\r\n","import React from \"react\";\r\nconst timeClockDark = ({ height = \"19\", width = \"18\" }) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: width, height: height, viewBox: \"0 0 18 19\", fill: \"none\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_15520_8963)\" },\r\n React.createElement(\"path\", { d: \"M0 9.5C0 4.53385 4.03385 0.5 9 0.5C13.9662 0.5 18 4.53385 18 9.5C18 14.4662 13.9662 18.5 9 18.5C4.03385 18.5 0 14.4662 0 9.5Z\", fill: \"#0E1D31\" }),\r\n React.createElement(\"path\", { d: \"M8.99998 4.86523C8.49229 4.86523 8.0769 5.28062 8.0769 5.78831V9.48062C8.0769 9.78523 8.23383 10.0806 8.49229 10.2468L11.2615 12.0929C11.4184 12.1945 11.5938 12.2498 11.7692 12.2498C12.0646 12.2498 12.36 12.1022 12.5354 11.8345C12.8215 11.4098 12.7015 10.8375 12.2769 10.5514L9.92306 8.98216V5.78831C9.92306 5.28062 9.50767 4.86523 8.99998 4.86523Z\", fill: \"#5EE15A\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_15520_8963\" },\r\n React.createElement(\"rect\", { width: \"18\", height: \"18\", fill: \"white\", transform: \"translate(0 0.5)\" })))));\r\nexport default timeClockDark;\r\n","import React from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Container } from \"../global\";\r\nimport timeClockDark from \"../svgIcons/timeClockDark\";\r\nimport VideoClock from \"../svgIcons/VideoClock\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const TrendingVideosV2 = (props) => (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor ? props.backgroundColor : \"inherit\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trending-videos-v2\" },\r\n React.createElement(\"div\", { className: \"trending-videos-v2__title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n props.videosList && props.videosList.length > 0 &&\r\n React.createElement(\"div\", { className: \"trending-videos-v2__container\" },\r\n React.createElement(\"div\", { className: \"trending-videos-v2__main\" },\r\n props.videosList[0].linkURL &&\r\n React.createElement(\"a\", { className: \"trending-videos-v2__main-img\", target: \"_blank\", href: props.videosList[0].linkURL, rel: \"noreferrer\" },\r\n React.createElement(ImgV2, { className: \"trending-videos-v2__main-img-img\", src: props.videosList[0].imageURL })),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__main-text\" },\r\n React.createElement(\"div\", { className: \"trending-videos-v2__upload-time\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", null, timeClockDark({})),\r\n props.videosList[0].videoUploadTime)),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__upload-title\" },\r\n React.createElement(\"a\", { className: \"trending-videos-v2__main-img\", href: props.videosList[0].linkURL },\r\n React.createElement(\"h4\", null, props.videosList[0].videoTitle))))),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list\" }, props.videosList.slice(1).map((item, i) => (React.createElement(\"div\", { key: i, className: `trending-videos-v2__list-item-${i} trending-videos-v2__list-item ${item.linkURL && \"trending-videos-v2__coming-soon trending-videos-v2__auto-cursor\"}` },\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-item-img\" },\r\n item.linkURL &&\r\n React.createElement(React.Fragment, null,\r\n React.createElement(\"a\", { className: \"trending-videos-v2__main-img hide-small-ndb\", href: item.linkURL },\r\n React.createElement(ImgV2, { className: \"trending-videos-v2__main-img-img-side\", src: item.imageURL }))),\r\n !item.linkURL &&\r\n React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"trending-videos-v2__main-img hide-small-ndb\" }, VideoClock()))),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-item-text-link\" }, item.linkURL ? (React.createElement(\"a\", { href: item.linkURL },\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-upload-time\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", null, timeClockDark({})),\r\n item.videoUploadTime)),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-title\" },\r\n React.createElement(\"h5\", null, item.videoTitle)))) : (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-upload-time\" },\r\n React.createElement(\"p\", { className: \"color-complimentary2\" }, item.videoUploadTime)),\r\n React.createElement(\"div\", { className: \"trending-videos-v2__list-title\" },\r\n React.createElement(\"h5\", null, item.videoTitle)))))))))),\r\n props.buttonUrl && React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", href: props.buttonUrl }, props.buttonText)))));\r\n","import React from \"react\";\r\nconst VideoClock = () => (React.createElement(\"svg\", { width: \"126\", height: \"126\", viewBox: \"0 0 126 126\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"rect\", { width: \"126\", height: \"126\", rx: \"12\", fill: \"#6E7783\" }),\r\n React.createElement(\"path\", { d: \"M62.965 29C43.645 29 28 44.68 28 64C28 83.32 43.645 99 62.965 99C82.32 99 98 83.32 98 64C98 44.68 82.32 29 62.965 29ZM63 92C47.53 92 35 79.47 35 64C35 48.53 47.53 36 63 36C78.47 36 91 48.53 91 64C91 79.47 78.47 92 63 92ZM62.23 46.5H62.02C60.62 46.5 59.5 47.62 59.5 49.02V65.54C59.5 66.765 60.13 67.92 61.215 68.55L75.74 77.265C76.93 77.965 78.47 77.615 79.17 76.425C79.3458 76.1416 79.4627 75.8257 79.5138 75.4962C79.5649 75.1667 79.5492 74.8302 79.4675 74.5069C79.3859 74.1836 79.24 73.88 79.0385 73.6142C78.8371 73.3485 78.5842 73.126 78.295 72.96L64.75 64.91V49.02C64.75 47.62 63.63 46.5 62.23 46.5Z\", fill: \"#F2F6F6\" })));\r\nexport default VideoClock;\r\n","import * as React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const HeroBannerWithTitleSubtitleImageButton = ({ title, subtitle, buttonText, buttonUrl, imageUrl, imageAlt, designStyles, openInNewTabButton }) => {\r\n const { textColor, bgColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"hero-banner-with-title-subtitle-image-button\", style: { color: textColor } },\r\n React.createElement(\"div\", { className: \"hero-banner-with-title-subtitle-image-button__main-flex\" },\r\n React.createElement(\"div\", { className: \"hero-banner-with-title-subtitle-image-button__title-button-group\" },\r\n React.createElement(Heading, { design: designStyles.titleDesign }, title),\r\n React.createElement(\"h5\", { className: \"h5-semi-bold color-dark-20\" }, subtitle),\r\n React.createElement(ButtonV2, { href: buttonUrl, design: designStyles.buttonDesign, openInNewTab: openInNewTabButton },\r\n buttonText,\r\n \" \")),\r\n React.createElement(\"div\", { className: \"hero-banner-with-title-subtitle-image-button__image\" },\r\n React.createElement(\"a\", { href: buttonUrl, target: \"_blank\", style: { width: \"100%\" }, rel: \"noopener noreferrer\" },\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt, style: { width: \"100%\", height: \"auto\", objectFit: \"contain\" } }))))))));\r\n};\r\n","import React from \"react\";\r\nexport const IconChevronRightSupport = (React.createElement(\"svg\", { width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { d: \"M6.5857 5.99966L4.46439 3.87832C4.26913 3.68305 4.26913 3.36647 4.46439 3.17121C4.65965 2.97595 4.97624 2.97595 5.1715 3.17121L7.29284 5.29255C7.68337 5.68308 7.68336 6.31624 7.29284 6.70677L5.1715 8.82809C4.97624 9.02335 4.65965 9.02335 4.46439 8.82808C4.26913 8.63282 4.26913 8.31624 4.46439 8.12098L6.5857 5.99966Z\", fill: \"#CFD2D6\" })));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { SearchInput } from \"../GlobalSearch/SearchInput\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { IconChevronRightSupport } from \"../svgIcons/chevronRight-support\";\r\nexport const TitleSubtitleAndSearch = ({ subTitle, title, placeholder, iconImg, withFiltersActive, withOrWithoutFilterButton, backgroundColor, breadcrumbs }) => {\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const handleSearchOnChange = useCallback((event) => {\r\n setInputValue(event.target.value);\r\n }, []);\r\n const handleOnSearch = useCallback((event) => {\r\n if (event.key === \"Enter\") {\r\n setInputValue(\"\");\r\n }\r\n }, []);\r\n const handleOnClick = useCallback((event) => {\r\n event.preventDefault();\r\n }, []);\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"title-subtitle-and-search-root\" },\r\n breadcrumbs && React.createElement(\"div\", null,\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"title-subtitle-and-search-root__breadcrumbs\" },\r\n React.createElement(\"a\", { href: \"/\" }, homeIcon()),\r\n breadcrumbs.map((item, index) => {\r\n if (index + 1 === breadcrumbs?.length) {\r\n return (React.createElement(\"span\", { key: index, className: \"title-subtitle-and-search-root__breadcrumb\" },\r\n IconChevronRightSupport,\r\n \" \",\r\n item.breadcrumbText));\r\n }\r\n else {\r\n return (React.createElement(\"a\", { key: index, className: \"title-subtitle-and-search-root__breadcrumb\", href: item.breadcrumbLink },\r\n IconChevronRightSupport,\r\n \" \",\r\n item.breadcrumbText));\r\n }\r\n })))),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"title-subtitle-and-search-root__titlesWrapper\" },\r\n title && React.createElement(\"h1\", null, title),\r\n subTitle && React.createElement(\"h5\", null, subTitle)),\r\n React.createElement(\"div\", { className: \"title-subtitle-and-search-root__inputsWrapper\" },\r\n React.createElement(SearchInput, { searchValue: inputValue, onChange: handleSearchOnChange, onSearch: handleOnSearch, searchPlaceholder: placeholder }),\r\n withOrWithoutFilterButton && React.createElement(\"div\", { className: \"title-subtitle-and-search-root__inputsWrapper__buttonWrapper\" },\r\n React.createElement(ButtonV2, { icon: iconImg, design: \"ghost-medium-wbg\", onClick: handleOnClick },\r\n React.createElement(\"p\", { className: `${withFiltersActive && \"with-filters-mark\"}` }, \"Filters\"))))))));\r\n};\r\nconst homeIcon = () => (React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.33741 3.2295C7.72697 2.93131 8.27305 2.93131 8.66261 3.2295L8.6632 3.22995L13.5399 6.97995C13.9127 7.26676 14.0587 7.74653 13.9052 8.19265C13.7532 8.63446 13.3485 8.93086 12.8767 8.93086H12.7167V11.7909C12.7167 12.455 12.1774 12.9942 11.5133 12.9942H9.08001C8.71182 12.9942 8.41334 12.6957 8.41334 12.3275V10.9442H7.49668V12.3275C7.49668 12.6957 7.1982 12.9942 6.83001 12.9942H4.61668C3.95258 12.9942 3.41334 12.455 3.41334 11.7909V8.93086H3.12334C2.65202 8.93086 2.24364 8.64116 2.09412 8.19062C1.94175 7.74508 2.08782 7.26636 2.46011 6.97998L7.33682 3.22995L7.33741 3.2295ZM3.25509 7.79753L7.99834 4.15011L12.7416 7.79753H11.58V11.7909C11.58 11.8301 11.5492 11.8609 11.51 11.8609H9.54668V10.7875C9.54668 10.2501 9.10744 9.81086 8.57001 9.81086H7.34001C6.80258 9.81086 6.36334 10.2501 6.36334 10.7875V11.8609H4.61668C4.57744 11.8609 4.54668 11.7909 4.54668 11.7909L4.55 7.79753H3.25509Z\", fill: \"#0E1D31\" })));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Components/Img\";\r\nexport const CategoriesWithIconSwiperCard = ({ iconUrl, iconAlt, label, href }) => (React.createElement(\"a\", { href: href, className: \"categories-with-icon-swiper-card\" },\r\n React.createElement(Img, { src: iconUrl, alt: iconAlt }),\r\n React.createElement(\"p\", null, label)));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { CategoriesWithIconSwiperCard } from \"./CategoriesWithIconSwiperCard\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { getColors } from \"../../utils\";\r\nexport const CategoriesWithIconSwiper = ({ title, cardsContent, titlePosition, backgroundColor }) => {\r\n const colors = getColors(backgroundColor);\r\n if (!backgroundColor || backgroundColor === \"dark\") {\r\n colors.textColor = \"#CFD2D6\";\r\n }\r\n return (React.createElement(ContainerFW, { backgroundColor: colors.bgColor },\r\n React.createElement(\"div\", { className: \"categories-with-icon-swiper-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: colors.textColor }, className: `categories-with-icon-swiper-root__titleWrapper ${titlePosition === \"left\" ? \"leftTitle\" : \"centerTitle\"}` },\r\n React.createElement(\"p\", null, title)),\r\n React.createElement(\"div\", { style: { color: colors.textColor }, className: \"categories-with-icon-swiper-root__swiperWrapper\" },\r\n React.createElement(Container, null,\r\n React.createElement(Swiper, { modules: [Mousewheel], mousewheel: true, slidesPerView: \"auto\" }, cardsContent.length && cardsContent.map((card, i) => React.createElement(SwiperSlide, { key: `cardsContent-slide-${i}` }, React.createElement(\"span\", null,\r\n React.createElement(\"span\", { className: \"categories-with-icon-swiper-root__card\", style: { color: colors.textColor } },\r\n React.createElement(CategoriesWithIconSwiperCard, { ...card }))))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const WideCard = ({ imgUrl, alt, subTitle, title, cardUrl, cardNumber }) => (React.createElement(\"a\", { href: cardUrl, target: \"_blank\", className: cardNumber === 1 ? \"wide-card-container one-card-version\" : \"wide-card-container\", rel: \"noopener noreferrer\" },\r\n React.createElement(Img, { src: imgUrl, alt: alt }),\r\n React.createElement(\"div\", { className: \"wide-card-container__titleWrapper\" },\r\n React.createElement(\"h4\", null, title),\r\n React.createElement(\"p\", null, subTitle))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { WideCard } from \"./WideCard\";\r\nexport const TwoWideCards = ({ cardContent, backgroundColor }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"inherit\" },\r\n React.createElement(\"div\", { className: \"two-wide-cards-root\" },\r\n React.createElement(Container, null, cardContent.length && cardContent.map((card) => React.createElement(WideCard, { key: `unique${card.title}`, ...card, cardNumber: cardContent.length }))))));\r\n","import React from \"react\";\r\nimport { StillHaveQuestionItem } from \"./StillHaveQuestionItem\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { getColors } from \"../../utils\";\r\nexport const StillHaveQuestionsItems = ({ items, mainTitle, subTitle, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"still-have-questions-items-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"still-have-questions-items-root__titleWrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, mainTitle),\r\n React.createElement(\"h5\", { dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"still-have-questions-items-root__itemContainer\" }, items.length > 0 && items.map((item) => (React.createElement(StillHaveQuestionItem, { key: `unique${item.title}`, title: item.title, imgUrl: item.imgUrl, imgAlt: item.imgAlt, content: item.content, linkUrl: item.linkUrl, cardUrl: item.cardUrl }))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Breadcrumbs } from \"../Breadcrumbs\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nexport const Announcements = (props) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const [contentToShow, setContentToShow] = React.useState([]);\r\n let charNumbers = 0;\r\n isSmall ? charNumbers = 83 : (isMedium ? charNumbers = 130 : (isLarge ? charNumbers = 88 : 0));\r\n const [itemSubtitleValue, setItemSubtitleValue] = React.useState(\"\");\r\n const depContent0ItemSubtitle = props.content[0].itemSubtitle;\r\n React.useEffect(() => {\r\n setItemSubtitleValue(`${depContent0ItemSubtitle.slice(0, charNumbers)}...`);\r\n }, [depContent0ItemSubtitle, charNumbers]);\r\n React.useEffect(() => {\r\n if (props.content.length > 0) {\r\n setContentToShow(props.content.slice(0, 20));\r\n }\r\n }, [props.content]);\r\n const handleLoadMoreContent = React.useCallback((event) => {\r\n event.preventDefault();\r\n if (props.content.length > contentToShow.length) {\r\n const newContent = props.content.slice(contentToShow.length, contentToShow.length + 10);\r\n setContentToShow((prev) => ([...prev, ...newContent]));\r\n }\r\n }, [contentToShow, props.content]);\r\n const optionalBreadCrumb = React.useCallback(() => {\r\n if (props.breadcrumbs !== undefined) {\r\n return React.createElement(React.Fragment, null,\r\n React.createElement(Breadcrumbs, { breadcrumbs: props.breadcrumbs, lightMode: props.backgroundColor === \"white\" }),\r\n React.createElement(Gap, { desktopGap: \"20px\", mobileGap: \"10px\" }));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, [props.backgroundColor, props.breadcrumbs]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n optionalBreadCrumb(),\r\n React.createElement(\"div\", { className: \"announcements\" },\r\n React.createElement(\"div\", { className: \"announcements__container\" },\r\n React.createElement(\"div\", { className: \"announcements__text\" },\r\n React.createElement(\"div\", { className: \"announcements__main-title\" },\r\n React.createElement(\"h1\", null, props.title)),\r\n React.createElement(\"div\", { className: \"announcements__main-subtitle\" },\r\n React.createElement(\"h5\", null, props.subTitle))),\r\n React.createElement(\"div\", { className: \"announcements__content\" },\r\n React.createElement(\"div\", { className: \"announcements__last-announcement\" },\r\n React.createElement(\"div\", { className: \"announcements__last-announcement-date\" },\r\n React.createElement(\"p\", null, new Date(props.content[0].itemUploadDate ? props.content[0].itemUploadDate : \"\").toDateString().slice(4)),\r\n React.createElement(\"span\", null, \"NEW\")),\r\n React.createElement(\"div\", { className: \"announcements__last-announcement-text-image\" },\r\n React.createElement(\"div\", { className: \"announcements__last-announcement-text\" },\r\n React.createElement(\"a\", { href: props.content[0].itemLink },\r\n React.createElement(\"h3\", null, props.content[0].itemTitle),\r\n React.createElement(\"p\", null, itemSubtitleValue),\r\n \" \")),\r\n React.createElement(\"div\", { className: \"announcements__last-announcement-image\" },\r\n React.createElement(\"a\", { href: props.content[0].itemLink },\r\n React.createElement(Img, { src: props.content[0].itemImage, alt: props.content[0].itemImageAlt }))))),\r\n React.createElement(\"div\", { className: \"announcements__list-announcements\" }, contentToShow.map((item, i) => {\r\n if (i > 0) {\r\n return (React.createElement(\"div\", { key: i, className: \"announcements__list-announcements-item\" },\r\n React.createElement(\"div\", { className: \"announcements__list-announcements-item-date\" },\r\n React.createElement(\"p\", null, new Date(item.itemUploadDate ? item.itemUploadDate : \"\").toDateString().slice(4))),\r\n React.createElement(\"div\", { className: \"announcements__list-announcements-item-title\" },\r\n React.createElement(\"a\", { href: item.itemLink },\r\n React.createElement(\"h4\", null, item.itemTitle)))));\r\n }\r\n return \"\";\r\n }))),\r\n React.createElement(\"div\", { className: \"announcements__button-container\" }, props.content.length > contentToShow.length && React.createElement(ButtonV2, { onClick: handleLoadMoreContent, design: \"ghost-medium-wbg\", href: props.buttonLink }, props.buttonLabel)))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../Heading\";\r\nexport const CardsWithTitleAndSub = ({ title, content, linkLabel, linkUrl }) => (React.createElement(\"div\", { className: \"cards-with-title-and-sub-root\" },\r\n React.createElement(Heading, { design: \"h5-bold\" }, title),\r\n React.createElement(\"div\", { className: \"cards-with-title-and-sub-root__card-contentWrapper\" },\r\n React.createElement(\"p\", null, content),\r\n React.createElement(\"a\", { href: linkUrl }, linkLabel))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { CardsWithTitleAndSub } from \"./CardsWithTitleAndSub\";\r\nexport const CardsDeckWithTitleAndSub = ({ cardsWithTitleAndSubContent, mainTitle, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, mainTitle),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-root__cardsWrapper\" }, cardsWithTitleAndSubContent.length > 0 && cardsWithTitleAndSubContent.map((card) => (React.createElement(CardsWithTitleAndSub, { ...card, key: `unique${card.title}` }))))))));\r\n};\r\n","import React, { Fragment, useCallback } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nimport { GrayCheckMark } from \"../svgIcons\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const CardsDeckWithTitleAndSubV2 = ({ title, cards, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const renderCard = useCallback((card) => {\r\n const linkHrefTarget = handleLinkTarget(card.linkOpenInNewTab);\r\n return (React.createElement(\"div\", { className: `cards-deck-with-title-and-sub-v2-root__card ${card.backgroundImage ? \"cards-deck-with-title-and-sub-v2-root__card-darkbg\" : \"\"}`, style: { backgroundImage: `url('${card.backgroundImage}'), ${card.linearGradient?.split(\"###\")[0]}` } },\r\n React.createElement(\"div\", null,\r\n React.createElement(Heading, { design: \"h4-semi-bold\" }, card.title),\r\n React.createElement(\"span\", { className: \"cards-deck-with-title-and-sub-v2-root__description-container\", dangerouslySetInnerHTML: { __html: card.description } }),\r\n typeof card.bulletPoints === \"string\" && card.bulletPoints.length > 2 && card.bulletPoints?.split(\"###\")?.map((b, i) => React.createElement(\"div\", { key: i },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-v2-root__bullet-container\" },\r\n GrayCheckMark,\r\n React.createElement(\"div\", { className: \"caption2-regular\" }, b))))),\r\n card.buttonText && React.createElement(ButtonV2, { design: card.linearGradient?.split(\"###\")[1], href: card.buttonUrls, openInNewTab: true },\r\n \" \",\r\n React.createElement(\"span\", { className: \"text-nav\" }, card.buttonText)),\r\n card.linkText && React.createElement(\"a\", { target: linkHrefTarget, className: \"cards-deck-with-title-and-sub-v2-root__link text-nav\", href: card.linkUrl },\r\n \" \",\r\n card.linkText)));\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-v2-root\" },\r\n title && React.createElement(Heading, { design: \"h2-regular-small\" }, title),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-v2-root__cards-wrapper\" },\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-v2-root__first-card-container\" }, cards.length > 0 && renderCard(cards[0])),\r\n React.createElement(\"div\", { className: \"cards-deck-with-title-and-sub-v2-root__wrapper-right\" }, cards.length > 1 && cards.slice(1).map((card, i) => React.createElement(Fragment, { key: i }, renderCard(card)))))))));\r\n};\r\n","import React from \"react\";\r\nexport const SideBarSection = ({ sideBarInfo, itemTitle }) => (React.createElement(\"div\", { className: \"side-bar-section\" }, sideBarInfo.length > 0 && sideBarInfo.map((a) => (React.createElement(\"div\", { key: `unique${a.category}`, className: \"side-bar-section__items\" },\r\n React.createElement(\"p\", null, a.category),\r\n a.subCategory.length > 0 && a.subCategory.map((item) => (React.createElement(\"a\", { key: `unique${item.title}`, href: item.link, className: `${itemTitle === item.title && \"active\"} ` }, item.title))))))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { FaqAccordionList } from \"../FaqAccordionList\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { SideBarSection } from \"./SideBarSection\";\r\nexport const SupportBody = ({ faqTitle, faqItems, sideBarProps, itemTitle, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"support-body-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"support-body-root__wrapper\" },\r\n React.createElement(\"div\", { className: \"support-body-root__wrapper__sideBar\" },\r\n React.createElement(SideBarSection, { sideBarInfo: sideBarProps, itemTitle: itemTitle })),\r\n React.createElement(FaqAccordionList, { title: faqTitle, items: faqItems }))))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Heading } from \"../Heading\";\r\nexport const MaintenanceCardsStrip = ({ designStyles, title, maintenanceCards }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n const renderCard = useCallback(({ title, iconUrl, iconAlt, specificDateMaintenanceHtml, regularMaintenance, noScheduledMaintenanceHtml }, i) => {\r\n function getNextTargetDayAndTime(targetWeekdayGMTPlus2, targetHourGMTPlus2, maintenanceDurationHours) {\r\n const now = new Date();\r\n const resultDate = new Date(now);\r\n const currentWeekday = now.getUTCDay();\r\n const currentHourGMTPlus2 = now.getUTCHours() + 2;\r\n let daysToAdd = targetWeekdayGMTPlus2 - currentWeekday;\r\n if (daysToAdd < 0) {\r\n daysToAdd += 7;\r\n }\r\n if (daysToAdd === 0 && currentHourGMTPlus2 >= targetHourGMTPlus2 + maintenanceDurationHours) {\r\n daysToAdd += 7;\r\n }\r\n resultDate.setUTCDate(now.getUTCDate() + daysToAdd);\r\n resultDate.setUTCHours(targetHourGMTPlus2 - 2, 0, 0, 0);\r\n const resultDateGMTPlus3 = new Date(resultDate.getTime() + 1 * 60 * 60 * 1000);\r\n const endDateGMTPlus3 = new Date(resultDateGMTPlus3.getTime() + maintenanceDurationHours * 60 * 60 * 1000);\r\n const startTime1 = resultDateGMTPlus3.toLocaleString(\"en-GB\", { year: \"2-digit\", month: \"2-digit\", day: \"2-digit\" }).toUpperCase();\r\n const startTime2 = resultDateGMTPlus3.toLocaleString(\"en-GB\", { hour: \"2-digit\", minute: \"2-digit\", hour12: true }).toUpperCase();\r\n const endTime = endDateGMTPlus3.toLocaleString(\"en-GB\", { hour: \"2-digit\", minute: \"2-digit\", hour12: true }).toUpperCase();\r\n return [`${startTime1.replace(\"/\", \".\").replace(\"/\", \".\")}`, ` ${startTime2} - ${endTime} GMT+2`];\r\n }\r\n const maintenanceTextHtml = () => {\r\n const weekday = parseInt(regularMaintenance.regularScheduledMaintenanceWeekdayInGmtPlus2);\r\n const hourGMTPlus2 = parseInt(regularMaintenance.regularScheduledMaintenanceHourInGmtPlus2);\r\n const durationHours = parseInt(regularMaintenance.regularScheduledMaintenanceHourDuration);\r\n const time = getNextTargetDayAndTime(weekday, hourGMTPlus2, durationHours);\r\n if (specificDateMaintenanceHtml) {\r\n return React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: specificDateMaintenanceHtml } });\r\n }\r\n if (noScheduledMaintenanceHtml) {\r\n return React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: noScheduledMaintenanceHtml } });\r\n }\r\n if (!isNaN(weekday) && !isNaN(hourGMTPlus2) && !isNaN(hourGMTPlus2)) {\r\n return React.createElement(\"div\", { className: \"caption2-regular maintenance-cards-strip__regular-maintenance-text\" },\r\n time[0],\r\n \" \",\r\n React.createElement(\"br\", null),\r\n \" \",\r\n time[1]);\r\n }\r\n return \"\";\r\n };\r\n if (!maintenanceTextHtml()) {\r\n return;\r\n }\r\n return (React.createElement(\"div\", { key: i, className: `maintenance-cards-strip__card centered-container ${noScheduledMaintenanceHtml ? \"bg-color-neutral-accent-dark-bg-15\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"maintenance-cards-strip__card-title-bar\" },\r\n React.createElement(\"div\", { className: \"h5-semi-bold\" }, title),\r\n React.createElement(\"img\", { src: iconUrl, alt: iconAlt })),\r\n React.createElement(\"div\", { className: \"maintenance-cards-strip__message-container\" }, maintenanceTextHtml())));\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"maintenance-cards-strip\" },\r\n React.createElement(\"div\", { className: \"flex\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title)),\r\n React.createElement(\"br\", null),\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(\"div\", { className: \"maintenance-cards-strip__main-strip\" }, maintenanceCards?.map((card, i) => renderCard(card, i))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Img } from \"../Img\";\r\nexport const TitleWithCard = ({ title, cardContent, imageUrl, imageAlt }) => (React.createElement(\"div\", { className: \"title-with-card-root\" },\r\n React.createElement(\"div\", { className: \"title-with-card-root__title-and-image\" },\r\n React.createElement(Img, { src: imageUrl, alt: imageAlt }),\r\n React.createElement(Heading, { design: \"h4-semi-bold\" }, title)),\r\n React.createElement(\"div\", { className: \"title-with-card-root__card-content-wrapper\", dangerouslySetInnerHTML: {\r\n __html: cardContent,\r\n } })));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { TitleWithCard } from \"./TitleWithCard\";\r\nexport const TitleWithTwoCards = ({ cards, mainTitle }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"title-with-two-cards-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(Heading, { design: \"h2-regular\" }, mainTitle),\r\n React.createElement(\"div\", { className: \"title-with-two-cards-root__cardsWrapper\" }, cards.length > 0 && cards.map((card) => (React.createElement(TitleWithCard, { key: `unique${card.title}`, ...card }))))))));\r\n","import * as React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { EconomicCalendarMemoized } from \"../EconomicCalendar\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { ellipse } from \"../svgIcons/ellipse\";\r\nexport const MarketNews = ({ mainTitle, newsContent, backgroundColor, moreNewsLabel, moreNewsUrl }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"market-news\" },\r\n React.createElement(\"div\", { className: \"market-news__title-container\" },\r\n React.createElement(\"h2\", null, mainTitle)),\r\n React.createElement(\"div\", { className: \"market-news__news-container\" },\r\n React.createElement(\"div\", { className: \"market-news__main-news\" },\r\n newsContent.map((item, i) => (React.createElement(\"a\", { href: item.newsLink, key: i, className: \"market-news__main-news-item\" },\r\n React.createElement(\"div\", { className: \"market-news__main-image-container\" },\r\n React.createElement(Img, { className: \"market-news__main-image\", src: item.newsImg, alt: item.newsTitle })),\r\n React.createElement(\"div\", { className: \"market-news__main-text\" },\r\n React.createElement(\"div\", { className: \"market-news__main-news-info\" },\r\n React.createElement(\"p\", null,\r\n React.createElement(\"span\", { className: \"market-news__green-text\" }, item.newsInstrumentCategory),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"market-news__category-text\" }, item.newsCategory),\r\n ellipse(),\r\n React.createElement(\"span\", { className: \"market-news__date-text\" }, new Date(item.newsUploadTime).toDateString().slice(4)))),\r\n React.createElement(\"div\", { className: \"market-news__main-news-title\" },\r\n React.createElement(\"h4\", null, item.newsTitle)),\r\n React.createElement(\"div\", { className: \"market-news__main-news-author\" },\r\n React.createElement(\"p\", null, item.newsAuthor)))))),\r\n moreNewsLabel && React.createElement(\"div\", { className: \"market-news__more-button\" },\r\n React.createElement(ButtonV2, { design: \"secondary-medium-wbg\", href: moreNewsUrl }, moreNewsLabel))),\r\n React.createElement(\"div\", { className: \"market-news__calendar\" },\r\n React.createElement(EconomicCalendarMemoized, null)))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const WhyTradersChooseUs = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(\"div\", { className: \"why-traders-choose-us\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__container\" },\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__left-wrapper\" },\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__left-title\" },\r\n React.createElement(\"h2\", null, props.title)),\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__left-description\" },\r\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: props.desc } })),\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__left-button\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: props.buttonLink, openInNewTab: props.openInNewTabButton }, props.buttonLabel))),\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__right-wrapper\" }, props.content.map((item, index) => (React.createElement(\"div\", { key: index, className: \"why-traders-choose-us__items\" },\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__item-year\" },\r\n React.createElement(\"p\", null, item.year)),\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__item-content\" }, item.yearItems.map((el, i) => (React.createElement(\"div\", { key: i, className: \"why-traders-choose-us__item-el\" },\r\n el.itemImg && React.createElement(\"div\", { className: \"why-traders-choose-us__el-icon\" },\r\n React.createElement(\"img\", { src: el.itemImg, alt: el.itemImgAlt })),\r\n React.createElement(\"div\", { className: \"why-traders-choose-us__el-title\" }, el.itemTitle))))))))))))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Img } from \"../Img\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { Heading } from \"../Heading\";\r\nexport const RichTextWithImage = ({ titleFontWeight = 700, ...props }) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [isSmallValue, setIsSmallValue] = useState(false);\r\n const [isMediumValue, setIsMediumValue] = useState(false);\r\n const [isLargeValue, setIsLargeValue] = useState(false);\r\n useEffect(() => {\r\n setIsSmallValue(isSmall);\r\n setIsMediumValue(isMedium);\r\n setIsLargeValue(isLarge);\r\n }, [isSmall, isMedium, isLarge]);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `rich-text-with-image ${props.position}` },\r\n React.createElement(\"div\", { className: \"rich-text-with-image__text-container\" },\r\n props.title && React.createElement(Heading, { design: props.h2title ? \"h2-v2dot6\" : \"h1-v2dot6\", style: { \"--text-alignment\": `${props.textAlignment}`, \"--title-font-weight\": titleFontWeight } }, props.title),\r\n React.createElement(\"div\", { className: \"rich-text-with-image__text\", dangerouslySetInnerHTML: {\r\n __html: props.richText,\r\n }, style: { \"--text-alignment\": `${props.textAlignment}` } })),\r\n React.createElement(\"div\", { className: \"rich-text-with-image__image-container\" },\r\n (isLargeValue || isMediumValue) && React.createElement(Img, { className: \"rich-text-with-image__image\", src: props.imageURL, alt: props.imageAlt }),\r\n isSmallValue && React.createElement(Img, { className: \"rich-text-with-image__image\", src: props.mobileImageURL, alt: props.imageAlt }))))));\r\n};\r\n","import React from \"react\";\r\nimport { Img, ResponsiveImgDecorator } from \"../Img\";\r\nexport const ToggleableTitleContentSwiperCard = ({ imageUrl, imageAlt, responsiveImageData }) => (React.createElement(\"div\", { className: \"toggleable-title-content-swiper-card-root\" },\r\n React.createElement(\"div\", { className: \"toggleable-title-content-swiper-card-root__imageContainer\" },\r\n React.createElement(ResponsivelyDecoratedImg, { src: imageUrl, alt: imageAlt, helperProps: responsiveImageData }))));\r\nconst ResponsivelyDecoratedImg = ResponsiveImgDecorator(Img);\r\n","import React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ToggleableTitleContentSwiperCard } from \"./ToggleableTitleContentSwiperCard\";\r\nexport const ToggleableTitleContentSwiper = ({ cards, content, mainTitle, date, imagePosition = \"right\", backgroundColor }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"toggleable-title-content-swiper-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `toggleable-title-content-swiper-root__contentWrapper ${imagePosition === \"left\" ? \"leftImagePosition\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"toggleable-title-content-swiper-root__contentWrapper__titleWrapper\" },\r\n React.createElement(\"p\", null, date),\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, mainTitle)),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"toggleable-title-content-swiper-root__swiper-view\" },\r\n React.createElement(Swiper, { pagination: {\r\n clickable: true,\r\n renderBullet: () => (\"\"),\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `toggleable-title-content-swiper-root-slide-${i}` },\r\n React.createElement(ToggleableTitleContentSwiperCard, { ...card })))),\r\n React.createElement(\"div\", { className: \"toggleable-title-content-swiper-root__pagination\" }))),\r\n React.createElement(\"p\", { className: \"toggleable-title-content-swiper-root__contentWrapper__content\", dangerouslySetInnerHTML: {\r\n __html: content ? content : \"\",\r\n } }))))));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Img } from \"../../Img\";\r\nimport { getColors } from \"../../../utils\";\r\nexport const WideCardWithButton = ({ imgUrl, imgAlt, subTitle, title, buttonText, buttonUrl, backgroundColor }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor || \"neutralaccentbackground\");\r\n const getContainerStyle = () => ({ backgroundColor: bgColor || undefined, color: textColor || undefined });\r\n return (React.createElement(\"div\", { className: \"wide-card-with-button\", style: getContainerStyle() },\r\n React.createElement(Img, { src: imgUrl, alt: imgAlt, className: \"wide-card-with-button__image\" }),\r\n React.createElement(Heading, { design: \"h4-semi-bold\" }, title),\r\n React.createElement(\"p\", null, subTitle),\r\n React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", href: buttonUrl, classesWrapper: \"wide-card-with-button__button\" }, buttonText)));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { getColors } from \"../../utils\";\r\nimport { WideCardWithButton } from \"./WideCardWithButton/WideCardWithButton\";\r\nexport const TwoWideCardsWithButtonsDeck = ({ title, subTitle, cards, backgroundColor }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor || \"white\");\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"two-wide-cards-with-buttons-deck\", style: { backgroundColor: bgColor || undefined, color: textColor || undefined } },\r\n React.createElement(Container, { className: \"two-wide-cards-with-buttons-deck__container\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"two-wide-cards-with-buttons-deck__subtitle\", dangerouslySetInnerHTML: { __html: subTitle } }),\r\n React.createElement(\"div\", { className: \"two-wide-cards-with-buttons-deck__cards\" }, cards.length && cards.map((card) => (React.createElement(WideCardWithButton, { key: `unique${card.title}`, ...card }))))))));\r\n};\r\n","import React from \"react\";\r\nexport const CardDescription = ({ mainTitle, mainDescription }) => (React.createElement(\"div\", { className: \"CardDescription\" },\r\n React.createElement(\"h2\", null, mainTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: mainDescription } })));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const EmployeeTestimonialSliderCard = (props) => (React.createElement(\"div\", { className: \"employee-testimonial-slider-card\" },\r\n React.createElement(Img, { src: props.employeeImageUrl, alt: props.employeeImageAlt, className: \"employee-testimonial-slider-card__image\" }),\r\n React.createElement(\"p\", { className: \"employee-testimonial-slider-card__employee-name\" }, props.employeeName),\r\n React.createElement(\"div\", { className: \"employee-testimonial-slider-card__employee-position\", dangerouslySetInnerHTML: {\r\n __html: props.employeePosition,\r\n } }),\r\n React.createElement(\"div\", { className: \"employee-testimonial-slider-card__employee-description\", dangerouslySetInnerHTML: {\r\n __html: props.description,\r\n } })));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nimport { CardDescription } from \"./CardDescription/CardDescription\";\r\nimport { EmployeeTestimonialSliderCard } from \"./EmployeeTestimonialSliderCard/EmployeeTestimonialSliderCard\";\r\nimport { getColors } from \"../../utils\";\r\nexport const EmployeeTestimonialSlider = ({ mainTitle, mainDescription, cards, backgroundColor }) => {\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const { bgColor = \"#F2F6F6\" } = getColors(backgroundColor);\r\n const handleCurrentIndex = useCallback((swiper) => {\r\n setCurrentIndex(swiper.realIndex);\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"employee-testimonial-slider__container\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"employee-testimonial-slider\" },\r\n React.createElement(\"div\", { className: \"description-container\" },\r\n React.createElement(CardDescription, { mainTitle: mainTitle, mainDescription: mainDescription }),\r\n React.createElement(\"span\", { className: \"employee-testimonial-slider__arrowsWrapper\" },\r\n React.createElement(\"a\", { className: \"arrow-prev-selector\" }, IconChevronDown({})),\r\n React.createElement(\"p\", { className: \"employee-testimonial-slider__arrowsWrapper__currentPage\" },\r\n currentIndex + 1,\r\n \" of \",\r\n cards.length),\r\n React.createElement(\"a\", { className: \"arrow-next-selector\" }, IconChevronDown({})))),\r\n React.createElement(\"div\", { className: \"employee-testimonial-slider__swiperWrapper\" },\r\n React.createElement(Container, null,\r\n React.createElement(Swiper, { navigation: {\r\n nextEl: \".arrow-next-selector\",\r\n prevEl: \".arrow-prev-selector\"\r\n }, modules: [Mousewheel], onRealIndexChange: handleCurrentIndex, loop: false, mousewheel: false, breakpoints: {\r\n [370]: {\r\n slidesPerView: 1,\r\n spaceBetween: 24,\r\n },\r\n [601]: {\r\n slidesPerView: 1.5,\r\n spaceBetween: 24,\r\n },\r\n [770]: {\r\n slidesPerView: 1.5,\r\n spaceBetween: -204,\r\n },\r\n [810]: {\r\n slidesPerView: 1.5,\r\n spaceBetween: -4,\r\n },\r\n [1025]: {\r\n slidesPerView: 1.5,\r\n spaceBetween: -185,\r\n },\r\n } }, cards.map((card, i) => React.createElement(SwiperSlide, { key: `trader-slide-${i}` }, React.createElement(EmployeeTestimonialSliderCard, { ...card })))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { CustomLottie } from \"../../CustomLottie\";\r\nexport const CardWithImageAndTitleAnimated = ({ cardTitle, cardSubTitle, cardAnimation, cardColor }) => (React.createElement(\"div\", { className: \"card-with-image-and-title-animated\", style: { backgroundColor: cardColor } },\r\n React.createElement(CustomLottie, { animation: cardAnimation }),\r\n React.createElement(\"div\", { className: \"card-with-image-and-title-animated__textWrapper\" },\r\n React.createElement(\"h5\", null, cardTitle),\r\n React.createElement(\"p\", null, cardSubTitle))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { CardWithImageAndTitleAnimated } from \"./CardWithImageAndTitleAnimated/CardWithImageAndTitleAnimated\";\r\nexport const CardDeckWithImageAndTitleAnimated = ({ title, subTitle, cards, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"card-deck-with-image-and-title-animated-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-image-and-title-animated-root__container\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-image-and-title-animated-root__container__titleWrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"card-deck-with-image-and-title-animated-root__container__titleWrapper--subTitle\", dangerouslySetInnerHTML: { __html: subTitle } })),\r\n React.createElement(\"div\", { className: \"card-deck-with-image-and-title-animated-root__container__cardsWrapper\" }, cards.length > 0 && cards.map((card) => (React.createElement(CardWithImageAndTitleAnimated, { key: `unique${card.cardSubTitle}`, cardTitle: card.cardTitle, cardSubTitle: card.cardSubTitle, cardAnimation: card.cardAnimation, cardColor: card.cardColor })))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nexport const RibbonWithDataForTrustPilot = ({ evaluationLabel, evaluationValue, stats, trustPilotIconImage, backgroundColor }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"inherit\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-data-for-trust-pilot-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-data-for-trust-pilot-root__container\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-data-for-trust-pilot-root__container__statsWrapper\" }, stats.length > 0 && stats.map((a) => (React.createElement(\"div\", { key: `unique${a.mainTitle}`, className: \"ribbon-with-data-for-trust-pilot-root__container__statsWrapper__stats\" },\r\n React.createElement(\"div\", null,\r\n React.createElement(\"p\", null, a.mainTitle),\r\n React.createElement(\"p\", null, a.subTitle)))))),\r\n evaluationLabel && React.createElement(\"div\", { className: \"ribbon-with-data-for-trust-pilot-root__container__evaluationWrapper\" },\r\n React.createElement(\"p\", null, evaluationLabel),\r\n React.createElement(\"p\", null, evaluationValue),\r\n React.createElement(Img, { src: trustPilotIconImage, alt: evaluationLabel })))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const VideoBgComponentCard = ({ boldLeftTitle, boldRightTitle, LeftSubtitle, rightSubtitle, iconUrl }) => (React.createElement(\"div\", { className: \"video-bg-component-card\" },\r\n React.createElement(Img, { src: iconUrl }),\r\n React.createElement(\"div\", { className: \"video-bg-component-card__cardTitlesWrapper\" },\r\n React.createElement(\"div\", { className: \"video-bg-component-card__cardTitlesWrapper__leftTitles\" },\r\n React.createElement(\"p\", { className: \"caption-bold\" }, boldLeftTitle),\r\n React.createElement(\"p\", null, LeftSubtitle)),\r\n React.createElement(\"div\", { className: \"video-bg-component-card__cardTitlesWrapper__rightTitles\" },\r\n React.createElement(\"p\", { className: \"caption-bold\" }, boldRightTitle),\r\n React.createElement(\"p\", null, rightSubtitle)))));\r\n","import React from \"react\";\r\nimport { viewSizes } from \"../../pageViewStyle\";\r\nimport { Autoplay } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { VideoBgComponentCard } from \"./VideoBgComponentCard\";\r\nexport const SimpleSwiperComponent = ({ cards, isReverseDirection }) => (React.createElement(Swiper, { autoHeight: true, slidesPerView: 3, spaceBetween: 10, loop: true, autoplay: {\r\n delay: 200,\r\n disableOnInteraction: false,\r\n reverseDirection: isReverseDirection,\r\n }, breakpoints: {\r\n [viewSizes.mediumMaxWidth]: {\r\n slidesPerView: 4,\r\n },\r\n }, speed: 1500, modules: [Autoplay], direction: \"vertical\" }, cards.length > 0 && cards.map((card, i) => React.createElement(SwiperSlide, { key: `SimpleSwiper-slide-${i}` }, React.createElement(VideoBgComponentCard, { key: `unique${card.LeftSubtitle}`, ...card })))));\r\n","import React from \"react\";\r\nexport const VideoBgComponent = ({ videoUrl }) => (React.createElement(\"div\", { className: \"video-bg-component\" },\r\n React.createElement(\"div\", { className: \"video-bg-component__video-mask\" }),\r\n React.createElement(\"video\", { className: \"video-bg-component__video-mask__video\", autoPlay: true, loop: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: videoUrl, type: 'video/mp4' }))));\r\n","import Lottie from \"lottie-react\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Gap } from \"../Gaps/Gap\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Logo } from \"../Logo\";\r\nimport { SimpleSwiperComponent } from \"./SimpleSwiperComponent\";\r\nimport { VideoBgComponent } from \"./VideoBgComponent\";\r\nimport { Img } from \"../../Components/Img\";\r\nexport const SwiperWithVideoBg = ({ videoUrl, cards, animationJson, title, subTitle, buttonLink, buttonLabel, buttonLink2, buttonLabel2, backgroundColor, evaluationLabel, evaluationValue, trustPilotIconImage, disclaimer, imageUrl, imageAlt, openInNewTabButton1 = false, openInNewTabButton2 = false, logoContent }) => {\r\n const [animation, setAnimation] = useState();\r\n const { isLarge } = usePageViewStyle();\r\n useEffect(() => {\r\n if (animationJson && animationJson.includes(\"json\")) {\r\n fetch(animationJson)\r\n .then(response => response.json())\r\n .then((jsonData) => {\r\n setAnimation(jsonData);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [animationJson]);\r\n const buttonSection = () => (React.createElement(\"div\", null,\r\n (buttonLink || buttonLink2) && React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__buttonWrapper\" },\r\n React.createElement(ButtonV2, { href: buttonLink, design: \"cta-large-wbg\", openInNewTab: openInNewTabButton1 }, buttonLabel),\r\n buttonLink2 && React.createElement(ButtonV2, { href: buttonLink2, design: \"secondary-large-wbg\", openInNewTab: openInNewTabButton2 }, buttonLabel2)),\r\n evaluationValue && React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__evaluationWrapper\" },\r\n React.createElement(\"p\", null, evaluationLabel),\r\n React.createElement(\"p\", null, evaluationValue),\r\n React.createElement(Img, { src: trustPilotIconImage, alt: evaluationLabel }))));\r\n const imageAndVideoSection = () => (React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__swiperContainer\" },\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__swiperContainer__swiper\" },\r\n animation &&\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__container\" },\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__lottie-wrapper\" },\r\n React.createElement(Lottie, { animationData: animation, loop: true, rendererSettings: {\r\n filterSize: {\r\n width: \"200%\",\r\n height: \"200%\",\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n }\r\n } }))),\r\n cards?.length && React.createElement(\"div\", { className: \"swiper-with-video-bg-root__container\" },\r\n React.createElement(SimpleSwiperComponent, { cards: cards, isReverseDirection: false }),\r\n isLarge && React.createElement(SimpleSwiperComponent, { cards: cards, isReverseDirection: true })),\r\n videoUrl && React.createElement(VideoBgComponent, { videoUrl: videoUrl }),\r\n imageUrl && React.createElement(Img, { src: imageUrl, alt: imageAlt }))));\r\n return (React.createElement(\"div\", { className: \"swiper-with-video-bg-root\" },\r\n React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"inherit\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper\" },\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__logoContainer\" },\r\n React.createElement(Logo, { imageUrl: logoContent?.imageUrl, imageUrlReverse: logoContent?.imageUrlReverse, alt: logoContent?.alt })),\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__titlesWrapper\" },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__rich-text\", dangerouslySetInnerHTML: {\r\n __html: subTitle,\r\n } })),\r\n disclaimer && React.createElement(\"span\", null),\r\n buttonSection(),\r\n React.createElement(Gap, { mobileGap: \"40px\", desktopGap: \"40px\" }),\r\n disclaimer &&\r\n React.createElement(\"div\", { className: \"swiper-with-video-bg-root__wrapper__disclaimer centered-container\", dangerouslySetInnerHTML: { __html: disclaimer } }),\r\n imageAndVideoSection())))));\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nexport const RichTextDescriptionCtaAndImageBanner = ({ richTitle, description, buttonUrl, buttonText, designStyles, imgUrlDesktop, imgUrlMobile }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n const { isLarge } = usePageViewStyle();\r\n const videoRef = useRef(null);\r\n const [animationPath, setAnimationPath] = useState(\"\");\r\n useEffect(() => {\r\n if (isLarge) {\r\n setAnimationPath(imgUrlDesktop);\r\n }\r\n else {\r\n setAnimationPath(imgUrlMobile);\r\n }\r\n });\r\n if (videoRef.current) {\r\n videoRef.current.load();\r\n }\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"rich-text-description-cta-and-image-banner\", style: { color: textColor } },\r\n React.createElement(\"div\", { className: \"rich-text-description-cta-and-image-banner__top-end-container\" },\r\n React.createElement(\"div\", { style: { backgroundColor: bgColor }, className: \"rich-text-description-cta-and-image-banner__title-container\" },\r\n React.createElement(\"span\", { className: \"h1-lp\", style: {\r\n color: designStyles.backgroundColor === \"dark\" ? \"#FFFFFF\" : \"\"\r\n }, dangerouslySetInnerHTML: {\r\n __html: richTitle\r\n } })),\r\n React.createElement(\"div\", { className: \"rich-text-description-cta-and-image-banner__button-and-description-container\" },\r\n React.createElement(\"p\", { style: {\r\n color: designStyles.backgroundColor === \"dark\" ? \"#FFFFFF\" : \"\"\r\n }, className: \"color-dark-80 h5-semi-bold\" }, description),\r\n React.createElement(\"div\", { className: \"rich-text-description-cta-and-image-banner__button-container\" },\r\n React.createElement(ButtonV2, { href: buttonUrl, design: designStyles.buttonDesign }, buttonText)))),\r\n React.createElement(\"br\", null),\r\n React.createElement(\"div\", { className: \"rich-text-description-cta-and-image-banner__image-container\" },\r\n React.createElement(\"video\", { ref: videoRef, width: \"100%\", loop: true, autoPlay: true, muted: true, playsInline: true },\r\n React.createElement(\"source\", { src: animationPath, type: \"video/mp4\" })))))));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Img } from \"../Img\";\r\nexport const AnimatedCard = ({ buttonHref, buttonLabel, imgUrlDesktop, imgUrlTablet, imgUrlPhone, cardContent, title }) => (React.createElement(\"div\", { className: \"animated-card-root\" },\r\n React.createElement(\"div\", { className: \"animated-card-root__imageWrapper\" },\r\n React.createElement(Img, { src: imgUrlDesktop })),\r\n React.createElement(\"div\", { className: \"animated-card-root__textWrapper\" },\r\n React.createElement(Heading, { design: \"h4-bold\" }, title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardContent\r\n } })),\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonHref }, buttonLabel)));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const AnimatedBigCard = ({ buttonHref, buttonLabel, imgUrlDesktop, imgUrlTablet, imgUrlPhone, cardContent, title }) => (React.createElement(\"div\", { className: \"animated-big-card-root\" },\r\n React.createElement(\"div\", { className: \"animated-big-card-root__textWrapper\" },\r\n React.createElement(Heading, { design: \"h4-bold\" }, title),\r\n React.createElement(\"p\", null, cardContent),\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonHref }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"animated-big-card-root__imageWrapper\" },\r\n React.createElement(ImgV2, { largeUrl: imgUrlDesktop, mediumUrl: imgUrlTablet, smallUrl: imgUrlPhone, alt: title, loading: \"eager\" }))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { AnimatedCard } from \"./AnimatedCard\";\r\nimport { AnimatedBigCard } from \"./AnimatedBigCard\";\r\nexport const SectionWithTwoAnimatedCards = ({ title, cards, backgroundColor, textAlignment }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"section-with-two-cards-animated-root\", style: { backgroundColor: backgroundColor || \"inherit\" } },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(Heading, { style: { \"--text-alignment\": `${textAlignment}` }, design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"section-with-two-cards-animated-root__bigCardWrapper\" }, cards.length > 0 && cards.map((card) => card.bigCard === true && React.createElement(AnimatedBigCard, { key: `unique${card.title}`, ...card }))),\r\n React.createElement(\"div\", { className: \"section-with-two-cards-animated-root__cardsWrapper\" }, cards.length > 0 && cards.map((card) => card.bigCard === false && React.createElement(AnimatedCard, { key: `unique${card.title}`, ...card })))))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nexport const RibbonWithStatLine = ({ buttonHref, buttonLabel, opensInNewTab, subTitle, title, imageUrl, backgroundColor, buttonHoverColor, buttonHoverTextColor }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"inherit\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-stat-line-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-stat-line-root__contentWrapper\" },\r\n React.createElement(\"div\", { className: \"ribbon-with-stat-line-root__contentWrapper__textWrapper\" },\r\n React.createElement(Heading, { design: \"h3-bold\" },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n } })),\r\n React.createElement(\"div\", { className: \"ribbon-with-stat-line-root__contentWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle,\r\n } })),\r\n React.createElement(ButtonV2, { href: buttonHref, design: \"secondary-medium-wbg\", style: { \"--button-hover-color\": `${buttonHoverColor}`, \"--button-hover-text-color\": `${buttonHoverTextColor}` }, openInNewTab: opensInNewTab }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"ribbon-with-stat-line-root__bg-image\", style: { \"--background-image-url\": `url(${imageUrl})` } })))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { CustomLottie } from \"../CustomLottie/CustomLottie\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Heading } from \"../Heading\";\r\nexport const AnimatedViewWithTitle = ({ title, subtitle, animation, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"animated-view-with-title-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"animated-view-with-title-root__contentWrapper\" },\r\n React.createElement(CustomLottie, { animation: animation }),\r\n React.createElement(\"div\", { className: \"animated-view-with-title-root__contentWrapper__textWrapper\" },\r\n React.createElement(Heading, { design: \"h2-lp\" }, title),\r\n React.createElement(\"p\", null, subtitle)))))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { Autoplay } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors, duplicateArrayItems } from \"../../utils\";\r\nimport { Heading } from \"../Heading\";\r\nexport const SectionCardsMovingInOppositeDirection = ({ title, description, upperRow, lowerRow, designStyles }) => {\r\n const renderCard = useCallback(({ title, description, imageUrl, imageAlt, i }) => (React.createElement(\"div\", { key: i, className: \"section-cards-moving-in-opposite-direction__card centered-container 1swiper-no-swiping\" },\r\n React.createElement(\"div\", { className: \"section-cards-moving-in-opposite-direction__card-title-bar centered-container\" },\r\n React.createElement(\"img\", { src: imageUrl, alt: imageAlt, className: \"section-cards-moving-in-opposite-direction__card-image\" }),\r\n React.createElement(\"div\", { className: \"h5-semi-bold\" }, title)),\r\n React.createElement(\"div\", { className: \"section-cards-moving-in-opposite-direction__message-container color-dark-80\" },\r\n React.createElement(\"p\", null,\r\n \" \",\r\n description)))), []);\r\n const paymentRoller = useCallback((items, reverseDirection = false) => (React.createElement(React.Fragment, null,\r\n React.createElement(Swiper, { spaceBetween: 24, slidesPerView: \"auto\", loop: true, centeredSlides: true, autoplay: {\r\n delay: 0,\r\n disableOnInteraction: false,\r\n reverseDirection,\r\n }, speed: 2400, modules: [Autoplay] }, duplicateArrayItems(items, 5).map((item, index) => (React.createElement(SwiperSlide, { key: index }, renderCard({ ...item, i: `${index}a` }))))))), [renderCard]);\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"section-cards-moving-in-opposite-direction\", style: { color: textColor } },\r\n React.createElement(\"div\", { className: \"section-cards-moving-in-opposite-direction__main-container\" },\r\n React.createElement(\"div\", { className: \"section-cards-moving-in-opposite-direction__title_container centered-container\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title),\r\n React.createElement(\"h3\", { className: \"h5-semi-bold\", dangerouslySetInnerHTML: {\r\n __html: description || \"\",\r\n } })),\r\n React.createElement(\"div\", null, upperRow && paymentRoller(upperRow)),\r\n React.createElement(\"br\", null),\r\n React.createElement(\"div\", null, lowerRow && paymentRoller(lowerRow, true)))))));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const BannerImageBackground = ({ buttonHref, buttonLabel, openInNewTabButton, subTitle, title, imageUrl, backgroundColor, gradient1, gradient2, buttonHref2, buttonLabel2, openInNewTabButton2 }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"banner-image-background\", style: { \"--background-image-url\": `url(${imageUrl})`, \"--gradient-1\": `${gradient1}`, \"--gradient-2\": `${gradient2}` } },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"banner-image-background__contentWrapper\" },\r\n React.createElement(Heading, { design: \"h3-lp\" }, title),\r\n React.createElement(\"p\", null, subTitle),\r\n React.createElement(\"div\", { className: \"banner-image-background__button-wrapper\" },\r\n buttonHref2 && React.createElement(ButtonV2, { href: buttonHref2, openInNewTab: openInNewTabButton2, design: \"cta-large-wbg\" }, buttonLabel2),\r\n buttonHref && React.createElement(ButtonV2, { href: buttonHref, openInNewTab: openInNewTabButton, design: \"secondary-large-wbg\" }, buttonLabel)))))));\r\n","import React from \"react\";\r\nimport { Img } from \"../Img\";\r\nexport const SectionWithAwardsCard = ({ content, imgUrl }) => (React.createElement(\"div\", { className: \"section-with-awards-card-root\" },\r\n React.createElement(Img, { className: \"section-with-awards-card-root__image\", src: imgUrl }),\r\n React.createElement(\"p\", null, content)));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { SectionWithAwardsCard } from \"./SectionWithAwardsCard\";\r\nexport const SectionWithAwards = ({ cards, title, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"section-with-awards-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"h2\", null, title),\r\n React.createElement(\"div\", { className: \"section-with-awards-root__cardsWrapper\" }, cards.length > 0 && cards.map((card) => React.createElement(SectionWithAwardsCard, { key: `unique${card.content}`, ...card })))))));\r\n};\r\n","import React from \"react\";\r\nexport const webIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M1.33325 12.6667V3.33333C1.33325 2.59695 1.93021 2 2.66659 2H13.3333C14.0697 2 14.6666 2.59695 14.6666 3.33333V12.6667C14.6666 13.4031 14.0697 14 13.3333 14H2.66659C1.93021 14 1.33325 13.4031 1.33325 12.6667Z\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M1.33398 6H14.6673\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M3.33398 4.00741L3.34065 4\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M5.33398 4.00741L5.34065 4\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M7.33398 4.00741L7.34065 4\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import React from \"react\";\r\nexport const mobileIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M8 11.6724L8.00583 11.666\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M4 13.55V2.45C4 2.20147 4.2149 2 4.48 2H11.52C11.7851 2 12 2.20147 12 2.45V13.55C12 13.7985 11.7851 14 11.52 14H4.48C4.2149 14 4 13.7985 4 13.55Z\", stroke: \"#1A2737\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\r\n","import React, { useCallback } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Heading } from \"../Heading\";\r\nimport { webIcon } from \"../svgIcons/webIcon\";\r\nimport { mobileIcon } from \"../svgIcons/mobileIcon\";\r\nexport const CardsGridWithFullWidthCenteredImagesAndTags = ({ title, cards, designStyles, columns }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n const renderCard = useCallback((card, i) => (React.createElement(\"div\", { key: i, className: `${columns === \"4\" ? \"cards-grid-with-full-width-centered-images-and-tags__card col-4-card\" : \"cards-grid-with-full-width-centered-images-and-tags__card col-3-card\"}` },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__top-end mb-20\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__image-container\", style: { backgroundColor: card.cardBackgroundColor } },\r\n card.tags && React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__tags-strip\" },\r\n React.createElement(\"span\", { className: \"cards-grid-with-full-width-centered-images-and-tags__text-befor-tags\" }, card.textBeforeTags),\r\n card.tags.split(\"|\")?.map((tag, i) => (React.createElement(\"div\", { key: i, className: \"cards-grid-with-full-width-centered-images-and-tags__tag centered-container\" },\r\n tag === \"Web\" ? webIcon : mobileIcon,\r\n tag)))),\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__image-container__imageWrapper\" },\r\n React.createElement(\"img\", { className: \"cards-grid-with-full-width-centered-images-and-tags__image-container__imageWrapper__image\", src: card.imageUrl, alt: card.imageAlt })))),\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__bottom-end\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__generic-title-description\" },\r\n React.createElement(\"h5\", { className: \"h5-lp mb-12\" }, card.title),\r\n React.createElement(\"p\", { className: \"copy-lp\" }, card.description))))), [columns]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-with-full-width-centered-images-and-tags\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags__title-container mb-40\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title)),\r\n React.createElement(\"div\", { className: `${columns === \"4\" ? \"cards-grid-with-full-width-centered-images-and-tags__cards-container col-4\" : \"cards-grid-with-full-width-centered-images-and-tags__cards-container col-3\"}` }, cards.map((card, i) => (renderCard(card, i))))))));\r\n};\r\n","import React, { useCallback } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Heading } from \"../Heading\";\r\nimport { webIcon } from \"../svgIcons/webIcon\";\r\nimport { mobileIcon } from \"../svgIcons/mobileIcon\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Navigation, Pagination } from \"swiper\";\r\nSwiperCore.use([Navigation, Pagination]);\r\nexport const CardsGridWithFullWidthCenteredImagesAndTagsV2 = ({ title, cards, designStyles, columns }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n const renderCard = useCallback((card) => (React.createElement(\"div\", { className: `${columns === \"4\" ? \"cards-grid-with-full-width-centered-images-and-tags-v2__card col-4-card\" : \"cards-grid-with-full-width-centered-images-and-tags-v2__card col-3-card\"}` },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__top-end mb-20\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__image-container\", style: { backgroundColor: card.cardBackgroundColor } },\r\n card.tags && React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__tags-strip\" },\r\n React.createElement(\"span\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__text-before-tags\" }, card.textBeforeTags),\r\n card.tags.split(\"|\")?.map((tag, i) => (React.createElement(\"div\", { key: i, className: \"cards-grid-with-full-width-centered-images-and-tags-v2__tag centered-container\" },\r\n tag === \"Web\" ? webIcon : mobileIcon,\r\n tag)))),\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__image-container__imageWrapper\" },\r\n React.createElement(\"img\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__image-container__imageWrapper__image\", src: card.imageUrl, alt: card.imageAlt })))),\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__bottom-end\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__generic-title-description\" },\r\n React.createElement(\"h5\", { className: \"h5-lp mb-12\" }, card.title),\r\n React.createElement(\"p\", { className: \"copy-lp\" }, card.description))))), [columns]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-with-full-width-centered-images-and-tags-v2\" },\r\n React.createElement(\"div\", { className: \"cards-grid-with-full-width-centered-images-and-tags-v2__title-container mb-40\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title)),\r\n React.createElement(\"div\", { className: `hide-small-ndb ${columns === \"4\" ? \"cards-grid-with-full-width-centered-images-and-tags-v2__cards-container col-4\" : \"cards-grid-with-full-width-centered-images-and-tags-v2__cards-container col-3\"}` }, cards.map(c => renderCard(c))),\r\n React.createElement(\"div\", { className: \"hide-medium-ndb hide-large-ndb\" },\r\n React.createElement(Swiper, { spaceBetween: 37, slidesPerView: 1.14, loop: true, pagination: { clickable: true }, speed: 2000, className: \"awardsSli1derDark__swiper2\" }, cards.map((c, i) => React.createElement(React.Fragment, null,\r\n React.createElement(SwiperSlide, { key: i },\r\n React.createElement(\"div\", { className: \"animated-image-boxes-grid__payment-slide-img-container222 bg-color-1pure-white\" }, renderCard(c)))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Heading } from \"../Heading\";\r\nexport const CardsGridTitleDescriptionIcon = ({ title, description, designStyles, cards }) => {\r\n const { bgColor, textColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"cards-grid-title-description-icon\" },\r\n React.createElement(\"div\", { className: \"cards-grid-title-description-icon__top-end\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title),\r\n React.createElement(\"p\", { className: \"copy-lp\" }, description)),\r\n React.createElement(\"div\", { className: \"cards-grid-title-description-icon__cards-container\" }, cards?.map((c, i) => (React.createElement(\"div\", { key: i, className: \"cards-grid-title-description-icon__card color-dark-90\" },\r\n React.createElement(\"div\", { className: \"cards-grid-title-description-icon__card-top-strip\" },\r\n React.createElement(Heading, { design: \"h3-bold-small\" }, c.title),\r\n React.createElement(\"img\", { src: c.imageUrl, alt: c.imageAlt })),\r\n React.createElement(\"div\", { className: \"cards-grid-title-description-icon__card-bottom-strip\" },\r\n React.createElement(\"p\", { className: \"copy-lp\" }, c.description))))))))));\r\n};\r\n","import React from \"react\";\r\nexport const shortArrowIcon = ({ fill = \"#99cad1\", height = 23, width = 24 }) => (React.createElement(\"svg\", { width: width, height: height, viewBox: \"0 0 24 24\", fill: fill, xmlns: \"http://www.w3.org/2000/svg\" },\r\n React.createElement(\"g\", { clipPath: \"url(#6cv15a3sra)\" },\r\n React.createElement(\"path\", { d: \"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2h12.172z\", fill: \"inherit\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", null,\r\n React.createElement(\"path\", { fill: fill, d: \"M0 0h24v24H0z\" })))));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { shortArrowIcon } from \"../svgIcons/shortArrow\";\r\nexport const InstantSwiper = ({ cards, backgroundColor, title, subtitle }) => {\r\n const [activeSlide, setActiveSlide] = useState(0);\r\n const { bgColor } = getColors(backgroundColor);\r\n const handleChangeBtnClick = useCallback((direction) => () => {\r\n if (direction === \"left\" && activeSlide > 0) {\r\n setActiveSlide(prev => prev - 1);\r\n return;\r\n }\r\n else if (direction === \"right\" && activeSlide < cards.length - 1) {\r\n setActiveSlide(prev => prev + 1);\r\n return;\r\n }\r\n }, [activeSlide, cards.length]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"instant-swiper-root\" },\r\n React.createElement(\"div\", { className: \"instant-swiper-root__titles-section\" },\r\n React.createElement(\"div\", { className: \"instant-swiper-root__title\" },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: \"instant-swiper-root__subtitle\" },\r\n React.createElement(\"p\", null, subtitle))),\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"instant-swiper-root__activeButtonsWrapper\" }, cards.map((card, index) => (React.createElement(\"span\", { key: `unique${card.title}`, className: `${index <= activeSlide ? \"active-button\" : \"\"} ` })))),\r\n React.createElement(\"div\", { className: \"instant-swiper-root__textsWrapper\" },\r\n React.createElement(\"h3\", null, cards[activeSlide].title),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: cards[activeSlide].subtitle } })),\r\n React.createElement(\"div\", { className: \"instant-swiper-root__buttonsWrapper\" },\r\n React.createElement(\"span\", { onClick: handleChangeBtnClick(\"left\") }, shortArrowIcon({ fill: \"000\", width: 16, height: 16 })),\r\n React.createElement(\"span\", { onClick: handleChangeBtnClick(\"right\") }, shortArrowIcon({ fill: \"000\", width: 16, height: 16 }))),\r\n React.createElement(\"div\", { className: \"instant-swiper-root__imageWrapper\" },\r\n React.createElement(Img, { src: cards[activeSlide].imageUrl }))))));\r\n};\r\n","import React from \"react\";\r\nexport const supportUpIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", \"aria-label\": \"Operational\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_17165_362983)\" },\r\n React.createElement(\"path\", { d: \"M4.66797 8.33268L6.66797 10.3327L11.3346 5.66602\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M7.9987 14.6673C11.6806 14.6673 14.6654 11.6825 14.6654 8.00065C14.6654 4.31875 11.6806 1.33398 7.9987 1.33398C4.3168 1.33398 1.33203 4.31875 1.33203 8.00065C1.33203 11.6825 4.3168 14.6673 7.9987 14.6673Z\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_17165_362983\" },\r\n React.createElement(\"rect\", { width: \"16\", height: \"16\", fill: \"white\" })))));\r\n","import React from \"react\";\r\nexport const supportDownIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", \"aria-label\": \"Disrupted\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_17165_362951)\" },\r\n React.createElement(\"path\", { d: \"M4.66797 8L11.3346 8\", stroke: \"#DF1A3C\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M14.6654 7.99935C14.6654 4.31748 11.6806 1.33268 7.9987 1.33268C4.3168 1.33268 1.33203 4.31748 1.33203 7.99935C1.33203 11.6812 4.3168 14.666 7.9987 14.666C11.6806 14.666 14.6654 11.6812 14.6654 7.99935Z\", stroke: \"#DF1A3C\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_17165_362951\" },\r\n React.createElement(\"rect\", { width: \"16\", height: \"16\", fill: \"white\", transform: \"translate(0 16) rotate(-90)\" })))));\r\n","import React from \"react\";\r\nexport const supportMaintenanceIcon = (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", \"aria-label\": \"Maintenance\" },\r\n React.createElement(\"g\", { clipPath: \"url(#clip0_17165_362958)\" },\r\n React.createElement(\"mask\", { id: \"mask0_17165_362958\", style: { maskType: \"luminance\" }, maskUnits: \"userSpaceOnUse\", x: \"0\", y: \"0\", width: \"16\", height: \"16\" },\r\n React.createElement(\"path\", { d: \"M16 0H0V16H16V0Z\", fill: \"white\" })),\r\n React.createElement(\"g\", { mask: \"url(#mask0_17165_362958)\" },\r\n React.createElement(\"path\", { d: \"M6.70234 7.0705L1.9883 11.7846C1.4676 12.3052 1.4676 13.1494 1.9883 13.6702C2.50899 14.1908 3.35321 14.1908 3.87391 13.6702L8.58794 8.9561\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\r\n React.createElement(\"path\", { d: \"M6.70428 7.07045C6.14173 5.6351 6.2517 3.75178 7.41141 2.59211C8.57108 1.43243 10.7112 1.17789 11.8897 1.885L9.86261 3.91211L9.67421 5.98614L11.7482 5.79773L13.7753 3.77061C14.4825 4.94913 14.2279 7.08931 13.0682 8.24898C11.9085 9.40865 10.0252 9.51865 8.58988 8.95605\", stroke: \"currentColor\", strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"clipPath\", { id: \"clip0_17165_362958\" },\r\n React.createElement(\"rect\", { width: \"16\", height: \"16\", fill: \"white\" })))));\r\n","import React, { useCallback } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Heading } from \"../Heading/Heading\";\r\nimport { supportUpIcon } from \"../svgIcons/supportUpIcon\";\r\nimport { supportDownIcon } from \"../svgIcons/supportDownIcon\";\r\nimport { supportMaintenanceIcon } from \"../svgIcons/supportMaintenanceIcon\";\r\nexport const StatusCardsGrid = ({ title, cards, designStyles }) => {\r\n const { bgColor, textColor } = getColors(designStyles.backgroundColor);\r\n const renderUp = useCallback(({ statusDescription }) => React.createElement(\"div\", { className: \"centered-container status-cards-grid__status-label color-tm-green-120\" },\r\n supportUpIcon,\r\n React.createElement(\"div\", { className: \"status-cards-grid__text-up caption-bold\" }, statusDescription)), []);\r\n const renderDown = useCallback(({ statusDescription }) => React.createElement(\"div\", { className: \"centered-container status-cards-grid__status-label color-support-down\" },\r\n supportDownIcon,\r\n React.createElement(\"div\", { className: \"status-cards-grid__text-down caption-bold\" }, statusDescription)), []);\r\n const renderMaintenance = useCallback(({ statusDescription }) => React.createElement(\"div\", { className: \"centered-container status-cards-grid__status-label color-support-maintenance\" },\r\n supportMaintenanceIcon,\r\n React.createElement(\"div\", { className: \"status-cards-grid__text-maintenance caption-bold\" }, statusDescription)), []);\r\n const renderCard = useCallback((card) => (React.createElement(\"div\", { className: \"status-cards-grid__card\" },\r\n card.serviceTitle,\r\n card.statusCode === \"up\" && renderUp(card),\r\n card.statusCode === \"down\" && renderDown(card),\r\n card.statusCode === \"maintenance\" && renderMaintenance(card))), [renderUp, renderDown, renderMaintenance]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"status-cards-grid__root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { style: { color: textColor }, className: \"status-cards-grid\" },\r\n React.createElement(Heading, { design: designStyles.titleDesign }, title),\r\n React.createElement(\"br\", null),\r\n React.createElement(\"div\", { className: \"status-cards-grid__grid\" }, cards?.map((card) => (React.createElement(\"div\", { key: `unique${card.serviceTitle}` }, renderCard(card))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { TrustpilotCard } from \"../TrustpilotSlider/TrustpilotCard\";\r\nimport { Mousewheel } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Img } from \"../Img\";\r\nexport const TrustPilotOpinionLP = ({ cards, mainTitle, buttonHref, buttonLabel, buttonImage, backgroundColor, openInNewTabButton, buttonHref2, buttonLabel2, buttonImage2, openInNewTabButton2 }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"inherit\" },\r\n React.createElement(\"div\", { className: \"trust-pilot-opinion-LP-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"h3\", null, mainTitle),\r\n React.createElement(\"div\", { className: \"trust-pilot-opinion-LP-root__swiperWrapper\" },\r\n React.createElement(Swiper, { modules: [Mousewheel], mousewheel: true, slidesPerView: 1.2, spaceBetween: 0, breakpoints: {\r\n [600]: {\r\n slidesPerView: 3,\r\n spaceBetween: 15\r\n },\r\n } }, cards.length > 0 && cards.map((card, index) => React.createElement(SwiperSlide, { key: `trustpilot-slide-${index}` }, React.createElement(TrustpilotCard, { ...card }))))),\r\n React.createElement(\"div\", { className: \"trust-pilot-opinion-LP-root__buttons-wrapper\" },\r\n buttonHref && React.createElement(ButtonV2, { design: \"secondary-large-wbg\", href: buttonHref, openInNewTab: openInNewTabButton },\r\n React.createElement(\"p\", null, buttonLabel),\r\n React.createElement(Img, { src: buttonImage, alt: buttonLabel })),\r\n buttonHref2 && React.createElement(ButtonV2, { design: \"secondary-large-wbg\", href: buttonHref2, openInNewTab: openInNewTabButton2 },\r\n React.createElement(\"p\", null, buttonLabel2),\r\n React.createElement(Img, { src: buttonImage2, alt: buttonLabel2 })))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Logo } from \"../Logo/Logo\";\r\nexport const LogoLP = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(Logo, { imageUrl: props.imageUrl, imageUrlReverse: props.imageUrlReverse, alt: props.alt }))));\r\n};\r\n","import React from \"react\";\r\nimport { CustomLottie } from \"../CustomLottie/CustomLottie\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const CardWithAnimation = ({ animation, subTitle, title, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"card-with-animation-root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n }, className: \"h2-regular-small\" }),\r\n React.createElement(CustomLottie, { animation: animation, className: \"card-with-animation-root__animation\" }),\r\n React.createElement(\"p\", null, subTitle)))));\r\n};\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { CustomLottie } from \"../CustomLottie\";\r\nimport { webIcon } from \"../svgIcons/webIcon\";\r\nimport { mobileIcon } from \"../svgIcons/mobileIcon\";\r\nexport const CardDeckWithTitleAndAnimatinOrImage = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const haveSvgIcon1 = (props.cards[0].cardAnimation.substr(props.cards[0].cardAnimation.length - 3) === \"svg\" ? 1 : 0);\r\n const haveSvgIcon2 = (props.cards[1].cardAnimation.substr(props.cards[1].cardAnimation.length - 3) === \"svg\" ? 1 : 0);\r\n const imgMarginBottom = ((haveSvgIcon1 + haveSvgIcon2) === 2 ? \"20px\" : \"40px\");\r\n const labels = (haveLabels) => (haveLabels && React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__labels\" },\r\n React.createElement(\"span\", { className: \"card-deck-with-title-and-animation-or-image__label-item\" },\r\n webIcon,\r\n \" \",\r\n React.createElement(\"p\", null, \"Web\")),\r\n React.createElement(\"span\", { className: \"card-deck-with-title-and-animation-or-image__label-item\" },\r\n mobileIcon,\r\n \" \",\r\n React.createElement(\"p\", null, \"Mobile\"))));\r\n const subtitle = (haveSubtitle) => (haveSubtitle && props.subtitle && React.createElement(\"p\", { className: `${props.subtitlePosition === undefined || props.subtitlePosition === \"Center\" ? \"margin-auto\" : \"\"}`, style: { textAlign: props.subtitlePosition === undefined ? \"center\" : props.subtitlePosition.toLowerCase() } }, props.subtitle));\r\n const cardItem = () => (props.cards.length > 0 && props.cards.map((card, index) => (index < 2 ? (React.createElement(\"div\", { key: index, className: \"card-deck-with-title-and-animation-or-image__left-card\", style: { backgroundColor: props.cardsBackgroundColor } },\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__left-card-image\", style: { marginBottom: imgMarginBottom } },\r\n React.createElement(CustomLottie, { animation: card.cardAnimation })),\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__left-card-text\" },\r\n React.createElement(\"h5\", null, card.cardTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: card.cardSubTitle } })))) : \"\")));\r\n const rightWraper = () => (React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__right-wrapper\", style: { flexDirection: props.imagePosition === \"bottom\" ? \"column-reverse\" : \"column\", padding: props.imagePosition === \"bottom\" ? \"40px 0px 0px 0px\" : \"30px 0px 30px 0px\", backgroundColor: props.cardsBackgroundColor } },\r\n React.createElement(\"div\", { className: `card-deck-with-title-and-animation-or-image__right-card-image ${props.imagePosition === \"bottom\" ? \"imageBottom\" : \"centered-image\"}` },\r\n React.createElement(CustomLottie, { animation: props.cards[2].cardAnimation })),\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__right-card-text\" },\r\n React.createElement(\"h5\", null, props.cards[2].cardTitle),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: { __html: props.cards[2].cardSubTitle } }),\r\n labels(props.haveLabels))));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image\" },\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__text-wrapper\" },\r\n React.createElement(\"h2\", { style: { textAlign: props.titlePosition === undefined ? \"center\" : props.titlePosition.toLowerCase() } }, props.title),\r\n subtitle(props.subtitle)),\r\n React.createElement(\"div\", { className: `card-deck-with-title-and-animation-or-image__cards-wrapper ${props.bigCardPosition === \"right\" ? \"mobile-image-bottom\" : \"mobile-image-top\"}` },\r\n React.createElement(\"div\", { className: \"card-deck-with-title-and-animation-or-image__left-wrapper\" }, cardItem()),\r\n rightWraper())))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const TextAndImageLP = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: `text-and-image-lp ${props.imagePosition === (\"right\" || \"center\") ? \"image-right\" : \"image-left\"}` },\r\n React.createElement(\"div\", { className: \"text-and-image-lp__text-container\" },\r\n React.createElement(\"h2\", null, props.title),\r\n React.createElement(\"div\", { className: \"text-and-image-lp__text-description\", dangerouslySetInnerHTML: {\r\n __html: props.text\r\n } })),\r\n React.createElement(\"div\", { className: \"text-and-image-lp__image-container\" },\r\n React.createElement(Img, { src: props.imageUrl, alt: props.imageAlt }))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { webIcon } from \"../svgIcons/webIcon\";\r\nimport { mobileIcon } from \"../svgIcons/mobileIcon\";\r\nimport { Heading } from \"../Heading\";\r\nconst WhySpreadBetWithUsCard = ({ title, description, tags, imageUrl, imageAlt, iconUrl, iconAlt }) => (React.createElement(\"div\", { className: \"why-spread-bet-with-us__card\" },\r\n React.createElement(\"div\", { className: \"why-spread-bet-with-us__card-content-upper\" },\r\n iconUrl && React.createElement(React.Fragment, null,\r\n React.createElement(\"img\", { className: \"why-spread-bet-with-us__icon icon\", src: iconUrl, alt: iconAlt }),\r\n \" \",\r\n React.createElement(\"div\", null)),\r\n React.createElement(\"h5\", { className: \"h5-lp\" }, title),\r\n React.createElement(\"div\", { className: \"copy-lp $dark-80\" }, description),\r\n tags !== \"\" && React.createElement(\"div\", { className: \"why-spread-bet-with-us__tags-container\" }, tags?.split(\"|\").map((tag, i) => (React.createElement(\"span\", { key: i, className: \"why-spread-bet-with-us__tag\" },\r\n tag === \"Mobile\" ? mobileIcon : \"\",\r\n tag === \"Web\" ? webIcon : \"\",\r\n tag))))),\r\n imageUrl && React.createElement(\"img\", { className: \"why-spread-bet-with-us__img \", src: imageUrl, alt: imageAlt })));\r\nexport const WhySpreadBetWithUs = ({ title, cards, disclaimer, designStyles }) => {\r\n const { bgColor } = getColors(designStyles?.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"why-spread-bet-with-us\" },\r\n React.createElement(\"div\", { className: \"centered-container\" },\r\n React.createElement(Heading, { design: designStyles?.titleDesign }, title)),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"div\", { className: \"why-spread-bet-with-us__cards-grid\" }, cards.map((card, i) => React.createElement(WhySpreadBetWithUsCard, { key: i, ...card }))),\r\n React.createElement(\"div\", null),\r\n React.createElement(\"p\", { className: \"why-spread-bet-with-us__custom-disclaimer-font\" }, disclaimer)))));\r\n};\r\n","const DEFAULT_ADDINFO_KEY_MAP = {\r\n Forex: \"Forex\",\r\n Indices: \"Indices\",\r\n Energy: \"Energy\",\r\n Metals: \"Metals\",\r\n Crypto: \"Crypto\"\r\n};\r\nexport const LEVERAGE_DATA_GROUPS = [\r\n {\r\n name: \"uk\",\r\n columnSuffix: \"\",\r\n cultures: [\"en-GB\"]\r\n },\r\n];\r\nexport const DEFAULT_CS_PAGE_CONFIG = [\r\n {\r\n cultures: [\"en-GB\"],\r\n instrumentGroupsConfig: {\r\n Forex: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n positionQualities: { options: [\"All\", \"Major\", \"Minor\", \"Exotic\"], translationKey: \"positionQualities\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActivePositionQuality: \"Major\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n positionQuality: \"Major\",\r\n leverageType: \"Retail\",\r\n }),\r\n columnsPerLeverageType: {\r\n Retail: [\"MaxLeverageRetail\"],\r\n Professional: [\"MaxLeverageProfMT4AndMT5\", \"MaxLeverageProfThinkTrader\"]\r\n }\r\n },\r\n Indices: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"TradingHours\"]\r\n },\r\n Energy: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n instrumentSubtypes: { options: [\"Metals\", \"Energy\"], translationKey: \"instrumentSubtypes\" },\r\n leverageTypes: { options: [\"Retail\", \"Professional\"], translationKey: \"leverageTypes\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveInstrumentSubtype: \"Metals\",\r\n iniActiveLeverageType: \"Retail\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n instrumentSubtype: \"Metals\",\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"TradingHours\"]\r\n },\r\n Crypto: {\r\n getRelevantData: undefined,\r\n getRelevantFilters: (filterProps) => ({\r\n searchText: { translationKey: \"searchText\" },\r\n }),\r\n getDefaultFilterValues: () => ({\r\n iniActiveLeverageType: \"Professional\",\r\n }),\r\n getAutoExecutedHandlers: () => ({\r\n leverageType: \"Retail\",\r\n }),\r\n columnsThatAllowHtml: [\"TradingHours\"]\r\n },\r\n },\r\n addInfoMap: DEFAULT_ADDINFO_KEY_MAP,\r\n accountTypeIds: undefined,\r\n columnsPerLeverageType: {\r\n Retail: [\"MaxLeverageRetail\"],\r\n Professional: [\"MaxLeverageProf\"]\r\n },\r\n leverageDataGroups: LEVERAGE_DATA_GROUPS\r\n },\r\n];\r\n","import * as React from \"react\";\r\nimport { ContractSpecsTabs } from \"../ContractSpecsTabs\";\r\nimport { DEFAULT_CS_PAGE_CONFIG } from \"./config\";\r\nexport const ContractSpecsSBTabs = (props) => React.createElement(ContractSpecsTabs, { ...props, pageConfig: DEFAULT_CS_PAGE_CONFIG });\r\n","import React from \"react\";\r\nexport const BottomTimeLine = ({ date, comment }) => (React.createElement(\"div\", { className: \"bottom-time-line\" },\r\n React.createElement(\"span\", null, date),\r\n React.createElement(\"p\", null, comment)));\r\n","import React from \"react\";\r\nexport const TopTimeLine = ({ date, comment }) => (React.createElement(\"div\", { className: \"top-time-line\" },\r\n React.createElement(\"span\", null, date),\r\n React.createElement(\"p\", null, comment)));\r\n","import React, { useState, useRef, useCallback } from \"react\";\r\nexport const Draggable = ({ children }) => {\r\n const initialRef = undefined;\r\n const ourRef = useRef(initialRef);\r\n const [isMouseDown, setIsMouseDown] = useState(false);\r\n const mouseCoords = useRef({\r\n startX: 0,\r\n startY: 0,\r\n scrollLeft: 0,\r\n scrollTop: 0\r\n });\r\n const handleDragStartCallback = useCallback(((e) => {\r\n if (!ourRef.current) {\r\n return;\r\n }\r\n const slider = ourRef.current?.children[0];\r\n const startX = e.pageX - slider.offsetLeft;\r\n const startY = e.pageY - slider.offsetTop;\r\n const scrollLeft = slider.scrollLeft;\r\n const scrollTop = slider.scrollTop;\r\n mouseCoords.current = { startX, startY, scrollLeft, scrollTop };\r\n setIsMouseDown(true);\r\n document.body.style.cursor = \"grabbing\";\r\n }), []);\r\n const handleDragEndCallback = useCallback((() => {\r\n setIsMouseDown(false);\r\n if (!ourRef.current) {\r\n return;\r\n }\r\n document.body.style.cursor = \"default\";\r\n }), []);\r\n const handleDragCallback = useCallback(((e) => {\r\n if (!isMouseDown || !ourRef.current) {\r\n return;\r\n }\r\n e.preventDefault();\r\n const slider = ourRef.current?.children[0];\r\n const x = e.pageX - slider.offsetLeft;\r\n const y = e.pageY - slider.offsetTop;\r\n const walkX = (x - mouseCoords.current.startX) * 1.5;\r\n const walkY = (y - mouseCoords.current.startY) * 1.5;\r\n slider.scrollLeft = mouseCoords.current.scrollLeft - walkX;\r\n slider.scrollTop = mouseCoords.current.scrollTop - walkY;\r\n }), [isMouseDown]);\r\n return (React.createElement(\"div\", { ref: ourRef, onMouseDown: handleDragStartCallback, onMouseUp: handleDragEndCallback, onMouseMove: handleDragCallback }, children));\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { BottomTimeLine } from \"./TimeLine/BottomTimeLine\";\r\nimport { TopTimeLine } from \"./TimeLine/TopTimeLine\";\r\nimport { Draggable } from \"./Draggable/Draggable\";\r\nexport const TimelineWithText = ({ title, timelineData }) => {\r\n const TopTimeLineElements = useMemo(() => {\r\n const evenElements = timelineData.filter((a, i) => (i % 2 === 0 && a));\r\n return evenElements;\r\n }, [timelineData]);\r\n const bottomTimeLineElements = useMemo(() => {\r\n const oddElements = timelineData.filter((a, i) => (i % 2 !== 0 && a));\r\n return oddElements;\r\n }, [timelineData]);\r\n return (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"timeline-with-text-wrapper\" },\r\n React.createElement(Heading, { design: \"h4-bold\" }, title),\r\n React.createElement(Draggable, null,\r\n React.createElement(\"div\", { className: \"timeline-with-text-wrapper__container\" },\r\n React.createElement(\"div\", { className: \"timeline-with-text-wrapper__container__topLineWrapper\" }, TopTimeLineElements.length > 0 && TopTimeLineElements.map((a) => (React.createElement(\"div\", { key: `unique${a.date}` },\r\n React.createElement(TopTimeLine, { ...a }))))),\r\n React.createElement(\"div\", { className: \"timeline-with-text-wrapper__container__bottomLineWrapper\" }, bottomTimeLineElements.length > 0 && bottomTimeLineElements.map((a) => (React.createElement(\"div\", { key: `unique${a.date}` },\r\n React.createElement(BottomTimeLine, { ...a }))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Img } from \"../../Components/Img\";\r\nimport { Heading } from \"../Heading\";\r\nexport const MarketsAndInstruments = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(\"div\", { className: \"markets-and-instruments\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"markets-and-instruments__container\" },\r\n React.createElement(\"div\", { className: \"markets-and-instruments__left-wrapper\" },\r\n React.createElement(\"div\", { className: \"markets-and-instruments__left-wrapper__title-wrapper\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, props.title)),\r\n React.createElement(\"div\", { className: \"markets-and-instruments__left-wrapper__desc-wrapper\", dangerouslySetInnerHTML: { __html: props.desc } }),\r\n React.createElement(\"div\", { className: \"markets-and-instruments__left-wrapper__img-wrapper\" },\r\n React.createElement(Img, { src: props.imageURL, alt: props.imageAlt }))),\r\n React.createElement(\"div\", { className: \"markets-and-instruments__right-wrapper\" }, props.instruments.map((el, i) => (React.createElement(\"div\", { key: i, className: \"markets-and-instruments__right-wrapper__el\" },\r\n React.createElement(\"div\", { className: \"markets-and-instruments__right-wrapper__el-icon\" },\r\n React.createElement(Img, { src: el.iconURL, alt: el.iconAlt })),\r\n React.createElement(\"div\", { className: \"markets-and-instruments__right-wrapper__el-title\" },\r\n React.createElement(Heading, { design: \"h4-bold\" }, el.title)),\r\n React.createElement(\"div\", { className: \"markets-and-instruments__right-wrapper__el-desc\", dangerouslySetInnerHTML: { __html: el.description } }))))))))));\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nexport const CustomSelect = ({ options, onSelect, selectOptionText }) => {\r\n const [selectedOption, setSelectedOption] = useState();\r\n const [isOpen, setIsOpen] = useState(false);\r\n const handleOptionClick = (option) => {\r\n setSelectedOption(option);\r\n onSelect(option);\r\n setIsOpen(false);\r\n };\r\n const optionClickHandler = (option) => () => handleOptionClick(option);\r\n const toggleHandler = useCallback(() => setIsOpen(!isOpen), [isOpen]);\r\n return (React.createElement(\"div\", { className: \"custom-select\" },\r\n React.createElement(\"div\", { className: \"select-toggle\", onClick: toggleHandler }, selectedOption ? selectedOption.label : selectOptionText),\r\n isOpen && (React.createElement(\"div\", { className: \"select-menu\" }, options.map((option) => (React.createElement(\"div\", { key: option.value, className: \"select-option\", onClick: optionClickHandler(option) }, option.label)))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../Img\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { Heading } from \"../Heading\";\r\nexport const ItemDeckWithTitleHorizontal = ({ cards, backgroundColor = \"white\", title, buttonUrl, buttonText }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: `${backgroundColor === \"dark\" ? \"itemDeckWithTitle-dark-wrapperHorizontal\" : \"itemDeckWithTitle-wrapperHorizontal\"}` },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapperHorizontal__grid-wrapper\" },\r\n title && React.createElement(Heading, { design: \"h2-regular-small\" }, title),\r\n React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapperHorizontal__grid-wrapper__cards-root\" }, cards.length > 0 && cards.map((a) => (React.createElement(\"div\", { key: `unique${a.title}`, className: \"itemDeckWithTitle-wrapperHorizontal__grid-wrapper__cards-root__cards-wrapper\" },\r\n React.createElement(Img, { src: a.imageUrl, alt: a.imageAlt }),\r\n React.createElement(\"span\", { className: \"itemDeckWithTitle-wrapperHorizontal__grid-wrapper__cards-root__cards-wrapper__texts\" },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, a.title),\r\n React.createElement(\"p\", null, a.comment)))))),\r\n buttonText && React.createElement(\"div\", { className: \"itemDeckWithTitle-wrapperHorizontal__button-wrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonUrl }, buttonText)))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Img } from \"../../Components/Img\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../utils\";\r\nexport const ContactUsBannerWithButton = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"contact-us-banner-with-button\" },\r\n React.createElement(\"div\", { className: \"contact-us-banner-with-button__text-container\" },\r\n React.createElement(Heading, { design: \"h2-regular-small\" }, props.title),\r\n React.createElement(\"div\", { className: \"contact-us-banner-with-button__description\", dangerouslySetInnerHTML: {\r\n __html: props.description,\r\n } }),\r\n props.buttonLabel && React.createElement(\"div\", { className: \"contact-us-banner-with-button__button-container\" },\r\n React.createElement(ButtonV2, { design: \"ghost-medium-wbg\", href: props.buttonURL }, props.buttonLabel))),\r\n React.createElement(\"div\", { className: \"contact-us-banner-with-button__image-container\" },\r\n React.createElement(Img, { src: props.imageURL, alt: props.imageAlt }))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const CardInfo = ({ cardImg, cardText }) => (React.createElement(\"div\", { className: \"card-info-root\" },\r\n React.createElement(ImgV2, { src: cardImg, alt: cardText }),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardText || \"\",\r\n } })));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { CardInfo } from \"./CardInfo\";\r\nexport const TradeWithExpertInsights = ({ buttonLink, buttonText, cardInfoSet, imageUrl, subTitle, title, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root__textContainer\" },\r\n React.createElement(Heading, { design: \"h2-lp\" }, title),\r\n React.createElement(\"p\", { className: \"trade-with-expert-insights-root__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root__image-container\" },\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root__image-container__imageWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageUrl })),\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root__image-container__cardsInfoWrapper\" }, cardInfoSet.length > 0 && cardInfoSet.map((card) => (React.createElement(CardInfo, { key: `unique${card.cardText}`, cardImg: card.cardImg, cardText: card.cardText }))))),\r\n React.createElement(\"div\", { className: \"trade-with-expert-insights-root__image-container__buttonWrapper\" },\r\n React.createElement(ButtonV2, { design: \"cta-large-wbg\", href: buttonLink }, buttonText))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const TextAndImageLPCentered = ({ imageAlt, imageUrl, text, title, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"text-and-image-lp-centered_root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins-landing-pages\" },\r\n React.createElement(\"div\", { className: \"text-and-image-lp-centered_root__image-container\" },\r\n React.createElement(ImgV2, { src: imageUrl, alt: imageAlt })),\r\n React.createElement(\"div\", { className: \"text-and-image-lp-centered_root__text-container\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"text-and-image-lp-centered_root__text-description copy-LP\", dangerouslySetInnerHTML: {\r\n __html: text || \"\"\r\n } }))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { FiltersRibbon } from \"../FiltersRibbon\";\r\nimport { AcademyArticleCardDeckPool } from \"../Cards\";\r\nimport { Filters } from \"../Filters\";\r\nimport { serializeQuery, useFetchAcadArticlesOnMount, useHandleWindowLocationPage } from \"./utils\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nimport { checkIsNumber } from \"../../utils\";\r\nexport const FilterAcademyCards = (props) => {\r\n const [listView, setListView] = React.useState(false);\r\n const [filtersActive, setFiltersActive] = React.useState(false);\r\n const [filtersData, setFiltersData] = React.useState({});\r\n const [resetFilters, setResetFilters] = React.useState(0);\r\n const [cards, setCards] = React.useState([]);\r\n const [searchQuery, setSearchQuery] = React.useState(undefined);\r\n const [isFilterOrSearchApplied, setIsFilterOrSearchApplied] = React.useState(false);\r\n const [hasFiltersApplied, setHasFiltersApplied] = React.useState(false);\r\n const [currentPage, setCurrentPage] = React.useState(1);\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const pageSize = 12;\r\n const [totalArticlesCount, setTotalArticlesCount] = React.useState(0);\r\n const abortController = React.useRef(undefined);\r\n const lastQuery = React.useRef(undefined);\r\n const categoryFilterItems = props.fields.find(filter => filter.title.toLowerCase() === \"category\")?.items || [];\r\n const [categoriesTitles, categoriesIds] = [\r\n categoryFilterItems.map((a) => a.categoryTitle),\r\n categoryFilterItems.map((a) => a.categoryId)\r\n ];\r\n const getConditionalRenderingContext = () => {\r\n const hasCards = cards.length > 0;\r\n const areAnyFiltersSet = Object.values(filtersData).filter(el => el !== \"\" && el !== 5).length > 0;\r\n const isSearch = searchQuery !== \"\";\r\n const isFilteredResult = isFilterOrSearchApplied && searchQuery === \"\";\r\n const shouldShowLatestNews = hasCards && !isFilterOrSearchApplied;\r\n return {\r\n hasCards,\r\n areAnyFiltersSet,\r\n isFilteredResult,\r\n isSearch,\r\n shouldShowLatestNews,\r\n };\r\n };\r\n const { areAnyFiltersSet } = getConditionalRenderingContext();\r\n const getInitialCheckedAllState = React.useCallback(() => props.fields.reduce((acc, item) => {\r\n acc[item.title] = false;\r\n return acc;\r\n }, {}), [props.fields]);\r\n const [checkedAll, setCheckedAll] = React.useState(() => getInitialCheckedAllState());\r\n const getDataKeyForFilterTitle = (filterTitle) => filterTitle.replaceAll(\" \", \"\");\r\n const checkAll = React.useCallback((item) => (e) => {\r\n e.preventDefault();\r\n const field = props.fields.find(field => field.title === item);\r\n if (!field || field.type !== \"checkbox\" || typeof field.items === \"undefined\") {\r\n return;\r\n }\r\n const newValue = field.items.map((a) => a.categoryTitle);\r\n const mustCheckAll = !checkedAll[item];\r\n const fieldItems = newValue;\r\n const allValues = mustCheckAll ? fieldItems.join(\",\") : \"\";\r\n const dataKey = getDataKeyForFilterTitle(item);\r\n setFiltersData(prevFilterData => ({\r\n ...prevFilterData,\r\n [dataKey]: allValues,\r\n }));\r\n setCheckedAll({ ...checkedAll, [item]: !checkedAll[item] });\r\n }, [checkedAll, props.fields]);\r\n const handlerHasFiltersApplied = React.useCallback((value) => {\r\n if (value.includes(\"Difficulty\") || value.includes(\"Category\") || value.includes(\"Readingtime\")) {\r\n setHasFiltersApplied(true);\r\n return;\r\n }\r\n setHasFiltersApplied(false);\r\n }, []);\r\n const getIndexOfSelectedElements = React.useCallback((word) => {\r\n if (categoriesTitles && categoriesTitles.length > 0) {\r\n return categoriesTitles.indexOf(word);\r\n }\r\n return undefined;\r\n }, [categoriesTitles]);\r\n const categoryTranslator = React.useCallback((value) => {\r\n if (value && value.length > 0) {\r\n const wordsArray = value.map((a) => getIndexOfSelectedElements(a)).filter(el => typeof el !== \"undefined\");\r\n const selectedOptions = categoriesIds\r\n .map((a, i) => (categoriesIds[wordsArray[i]]))\r\n .filter((a) => a !== undefined)\r\n .join();\r\n return selectedOptions.split(\",\");\r\n }\r\n return undefined;\r\n }, [categoriesIds, getIndexOfSelectedElements]);\r\n const handleCategoriesQuantity = React.useCallback((category) => {\r\n let fullCategoriesList = categoryTranslator(category);\r\n if (fullCategoriesList?.length === categoriesIds.length) {\r\n fullCategoriesList = undefined;\r\n }\r\n return fullCategoriesList;\r\n }, [categoriesIds.length, categoryTranslator]);\r\n const checkMustResetPageNumber = (lastQueryObject, newQueryObject) => serializeQuery(lastQueryObject, [\"page\"]) !== serializeQuery(newQueryObject, [\"page\"]);\r\n const fetchArticles = React.useCallback((q) => {\r\n setIsLoading(true);\r\n const { Difficulty, Category, page, searchString } = q;\r\n const getQueryPage = () => {\r\n if (checkIsNumber(page)) {\r\n return page;\r\n }\r\n if (checkIsNumber(currentPage)) {\r\n return currentPage;\r\n }\r\n return 0;\r\n };\r\n const getSearchString = () => {\r\n if (typeof searchString !== \"undefined\") {\r\n return searchString;\r\n }\r\n return searchQuery || \"\";\r\n };\r\n const getDifficulty = () => {\r\n if (typeof Difficulty !== \"undefined\") {\r\n return Difficulty;\r\n }\r\n if (!filtersData[\"Difficulty\"]) {\r\n return undefined;\r\n }\r\n return filtersData[\"Difficulty\"]?.split(\",\").filter(v => v);\r\n };\r\n const getCategory = () => {\r\n if (typeof Category !== \"undefined\") {\r\n return Category;\r\n }\r\n if (!filtersData[\"Category\"]) {\r\n return undefined;\r\n }\r\n return filtersData[\"Category\"]?.split(\",\").filter(v => v);\r\n };\r\n const getQueryCategory = () => {\r\n const category = getCategory();\r\n if (category) {\r\n return handleCategoriesQuantity(category);\r\n }\r\n return category;\r\n };\r\n const getQueryParamCandidates = () => ({\r\n culture: props.culture,\r\n page: getQueryPage(),\r\n searchString: getSearchString(),\r\n Difficulty: getDifficulty(),\r\n Category: getQueryCategory()\r\n });\r\n const translatedQueryParams = Object.entries(getQueryParamCandidates()).reduce((accumulatedParams, candidateEntry) => {\r\n const [paramKey, paramValue] = candidateEntry;\r\n if (paramValue !== null && typeof paramValue !== \"undefined\") {\r\n return {\r\n ...accumulatedParams,\r\n [paramKey]: paramValue,\r\n };\r\n }\r\n return accumulatedParams;\r\n }, {});\r\n if (lastQuery.current && checkMustResetPageNumber(lastQuery.current, translatedQueryParams)) {\r\n translatedQueryParams.page = 1;\r\n setCurrentPage(1);\r\n }\r\n const serializedQuery = serializeQuery(translatedQueryParams);\r\n lastQuery.current = translatedQueryParams;\r\n if (abortController.current) {\r\n abortController.current.abort();\r\n }\r\n const queryAbortController = abortController.current = new AbortController();\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: serializedQuery,\r\n signal: abortController.current.signal\r\n };\r\n handlerHasFiltersApplied(requestOptions.body);\r\n fetch(`/api/FilterAcademyArticles?token=${props.token}`, requestOptions)\r\n .then((response) => response.json())\r\n .then((responseData) => {\r\n setCards(responseData.articles);\r\n setCurrentPage(responseData.pageNumber);\r\n setTotalArticlesCount(responseData.totalArticlesCount);\r\n })\r\n .catch(err => console.warn(err))\r\n .finally(() => {\r\n setIsLoading(false);\r\n queryAbortController.abort();\r\n });\r\n }, [currentPage, filtersData, handleCategoriesQuantity, handlerHasFiltersApplied, props.culture, props.token, searchQuery]);\r\n const handlePaginationChange = React.useCallback((newPageNum) => {\r\n fetchArticles({\r\n page: newPageNum\r\n });\r\n }, [fetchArticles]);\r\n const handleSearchQuery = React.useCallback((searchText) => {\r\n fetchArticles({ searchString: searchText, Difficulty: null, Category: null });\r\n setSearchQuery(searchText);\r\n setFiltersData({});\r\n }, [fetchArticles]);\r\n useFetchAcadArticlesOnMount(currentPage, fetchArticles, setFiltersData);\r\n useHandleWindowLocationPage(currentPage, setCurrentPage, true);\r\n React.useEffect(() => {\r\n if (searchQuery === \"\") {\r\n setIsFilterOrSearchApplied(false);\r\n return;\r\n }\r\n setIsFilterOrSearchApplied(true);\r\n }, [fetchArticles, searchQuery]);\r\n const dataHandler = React.useCallback((d) => {\r\n setFiltersData(d);\r\n }, []);\r\n const filterHandier = React.useCallback(() => {\r\n const o = Object.fromEntries(Object.entries(filtersData).filter(([, v]) => v !== \"\"));\r\n Object.keys(o).map((el) => {\r\n const type = props.fields.filter(f => f.title.replaceAll(\" \", \"\") === el)[0].type;\r\n if ((type === \"range\")) {\r\n o[el] = o[el] * 1;\r\n }\r\n else if (type === \"checkbox-date\") {\r\n const startDate = o[el].split(\",\").filter((v) => v !== \"\")[0]?.replace(\"startdate-\", \"\");\r\n const endDate = o[el].split(\",\").filter((v) => v !== \"\")[1]?.replace(\"enddate-\", \"\");\r\n if (startDate) {\r\n o[\"Date\"] = startDate;\r\n }\r\n if (endDate) {\r\n o[\"EndDate\"] = endDate;\r\n }\r\n delete o[el];\r\n }\r\n else {\r\n o[el] = o[el].split(\",\").filter((v) => v !== \"\").filter((v) => v !== \"All\");\r\n Object.keys(o).map(el => (!o[el].length && typeof (o[el]) !== \"number\") ? delete o[el] : o[el]);\r\n }\r\n });\r\n fetchArticles({\r\n ...o,\r\n searchString: \"\"\r\n });\r\n setSearchQuery(\"\");\r\n setIsFilterOrSearchApplied(true);\r\n }, [fetchArticles, filtersData, props.fields]);\r\n const resetHandler = React.useCallback((e) => {\r\n e.preventDefault();\r\n setResetFilters(Math.random() * 100);\r\n const newFilters = {};\r\n Object.keys(filtersData).map(e => newFilters[e] = \"\");\r\n setFiltersData(newFilters);\r\n setCheckedAll(getInitialCheckedAllState());\r\n fetchArticles({});\r\n setIsFilterOrSearchApplied(false);\r\n setSearchQuery(\"\");\r\n setHasFiltersApplied(false);\r\n }, [filtersData, getInitialCheckedAllState, fetchArticles]);\r\n const filtersRibbonElement = React.createElement(FiltersRibbon, { subscriptionButtonText: props.subscriptionButtonText, subscriptionText: props.subscriptionText, filterText: props.filterText, type: \"search\", filterToggle: setFiltersActive, filters: filtersActive, viewToggle: setListView, view: listView, searchQuery: searchQuery ?? \"\", setSearchQuery: handleSearchQuery, searchText: props.searchText, hasFiltersApplied: hasFiltersApplied });\r\n const filtersElement = React.createElement(Filters, { filterToggle: setFiltersActive, submit: filterHandier, reset: resetFilters, setReset: resetHandler, fields: props.fields, data: filtersData, setData: dataHandler, resetText: props.resetText, applyText: props.applyText, areAnyFiltersSet: areAnyFiltersSet, checkedAll: checkedAll, checkAll: checkAll });\r\n const renderContent = () => React.createElement(AcademyArticleCardDeckPool, { noResultsText: props.noResultsText, articlesString: props.articlesString, articleReadingTimeTimeUnit: props.articleReadingTimeTimeUnit || \"\", categoryLinks: props.categoryLinks, culture: props.cultureSuffix, cards: cards, isListView: listView, filtersRibbonElement: filtersRibbonElement, filtersElement: filtersElement, currentPage: currentPage, totalArticlesCount: totalArticlesCount, pageSize: pageSize, getPage: handlePaginationChange });\r\n React.useEffect(() => {\r\n document.body.classList.toggle(\"body-scroll-disabled\", filtersActive);\r\n }, [filtersActive]);\r\n React.useEffect(() => () => {\r\n if (abortController.current) {\r\n abortController.current.abort();\r\n }\r\n }, []);\r\n return (React.createElement(\"div\", { className: \"filter-cards__container\" },\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" }, isLoading ? React.createElement(\"div\", { className: \"spinner-wrapper\" },\r\n React.createElement(LoadingSpinner, null))\r\n : React.createElement(\"div\", { className: `filter-cards ${filtersActive ? \"active-filters\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"filters-overlay\" }),\r\n renderContent()))));\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\nimport { capitalizeString } from \"../../../utils\";\r\nimport { getWindowLocationDifficulty, getWindowLocationPage, } from \"../utils\";\r\nexport const useFetchAcadArticlesOnMount = (currentPage, fetchFunction, setFiltersDataFunction) => {\r\n const isFirstRender = useRef(true);\r\n useEffect(() => {\r\n if (!isFirstRender.current) {\r\n return;\r\n }\r\n const difficultyInUrl = getWindowLocationDifficulty();\r\n if (difficultyInUrl) {\r\n const difficultyParam = capitalizeString(difficultyInUrl);\r\n fetchFunction({\r\n Difficulty: [difficultyParam],\r\n page: currentPage,\r\n });\r\n if (setFiltersDataFunction) {\r\n setFiltersDataFunction((prevFilters) => ({\r\n ...prevFilters,\r\n Difficulty: `${difficultyParam},`,\r\n }));\r\n }\r\n return;\r\n }\r\n const pageInUrl = getWindowLocationPage();\r\n fetchFunction({ page: pageInUrl || currentPage });\r\n }, [currentPage, fetchFunction, setFiltersDataFunction]);\r\n useEffect(() => {\r\n isFirstRender.current = false;\r\n }, []);\r\n};\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const BigTextSection = ({ title, description, openButtonLabel, linkUrl, openInNewTab = true, backgroundColor }) => {\r\n const [descriptionToShow, setDescriptionToShow] = React.useState(description);\r\n const { bgColor } = getColors(backgroundColor);\r\n React.useEffect(() => {\r\n setDescriptionToShow(description);\r\n }, [description]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"big-text-section\" },\r\n React.createElement(\"div\", { className: \"big-text-section__title-container\" },\r\n React.createElement(\"h2\", null, title)),\r\n React.createElement(\"div\", { className: \"big-text-section__description-container\", dangerouslySetInnerHTML: {\r\n __html: descriptionToShow,\r\n } }),\r\n React.createElement(\"div\", { className: \"big-text-section__button-container\" },\r\n React.createElement(ButtonV2, { href: linkUrl, design: \"ghost-medium-wbg\", openInNewTab: openInNewTab },\r\n openButtonLabel,\r\n \" \",\r\n linkUrl === \"\" && React.createElement(\"span\", { className: \"chevronUp\" }, IconChevronDown({}))))))));\r\n};\r\n","import * as React from \"react\";\r\nimport \".\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2/ImgV2\";\r\nimport { Button } from \"../Button\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { LoadingSpinner } from \"../LoadingSpinner\";\r\nimport HCaptcha from \"@hcaptcha/react-hcaptcha\";\r\nexport const ContactFormBanner = (props) => {\r\n const { isLarge } = usePageViewStyle();\r\n const initialFormData = {\r\n region: props.regionOptions[0],\r\n fullName: \"\",\r\n email: \"\",\r\n mobilePhone: \"\",\r\n formFile: [],\r\n };\r\n const initialValidationHints = {\r\n region: false,\r\n fullName: false,\r\n email: false,\r\n mobilePhone: false,\r\n runOnInput: false,\r\n };\r\n const OverlayState = {\r\n HIDDEN: \"HIDDEN\",\r\n WAITING: \"WAITING\",\r\n ERROR: \"ERROR\",\r\n SUCCESS: \"SUCCESS\",\r\n };\r\n const { bgColor } = getColors(props.backgroundColor);\r\n const [dataToSend, setDataToSend] = React.useState();\r\n const [validationHints, setValidationHints] = React.useState(initialValidationHints);\r\n const [generalError, setGeneralError] = React.useState(\"\");\r\n const [generalSuccess, setGeneralSuccess] = React.useState(\"\");\r\n const [overlayState, setOverlayState] = React.useState(OverlayState.HIDDEN);\r\n const [isactiveSubmitBtn, setIsactiveSubmitBtn] = React.useState(true);\r\n const [formData, setFormData] = React.useState(initialFormData);\r\n const overlayRef = React.useRef(null);\r\n const captchaRef = React.useRef(null);\r\n const handleCaptchaError = React.useCallback(() => {\r\n setGeneralError(props.generalError);\r\n }, [props.generalError]);\r\n const { region, fullName, email, mobilePhone } = formData;\r\n const isValidName = (fullName) => !/[!@#$%&=_~<>?:1234567890]/.test(fullName) && fullName.length <= 300 && fullName.length > 0;\r\n const isValidPhone = (phone) => /^\\+?[0-9]([-\\s]?\\d)*$/.test(phone) && phone.length <= 30;\r\n const isValidEmail = (email) => /^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$/.test(email) && email.length <= 300;\r\n const isValidRegion = React.useCallback((region) => props.regionOptions[0] !== region, [props.regionOptions]);\r\n const [captchaSize, setCaptchaSize] = React.useState(\"invisible\");\r\n const [token, setToken] = React.useState();\r\n const handleCaptchaSize = React.useCallback((value) => ((setCaptchaSize(value))), []);\r\n React.useEffect(() => {\r\n if (validationHints.runOnInput) {\r\n const newValidationHints = {\r\n ...validationHints,\r\n fullName: !isValidName(formData.fullName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n region: !isValidRegion(formData.region),\r\n };\r\n setValidationHints(newValidationHints);\r\n }\r\n }, [formData]);\r\n const inputHandler = React.useCallback((e) => {\r\n setGeneralError(\"\");\r\n setGeneralSuccess(\"\");\r\n const { name, value } = e.target;\r\n if (isactiveSubmitBtn) {\r\n setFormData((formData) => ({ ...formData, [name]: value }));\r\n }\r\n }, [isactiveSubmitBtn]);\r\n const resetForm = React.useCallback(() => {\r\n setValidationHints(initialValidationHints);\r\n setTimeout(() => {\r\n setFormData(initialFormData);\r\n }, 10);\r\n setGeneralError(\"\");\r\n setIsactiveSubmitBtn(true);\r\n }, []);\r\n const constructRequestFormData = React.useCallback((captchaResponse) => {\r\n const requestFormData = new FormData();\r\n requestFormData.append(\"captcha_response\", captchaResponse ? captchaResponse : \"\");\r\n for (const key in formData) {\r\n if (key !== \"formFile\") {\r\n requestFormData.append(key, formData[key]);\r\n }\r\n else {\r\n const files = formData[key];\r\n files.forEach((file) => {\r\n requestFormData.append(\"formFile\", file);\r\n });\r\n }\r\n }\r\n props.campaignId && requestFormData.append(\"campaignId\", props.campaignId);\r\n return requestFormData;\r\n }, [formData]);\r\n const getValidation = React.useCallback(() => {\r\n const newValidationHints = {\r\n ...validationHints,\r\n fullName: !isValidName(formData.fullName),\r\n email: !isValidEmail(formData.email),\r\n mobilePhone: !isValidPhone(formData.mobilePhone),\r\n region: !isValidRegion(formData.region),\r\n };\r\n return { valid: !(Object.values({ ...newValidationHints, runOnInput: false }).some(value => value === true)), newValidationHints };\r\n }, [validationHints, formData.fullName, formData.email, formData.mobilePhone, formData.region, isValidRegion]);\r\n const setOverlaySucess = React.useCallback(() => {\r\n setGeneralSuccess(props.generalSuccess);\r\n setOverlayState(OverlayState.SUCCESS);\r\n resetForm();\r\n }, [OverlayState.SUCCESS, props.generalSuccess, resetForm]);\r\n const setOverlayError = React.useCallback(() => {\r\n setIsactiveSubmitBtn(true);\r\n setOverlayState(OverlayState.ERROR);\r\n setGeneralError(props.generalError);\r\n }, [OverlayState.ERROR, props.generalError]);\r\n const sendRequest = React.useCallback(async () => {\r\n setOverlayState(OverlayState.WAITING);\r\n try {\r\n const r = await fetch(\"contact-us\", {\r\n method: \"POST\",\r\n body: dataToSend\r\n });\r\n if (r.status === 200) {\r\n setOverlaySucess();\r\n }\r\n else {\r\n setOverlayError();\r\n }\r\n }\r\n catch {\r\n setOverlayError();\r\n }\r\n }, [OverlayState.WAITING, dataToSend, setOverlayError, setOverlaySucess]);\r\n const handleCaptchaResponse = React.useCallback(() => (captchaRef.current?.execute()), []);\r\n const submitHandler = React.useCallback(async (e) => {\r\n e.preventDefault();\r\n setIsactiveSubmitBtn(false);\r\n setGeneralSuccess(\"\");\r\n const { valid, newValidationHints } = getValidation();\r\n if (!valid) {\r\n newValidationHints.runOnInput = true;\r\n setValidationHints(newValidationHints);\r\n setIsactiveSubmitBtn(true);\r\n return;\r\n }\r\n const captchaString = handleCaptchaResponse();\r\n const requestFormData = constructRequestFormData(captchaString || \"\");\r\n handleCaptchaSize(\"normal\");\r\n setDataToSend(requestFormData);\r\n return;\r\n }, [constructRequestFormData, getValidation, handleCaptchaResponse, handleCaptchaSize]);\r\n const closeSendingOverlay = React.useCallback(() => {\r\n setOverlayState(OverlayState.HIDDEN);\r\n setToken(undefined);\r\n handleCaptchaSize(\"invisible\");\r\n }, [OverlayState.HIDDEN, handleCaptchaSize]);\r\n const RequiredStar = React.useCallback(function RequiredStar() {\r\n return React.createElement(\"span\", { className: \"contact-form__required-star\" }, \"*\");\r\n }, []);\r\n const RequiredLabel = React.useCallback(function RequiredLabel({ field }) {\r\n return (validationHints[field] && React.createElement(\"span\", { className: \"contact-form__required-error\" }, props.requiredFieldHint));\r\n }, [validationHints]);\r\n const SubmitBtn = React.useCallback(() => React.createElement(Button, { label: props.submitLabel, primary: true, onClick: submitHandler, classes: `${!isactiveSubmitBtn && \"contact-form__disabled\"} ` }), [props.submitLabel, submitHandler, isactiveSubmitBtn]);\r\n React.useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (overlayRef.current && !overlayRef.current.contains(event.target)) {\r\n if ((overlayState === OverlayState.ERROR) || (overlayState === OverlayState.SUCCESS)) {\r\n closeSendingOverlay();\r\n }\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [overlayRef, overlayState]);\r\n React.useEffect(() => {\r\n if (token && dataToSend !== undefined) {\r\n void sendRequest();\r\n setToken(undefined);\r\n setDataToSend(undefined);\r\n }\r\n }, [dataToSend, sendRequest, token]);\r\n const OverlayMessage = React.useCallback(() => (React.createElement(React.Fragment, null,\r\n \" \",\r\n overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormIsBeingSendMessage)),\r\n overlayState === OverlayState.ERROR && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.generalError)),\r\n overlayState === OverlayState.SUCCESS && React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"contact-form__msg-overlay\" }, props.popUpFormSucessfullySentMessage)))), [overlayState]);\r\n const Overlay = React.useCallback(() => (React.createElement(React.Fragment, null, overlayState !== OverlayState.HIDDEN &&\r\n React.createElement(\"div\", { className: \"contact-form__loading-overlay\" },\r\n React.createElement(\"div\", { ref: overlayRef, className: \"contact-form__loading-popup\" },\r\n React.createElement(\"div\", { className: \"contact-form__loading-popup-msg-container\" },\r\n React.createElement(OverlayMessage, null)),\r\n React.createElement(\"span\", { className: \"contact-form__spinner-container\" }, overlayState === OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(LoadingSpinner, null))),\r\n overlayState !== OverlayState.WAITING && React.createElement(React.Fragment, null,\r\n React.createElement(Button, { label: props.popUpOkButtonLabel, primary: true, onClick: closeSendingOverlay })))))), [OverlayMessage, OverlayState.HIDDEN, OverlayState.WAITING, closeSendingOverlay, overlayState, props.popUpOkButtonLabel]);\r\n const handleCaptchaOnVerify = (token) => (setToken(token));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"contact-form-banner\" },\r\n React.createElement(\"div\", { className: \"contact-form-banner__text-wrapper\" },\r\n React.createElement(\"h3\", { className: \"contact-form-banner__text-wrapper__title\" }, props.title),\r\n React.createElement(\"div\", { className: \"contact-form-banner__text-wrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: props.subTitle,\r\n } }),\r\n isLarge && React.createElement(\"div\", { className: \"contact-form-banner__text-wrapper__image\" },\r\n React.createElement(ImgV2, { largeUrl: props.imageUrlDesktop, alt: props.imageAlt }))),\r\n React.createElement(\"div\", { className: \"contact-form-banner__form-wrapper\" },\r\n React.createElement(Overlay, null),\r\n React.createElement(\"div\", { className: \"contact-form-banner__field contact-form-banner__field--half firstName-input\" },\r\n React.createElement(\"label\", { htmlFor: \"fullName\", className: \"contact-form-banner__label contact-form-banner__label--required\" },\r\n props.nameLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"fullName\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: fullName, type: \"text\", name: \"fullName\", id: \"fullName\", placeholder: props.namePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form-banner__field contact-form-banner__field--half email-input\" },\r\n React.createElement(\"label\", { htmlFor: \"email\", className: \"contact-form-banner__label contact-form-banner__label--required\" },\r\n props.emailLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"email\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: email, type: \"email\", name: \"email\", id: \"email\", placeholder: props.emailPlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form-banner__field contact-form-banner__field--half mobilePhone-input\" },\r\n React.createElement(\"label\", { htmlFor: \"mobilePhone\", className: \"contact-form-banner__label contact-form-banner__label--required\" },\r\n props.phoneLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"mobilePhone\" })),\r\n React.createElement(\"input\", { onChange: inputHandler, value: mobilePhone, type: \"text\", name: \"mobilePhone\", id: \"mobilePhone\", placeholder: props.phonePlaceholder })),\r\n React.createElement(\"div\", { className: \"contact-form-banner__field contact-form-banner__field--half region-input\" },\r\n React.createElement(\"label\", { htmlFor: \"region\", className: \"contact-form-banner__label contact-form-banner__label--required\" },\r\n props.regionLabel,\r\n React.createElement(RequiredStar, null),\r\n React.createElement(RequiredLabel, { field: \"region\" })),\r\n React.createElement(\"select\", { onChange: inputHandler, name: \"region\", id: \"region\", value: region }, props.regionOptions.map((option, i) => (React.createElement(\"option\", { key: `region-option-${i}`, value: option, disabled: i === 0 }, option))))),\r\n React.createElement(\"div\", { className: \"contact-form__field captcha-input\" },\r\n React.createElement(HCaptcha, { sitekey: props.hcaptchaKey, onError: handleCaptchaError, ref: captchaRef, size: captchaSize, languageOverride: props.hcaptchaLanguageCode, onVerify: handleCaptchaOnVerify })),\r\n generalError && React.createElement(\"div\", { className: \"contact-form__general-error-label\" }, generalError),\r\n generalSuccess && React.createElement(\"div\", { className: \"contact-form__general-success-label\" }, generalSuccess),\r\n React.createElement(\"div\", { className: \"contact-form-banner__button\" },\r\n React.createElement(SubmitBtn, null)))))));\r\n};\r\n","import React from \"react\";\r\nexport const AspectItem = ({ title, content }) => (React.createElement(\"div\", { className: \"aspect-item-root\" },\r\n title && React.createElement(\"p\", { className: \"aspect-item-root__title regular\" }, title),\r\n React.createElement(\"div\", { className: \"aspect-item-root__description\", dangerouslySetInnerHTML: {\r\n __html: content,\r\n } })));\r\n","import React from \"react\";\r\nimport { PlusIcon } from \"../../svgIcons\";\r\nimport { AspectItem } from \"../Items/AspectItem\";\r\nexport const Aspects = ({ items }) => (React.createElement(\"div\", { className: \"aspects-root\" }, items.length > 0 && items.map((a, ind) => (React.createElement(\"div\", { key: ind },\r\n React.createElement(AspectItem, { content: a.content, title: a.title }),\r\n ind !== items.length - 1 && React.createElement(\"div\", { className: \"plus-image-wrapper\" }, PlusIcon()))))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Aspects } from \"./Aspects/Aspects\";\r\nexport const SectionWithFeaturedLists = ({ mainTitle, subTitle, criteria, orLabel, backGroundColor, firstButtonLabel, firstButtonUrl, firstButtonOpenOnNewPage, secondButtonLabel, secondButtonUrl, secondButtonOpenOnNewPage, centeredColStyle, withThreeButtonStyle, thirdButtonLabel, thirdButtonUrl }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n const buttonWrapperComponent = () => (React.createElement(\"div\", { className: \"section-with-featured-lists-root__buttonWrapper\" },\r\n React.createElement(ButtonV2, { href: firstButtonUrl, openInNewTab: firstButtonOpenOnNewPage, design: \"cta-large-dbg\" }, firstButtonLabel),\r\n (secondButtonLabel && secondButtonUrl) && React.createElement(ButtonV2, { href: secondButtonUrl, openInNewTab: firstButtonOpenOnNewPage, design: \"cta-large-dbg\" }, secondButtonLabel),\r\n (orLabel && !withThreeButtonStyle) && React.createElement(\"p\", null, orLabel),\r\n React.createElement(ButtonV2, { href: thirdButtonUrl, openInNewTab: firstButtonOpenOnNewPage, design: \"ghost-large-wbg\" }, thirdButtonLabel)));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"section-with-featured-lists-root\" },\r\n React.createElement(Container, { className: `g-container--tablet-margins ${centeredColStyle && \"centeredColumn\"} ${withThreeButtonStyle && \"withThreeButton\"}` },\r\n React.createElement(\"div\", { className: \"section-with-featured-lists-root__titleWrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, mainTitle),\r\n React.createElement(\"p\", { className: \"p-regular\" }, subTitle)),\r\n React.createElement(\"div\", { className: \"section-with-featured-lists-root__criteriaWrapper\" }, criteria && criteria?.length > 0 && criteria?.map((a, i) => (React.createElement(\"div\", { key: `unique${a.aspects}`, className: \"section-with-featured-lists-root__criteriaWrapper__eligibilityTests\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold-small\" }, a.title),\r\n a.aspects.length > 0 && a.aspects.map((aspectItems, index) => (React.createElement(\"div\", { key: `unique${index}`, className: \"section-with-featured-lists-root__criteriaWrapper__eligibilityTests__root-aspectWrapper\" },\r\n React.createElement(\"div\", { className: \"section-with-featured-lists-root__criteriaWrapper__eligibilityTests__root-aspectWrapper__aspectWrapper\" },\r\n React.createElement(\"p\", { className: \"section-with-featured-lists-root__criteriaWrapper__eligibilityTests__root-aspectWrapper__aspectWrapper__aspectTitle text-nav\" }, index + 1),\r\n React.createElement(Aspects, { items: aspectItems.items })),\r\n (index < a.aspects.length - 1 && orLabel) && React.createElement(\"p\", { className: \"caption-bold orLabel\" }, orLabel.toUpperCase())))))))),\r\n buttonWrapperComponent()))));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const GetTheBestOfBoth = ({ firstIcon, secondIcon, mainTitle, subtitle, buttonLabel, buttonUrl, bgImageMobile, bgImageTablet, bgImageDesktop }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"get-the-best-of-both\" },\r\n React.createElement(Container, null,\r\n React.createElement(Heading, { design: \"h2-lp\" }, mainTitle),\r\n React.createElement(\"div\", { className: \"get-the-best-of-both__root\" },\r\n React.createElement(\"div\", { className: \"get-the-best-of-both__titleWrapper\" },\r\n React.createElement(\"div\", { className: \"first-image-container\" },\r\n React.createElement(ImgV2, { src: firstIcon })),\r\n React.createElement(\"div\", { className: \"second-image-container\" },\r\n React.createElement(ImgV2, { src: secondIcon })),\r\n React.createElement(\"p\", { className: \"get-the-best-of-both__subtile\" }, subtitle),\r\n React.createElement(ButtonV2, { classes: \"get-the-best-of-both__button\", design: \"secondary-large-dbg\", href: buttonUrl }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"get-the-best-of-both__bottom-images\" },\r\n React.createElement(ImgV2, { strictRender: true, largeUrl: bgImageDesktop, smallUrl: bgImageMobile, mediumUrl: bgImageTablet })))))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const ExperienceNewWayToTrade = ({ buttonLabel, buttonUrl, leftIcon, mainTitle, rightIcon, subTitle, bgImageMobile, bgImageDesktop }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"experience-new-way-trade\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(Heading, { design: \"h2-lp\" }, mainTitle),\r\n React.createElement(\"div\", { className: \"experience-new-way-trade__container\" },\r\n React.createElement(\"div\", { className: \"logos-wrapper\" },\r\n React.createElement(\"div\", { className: \"first-images-wrapper\" },\r\n React.createElement(ImgV2, { src: leftIcon })),\r\n React.createElement(\"div\", { className: \"second-images-wrapper\" },\r\n React.createElement(ImgV2, { src: rightIcon }))),\r\n React.createElement(\"p\", { className: \"experience-new-way-trade__subtitle\" }, subTitle),\r\n React.createElement(ButtonV2, { classes: \"experience-new-way-trade__button\", design: \"secondary-large-wbg\", href: buttonUrl }, buttonLabel),\r\n React.createElement(\"div\", { className: \"experience-new-way-trade__imageContainer\" },\r\n React.createElement(ImgV2, { smallUrl: bgImageMobile, mediumUrl: bgImageDesktop, largeUrl: bgImageDesktop, strictRender: true })))))));\r\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\r\nimport { IconChevronDown } from \"../svgIcons\";\r\nimport { ImgV2 } from \"../ImgV2/ImgV2\";\r\nconst TabFaqAccordionCard = ({ id, question, icon, answer, setActiveCardId, activeCardId, omitFaq = false }) => {\r\n const handleExpand = useCallback(() => {\r\n if (setActiveCardId && id === activeCardId) {\r\n setActiveCardId(-1);\r\n }\r\n else if (setActiveCardId && id !== undefined) {\r\n setActiveCardId(id);\r\n }\r\n }, [activeCardId, id, setActiveCardId]);\r\n const [answerValue, setAnswerValue] = useState(\"\");\r\n useEffect(() => {\r\n setAnswerValue(answer);\r\n }, [answer]);\r\n const answerElement = useCallback(() => React.createElement(\"div\", { ...(!omitFaq && {\r\n itemProp: \"text\"\r\n }), className: \"faq-accordion-list__faq-card-answer\", dangerouslySetInnerHTML: { __html: answerValue } }), [answerValue, omitFaq]);\r\n return (React.createElement(\"div\", { className: `faq-accordion-list__faq-card ${id === activeCardId ? \"active\" : \"\"}`, ...(!omitFaq && {\r\n itemScope: true,\r\n itemProp: \"mainEntity\",\r\n itemType: \"https://schema.org/Question\",\r\n }) },\r\n React.createElement(\"div\", { className: \"faq-accordion-list__faq-card-question\", onClick: handleExpand },\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__plus-minus-text\" },\r\n React.createElement(\"h5\", { ...(!omitFaq && {\r\n itemProp: \"name\"\r\n }), className: \"faq-accordion-list__title\" },\r\n icon && React.createElement(ImgV2, { width: 38, height: 38, src: icon, alt: question }),\r\n question),\r\n React.createElement(\"span\", { className: \"faq-accordion-list__icon-close\" }, IconChevronDown({})))),\r\n React.createElement(\"div\", { className: \"flex faq-accordion-list__plus-minus-text\" },\r\n React.createElement(\"div\", { ...(!omitFaq && {\r\n itemScope: true,\r\n itemProp: \"acceptedAnswer\",\r\n itemType: \"https://schema.org/Answer\",\r\n }) }, answerElement()))));\r\n};\r\nexport const TabWithAccordion = ({ title, subTitle, items, omitFaq = false }) => {\r\n const [activeCardId, setActiveCardId] = React.useState(-1);\r\n const accordion = useMemo(() => (React.createElement(\"div\", { className: \"faq-accordion-list__deck\" }, items.map((item, i) => React.createElement(TabFaqAccordionCard, { key: `faq-accordion-list__card-${i}`, id: i, question: item.question, answer: item.answer, icon: item.icon, setActiveCardId: setActiveCardId, activeCardId: activeCardId, omitFaq: omitFaq })))), [items, setActiveCardId, activeCardId, omitFaq]);\r\n return (React.createElement(\"div\", { className: \"faq-accordion-list\" },\r\n React.createElement(\"div\", { ...(!omitFaq && {\r\n itemScope: true,\r\n itemType: \"https://schema.org/FAQPage\"\r\n }), className: \"faq-accordion-list__column\" },\r\n React.createElement(\"h3\", { className: \"faq-accordion-list__title\" }, title),\r\n subTitle && React.createElement(\"div\", { className: \"faq-accordion-list__content\", dangerouslySetInnerHTML: { __html: subTitle } }),\r\n accordion)));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { TabWithAccordion } from \"./TabWithAccordion\";\r\nexport const TabsWithAccordion = ({ title, subTitle, backgroundColor, tabs, omitFaq = false }) => {\r\n const [activeTab, setActiveTab] = useState(0);\r\n const { isSmall } = usePageViewStyle();\r\n const [smallView, setSmallView] = useState(false);\r\n useEffect(() => {\r\n setSmallView(isSmall);\r\n }, [isSmall]);\r\n const handleTabClick = (index) => () => {\r\n setActiveTab(index);\r\n };\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor ? backgroundColor : \"white\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"tabs-with-accordion__header\" },\r\n React.createElement(\"h2\", null, title),\r\n subTitle && React.createElement(\"h5\", { className: \"tabs-with-accordion__header-subtitle\", dangerouslySetInnerHTML: { __html: subTitle } })),\r\n React.createElement(\"div\", { className: \"tabs-with-accordion\" }, !smallView ? (React.createElement(React.Fragment, null,\r\n React.createElement(\"ul\", { className: \"tabs-with-accordion__sidebar\" }, tabs.map((tab, i) => (React.createElement(\"li\", { className: `tabs-with-accordion__sidebar-item ${i === activeTab ? \"sidebar-item-active\" : \"\"}`, key: `tabs-with-accordion__tab-${i}`, onClick: handleTabClick(i) }, tab.title)))),\r\n React.createElement(\"div\", { className: \"tabs-with-accordion__content\" },\r\n React.createElement(TabWithAccordion, { ...tabs[activeTab], omitFaq: omitFaq })))) : (tabs.map((tab, i) => React.createElement(TabWithAccordion, { key: i, ...tab, omitFaq: omitFaq })))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const OtherCard = ({ imgUrl, subTitle, title, cardBackground, contentTextColor, imageAlt }) => (React.createElement(\"div\", { className: \"other-card_root\", style: { backgroundColor: cardBackground || \"#FFF\", borderColor: cardBackground || \"#FFF\" } },\r\n React.createElement(ImgV2, { src: imgUrl, alt: imageAlt }),\r\n React.createElement(Heading, { design: \"h5-bold\" }, title),\r\n React.createElement(\"div\", { className: \"p-regular\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n }, style: { \"--content-text-color\": `${contentTextColor}` } })));\r\n","import React, { useCallback } from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { OtherCard } from \"./OtherCard/OtherCard\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nexport const OtherAccountsVariationCardsDeck = ({ title, subTitle, imageUrl, cards, backgroundColor, twoColumns, buttonUrl, buttonOpenInNewTab, buttonDesign, buttonLabel, titleDesign = \"h2-regular\" }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const handleConditionalHeader = useCallback(() => {\r\n if (title || subTitle) {\r\n return (React.createElement(\"div\", { className: \"other-accounts-variation-cards-deck_headerWrapper\" },\r\n React.createElement(\"div\", { className: \"other-accounts-variation-cards-deck_textsWrapper\" },\r\n title && React.createElement(Heading, { design: titleDesign }, title),\r\n subTitle && React.createElement(Heading, { design: \"h5-semi-bold\" }, subTitle)),\r\n imageUrl && React.createElement(\"div\", { className: \"other-accounts-variation-cards-deck_imgWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl }))));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n }, [imageUrl, subTitle, title, titleDesign]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"other-accounts-variation-cards-deck_root\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: ` ${twoColumns && \"centered-container\"}` }, handleConditionalHeader()),\r\n React.createElement(\"div\", { className: `other-accounts-variation-cards-deck_cardsWrapper ${twoColumns}` }, cards.length > 0 && cards.map((a) => (React.createElement(OtherCard, { key: `unique${a.title}`, ...a })))),\r\n buttonLabel && React.createElement(ButtonV2, { href: buttonUrl, openInNewTab: buttonOpenInNewTab, design: buttonDesign, showArrowRight: true }, buttonLabel)))));\r\n};\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const Mt5GradientBanner = ({ bannerImage, title, subTitle, ctaUrl, ctaLabel, gradientImage, backgroundColor, buttonDesign, additionalStyles }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"Mt5-gradient-banner__root\" },\r\n React.createElement(\"div\", { className: \"Mt5-gradient-banner__bgGradient\", style: { \"--background-image-url\": `url(${gradientImage})` } }),\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: `Mt5-gradient-banner__bannerImgWrapper ${additionalStyles}` },\r\n React.createElement(ImgV2, { src: bannerImage })),\r\n title && React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n subTitle && React.createElement(\"p\", { className: \"Mt5-gradient-banner__subTitle p-regular\", dangerouslySetInnerHTML: { __html: subTitle } }),\r\n ctaUrl && React.createElement(ButtonV2, { design: buttonDesign, href: ctaUrl }, ctaLabel)))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { getColors } from \"../../utils\";\r\nexport const Mt5HeroBanner = ({ title, subtitle, imageUrl, ctaUrl, ctaLabel, linkUrl, linkLabel, backGroundColor, buttonDesign = \"cta-large-wbg\", descriptionTextColor }) => {\r\n const { bgColor, textColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(\"div\", { className: \"mt5-hero-banner__root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"mt5-hero-banner__imageWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl })),\r\n React.createElement(\"h1\", { className: \"h1-regular\", dangerouslySetInnerHTML: {\r\n __html: title,\r\n }, style: { color: textColor } }),\r\n React.createElement(\"p\", { className: \"mt5-hero-banner__subtitle\", style: { color: `${descriptionTextColor || \"\"}` }, dangerouslySetInnerHTML: {\r\n __html: subtitle || \"\",\r\n } }),\r\n ctaUrl && React.createElement(ButtonV2, { design: buttonDesign, href: ctaUrl }, ctaLabel),\r\n (linkLabel && linkUrl) && React.createElement(\"a\", { className: \"p-bold\", href: linkUrl }, linkLabel)))));\r\n};\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { handleLinkTarget } from \"../../utils\";\r\nconst COLOR_SCHEME_BTN_CLASSES = {\r\n green: \"tmx25-square-green-green\",\r\n lightpurple: \"tmx25-square-lightpurple\",\r\n lightPurpleSquared: \"tmx25-square-lightpurple-squared\",\r\n};\r\nexport const RibbonWithOutStatLine = ({ buttonHref, buttonLabel, opensInNewTab, linkHref, linkLabel, linkOpensInNewTab, subTitle, title, backgroundColor, ribbonColorScheme }) => {\r\n const colorSchemeName = ribbonColorScheme || \"green\";\r\n const linkHrefTarget = handleLinkTarget(linkOpensInNewTab);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor || \"inherit\" },\r\n React.createElement(\"div\", { className: `ribbon-without-stat-line-root ribbon-without-stat-line-root--scheme-${colorSchemeName}` },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"ribbon-without-stat-line-root__contentWrapper\" },\r\n React.createElement(\"div\", { className: \"ribbon-without-stat-line-root__contentWrapper__textWrapper\" },\r\n React.createElement(Heading, { design: \"h4-semi-bold\" },\r\n React.createElement(\"span\", { dangerouslySetInnerHTML: {\r\n __html: title,\r\n } })),\r\n React.createElement(\"div\", { className: \"ribbon-without-stat-line-root__contentWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle,\r\n } })),\r\n React.createElement(\"div\", { className: \"ribbon-without-stat-line-root__contentWrapper__buttonsWrapper\" },\r\n React.createElement(ButtonV2, { href: buttonHref, design: COLOR_SCHEME_BTN_CLASSES[colorSchemeName], openInNewTab: opensInNewTab }, buttonLabel),\r\n linkLabel && React.createElement(\"a\", { className: \"ribbon-without-stat-line-root__contentWrapper__link\", href: linkHref, target: linkHrefTarget }, linkLabel)))))));\r\n};\r\n","import React from \"react\";\r\nexport const BidAskQuote = ({ title, children, className, linkUrl }) => {\r\n if (linkUrl) {\r\n return React.createElement(\"a\", { href: linkUrl, className: `bid-ask-quote__link ${className}`, target: \"_blank\", rel: \"noreferrer\" },\r\n React.createElement(BidAskQuoteBase, { title: title }, children));\r\n }\r\n return React.createElement(\"div\", { className: className },\r\n React.createElement(BidAskQuoteBase, { title: title }, children));\r\n};\r\nexport const BidAskQuoteBase = ({ title, children }) => React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", null, title),\r\n React.createElement(\"div\", null, children));\r\n","export var TimescaleEnum;\r\n(function (TimescaleEnum) {\r\n TimescaleEnum[TimescaleEnum[\"TS_UNKNOWN\"] = 0] = \"TS_UNKNOWN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1MIN\"] = 1] = \"TS_1MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_2MIN\"] = 2] = \"TS_2MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_3MIN\"] = 3] = \"TS_3MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_5MIN\"] = 4] = \"TS_5MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_10MIN\"] = 5] = \"TS_10MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_15MIN\"] = 6] = \"TS_15MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_30MIN\"] = 7] = \"TS_30MIN\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1HOUR\"] = 8] = \"TS_1HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_2HOUR\"] = 9] = \"TS_2HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_3HOUR\"] = 10] = \"TS_3HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_4HOUR\"] = 11] = \"TS_4HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_6HOUR\"] = 12] = \"TS_6HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_8HOUR\"] = 13] = \"TS_8HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_12HOUR\"] = 14] = \"TS_12HOUR\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1DAY\"] = 15] = \"TS_1DAY\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1WEEK\"] = 16] = \"TS_1WEEK\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1MONTH\"] = 17] = \"TS_1MONTH\";\r\n TimescaleEnum[TimescaleEnum[\"TS_1YEAR\"] = 18] = \"TS_1YEAR\";\r\n})(TimescaleEnum || (TimescaleEnum = {}));\r\nexport var UIDataRangeStatusEnum;\r\n(function (UIDataRangeStatusEnum) {\r\n UIDataRangeStatusEnum[\"UKNOWN\"] = \"UNKNOWN\";\r\n UIDataRangeStatusEnum[\"INVALID_RANGE_POINTS\"] = \"INVALID_RANGE_POINTS\";\r\n UIDataRangeStatusEnum[\"UNDEFINED_INPUTS\"] = \"UNDEFINED_INPUTS\";\r\n UIDataRangeStatusEnum[\"INCALCULABLE_INPUTS\"] = \"INCALCULABLE_INPUTS\";\r\n UIDataRangeStatusEnum[\"ZERO_RANGE\"] = \"ZERO_RANGE\";\r\n UIDataRangeStatusEnum[\"REGULAR_RANGE\"] = \"REGULAR_RANGE\";\r\n})(UIDataRangeStatusEnum || (UIDataRangeStatusEnum = {}));\r\n","import { UIDataRangeStatusEnum } from \"../instrumentData.types\";\r\nexport const calcRangeBarProps = (rangeStart, rangeEnd, currentValue) => {\r\n const checkAreInputsUndefined = () => typeof rangeStart === \"undefined\" || typeof rangeEnd === \"undefined\" || typeof currentValue === \"undefined\";\r\n if (checkAreInputsUndefined()) {\r\n return {\r\n status: UIDataRangeStatusEnum.UNDEFINED_INPUTS,\r\n offset: undefined\r\n };\r\n }\r\n const rangeDiff = rangeEnd - rangeStart;\r\n if (rangeDiff < 0) {\r\n return {\r\n status: UIDataRangeStatusEnum.INCALCULABLE_INPUTS,\r\n offset: undefined\r\n };\r\n }\r\n if (rangeDiff === 0) {\r\n return {\r\n status: UIDataRangeStatusEnum.ZERO_RANGE,\r\n offset: undefined\r\n };\r\n }\r\n if (rangeDiff > 0) {\r\n return {\r\n status: UIDataRangeStatusEnum.REGULAR_RANGE,\r\n offset: (currentValue - rangeStart) / rangeDiff * 100\r\n };\r\n }\r\n return {\r\n status: UIDataRangeStatusEnum.UKNOWN,\r\n offset: undefined\r\n };\r\n};\r\n","import React, { useState, useRef, useCallback } from \"react\";\r\nimport { BidAskQuote } from \"./BidAskQuote\";\r\nimport { calcRangeBarProps, checkIsStringRangeValid, } from \"./utils\";\r\nimport { useInstrumentPriceHistory, useInstrumentPriceWS } from \"./hooks\";\r\nimport { TimescaleEnum, UIDataRangeStatusEnum, } from \"./instrumentData.types\";\r\nconst MAX_REQUEST_ATTEMPTS = 15;\r\nconst REQUEST_INTERVAL = 2000;\r\nconst DECIMAL_PRECISION = 2;\r\nconst DEFAULT_TIMESCALE = TimescaleEnum.TS_1DAY;\r\nexport const InstrumentHeader = ({ instrumentName, instrumentCode, bidTitle, askTitle, openTitle, prevCloseTitle, dayRangeTitle, week52RangeTitle, session, instrument, apiUrl, wsUrl, currencyCode, currencyIconUrl, bidAskLinksUrl }) => {\r\n const prevBidPrice = useRef(undefined);\r\n const prevAskPrice = useRef(undefined);\r\n const [bidPrice, setBidPrice] = useState(undefined);\r\n const [askPrice, setAskPrice] = useState(undefined);\r\n const [open, setOpen] = useState(undefined);\r\n const [prevClose, setPrevClose] = useState(undefined);\r\n const [dayRange, setDayRange] = useState(\"\");\r\n const [yearRange, setYearRange] = useState(\"\");\r\n const calculatePercentageChange = () => {\r\n if (typeof prevClose === \"undefined\" ||\r\n typeof bidPrice === \"undefined\") {\r\n return undefined;\r\n }\r\n const value = ((prevClose - bidPrice) / bidPrice) * 100;\r\n if (!Number.isNaN(value) &&\r\n typeof value === \"number\" &&\r\n value !== Infinity) {\r\n return value;\r\n }\r\n return 0;\r\n };\r\n const checkIsChangeNegative = (currentValue, prevValue) => currentValue >= prevValue;\r\n const getValueChangeClass = (isValueNegative) => {\r\n if (isValueNegative) {\r\n return \"instrument-header_change--positive\";\r\n }\r\n else {\r\n return \"instrument-header_change--negative\";\r\n }\r\n };\r\n const handleWebSocketMessage = useCallback((priceQuote) => {\r\n setBidPrice(priceQuote.Bid ?? 0);\r\n setAskPrice(priceQuote.Ask ?? 0);\r\n prevBidPrice.current = priceQuote.Bid ?? 0;\r\n prevAskPrice.current = priceQuote.Ask ?? 0;\r\n }, []);\r\n useInstrumentPriceWS({\r\n wsUrl,\r\n session,\r\n instrument,\r\n }, handleWebSocketMessage);\r\n useInstrumentPriceHistory({\r\n inputs: {\r\n apiUrl,\r\n session,\r\n instrument,\r\n timescale: DEFAULT_TIMESCALE,\r\n },\r\n callbacks: {\r\n setDayRange,\r\n setOpen,\r\n setPrevClose,\r\n setYearRange,\r\n },\r\n config: {\r\n MAX_REQUEST_ATTEMPTS,\r\n REQUEST_INTERVAL,\r\n DECIMAL_PRECISION,\r\n },\r\n });\r\n const getRangeStats = () => {\r\n const [dayRangeFrom, dayRangeTo] = dayRange.replace(\" \", \"\").split(\"-\");\r\n const dayRangeStats = {\r\n from: dayRangeFrom || undefined,\r\n to: dayRangeTo || undefined,\r\n };\r\n const [yearRangeFrom, yearRangeTo] = yearRange\r\n .replace(\" \", \"\")\r\n .split(\"-\");\r\n const yearRangeStats = {\r\n from: yearRangeFrom || undefined,\r\n to: yearRangeTo || undefined,\r\n };\r\n return { dayRangeStats, yearRangeStats };\r\n };\r\n const getConditionaDataClasses = () => {\r\n const priceChangeClass = typeof changeValue !== \"undefined\"\r\n ? getValueChangeClass(changeValue !== Math.abs(changeValue))\r\n : getValueChangeClass(false);\r\n const bidQuoteClass = typeof bidPrice !== \"undefined\" &&\r\n typeof prevBidPrice.current !== \"undefined\"\r\n ? getValueChangeClass(checkIsChangeNegative(bidPrice, prevBidPrice.current))\r\n : getValueChangeClass(false);\r\n const askQuoteClass = typeof askPrice !== \"undefined\" &&\r\n typeof prevAskPrice.current !== \"undefined\"\r\n ? getValueChangeClass(checkIsChangeNegative(askPrice, prevAskPrice.current))\r\n : getValueChangeClass(false);\r\n return { priceChangeClass, bidQuoteClass, askQuoteClass };\r\n };\r\n const getRangeBarProps = (range) => {\r\n const FAIL_OFFSET = \"-100vw\";\r\n const CSS_CLASS_PREFFIX = \"instrument-header__price-history-range-bar\";\r\n if (!checkIsStringRangeValid(range)) {\r\n return {\r\n hasError: UIDataRangeStatusEnum.INVALID_RANGE_POINTS,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: \"--disabled\",\r\n };\r\n }\r\n const { status, offset } = calcRangeBarProps(Number(range.from), Number(range.to), open);\r\n const STATUS_TO_RETURN = {\r\n [UIDataRangeStatusEnum.INCALCULABLE_INPUTS]: {\r\n hasError: true,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: `${CSS_CLASS_PREFFIX}--disabled`,\r\n },\r\n [UIDataRangeStatusEnum.UNDEFINED_INPUTS]: {\r\n hasError: true,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: `${CSS_CLASS_PREFFIX}--disabled`,\r\n },\r\n [UIDataRangeStatusEnum.UKNOWN]: {\r\n hasError: true,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: `${CSS_CLASS_PREFFIX}--disabled`,\r\n },\r\n [UIDataRangeStatusEnum.ZERO_RANGE]: {\r\n hasError: false,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: `${CSS_CLASS_PREFFIX}--fullbar`,\r\n },\r\n [UIDataRangeStatusEnum.REGULAR_RANGE]: {\r\n hasError: false,\r\n pinPosition: `${Math.round(offset || 0)}%`,\r\n cssClass: \"\",\r\n },\r\n };\r\n const possiblePredefinedStatusObj = Object.entries(STATUS_TO_RETURN).find(([key]) => key === status)?.[1];\r\n return (possiblePredefinedStatusObj || {\r\n hasError: true,\r\n pinPosition: FAIL_OFFSET,\r\n cssClass: `${CSS_CLASS_PREFFIX}--disabled`,\r\n });\r\n };\r\n const { dayRangeStats, yearRangeStats } = getRangeStats();\r\n const { pinPosition: dayRangeBarPinPosition, cssClass: dayRangeBarCssClass, } = getRangeBarProps(dayRangeStats);\r\n const { pinPosition: yearRangeBarPinPosition, cssClass: yearRangeBarCssClass, } = getRangeBarProps(yearRangeStats);\r\n const changeValue = calculatePercentageChange();\r\n const formattedChangeValue = typeof changeValue !== \"undefined\"\r\n ? Math.abs(changeValue).toFixed(4)\r\n : \"\";\r\n const { priceChangeClass, bidQuoteClass, askQuoteClass } = getConditionaDataClasses();\r\n return (React.createElement(\"header\", { className: \"instrument-header\" },\r\n React.createElement(\"div\", { className: \"instrument-header__instrument\" },\r\n React.createElement(\"h1\", { className: \"instrument-header__instrument-name\" }, instrumentName),\r\n React.createElement(\"div\", { className: \"instrument-header__instrument-code\" }, instrumentCode),\r\n currencyCode ? (React.createElement(\"div\", { className: \"instrument-header__instrument-currency\" },\r\n \"Currency: \",\r\n React.createElement(\"img\", { src: currencyIconUrl }),\r\n \" \",\r\n currencyCode)) : (\"\")),\r\n React.createElement(\"div\", { className: \"instrument-header__price\" },\r\n React.createElement(\"div\", { className: \"instrument-header__price-current\" }, bidPrice),\r\n React.createElement(\"div\", { className: `instrument-header__price-change ${priceChangeClass}` },\r\n formattedChangeValue,\r\n \"%\")),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history\" },\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range\" },\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-title\" }, dayRangeTitle),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-value\" },\r\n React.createElement(InstrumentHeaderValue, { value: dayRangeStats.from })),\r\n React.createElement(\"div\", { className: `instrument-header__price-history-range-bar ${dayRangeBarCssClass}`, style: {\r\n \"--offset-from-start\": dayRangeBarPinPosition,\r\n } }),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-value\" },\r\n React.createElement(InstrumentHeaderValue, { value: dayRangeStats.to })),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-title\" }, week52RangeTitle),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-value\" },\r\n React.createElement(InstrumentHeaderValue, { value: yearRangeStats.from })),\r\n React.createElement(\"div\", { className: `instrument-header__price-history-range-bar ${yearRangeBarCssClass}`, style: {\r\n \"--offset-from-start\": `${yearRangeBarPinPosition}`,\r\n } }),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-range-value\" },\r\n React.createElement(InstrumentHeaderValue, { value: yearRangeStats.to }))),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-openclose\" },\r\n React.createElement(\"div\", null, openTitle),\r\n React.createElement(\"div\", null, open)),\r\n React.createElement(\"div\", { className: \"instrument-header__price-history-openclose\" },\r\n React.createElement(\"div\", null, prevCloseTitle),\r\n React.createElement(\"div\", null, prevClose))),\r\n React.createElement(\"div\", { className: \"instrument-header__quotes\" },\r\n React.createElement(BidAskQuote, { title: bidTitle, className: `instrument-header__quotes-quote ${bidQuoteClass}`, linkUrl: bidAskLinksUrl },\r\n React.createElement(InstrumentHeaderValue, { value: bidPrice })),\r\n React.createElement(BidAskQuote, { title: askTitle, className: `instrument-header__quotes-quote ${askQuoteClass}`, linkUrl: bidAskLinksUrl },\r\n React.createElement(InstrumentHeaderValue, { value: askPrice })))));\r\n};\r\nconst InstrumentHeaderValue = ({ value }) => {\r\n if (typeof value === \"undefined\") {\r\n return React.createElement(React.Fragment, null, \"-\");\r\n }\r\n return React.createElement(React.Fragment, null, value);\r\n};\r\n","import { useEffect } from \"react\";\r\nimport pako from \"pako\";\r\nexport const useInstrumentPriceWS = (inputs, handleWebSocketMessage) => {\r\n useEffect(() => {\r\n let websocket;\r\n let interval;\r\n const startWebsocket = () => {\r\n websocket = new WebSocket(`${inputs.wsUrl}/bid-ask/${inputs.session}/${inputs.instrument}`);\r\n websocket.binaryType = \"arraybuffer\";\r\n const pingRequest = new TextEncoder().encode(\"ping\");\r\n websocket.onopen = () => {\r\n interval = setInterval(() => {\r\n websocket.send(pingRequest);\r\n }, 1000);\r\n };\r\n websocket.onmessage = (event) => {\r\n const data = event.data;\r\n const message = pako.inflate(data, { to: \"string\" });\r\n if (message) {\r\n const priceQuote = JSON.parse(message);\r\n handleWebSocketMessage(priceQuote);\r\n }\r\n };\r\n };\r\n startWebsocket();\r\n setTimeout(() => {\r\n if (!websocket.OPEN) {\r\n startWebsocket();\r\n }\r\n }, 5000);\r\n return () => {\r\n clearInterval(interval);\r\n websocket.close();\r\n };\r\n }, [handleWebSocketMessage, inputs.instrument, inputs.session, inputs.wsUrl]);\r\n};\r\n","import { useEffect } from \"react\";\r\nimport { TimescaleEnum } from \"../instrumentData.types\";\r\nexport const useInstrumentPriceHistory = ({ inputs, callbacks, config }) => {\r\n useEffect(() => {\r\n let historyRequestCounter = 0;\r\n setTimeout(async () => {\r\n const reqHistory = async () => {\r\n await fetchHistory();\r\n };\r\n const reqWeek52 = async () => {\r\n await fetchWeek52Range();\r\n };\r\n await reqHistory();\r\n await reqWeek52();\r\n });\r\n const historyRequestInterval = setInterval(async () => {\r\n if (historyRequestCounter < config.MAX_REQUEST_ATTEMPTS) {\r\n historyRequestCounter++;\r\n await fetchHistory();\r\n }\r\n }, config.REQUEST_INTERVAL);\r\n const fetchHistory = async () => {\r\n try {\r\n const response = await fetch(`${inputs.apiUrl}/history/${inputs.session}/${inputs.instrument}/${inputs.timescale}`);\r\n const historyTicks = await response.json();\r\n if (response.status === 200) {\r\n clearInterval(historyRequestInterval);\r\n if (historyTicks[historyTicks.length - 1]) {\r\n if (inputs.timescale === TimescaleEnum.TS_1DAY) {\r\n callbacks.setDayRange(`${historyTicks[historyTicks.length - 1]?.Low.toFixed(config.DECIMAL_PRECISION)} - ${historyTicks[historyTicks.length - 1]?.High.toFixed(config.DECIMAL_PRECISION)}`);\r\n callbacks.setOpen(+historyTicks[historyTicks.length - 1].Open.toFixed(config.DECIMAL_PRECISION));\r\n callbacks.setPrevClose(+historyTicks[historyTicks.length - 1].Close.toFixed(config.DECIMAL_PRECISION));\r\n }\r\n }\r\n }\r\n else {\r\n if (historyRequestCounter === config.MAX_REQUEST_ATTEMPTS) {\r\n clearInterval(historyRequestInterval);\r\n }\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n let week52RequestCounter = 0;\r\n const week52RequestInterval = setInterval(async () => {\r\n if (week52RequestCounter < config.MAX_REQUEST_ATTEMPTS) {\r\n week52RequestCounter++;\r\n await fetchWeek52Range();\r\n }\r\n }, config.REQUEST_INTERVAL);\r\n const fetchWeek52Range = async () => {\r\n try {\r\n const response = await fetch(`${inputs.apiUrl}/week-52/${inputs.session}/${inputs.instrument}`);\r\n const week52Range = await response.json();\r\n if (response.status === 200) {\r\n clearInterval(week52RequestInterval);\r\n const notExists = [-1, 0];\r\n if (notExists.includes(week52Range.High) ||\r\n notExists.includes(week52Range.Low)) {\r\n callbacks.setYearRange(\"\");\r\n }\r\n else {\r\n callbacks.setYearRange(`${week52Range.Low.toFixed(config.DECIMAL_PRECISION)} - ${week52Range.High.toFixed(config.DECIMAL_PRECISION)}`);\r\n }\r\n }\r\n else {\r\n if (week52RequestCounter === config.MAX_REQUEST_ATTEMPTS) {\r\n clearInterval(week52RequestInterval);\r\n callbacks.setYearRange(\"\");\r\n }\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n return () => {\r\n clearInterval(historyRequestInterval);\r\n clearInterval(week52RequestInterval);\r\n };\r\n }, [callbacks, config.DECIMAL_PRECISION, config.MAX_REQUEST_ATTEMPTS, config.REQUEST_INTERVAL, inputs.apiUrl, inputs.instrument, inputs.session, inputs.timescale]);\r\n};\r\n","export const checkIsStringRangeValid = (range) => range.from && range.to;\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const Category = ({ categoryTitle, elements }) => (React.createElement(\"div\", { className: 'category__root' },\r\n React.createElement(\"p\", null, categoryTitle),\r\n React.createElement(\"div\", { className: \"category__imagesWrapper\" }, elements.length > 0 && elements.map((a, i) => (React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", key: `unique${a.icon}`, href: a.appUrl },\r\n React.createElement(ImgV2, { src: a.icon })))))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Category } from \"./Categories/Category\";\r\nexport const Mt5DownloadSection = ({ title, categories, titleStyles }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"mt5-download-section__root\", id: \"MTSection\" },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: `${titleStyles}` },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title)),\r\n React.createElement(\"div\", { className: `mt5-download-section__categoriesWrapper ${titleStyles}` }, categories.length > 0 && categories.map((a) => (React.createElement(Category, { key: `unique${a.categoryTitle}`, ...a }))))))));\r\n","export const INSTRUMENT_CODE_CORRECTIONS = {\r\n apple: \"aapl\",\r\n amazon: \"amzn\",\r\n airbnb: \"abnb\",\r\n visa: \"v\",\r\n alibaba: \"baba\",\r\n tesla: \"tsla\",\r\n microsoft: \"msft\",\r\n goldman: \"gs\",\r\n alphabet: \"googl\"\r\n};\r\n","import React, { useEffect, useRef, memo } from \"react\";\r\nimport { getInstrumentCodeCorrection } from \"./utils\";\r\nimport { INSTRUMENT_CODE_CORRECTIONS } from \"./config\";\r\nconst InstrumentChart = ({ instrumentCode }) => {\r\n const container = useRef(null);\r\n const chartInstrumentCode = getInstrumentCodeCorrection(instrumentCode, INSTRUMENT_CODE_CORRECTIONS) || instrumentCode;\r\n useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src = \"https://s3.tradingview.com/external-embedding/embed-widget-advanced-chart.js\";\r\n script.type = \"text/javascript\";\r\n script.async = true;\r\n script.innerHTML = `\r\n {\r\n \"autosize\": true,\r\n \"symbol\": \"THINKMARKETS:${chartInstrumentCode}\",\r\n \"interval\": \"D\",\r\n \"timezone\": \"Etc/UTC\",\r\n \"theme\": \"light\",\r\n \"style\": \"1\",\r\n \"locale\": \"en\",\r\n \"allow_symbol_change\": true,\r\n \"calendar\": false,\r\n \"support_host\": \"https://www.tradingview.com\"\r\n }`;\r\n if (container.current) {\r\n container.current.appendChild(script);\r\n }\r\n }, [chartInstrumentCode]);\r\n return (React.createElement(\"div\", { className: \"tradingview-widget-container\", ref: container, style: { height: \"100%\", width: \"100%\" } },\r\n React.createElement(\"div\", { className: \"tradingview-widget-container__widget\", style: { height: \"calc(100% - 32px)\", width: \"100%\" } })));\r\n};\r\nexport const InstrumentChartMemoized = memo(InstrumentChart);\r\n","export const getInstrumentCodeCorrection = (instrumentCode, correctionsMap) => Object.entries(correctionsMap).find(([key,]) => key.toLowerCase() === instrumentCode.toLowerCase())?.[1];\r\nexport const INSTRUMENT_CODE_CORRECTIONS = {\r\n amzn: \"amzn\",\r\n arbnb: \"abnb\",\r\n v: \"v\",\r\n alibaba: \"baba\",\r\n tsla: \"tsla\",\r\n msft: \"msft\",\r\n gs: \"gs\"\r\n};\r\ngetInstrumentCodeCorrection;\r\n","import React from \"react\";\r\nimport { InstrumentHeader } from \"../InstrumentHeader\";\r\nimport { InstrumentChartMemoized } from \"../InstrumentChart\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nexport const InstrumentInfo = ({ instrumentName, instrumentCode, bidTitle, askTitle, openTitle, prevCloseTitle, dayRangeTitle, week52RangeTitle, session, instrument, apiUrl, wsUrl, currencyCode, currencyIconUrl, instrumentDescription, bidAskLinksUrl }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, { className: \"instrument-header-container\" },\r\n React.createElement(InstrumentHeader, { instrumentName: instrumentName, instrumentCode: instrumentCode, bidTitle: bidTitle, askTitle: askTitle, openTitle: openTitle, prevCloseTitle: prevCloseTitle, dayRangeTitle: dayRangeTitle, week52RangeTitle: week52RangeTitle, session: session, instrument: instrument, apiUrl: apiUrl, wsUrl: wsUrl, currencyCode: currencyCode, currencyIconUrl: currencyIconUrl, bidAskLinksUrl: bidAskLinksUrl }),\r\n React.createElement(\"div\", { className: \"instrument-info__chart\" },\r\n React.createElement(InstrumentChartMemoized, { instrumentCode: instrumentCode })),\r\n instrumentDescription && React.createElement(\"div\", { className: \"instrument-info__description\", dangerouslySetInnerHTML: {\r\n __html: instrumentDescription,\r\n } }))));\r\n","import * as React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Img } from \"../../Components/Img\";\r\nimport { Heading } from \"../../Components/Heading\";\r\nexport const ProfileSection = ({ title, subTitle, content, image }) => (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"profile-section\" },\r\n React.createElement(Img, { src: image }),\r\n React.createElement(\"div\", { className: \"profile-section__content\" },\r\n React.createElement(Heading, { design: \"h1-regular-small\" }, title),\r\n React.createElement(Heading, { design: \"h4-bold\" }, subTitle),\r\n React.createElement(\"div\", { className: \"p-regular\", dangerouslySetInnerHTML: { __html: content } }))))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const VideoSection = ({ title, subTitle, buttonLabel, buttonUrl, desktopImage, tabletImage, mobileImage, openNewTab }) => (React.createElement(ContainerFW, null,\r\n React.createElement(\"div\", { className: \"video-section-root\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"video-section__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"p-regular\" }, subTitle),\r\n React.createElement(ButtonV2, { design: \"secondary-large-wbg\", openInNewTab: openNewTab, href: buttonUrl }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"video-section__ImageWrapper\" },\r\n React.createElement(\"a\", { target: \"_blank\", rel: \"noopener noreferrer\", href: buttonUrl },\r\n React.createElement(ImgV2, { smallUrl: mobileImage, mediumUrl: tabletImage, largeUrl: desktopImage })))))));\r\n","import React, { useState, useCallback } from \"react\";\r\nimport { NewsCardDeck } from \"../Cards\";\r\nimport { usePageViewStyle, usePagination } from \"../../hooks\";\r\nimport { Heading } from \"../Heading\";\r\nimport { Col, Container, ContainerFW } from \"../global\";\r\nimport { AcademyArticleCard } from \"../Cards/AcademyArticleCardDeck/AcademyArticleCard/AcademyArticleCard\";\r\nimport { JobBoardPagination } from \"../JobBoard/JobBoardPagination/JobBoardPagination\";\r\nexport const ProfileArticles = ({ academyCards, newsCards, filterOptions }) => {\r\n const [selectedFilterOption, setSelectedFilterOption] = useState(newsCards.length ? 0 : 1);\r\n const { viewStyle: view } = usePageViewStyle();\r\n const setSelectedFilterOptionCallback = useCallback((event) => {\r\n setSelectedFilterOption(event.currentTarget.dataset.option * 1);\r\n setCurrentPage(0);\r\n }, []);\r\n const renderFilterRadio = useCallback(() => (React.createElement(React.Fragment, null, (newsCards.length && academyCards.cards.length && filterOptions) ? React.createElement(\"div\", { className: \"academyArticleCardDeck__radio\" }, filterOptions?.map((option, i) => (React.createElement(\"div\", { key: i, className: `academyArticleCardDeck__radio-option centered-container p-regular ${selectedFilterOption === i ? \"active bg-color-dark-default\" : \"\"}`, onClick: setSelectedFilterOptionCallback, \"data-option\": i }, option)))) : \"\")), [filterOptions, selectedFilterOption, setSelectedFilterOptionCallback, newsCards, academyCards]);\r\n const { currentPage, currentPageItems, numOfPages, setCurrentPage } = usePagination(selectedFilterOption ? academyCards.cards : newsCards, 6);\r\n return (React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"profile-articles\" },\r\n React.createElement(\"div\", { className: \"profile-articles__header\" },\r\n React.createElement(Heading, { design: \"h4-bold-small\" },\r\n filterOptions[selectedFilterOption],\r\n \" (\",\r\n selectedFilterOption === 0 ? newsCards.length : academyCards.cards.length,\r\n \")\"),\r\n renderFilterRadio()),\r\n selectedFilterOption === 0 ?\r\n React.createElement(NewsCardDeck, { noWidgets: true, isListView: true, currentPage: currentPage, currentPageItems: currentPageItems, numOfPages: numOfPages, setCurrentPage: setCurrentPage, ...newsCards }) :\r\n React.createElement(React.Fragment, null,\r\n React.createElement(\"span\", { className: \"academyArticleCardDeck__cards-grid\" }, currentPageItems.map((card, i) => (React.createElement(Col, { key: i },\r\n React.createElement(AcademyArticleCard, { articleReadingTimeTimeUnit: academyCards.articleReadingTimeTimeUnit, categoryLinks: academyCards.categoryLinks, culture: academyCards.culture, ...card, isListView: academyCards.isListView, cultureCode: academyCards.cultureCode }))))),\r\n React.createElement(\"div\", { className: \"jobBoard__pagination\" },\r\n React.createElement(JobBoardPagination, { currentPage: currentPage, numOfPages: numOfPages, setCurrentPage: setCurrentPage, isSmallScreen: view !== \"large\" })))))));\r\n};\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nexport const SimpleTitleAndSubtitle = ({ title, subTitle, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"simple-title-subtitle-root\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"copy-lp\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })))));\r\n};\r\n","import React from \"react\";\r\nexport const TierInstrument = ({ name, iconUrl }) => (React.createElement(\"span\", { className: \"tier-instrument\" },\r\n React.createElement(\"img\", { src: iconUrl }),\r\n React.createElement(\"span\", { className: \"tier-instrument__name\" }, name)));\r\n","import React from \"react\";\r\nimport { TierInstrument } from \"../TierInstrument\";\r\nexport const TabWithInstrumentsAndTable = ({ instruments, tableData, instrumentsSectionTitle }) => (React.createElement(\"div\", { className: \"tab-with-instruments-and-table\" },\r\n React.createElement(\"div\", { className: \"tab-with-instruments-and-table__instruments-container\" },\r\n instrumentsSectionTitle && React.createElement(\"h3\", null, instrumentsSectionTitle),\r\n React.createElement(\"div\", { className: \"tab-with-instruments-and-table__instruments-list\" }, instruments.map((instrument, index) => React.createElement(TierInstrument, { key: index, name: instrument.name, iconUrl: instrument.iconUrl })))),\r\n React.createElement(\"div\", { className: \"tab-with-instruments-and-table__tableData-container\" },\r\n React.createElement(\"div\", { className: \"tab-with-instruments-and-table__tabledata\", dangerouslySetInnerHTML: {\r\n __html: tableData,\r\n } }))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { EffectFade } from \"swiper\";\r\nimport { TabWithInstrumentsAndTable } from \"./TabWithInstrumentsAndTable\";\r\nexport const TabsWithInstrumentsAndTable = ({ tabs, instrumentsSectionTitle }) => {\r\n const renderTabControls = (index, className) => `
  • ${tabs[index].tabName}
  • `;\r\n return (React.createElement(ContainerFW, { className: \"tabs-with-instruments-and-table__container\" },\r\n React.createElement(Container, { className: \"tabs-with-instruments-and-table\" },\r\n React.createElement(\"ul\", { className: \"tabs-with-instruments-and-table__tab-controls\" }),\r\n React.createElement(Swiper, { pagination: {\r\n el: \".tabs-with-instruments-and-table__tab-controls\",\r\n clickable: true,\r\n renderBullet: renderTabControls\r\n }, modules: [EffectFade], className: \"careerTabsSlider__swiper\", autoHeight: true, allowTouchMove: false }, Object.values(tabs).map((tabData, index) => React.createElement(SwiperSlide, { key: index },\r\n React.createElement(TabWithInstrumentsAndTable, { key: index, instruments: tabData.instruments, tableData: tabData.tableData, instrumentsSectionTitle: instrumentsSectionTitle })))))));\r\n};\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { DotLottieReact } from \"@lottiefiles/dotlottie-react\";\r\nimport { getColors } from \"../../utils\";\r\nexport const SimpleHeaderBanner = ({ title, subTitle, desktopAnimation, mobileAnimation, backgroundColor }) => {\r\n const { isLarge } = usePageViewStyle();\r\n const { bgColor } = getColors(backgroundColor);\r\n const [lottieSize, setLottieSize] = useState({\r\n width: 652,\r\n height: 438,\r\n });\r\n useEffect(() => {\r\n if (isLarge) {\r\n setLottieSize({\r\n width: 1128,\r\n height: 350,\r\n });\r\n return;\r\n }\r\n setLottieSize({\r\n width: 652,\r\n height: 438,\r\n });\r\n }, [isLarge]);\r\n const handleLottieAnimation = useCallback(() => {\r\n if (isLarge) {\r\n return desktopAnimation;\r\n }\r\n return mobileAnimation;\r\n }, [desktopAnimation, isLarge, mobileAnimation]);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"simple-header-banner__root\" },\r\n React.createElement(Heading, { design: \"h1-regular\" }, title),\r\n React.createElement(\"p\", { className: \"p-regular\" }, subTitle),\r\n React.createElement(DotLottieReact, { src: handleLottieAnimation(), loop: true, autoplay: true, width: lottieSize.width, height: lottieSize.height })))));\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nimport { ImgV2 } from \"./../ImgV2/ImgV2\";\r\nexport const LoginTabs = ({ tabs, backgroundColor, ttLogoIcon, mt4LogoIcon, mt5LogoIcon, tpLogoIcon, ttButtonLabel, mt4ButtonLabel, mt5ButtonLabel, tpButtonLabel, desktopTitle, mobileTitle }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const [openTTTabs, setOpenTTTabs] = useState(true);\r\n const [openMT4Tabs, setOpenMT4Tabs] = useState(false);\r\n const [openMT5Tabs, setOpenMT5Tabs] = useState(false);\r\n const [openTPTabs, setOpenTPTabs] = useState(false);\r\n const handleTTButtonClick = useCallback(() => {\r\n setOpenTTTabs(true);\r\n setOpenMT4Tabs(false);\r\n setOpenMT5Tabs(false);\r\n setOpenTPTabs(false);\r\n }, []);\r\n const handleMT4ButtonClick = useCallback(() => {\r\n setOpenMT4Tabs(true);\r\n setOpenTTTabs(false);\r\n setOpenMT5Tabs(false);\r\n setOpenTPTabs(false);\r\n }, []);\r\n const handleMT5ButtonClick = useCallback(() => {\r\n setOpenMT5Tabs(true);\r\n setOpenTTTabs(false);\r\n setOpenMT4Tabs(false);\r\n setOpenTPTabs(false);\r\n }, []);\r\n const handleTPButtonClick = useCallback(() => {\r\n setOpenTPTabs(true);\r\n setOpenTTTabs(false);\r\n setOpenMT4Tabs(false);\r\n setOpenMT5Tabs(false);\r\n }, []);\r\n const tabsBox = (desktopTitle, mobileTitle, tabLabel) => (React.createElement(\"div\", { className: \"login-tabs-container__tabs-wrapper\" },\r\n React.createElement(\"div\", { className: \"login-tabs-container__desktop-tabs\" },\r\n React.createElement(\"p\", { className: \"login-tabs-container__desktop-tabs--title\" }, desktopTitle),\r\n React.createElement(\"ul\", { className: \"login-tabs-container__desktop-tabs--list\" }, tabs.map((item, index) => ((item.device === \"desktop\" && item.tabPosition === tabLabel) &&\r\n React.createElement(\"li\", { key: index, className: \"login-tabs-container__desktop-tabs--item\" },\r\n React.createElement(ImgV2, { src: item.iconUrl, alt: item.title, loading: \"eager\" }),\r\n React.createElement(\"a\", { href: item.linkUrl, target: \"_blank\", dangerouslySetInnerHTML: {\r\n __html: item.title,\r\n }, rel: \"noreferrer\" })))))),\r\n React.createElement(\"div\", { className: \"login-tabs-container__mobile-tabs\" },\r\n React.createElement(\"p\", { className: \"login-tabs-container__mobile-tabs--title\" }, mobileTitle),\r\n React.createElement(\"ul\", { className: \"login-tabs-container__mobile-tabs--list\" }, tabs.map((item, index) => ((item.device === \"mobile\" && item.tabPosition === tabLabel) &&\r\n React.createElement(\"li\", { key: index, className: \"login-tabs-container__mobile-tabs--item\" },\r\n React.createElement(ImgV2, { src: item.iconUrl, alt: item.title, loading: \"eager\" }),\r\n React.createElement(\"a\", { href: item.linkUrl, target: \"_blank\", dangerouslySetInnerHTML: {\r\n __html: item.title,\r\n }, rel: \"noreferrer\" }))))))));\r\n const buttonBox = (openTab, buttonLabel, buttonHandle, logoIcon, tabLabel) => (buttonLabel && React.createElement(\"div\", { className: \"login-tabs-container__button-wrapper\" },\r\n React.createElement(\"button\", { onClick: buttonHandle, className: `login-tabs-container__button-box ${openTab ? \"active-button\" : \"\"}` },\r\n React.createElement(\"img\", { src: logoIcon }),\r\n buttonLabel,\r\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"17\", height: \"18\", viewBox: \"0 0 17 18\", fill: \"none\" },\r\n React.createElement(\"path\", { d: \"M1 9.00004L16 9.00004M16 9.00004L8.91667 16.0834M16 9.00004L8.91667 1.9167\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\r\n openTab && tabsBox(desktopTitle, mobileTitle, tabLabel)));\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"login-tabs-container\" },\r\n buttonBox(openTTTabs, ttButtonLabel, handleTTButtonClick, ttLogoIcon, \"TT\"),\r\n buttonBox(openMT4Tabs, mt4ButtonLabel, handleMT4ButtonClick, mt4LogoIcon, \"MT4\"),\r\n buttonBox(openMT5Tabs, mt5ButtonLabel, handleMT5ButtonClick, mt5LogoIcon, \"MT5\"),\r\n buttonBox(openTPTabs, tpButtonLabel, handleTPButtonClick, tpLogoIcon, \"TP\")))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const Listitem = ({ title, subTitle, iconUrl }) => (React.createElement(\"div\", { className: \"list-item__root\" },\r\n React.createElement(ImgV2, { src: iconUrl }),\r\n React.createElement(\"div\", { className: \"list-item__root__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h5-bold\" }, title),\r\n React.createElement(\"div\", { className: \"list-item__root__textsWrapper__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\"\r\n } }))));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { Listitem } from \"./ListItem/Listitem\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const SectionWithListVersioned = ({ title, buttonHref, buttonLabel, imageUrl, list, openInNewTabButton, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"section-with-list-versioned__root\" },\r\n React.createElement(\"div\", { className: \"section-with-list-versioned__root__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h3-bold\" }, title),\r\n Array.isArray(list) && list.length > 0 && list.map((a) => (React.createElement(Listitem, { key: `unique${a.title}`, ...a }))),\r\n React.createElement(ButtonV2, { openInNewTab: openInNewTabButton, design: \"cta-large-wbg\", href: buttonHref }, buttonLabel)),\r\n React.createElement(\"div\", { className: \"section-with-list-versioned__root__imageWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl }))))));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const Items = ({ iconUrl, subTitle, title }) => (React.createElement(\"div\", { className: \"items__root\" },\r\n React.createElement(ImgV2, { src: iconUrl }),\r\n React.createElement(Heading, { design: \"h5-bold\" }, title),\r\n subTitle && React.createElement(\"p\", { className: \"p-regular\", dangerouslySetInnerHTML: {\r\n __html: subTitle\r\n } })));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { Items } from \"./Items/Items\";\r\nexport const SectionWithImageLateralItems = ({ title, imageUrl, items, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"section-with-image-lateral-items__root\" },\r\n React.createElement(\"div\", { className: \"section-with-image-lateral-items__root__textsWrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"itemsWrapper\" }, Array.isArray(items) && items.length > 0 && items.map((a) => React.createElement(Items, { key: `unique${a.title}`, ...a })))),\r\n React.createElement(\"div\", { className: \"section-with-image-lateral-items__root__imageWrapper\" },\r\n React.createElement(ImgV2, { src: imageUrl }))))));\r\n};\r\n","import React, { useEffect, useRef } from \"react\";\r\nexport const ErrorHandler = ({ stamp }) => {\r\n const commentRef = useRef();\r\n useEffect(() => {\r\n if (commentRef.current) {\r\n commentRef.current.innerHTML = ``;\r\n }\r\n }, [stamp]);\r\n return React.createElement(\"div\", { ref: commentRef });\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const SectionItem = ({ iconUrl, content, title }) => (React.createElement(\"div\", { className: \"section-item__root\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold-small\" }, title),\r\n React.createElement(\"div\", { className: \"content-wrapper\", dangerouslySetInnerHTML: {\r\n __html: content,\r\n }, style: { \"--background-image-url\": `url(${iconUrl})` } })));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { SectionItem } from \"./SectionItem/SectionItem\";\r\nexport const SectionWithTwoLists = ({ columns, backGroundColor }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"section-with-two-lists\" }, columns.length > 0 && columns.map((a) => (React.createElement(\"div\", { key: `unique${a.content}` },\r\n React.createElement(SectionItem, { key: `unique${a.content}`, ...a }))))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const HeaderWithTitleSubTitleAndButton = ({ title, subTitle, buttonLabel, buttonHref, openInNewTabButton, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"header-with-title-subTitle-button\" },\r\n React.createElement(\"h2\", { className: \"h2-regular\", dangerouslySetInnerHTML: {\r\n __html: title || \"\",\r\n } }),\r\n React.createElement(\"p\", { className: \"copy-lp\" }, subTitle),\r\n buttonHref && buttonLabel && React.createElement(ButtonV2, { design: \"secondary-large-dbg\", href: buttonHref, openInNewTab: openInNewTabButton }, buttonLabel)))));\r\n};\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const SectionWithGradientAndImage = ({ title, subTitle, backGroundImage, buttonImage, backGroundColor }) => {\r\n const { bgColor } = getColors(backGroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--tablet-margins\" },\r\n React.createElement(\"div\", { className: \"section-with-gradient-and-image__root\" },\r\n React.createElement(\"div\", { className: \"section-with-gradient-and-image__root__gradient-background\", style: { \"--background-image-url\": `url(${backGroundImage})` } }),\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"div\", { className: \"p-regular\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } }),\r\n React.createElement(\"div\", { className: \"section-with-gradient-and-image__root__gradient-image\" },\r\n React.createElement(ImgV2, { src: buttonImage }))))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nexport const TwoSectionWithTitleNewCard = ({ title, items, mainIcon }) => (React.createElement(\"div\", { className: \"two-section-with-title-new-card\" },\r\n React.createElement(\"div\", { className: \"two-section-with-title-new-card__title-wrapper\" },\r\n React.createElement(ImgV2, { src: mainIcon, alt: title }),\r\n React.createElement(\"h4\", null, title)),\r\n React.createElement(\"ul\", { className: \"two-section-with-title-new-card__list-wrapper\" }, items && items.map((item, i) => (React.createElement(\"li\", { key: `two-section-${i}`, className: \"two-section-with-title-new-card__item\" }, item))))));\r\n","import React from \"react\";\r\nimport { getColors } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { TwoSectionWithTitleNewCard } from \"./TwoSectionWithTitleNewCard\";\r\nexport const TwoSectionWithTitleNew = ({ mainTitle, mainSubTitle, leftCardContent, rightCardContent, bgColor }) => {\r\n const { bgColor: backgroundColor } = getColors(bgColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"two-section-with-title-new\" },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"two-section-with-title-new__container\" },\r\n React.createElement(\"div\", { className: \"two-section-with-title-new__title-wrapper\" },\r\n React.createElement(\"h2\", null, mainTitle),\r\n React.createElement(\"h5\", null, mainSubTitle)),\r\n React.createElement(\"div\", { className: \"two-section-with-title-new__cards-wrapper\" },\r\n React.createElement(TwoSectionWithTitleNewCard, { title: leftCardContent.title, items: leftCardContent.items, mainIcon: leftCardContent.mainIcon }),\r\n React.createElement(TwoSectionWithTitleNewCard, { title: rightCardContent.title, items: rightCardContent.items, mainIcon: rightCardContent.mainIcon })))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { ImgV2 } from \"../ImgV2\";\r\nimport { Heading } from \"../Heading\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const ImageAndText = ({ title, description, imageURL, imageAlt, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"image-and-text\" },\r\n React.createElement(\"div\", { className: \"image-and-text__text-wrapper\" },\r\n React.createElement(Heading, { design: \"h2-regular\" }, title),\r\n React.createElement(\"p\", { className: \"image-and-text__description\", dangerouslySetInnerHTML: { __html: description } })),\r\n React.createElement(ImgV2, { src: imageURL, alt: imageAlt })))));\r\n};\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const BigOrSmallCard = ({ cardTitle, cardSubTitle, cardImageUrl, cardIconUrl, cardImageOrIconAlt, cardSize }) => (React.createElement(\"div\", { className: \"big-or-small-card\" },\r\n React.createElement(\"div\", { className: cardSize === \"Big card\" ? \"big-or-small-card__big-card\" : \"big-or-small-card__small-card\" },\r\n cardSize === \"Small card\" && React.createElement(\"div\", { className: \"big-or-small-card__icon\" },\r\n React.createElement(ImgV2, { src: cardIconUrl, alt: cardImageOrIconAlt })),\r\n React.createElement(\"div\", { className: \"big-or-small-card__text\" },\r\n React.createElement(\"h5\", { dangerouslySetInnerHTML: {\r\n __html: cardTitle || \"\",\r\n } }),\r\n React.createElement(\"p\", { dangerouslySetInnerHTML: {\r\n __html: cardSubTitle || \"\",\r\n } })),\r\n cardSize === \"Big card\" && React.createElement(\"div\", { className: \"big-or-small-card__big-image\" },\r\n React.createElement(ImgV2, { src: cardImageUrl, alt: cardImageOrIconAlt })))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { BigOrSmallCard } from \"./BigOrSmallCard/BigOrSmallCard\";\r\nimport { getColors } from \"../../utils/getColors\";\r\nexport const GridBigAndSmallCards = ({ title, subTitle, bigCardPosition, cards, backgroundColor }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"grid-big-and-small-cards\" },\r\n (title || subTitle) && React.createElement(\"div\", { className: \"grid-big-and-small-cards__text-wrapper\" },\r\n React.createElement(\"h2\", { dangerouslySetInnerHTML: {\r\n __html: title || \"\",\r\n } }),\r\n React.createElement(\"p\", { className: \"grid-big-and-small-cards__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"grid-big-and-small-cards__cards-wrapper\", style: { flexDirection: bigCardPosition === \"Left\" ? \"row\" : \"row-reverse\" } },\r\n React.createElement(\"div\", { className: \"grid-big-and-small-cards__big-cards-wrapper\" }, cards.map((card, i) => {\r\n if (i < 1) {\r\n return (React.createElement(BigOrSmallCard, { key: `${i}`, cardTitle: card.cardTitle, cardSubTitle: card.cardSubTitle, cardImageUrl: card.cardImageUrl, cardImageOrIconAlt: card.cardImageOrIconAlt, cardBackgroundColor: card.cardBackgroundColor, cardSize: card.cardSize }));\r\n }\r\n else {\r\n return (React.createElement(React.Fragment, null));\r\n }\r\n })),\r\n React.createElement(\"div\", { className: \"grid-big-and-small-cards__small-cards-wrapper\" }, cards.map((card, i) => {\r\n if (i > 0) {\r\n return (React.createElement(BigOrSmallCard, { key: `${i}`, cardTitle: card.cardTitle, cardSubTitle: card.cardSubTitle, cardIconUrl: card.cardIconUrl, cardImageOrIconAlt: card.cardImageOrIconAlt, cardBackgroundColor: card.cardBackgroundColor, cardSize: card.cardSize }));\r\n }\r\n else {\r\n return (React.createElement(React.Fragment, null));\r\n }\r\n })))))));\r\n};\r\n","import * as React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Navigation, Pagination } from \"swiper\";\r\nimport { SmallAwardCard } from \"../Cards/SmallAwardCardsDeck/SmallAwardCard/SmallAwardCard\";\r\nimport { getContainerClassPerMaxWidth } from \"../../utils\";\r\nexport const AwardsSlider = (props) => {\r\n const slidesQuantity = props.awards.length > 4 ? 4 : props.awards.length;\r\n const containerMaxWidthClass = props.containerMaxWidth && getContainerClassPerMaxWidth(props.containerMaxWidth);\r\n const containerExtraClass = containerMaxWidthClass ? ` ${containerMaxWidthClass}` : \"\";\r\n return (React.createElement(ContainerFW, { backgroundColor: props.backgroundColor, className: containerExtraClass },\r\n React.createElement(\"div\", { className: \"awards\" },\r\n props.title && React.createElement(\"h2\", { className: \"h2-v2dot6 awards__title\" }, props.title),\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { className: \"awards__wrapper\" },\r\n React.createElement(Swiper, { modules: [Navigation, Pagination], navigation: {\r\n nextEl: \".swiper-button-next\",\r\n prevEl: \".swiper-button-prev\",\r\n }, breakpoints: {\r\n 375: {\r\n slidesPerView: 1.3,\r\n },\r\n 601: {\r\n slidesPerView: 2.2,\r\n },\r\n 1024: {\r\n slidesPerView: slidesQuantity\r\n },\r\n }, pagination: {\r\n el: \".awards__pagination\",\r\n clickable: true,\r\n renderBullet: () => \"\",\r\n } }, props.awards.map((award) => (React.createElement(SwiperSlide, { key: `awards-slide-${award.title}` },\r\n React.createElement(SmallAwardCard, { ...award })))))),\r\n React.createElement(\"div\", { className: \"awards__pagination\" })))));\r\n};\r\n","import React, { useMemo } from \"react\";\r\nexport const BigAwardsCard = ({ awardImgUrl, title, subTitle, year, organization, design, backgroundImg, topIconPosition, firstGradientColor, secondGradientColor, }) => {\r\n const imageUrlCss = backgroundImg ? `url(${backgroundImg})` : \"none\";\r\n const handleIconPosition = useMemo(() => {\r\n if (topIconPosition === \"left\") {\r\n return \"0 auto auto 0\";\r\n }\r\n else if (topIconPosition === \"center\") {\r\n return \"0 auto auto\";\r\n }\r\n return \"0 0 auto auto\";\r\n }, [topIconPosition]);\r\n return (React.createElement(\"section\", { className: `big-awards-card${design ? ` big-awards-card--${design}` : \"\"}`, style: {\r\n \"--background-image-url\": imageUrlCss,\r\n \"--first-gradient-color\": firstGradientColor,\r\n \"--second-gradient-color\": secondGradientColor,\r\n } },\r\n React.createElement(\"img\", { src: awardImgUrl, alt: organization, style: { margin: handleIconPosition } }),\r\n React.createElement(\"h3\", null, title),\r\n React.createElement(\"div\", null,\r\n React.createElement(\"span\", { className: \"big-awards-card__subtitle\" }, subTitle),\r\n React.createElement(\"span\", { className: \"big-awards-card__year\" }, year))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { BigAwardsCard } from \"./BigAwardsCard\";\r\nexport const BigAwardsCardDeck = ({ title, titleColor, cards, backgroundColor, }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor },\r\n React.createElement(Container, null,\r\n React.createElement(\"div\", { className: \"big-awards-card-deck\" },\r\n title && (React.createElement(\"h2\", { style: {\r\n \"--title-color\": `${titleColor}`,\r\n } }, title)),\r\n Array.isArray(cards) &&\r\n cards.map((card, index) => (React.createElement(BigAwardsCard, { key: index, awardImgUrl: card.awardImgUrl, title: card.title, subTitle: card.subTitle, year: card.year, design: card.design, backgroundImg: card.backgroundImg, topIconPosition: card.topIconPosition, firstGradientColor: card.firstGradientColor, secondGradientColor: card.secondGradientColor })))))));\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const License = ({ description, iconUrl, title }) => (React.createElement(\"div\", { className: 'license-root' },\r\n React.createElement(ImgV2, { src: iconUrl }),\r\n React.createElement(Heading, { design: \"h3-bold-small\" }, title),\r\n React.createElement(\"p\", { className: \"license-root__description\" }, description)));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { License } from \"./License/License\";\r\nimport { ContainerFW } from \"../global\";\r\nimport { Autoplay } from \"swiper\";\r\nexport const LicenseSlider = ({ licenses, title, backgroundColor = \"#FFF\" }) => {\r\n const [isClient, setIsClient] = useState(false);\r\n useEffect(() => {\r\n setIsClient(true);\r\n }, []);\r\n return (React.createElement(ContainerFW, { backgroundColor: backgroundColor, className: \"g-container--new license-slider-root__container\" },\r\n React.createElement(\"div\", { className: \"license-slider-root__container\" }, isClient && (React.createElement(\"div\", { className: \"license-slider-root\", style: { \"--gradient-start-color\": `${backgroundColor}` } },\r\n React.createElement(\"p\", { className: \"text-nav\" }, title),\r\n React.createElement(\"div\", { className: \"license-slider-root__license-wrapper\" }, licenses.length > 0 &&\r\n React.createElement(Swiper, { breakpoints: {\r\n 375: {\r\n spaceBetween: 8,\r\n },\r\n 601: {\r\n spaceBetween: 32,\r\n },\r\n 1024: {\r\n spaceBetween: 32,\r\n },\r\n 1600: {\r\n spaceBetween: 32,\r\n },\r\n }, slidesPerView: \"auto\", loop: true, autoplay: {\r\n delay: 1,\r\n disableOnInteraction: true,\r\n }, speed: 4000, allowTouchMove: false, modules: [Autoplay], freeMode: true }, [...licenses, ...licenses, ...licenses].map((license, i) => (React.createElement(SwiperSlide, { key: `license-slide-${i}-${license.title}` },\r\n React.createElement(License, { ...license })))))))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { ButtonV2 } from \"../ButtonV2/ButtonV2\";\r\nimport { getColors } from \"../../utils\";\r\nconst getHeadingDesignStyle = (headingStyle) => {\r\n const headingType = headingStyle?.split(\"-\")[0].toString();\r\n return headingType ? `${headingType}-v2dot6` : undefined;\r\n};\r\nexport const TitleSubTitleCTA = ({ title, subTitle, buttonLabel, buttonOnLargeOnly, buttonURL, backgroundColor, centered, headingStyle, buttonOnLargeAndMediumOnly, buttonOpensInNewTab }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n return (React.createElement(ContainerFW, { className: \"g-container--new\", backgroundColor: bgColor },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: `titleSubTitleCTA ${centered ? \"titleSubTitleCTA__centered--tm\" : \"\"} ${buttonOnLargeOnly ? \"titleSubTitleCTA__hide-button--tm\" : \"\"} ${buttonOnLargeAndMediumOnly ? \"titleSubTitleCTA__hide-button--mobile\" : \"\"}` },\r\n React.createElement(\"div\", { className: \"titleSubTitleCTA__content\" },\r\n React.createElement(Heading, { design: getHeadingDesignStyle(headingStyle) }, title),\r\n React.createElement(\"p\", { className: \"titleSubTitleCTA__text\" }, subTitle)),\r\n (buttonLabel && buttonURL) && React.createElement(ButtonV2, { href: buttonURL, openInNewTab: buttonOpensInNewTab, design: \"ghost-large-wbg\" }, buttonLabel)))));\r\n};\r\n","const MEDIA_EXTENSIONS = {\r\n video: [\"mp4\", \"webm\", \"avi\"],\r\n image: [\"png\", \"webp\", \"jpg\", \"svg\"]\r\n};\r\nconst getMediaFileExtension = (fileUrl) => fileUrl.includes(\".\") ? fileUrl.split(\".\").pop() : undefined;\r\nexport const getMediaType = (fileUrl) => {\r\n const extension = getMediaFileExtension(fileUrl);\r\n if (!extension) {\r\n return undefined;\r\n }\r\n return Object.entries(MEDIA_EXTENSIONS).find(([, extensions]) => extensions.includes(extension?.toLowerCase()))?.[0];\r\n};\r\n","import React from \"react\";\r\nimport { getMediaType } from \"./utils\";\r\nexport const MediaViewer = ({ mediaFileUrl, posterUrl, isVideoLooping = true }) => {\r\n const mediaType = getMediaType(mediaFileUrl);\r\n if (mediaType === \"image\") {\r\n return (React.createElement(\"div\", { className: \"media-viewer\" },\r\n React.createElement(\"img\", { src: mediaFileUrl })));\r\n }\r\n if (mediaType === \"video\") {\r\n return (React.createElement(\"div\", { className: \"media-viewer\" },\r\n React.createElement(\"video\", { src: mediaFileUrl, poster: posterUrl, autoPlay: true, muted: true, playsInline: true, loop: isVideoLooping })));\r\n }\r\n return React.createElement(React.Fragment, null);\r\n};\r\n","import React from \"react\";\r\nimport { MediaViewer } from \"./MediaViewer\";\r\nexport const SmartphoneFrameWithMedia = ({ frameImageUrl, mediaFileUrl, posterUrl, isVideoLooping, }) => (React.createElement(\"div\", { className: \"smartphone-frame-with-media\" },\r\n React.createElement(\"div\", { className: \"smartphone-frame-with-media__container\" },\r\n React.createElement(MediaViewer, { mediaFileUrl: mediaFileUrl, posterUrl: posterUrl, isVideoLooping: isVideoLooping }),\r\n React.createElement(\"img\", { className: \"smartphone-frame-with-media__frame\", src: frameImageUrl }))));\r\n","import React from \"react\";\r\nexport const LinkPill = ({ label, href, purpose = \"regular-button\", iconUrl, openNewTab = false, onClick, }) => (React.createElement(\"a\", { className: `link-pill link-pill--${purpose}`, href: href, target: openNewTab ? \"_blank\" : undefined, rel: openNewTab ? \"noreferrer\" : undefined, onClick: onClick },\r\n iconUrl && React.createElement(\"img\", { src: iconUrl }),\r\n label));\r\n","import React from \"react\";\r\nimport { LinkPill } from \"./LinkPill\";\r\nexport const LinkPillsPair = ({ pills }) => (React.createElement(\"div\", { className: \"link-pills-pair\" }, pills.map(({ label, href, purpose, iconUrl, openNewTab, onClick }, index) => (React.createElement(LinkPill, { key: index, label: label, purpose: purpose, href: href, iconUrl: iconUrl, openNewTab: openNewTab, onClick: onClick })))));\r\n","import React, { useEffect } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { IconClose } from \"../../../Components/svgIcons\";\r\nexport const MobileAppDownloadPopin = ({ title, subtitle, qRCodeImageUrl, downloadLinks, onClose }) => {\r\n useEffect(() => {\r\n const handleEsc = (event) => {\r\n if (event.key === \"Escape\") {\r\n onClose && onClose(event);\r\n }\r\n };\r\n document.addEventListener(\"keydown\", handleEsc);\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEsc);\r\n };\r\n }, [onClose]);\r\n return React.createElement(\"div\", { className: \"mobile-app-download-popin\" },\r\n React.createElement(\"div\", { className: \"mobile-app-download-popin__inner\" },\r\n React.createElement(\"button\", { className: \"mobile-app-download-popin__close-button\", onClick: onClose },\r\n React.createElement(IconClose, null)),\r\n React.createElement(\"div\", { className: \"mobile-app-download-popin__top\" },\r\n React.createElement(\"h3\", { className: \"h3-v2dot6\" }, title),\r\n subtitle && (React.createElement(\"div\", { className: \"mobile-app-download-popin__subtitle\" }, subtitle))),\r\n React.createElement(\"div\", { className: \"mobile-app-download-popin__QRCode\" },\r\n React.createElement(\"img\", { src: qRCodeImageUrl })),\r\n Array.isArray(downloadLinks) && downloadLinks.length > 0 && (React.createElement(\"div\", { className: \"mobile-app-download-popin__download-links\" }, downloadLinks.map(({ href, imageUrl }, index) => (React.createElement(\"a\", { key: index, href: href },\r\n React.createElement(\"img\", { src: imageUrl }))))))));\r\n};\r\nexport const PortalledMobileAppDownload = ({ title, subtitle, qRCodeImageUrl, downloadLinks, onClose }) => createPortal(React.createElement(MobileAppDownloadPopin, { title: title, subtitle: subtitle, downloadLinks: downloadLinks, qRCodeImageUrl: qRCodeImageUrl, onClose: onClose }), document.body);\r\n","import React from \"react\";\r\nexport const SimpleIconAndTextCard = ({ iconUrl, title, text }) => React.createElement(\"div\", { className: \"simple-icon-and-text-card\" },\r\n React.createElement(\"img\", { src: iconUrl }),\r\n React.createElement(\"h6\", { className: \"h6-v2dot6 simple-icon-and-text-card__title\" }, title),\r\n text && React.createElement(\"div\", { className: \"simple-icon-and-text-card__text\" }, text));\r\n","import React from \"react\";\r\nimport { SimpleIconAndTextCard, } from \"./SimpleIconAndTextCard/SimpleIconAndTextCard\";\r\nexport const SimpleIconAndTextCardDeck = ({ cards, className, }) => (React.createElement(\"div\", { className: `simple-icon-and-text-card-deck${className ? ` ${className}` : \"\"}` }, Array.isArray(cards) &&\r\n cards.map((card, index) => (React.createElement(SimpleIconAndTextCard, { key: index, iconUrl: card.iconUrl, title: card.title, text: card.text })))));\r\n","import React, { forwardRef, useCallback, useState, } from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { SmartphoneFrameWithMedia, } from \"./SmartphoneFrameWithMedia\";\r\nimport { LinkPillsPair } from \"./LinkPillsPair\";\r\nimport { PortalledMobileAppDownload, } from \"./MobileAppDownload/MobileAppDownload\";\r\nimport { SimpleIconAndTextCardDeck, } from \"./SimpleIconAndTextCardDeck\";\r\nexport const ThreeColsSectionMediaAndButtonsBase = forwardRef(({ title, cardsGroup1, cardsGroup2, mediaProps, mobileAppDownloadProps, ctaButtons, backgroundImageUrl, backgroundColor, className, anchorId = \"\" }, ref) => {\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const handleMobileDownloadButton = useCallback((event) => {\r\n event.preventDefault();\r\n setIsModalOpen(!isModalOpen);\r\n }, [isModalOpen]);\r\n const getEnhancedCtaButtons = () => {\r\n if (ctaButtons) {\r\n return ctaButtons.reduce((newCtaButtons, buttonProps) => {\r\n if (buttonProps.purpose === \"mobile-app-button\") {\r\n const newButtonProps = {\r\n ...buttonProps,\r\n onClick: handleMobileDownloadButton,\r\n };\r\n newCtaButtons.push(newButtonProps);\r\n return newCtaButtons;\r\n }\r\n newCtaButtons.push(buttonProps);\r\n return newCtaButtons;\r\n }, []);\r\n }\r\n return ctaButtons;\r\n };\r\n return (React.createElement(ContainerFW, { className: \"g-container--new\", backgroundColor: backgroundColor },\r\n React.createElement(\"div\", { className: \"three-cols-section-media-buttons__container\", style: {\r\n \"--background-image-url\": `url(${backgroundImageUrl})`,\r\n }, id: anchorId },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: `three-cols-section-media-buttons ${className ? className : \"\"}`, ref: ref },\r\n React.createElement(\"h2\", { className: \"h2-v2dot6 three-cols-section-media-buttons__title\" }, title),\r\n React.createElement(\"div\", { className: \"three-cols-section-media-buttons__media-container\" },\r\n React.createElement(SmartphoneFrameWithMedia, { frameImageUrl: mediaProps.frameImageUrl, mediaFileUrl: mediaProps.mediaFileUrl, posterUrl: mediaProps.posterUrl })),\r\n React.createElement(SimpleIconAndTextCardDeck, { cards: cardsGroup1.cards, className: \"three-cols-section-media-buttons__usps-1\" }),\r\n React.createElement(SimpleIconAndTextCardDeck, { cards: cardsGroup2.cards, className: \"three-cols-section-media-buttons__usps-2\" }),\r\n Array.isArray(ctaButtons) &&\r\n ctaButtons.length > 0 && (React.createElement(\"div\", { className: \"three-cols-section-media-buttons__cta\" },\r\n React.createElement(LinkPillsPair, { pills: getEnhancedCtaButtons() })))),\r\n mobileAppDownloadProps && isModalOpen && (React.createElement(PortalledMobileAppDownload, { title: mobileAppDownloadProps.title, subtitle: mobileAppDownloadProps.subtitle, qRCodeImageUrl: mobileAppDownloadProps.qRCodeImageUrl, downloadLinks: mobileAppDownloadProps.downloadLinks, onClose: handleMobileDownloadButton }))))));\r\n});\r\nThreeColsSectionMediaAndButtonsBase.displayName =\r\n \"ThreeColsSectionMediaAndButtonsBase\";\r\n","import { useRef } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nexport const useComponentIntersection = (intersectionThresholds, phaseSettingFunction) => {\r\n const isIntersectionCompleteRef = useRef(false);\r\n const passedThresholdsRef = useRef([]);\r\n const manageIntersections = (entry, phaseSettingFunction) => {\r\n const sorted_thresholds = [...intersectionThresholds].sort((a, b) => b - a);\r\n for (let i = 0; i < sorted_thresholds.length; i++) {\r\n if (entry.intersectionRatio >= sorted_thresholds[i]) {\r\n if (passedThresholdsRef.current.includes(sorted_thresholds[i])) {\r\n continue;\r\n }\r\n const phaseNum = sorted_thresholds.length - i;\r\n passedThresholdsRef.current.push(sorted_thresholds[i]);\r\n phaseSettingFunction(phaseNum);\r\n if (i === 0) {\r\n isIntersectionCompleteRef.current = true;\r\n }\r\n return;\r\n }\r\n }\r\n };\r\n const handleIntersectionChange = (inView, entry) => {\r\n if (isIntersectionCompleteRef.current) {\r\n return;\r\n }\r\n manageIntersections(entry, phaseSettingFunction);\r\n };\r\n const { ref } = useInView({\r\n threshold: intersectionThresholds,\r\n onChange: handleIntersectionChange\r\n });\r\n return {\r\n ref\r\n };\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { useComponentIntersection } from \"./hooks/useComponentIntersection\";\r\nimport { ThreeColsSectionMediaAndButtonsBase } from \"./ThreeColsSectionMediaAndButtonsBase\";\r\nconst INTERSECTION_THRESHOLDS = [\r\n 0.3,\r\n 0.4,\r\n 0.45\r\n];\r\nexport const ThreeColsSectionMediaAndButtonsIntersectionObserver = ({ title, cardsGroup1, cardsGroup2, mediaProps, mobileAppDownloadProps, ctaButtons, backgroundImageUrl, backgroundColor, animationType = \"none\", anchorId = \"\" }) => {\r\n const [interSectionPhase, setIntersectionPhase] = useState(0);\r\n const { ref } = useComponentIntersection(INTERSECTION_THRESHOLDS, setIntersectionPhase);\r\n const getExtraClasses = () => {\r\n let animationBaseClass = `three-cols-section-media-buttons--animation three-cols-section-media-buttons--animation--${animationType}`;\r\n if (interSectionPhase) {\r\n animationBaseClass += \" three-cols-section-media-buttons--animation--triggered\";\r\n for (let i = 1; i <= interSectionPhase; i++) {\r\n animationBaseClass += ` three-cols-section-media-buttons--animation--triggered--${i}`;\r\n }\r\n return animationBaseClass;\r\n }\r\n return animationBaseClass;\r\n };\r\n return (React.createElement(ThreeColsSectionMediaAndButtonsBase, { title: title, cardsGroup1: cardsGroup1, cardsGroup2: cardsGroup2, mediaProps: mediaProps, mobileAppDownloadProps: mobileAppDownloadProps, ctaButtons: ctaButtons, backgroundImageUrl: backgroundImageUrl, backgroundColor: backgroundColor, className: getExtraClasses(), anchorId: anchorId, ref: ref }));\r\n};\r\n","import React from \"react\";\r\nimport { ThreeColsSectionMediaAndButtonsBase } from \"./ThreeColsSectionMediaAndButtonsBase\";\r\nimport { ThreeColsSectionMediaAndButtonsIntersectionObserver } from \"./ThreeColsSectionMediaAndButtonsIntersectionObserver\";\r\nexport const ThreeColsSectionMediaAndButtons = ({ title, cardsGroup1, cardsGroup2, mediaProps, mobileAppDownloadProps, ctaButtons, backgroundImageUrl, backgroundColor, animationType = \"none\", anchorId = \"\" }) => {\r\n if (animationType !== \"none\") {\r\n return (React.createElement(ThreeColsSectionMediaAndButtonsIntersectionObserver, { title: title, cardsGroup1: cardsGroup1, cardsGroup2: cardsGroup2, mediaProps: mediaProps, mobileAppDownloadProps: mobileAppDownloadProps, ctaButtons: ctaButtons, backgroundImageUrl: backgroundImageUrl, backgroundColor: backgroundColor, animationType: animationType, anchorId: anchorId }));\r\n }\r\n return (React.createElement(ThreeColsSectionMediaAndButtonsBase, { title: title, cardsGroup1: cardsGroup1, cardsGroup2: cardsGroup2, mediaProps: mediaProps, mobileAppDownloadProps: mobileAppDownloadProps, ctaButtons: ctaButtons, backgroundImageUrl: backgroundImageUrl, backgroundColor: backgroundColor, anchorId: anchorId }));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { DotLottiePlayer } from \"@dotlottie/react-player\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nexport const SmallCardWithAnimatedIcon = ({ title, animation, linkUrl, linkTarget }) => {\r\n const [dotLottieOrImgV2, setDotLottieOrImgV2] = useState(Boolean);\r\n useEffect(() => {\r\n animation.includes(\".lottie\") ? setDotLottieOrImgV2(true) : setDotLottieOrImgV2(false);\r\n }, [animation]);\r\n return (React.createElement(\"div\", { className: \"small-card-with-animated-icon\" },\r\n React.createElement(\"a\", { href: linkUrl, target: linkTarget === false ? \"_self\" : \"_blank\", className: \"small-card-with-animated-icon__container\", rel: \"noreferrer\" },\r\n React.createElement(\"div\", { className: \"small-card-with-animated-icon__animation-wrapper\" }, dotLottieOrImgV2 ? React.createElement(DotLottiePlayer, { src: animation, autoplay: false, loop: true, hover: true }) : React.createElement(ImgV2, { src: animation, alt: title })),\r\n React.createElement(\"div\", { className: \"small-card-with-animated-icon__title-wrapper\" }, title))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Swiper, SwiperSlide, } from \"swiper/react\";\r\nimport { SmallCardWithAnimatedIcon } from \"./SmallCardWithAnimatedIcon/SmallCardWithAnimatedIcon\";\r\nimport { getColors } from \"../../utils\";\r\nexport const SmallCardsSlider = (props) => {\r\n const { bgColor } = getColors(props.backgroundColor || \"neutralaccentbackground\");\r\n return (React.createElement(\"div\", { className: \"small-cards-slider\" },\r\n React.createElement(ContainerFW, { backgroundColor: bgColor, className: \"g-container--new\" },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(Swiper, { spaceBetween: 0, slidesPerView: \"auto\" }, props.content.map((item, i) => React.createElement(SwiperSlide, { key: `small-cards-slider-item-${i}` },\r\n React.createElement(SmallCardWithAnimatedIcon, { title: item.title, animation: item.animation, linkUrl: item.linkUrl, linkTarget: item.linkTarget }))))))));\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nconst RatioContainer = ({ leftContent, rightContent, ratio, changeToColumn }) => {\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n useEffect(() => {\r\n const handleResize = () => setWindowWidth(window.innerWidth);\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n const [leftRatio, rightRatio] = ratio.split(\":\").map(Number);\r\n const total = leftRatio + rightRatio;\r\n const getFlexValues = () => {\r\n const leftFlex = (leftRatio / total) * 100;\r\n const rightFlex = (rightRatio / total) * 100;\r\n return [leftFlex, rightFlex];\r\n };\r\n const [leftFlex, rightFlex] = getFlexValues();\r\n const dropToColumnsClass = windowWidth <= changeToColumn ? \"ratio-container__column\" : \"\";\r\n return (React.createElement(ContainerFW, { className: \"g-container--new\" },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: `ratio-container ${dropToColumnsClass}` },\r\n React.createElement(\"div\", { className: \"ratio-container__left\", style: { flex: `${leftFlex}%` } }, leftContent),\r\n React.createElement(\"div\", { className: \"ratio-container__right\", style: { flex: `${rightFlex}%` } }, rightContent)))));\r\n};\r\nexport default RatioContainer;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Img } from \"../Img\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { usePageViewStyle } from \"../../hooks\";\r\nimport { Heading } from \"../Heading\";\r\nexport const RichTextWithImageUplift = ({ title, richText, imageURL, mobileImageURL, imageAlt, position, textAlignment = \"left\", titletype, mainContainerWidth1400 = false, descriptionColor = \"#0E1D31\", headingTextColor = \"#18283D\", haveItems = false, item1title, item1subtitle, item2title, item2subtitle, item3title, item3subtitle, titleFontWeight = 700 }) => {\r\n const { isSmall, isLarge, isMedium } = usePageViewStyle();\r\n const [isSmallValue, setIsSmallValue] = useState(false);\r\n const [isMediumValue, setIsMediumValue] = useState(false);\r\n const [isLargeValue, setIsLargeValue] = useState(false);\r\n useEffect(() => {\r\n setIsSmallValue(isSmall);\r\n setIsMediumValue(isMedium);\r\n setIsLargeValue(isLarge);\r\n }, [isSmall, isMedium, isLarge]);\r\n const headingSection = (titleLabel, titleType, titleTextAlignment, titleTextColor) => (titleLabel !== \"\" && React.createElement(Heading, { design: titleType ? titleType : \"h2-v2dot6\", style: { \"--text-alignment\": `${titleTextAlignment}`, color: titleTextColor, \"--title-font-weight\": titleFontWeight } }, titleLabel));\r\n const descriptionSection = (descriptionText, descriptionTextAlignment, descriptionTextColor) => (richText !== \"\" && React.createElement(\"div\", { className: \"rich-text-with-image-uplift__text\", dangerouslySetInnerHTML: {\r\n __html: descriptionText,\r\n }, style: { \"--text-alignment\": `${descriptionTextAlignment}`, color: descriptionTextColor } }));\r\n const imageSection = (desktopAndTabletImage, phoneImage, desktopAndMobileImageAlt) => (React.createElement(\"div\", { className: \"rich-text-with-image-uplift__image-container\" },\r\n React.createElement(\"div\", { className: \"rich-text-with-image-uplift__image-size-guard\" },\r\n (isLargeValue || isMediumValue) && React.createElement(Img, { className: \"rich-text-with-image-uplift__image\", src: desktopAndTabletImage, alt: desktopAndMobileImageAlt }),\r\n isSmallValue && React.createElement(Img, { className: \"rich-text-with-image-uplift__image\", src: phoneImage, alt: desktopAndMobileImageAlt }))));\r\n const itemsSection = (haveSection, firstItemtitle, firstItemsubtitle, secondItemtitle, secondItemsubtitle, thirdItemtitle, thirdItemsubtitle) => (haveSection && React.createElement(\"div\", { className: \"rich-text-with-image-uplift__items-wrapper\" },\r\n React.createElement(\"div\", { className: \"rich-text-with-image-uplift__item1\" },\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-title\" }, firstItemtitle),\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-subtitle\" }, firstItemsubtitle)),\r\n React.createElement(\"div\", { className: \"rich-text-with-image-uplift__item2\" },\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-title\" }, secondItemtitle),\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-subtitle\" }, secondItemsubtitle)),\r\n React.createElement(\"div\", { className: \"rich-text-with-image-uplift__item3\" },\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-title\" }, thirdItemtitle),\r\n React.createElement(\"p\", { className: \"rich-text-with-image-uplift__item-subtitle\" }, thirdItemsubtitle))));\r\n return (React.createElement(\"div\", { className: \"rich-text-with-image-uplift-main\" },\r\n React.createElement(ContainerFW, { backgroundColor: \"#fff\" },\r\n React.createElement(Container, { className: `${mainContainerWidth1400 ? \"g-container--new\" : \"\"}` },\r\n React.createElement(\"div\", { className: `rich-text-with-image-uplift ${position}` },\r\n React.createElement(\"div\", { className: \"rich-text-with-image-uplift__text-container\" },\r\n headingSection(title, titletype, textAlignment, headingTextColor),\r\n descriptionSection(richText, textAlignment, descriptionColor),\r\n itemsSection(haveItems, item1title, item1subtitle, item2title, item2subtitle, item3title, item3subtitle)),\r\n imageSection(imageURL, mobileImageURL, imageAlt))))));\r\n};\r\n","import React from \"react\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nimport { getContainerClassPerMaxWidth, } from \"../../utils\";\r\nimport { getColors } from \"../../utils\";\r\nexport const SingleAwardBanner = ({ title, subTitle, year, posterImgUrl, posterBkgrImgUrl, backgroundColor, containerMaxWidth, }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const containerMaxWidthClass = containerMaxWidth && getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = containerMaxWidthClass\r\n ? ` ${containerMaxWidthClass}`\r\n : \"\";\r\n const imageUrlCss = posterBkgrImgUrl ? `url(${posterBkgrImgUrl})` : \"none\";\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor, className: containerExtraClass },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"section\", { className: \"single-award-banner\", style: {\r\n \"--background-image-url\": imageUrlCss,\r\n } },\r\n React.createElement(\"header\", { className: \"single-award-banner__text-content\" },\r\n React.createElement(\"h3\", { className: \"single-award-banner__title\" }, title),\r\n React.createElement(\"div\", { className: \"single-award-banner__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\",\r\n } }),\r\n React.createElement(\"div\", { className: \"single-award-banner__year\" }, year)),\r\n React.createElement(\"div\", { className: \"single-award-banner__poster\" },\r\n React.createElement(\"img\", { src: posterImgUrl, alt: title }))))));\r\n};\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../../global\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nimport { getColors, getContainerClassPerMaxWidth, } from \"../../../utils\";\r\nexport const FooterBannerV2_6 = ({ title, subtitle, topImageUrl, leftImageUrl, rightImageUrl, buttonHref, buttonText, backgroundColor, containerMaxWidth }) => {\r\n const { bgColor, textColor } = getColors(backgroundColor);\r\n const containerMaxWidthClass = containerMaxWidth && getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = containerMaxWidthClass\r\n ? ` ${containerMaxWidthClass}`\r\n : \"\";\r\n return (React.createElement(ContainerFW, { backgroundColor: bgColor, className: containerExtraClass },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { className: \"footer-banner-v2dot6\", style: { \"--text-color\": `${textColor}` } },\r\n React.createElement(\"img\", { className: \"footer-banner-v2dot6__top-image\", src: topImageUrl }),\r\n React.createElement(\"img\", { className: \"footer-banner-v2dot6__left-image\", src: leftImageUrl }),\r\n React.createElement(\"div\", { className: \"footer-banner-v2dot6__text-and-button\" },\r\n React.createElement(\"h3\", { className: \"footer-banner-v2dot6__title\" }, title),\r\n React.createElement(\"div\", { className: \"footer-banner-v2dot6__subtitle\" }, subtitle),\r\n React.createElement(ButtonV2, { href: buttonHref, design: \"tmx25-round-green-lightgreen\" }, buttonText)),\r\n React.createElement(\"img\", { className: \"footer-banner-v2dot6__right-image\", src: rightImageUrl })))));\r\n};\r\n","import React from \"react\";\r\nimport { Img } from \"../../../Img\";\r\nexport const SocialMedia = ({ socialMedia }) => (React.createElement(\"div\", { className: \"social-media\" }, socialMedia &&\r\n socialMedia.map((item, i) => (React.createElement(\"a\", { className: \"social-media__item\", key: i, href: item.iconLink, target: \"_blank\", rel: \"noreferrer\" },\r\n React.createElement(Img, { className: \"social-media__icon\", src: item.iconUrl, alt: item.iconAlt }))))));\r\n","import React, { useCallback } from \"react\";\r\nexport const LiveChatCTA = ({ liveChatText }) => {\r\n const simulateMouseClick = useCallback((element) => {\r\n const mouseClickEvents = [\"mousedown\", \"click\", \"mouseup\"];\r\n mouseClickEvents.forEach(mouseEventType => element.dispatchEvent(new MouseEvent(mouseEventType, {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true,\r\n buttons: 1\r\n })));\r\n }, []);\r\n const simulateMouseClickOnZendeskChatIcon = useCallback((event) => {\r\n const el = event.target.closest(\"A\");\r\n if (el && event.currentTarget.contains(el)) {\r\n const element = document.querySelector(\"a[class=\\\"chat-toggle\\\"]\");\r\n simulateMouseClick(element);\r\n }\r\n }, [simulateMouseClick]);\r\n return React.createElement(\"div\", null,\r\n React.createElement(\"div\", { className: \"live-chat-cta live-chat-cta--mobile\" },\r\n React.createElement(\"div\", { className: \"live-chat-cta__text\", dangerouslySetInnerHTML: {\r\n __html: liveChatText ?? \"\",\r\n } })),\r\n React.createElement(\"div\", { className: \"live-chat-cta--non-mobile\" },\r\n React.createElement(\"div\", { className: \"live-chat-cta__text\", onClick: simulateMouseClickOnZendeskChatIcon, dangerouslySetInnerHTML: {\r\n __html: liveChatText ?? \"\",\r\n } })));\r\n};\r\n","import React from \"react\";\r\nimport { Logo } from \"../../Logo\";\r\nimport { SocialMedia } from \"./SocialMedia\";\r\nimport { LiveChatCTA } from \"./LiveChatCTA\";\r\nexport const SocialBarLogoLiveChat = ({ logo, socialMedia, liveChatCTA, }) => (React.createElement(\"div\", { className: \"social-bar-logo-livechat\" },\r\n React.createElement(\"div\", { className: \"social-bar-logo-livechat__logo\" },\r\n React.createElement(Logo, { imageUrl: logo.logoImageUrl, alt: logo.logoImageAlt, logoHref: logo.logoHref })),\r\n liveChatCTA?.liveChatText && (React.createElement(\"div\", { className: \"social-bar-logo-livechat__livechat-cta\" },\r\n React.createElement(LiveChatCTA, { liveChatText: liveChatCTA?.liveChatText }))),\r\n React.createElement(SocialMedia, { socialMedia: socialMedia })));\r\n","import React from \"react\";\r\nimport { Img } from \"../../Img\";\r\nexport const PaymentMethodsIcons = ({ title, icons, note }) => (React.createElement(\"div\", { className: \"payment-methods-icons\" },\r\n React.createElement(\"h6\", { className: \"payment-methods-icons__title\" }, title),\r\n React.createElement(\"ul\", { className: \"payment-methods-icons__icons-list\" }, icons.map((icon, index) => (React.createElement(\"li\", { key: index, className: \"payment-methods-icons__item\" },\r\n React.createElement(Img, { src: icon.methodIconURL, alt: icon.methodIconAlt }))))),\r\n note && (React.createElement(\"div\", { className: \"payment-methods-icons__note\", dangerouslySetInnerHTML: {\r\n __html: note,\r\n } }))));\r\n","import React from \"react\";\r\nexport const FooterNavLink = ({ text, href, imageUrl, openInNewTab = false, }) => {\r\n const target = openInNewTab ? \"_blank\" : undefined;\r\n const rel = openInNewTab ? \"noreferrer\" : undefined;\r\n return (React.createElement(\"a\", { className: \"footer-nav-link\", href: href, target: target, rel: rel }, imageUrl ? React.createElement(\"img\", { src: imageUrl, alt: text }) : text));\r\n};\r\n","import React from \"react\";\r\nimport { FooterNavLink, } from \"./FooterNavLink/FooterNavLink\";\r\nexport const FooterNavSection = ({ title, links }) => (React.createElement(\"section\", { className: \"footer-nav-section\" },\r\n React.createElement(\"h5\", { className: \"footer-nav-section__title\" }, title),\r\n React.createElement(\"ul\", { className: \"footer-nav-section__links\" }, links.map((link, index) => (React.createElement(\"li\", { key: index, className: \"footer-nav-section__link\" },\r\n React.createElement(FooterNavLink, { text: link.text, href: link.href, imageUrl: link.imageUrl, openInNewTab: link.openInNewTab })))))));\r\n","import React from \"react\";\r\nimport { FooterNavSection } from \"./FooterNavSection\";\r\nexport const FooterNavV2_6 = ({ navSections }) => (React.createElement(\"nav\", { className: \"footer-navigation\" }, navSections.map((section, index) => (React.createElement(FooterNavSection, { key: index, title: section.title, links: section.links })))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { FooterBannerV2_6 } from \"./FooterBannerV2_6\";\r\nimport { SocialBarLogoLiveChat } from \"./SocialBarWithLogoAndLiveChat\";\r\nimport { PaymentMethodsIcons } from \"./PaymentMethodsIcons\";\r\nimport { FooterNavV2_6 } from \"./FooterNavV2_6\";\r\nexport const FooterV2_6 = ({ socialBarLogoLiveChat, paymentMethodsIcons, footerNavigationProps, legalInfo, backgroundColor, hasBanner = true, footerBannerProps, }) => (React.createElement(ContainerFW, { backgroundColor: backgroundColor, className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"footer-v2dot6\" },\r\n hasBanner && footerBannerProps && (React.createElement(FooterBannerV2_6, { title: footerBannerProps.title, subtitle: footerBannerProps.subtitle, topImageUrl: footerBannerProps.topImageUrl, leftImageUrl: footerBannerProps.leftImageUrl, rightImageUrl: footerBannerProps.rightImageUrl, buttonHref: footerBannerProps.buttonHref, buttonText: footerBannerProps.buttonText, backgroundColor: footerBannerProps.backgroundColor, containerMaxWidth: footerBannerProps.containerMaxWidth })),\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(SocialBarLogoLiveChat, { logo: socialBarLogoLiveChat.logo, socialMedia: socialBarLogoLiveChat.socialMedia, liveChatCTA: socialBarLogoLiveChat.liveChatCTA })),\r\n React.createElement(Container, { className: \"g-container--new\" }, Array.isArray(paymentMethodsIcons.icons) && React.createElement(PaymentMethodsIcons, { title: paymentMethodsIcons.title, icons: paymentMethodsIcons.icons, note: paymentMethodsIcons.note })),\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(FooterNavV2_6, { navSections: footerNavigationProps.navSections })),\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"footer-v2dot6__legal-info\", dangerouslySetInnerHTML: { __html: legalInfo } })))));\r\n","import React from \"react\";\r\nexport const LinkWithTargetAndRel = ({ linkUrl, children, linkOpensInNewTab, className }) => {\r\n if (!linkUrl) {\r\n return React.createElement(React.Fragment, null, \"children\");\r\n }\r\n return (React.createElement(\"a\", { className: className, href: linkUrl, target: linkOpensInNewTab ? \"_blank\" : undefined, rel: linkOpensInNewTab ? \"noreferrer\" : \"\" }, children));\r\n};\r\n","import React from \"react\";\r\nimport { Heading } from \"../../Heading\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { LinkWithTargetAndRel } from \"../LinkWithTargetAndRel\";\r\nexport const CardWithIconTextsLink = ({ iconUrl, subTitle, title, cardBackground, contentTextColor, iconAlt, linkUrl, linkText, linkOpensInNewTab = false, }) => (React.createElement(\"div\", { className: \"card-with-icon-texts-link\", style: {\r\n \"--content-text-color\": contentTextColor,\r\n \"--background-color\": cardBackground,\r\n } },\r\n React.createElement(ImgV2, { src: iconUrl, alt: iconAlt, className: \"card-with-icon-texts-link__icon\" }),\r\n subTitle && (React.createElement(\"div\", { className: \"card-with-icon-texts-link__subtitle\", dangerouslySetInnerHTML: {\r\n __html: subTitle,\r\n } })),\r\n React.createElement(LinkWithTargetAndRel, { className: \"card-with-icon-texts-link__title-link\", linkUrl: linkUrl, linkOpensInNewTab: linkOpensInNewTab },\r\n React.createElement(Heading, { design: \"h6-v2dot6\", className: \"card-with-icon-texts-link__title\" }, title)),\r\n linkUrl && linkText && (React.createElement(\"div\", { className: \"card-with-icon-texts-link__link\" },\r\n React.createElement(LinkWithTargetAndRel, { linkUrl: linkUrl, linkOpensInNewTab: linkOpensInNewTab }, linkText)))));\r\n","import React from \"react\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { CardWithIconTextsLink, } from \"./CardWithIconTextsLink/CardWithIconTextsLink\";\r\nimport { ButtonV2 } from \"../ButtonV2\";\r\nexport const M30CardsWithIconTextsLink = ({ title, subTitle, cards, backgroundColor, buttonUrl, buttonOpenInNewTab, buttonDesign, buttonLabel, }) => (React.createElement(ContainerFW, { className: \"g-container--new\", backgroundColor: backgroundColor },\r\n React.createElement(Container, { className: \"g-container--new\" },\r\n React.createElement(\"div\", { className: \"m30-cards-with-icon-texts-link\" },\r\n title && React.createElement(\"h2\", { className: \"h2-v2_6\" }, title),\r\n subTitle && React.createElement(\"p\", null, subTitle),\r\n React.createElement(\"div\", { className: \"m30-cards-with-icon-texts-link__cards\" }, Array.isArray(cards) &&\r\n cards.map((card, index) => (React.createElement(CardWithIconTextsLink, { key: index, iconUrl: card.iconUrl, iconAlt: card.iconAlt, title: card.title, subTitle: card.subTitle, cardBackground: card.cardBackground, contentTextColor: card.contentTextColor, linkText: card.linkText, linkUrl: card.linkUrl, linkOpensInNewTab: card.linkOpensInNewTab })))),\r\n buttonLabel && (React.createElement(ButtonV2, { href: buttonUrl, openInNewTab: buttonOpenInNewTab, design: buttonDesign, showArrowRight: true }, buttonLabel))))));\r\n","import React from \"react\";\r\nimport { ImgV2 } from \"../../ImgV2\";\r\nimport { Heading } from \"../../Heading\";\r\nexport const CardWithImageAndGradient = ({ cardImageUrl, subTitle, title }) => (React.createElement(\"div\", { className: \"card-with-image-gradient-root\" },\r\n React.createElement(\"div\", { className: \"card-with-image-gradient-root__imageWrapper\" },\r\n React.createElement(ImgV2, { src: cardImageUrl, alt: cardImageUrl })),\r\n React.createElement(\"div\", { className: \"card-with-image-gradient-root__textWrapper\" },\r\n React.createElement(Heading, { design: \"h3-semi-bold-small\" }, title),\r\n React.createElement(\"p\", { className: \"caption\" }, subTitle))));\r\n","import React from \"react\";\r\nimport { getColors, getClassConditionalAppend, getContainerClassPerMaxWidth } from \"../../utils\";\r\nimport { CardWithImageAndGradient } from \"./CardWithImageAndGradient/CardWithImageAndGradient\";\r\nimport { ContainerFW, Container } from \"../global\";\r\nexport const M31FiveCardsTitleText = ({ cards, subTitle, title, backgroundColor, titleAlignment, subTitleAlignment, titleColor = \"0E1D31\", subTitleColor = \"#3E4A5A\", containerMaxWidth }) => {\r\n const { bgColor } = getColors(backgroundColor);\r\n const containerMaxWidthClass = getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = getClassConditionalAppend(containerMaxWidthClass);\r\n return (React.createElement(\"div\", { className: \"five-cards-title-text-root\" },\r\n React.createElement(ContainerFW, { className: containerExtraClass, backgroundColor: bgColor },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { className: \"five-cards-title-text-root__textWrapper\" },\r\n React.createElement(\"div\", { className: \"h3-semi-bold\", dangerouslySetInnerHTML: {\r\n __html: title || \"\"\r\n }, style: { \"--title-text-alignment\": titleAlignment, \"--title-text-color\": titleColor } }),\r\n React.createElement(\"div\", { className: \"p-regular\", style: { \"--subTitle-text-alignment\": subTitleAlignment, \"--subTitle-text-color\": subTitleColor }, dangerouslySetInnerHTML: {\r\n __html: subTitle || \"\"\r\n } })),\r\n React.createElement(\"div\", { className: \"five-cards-title-text-root__cardsWrapper\" }, Array.isArray(cards) && cards.map((card) => (React.createElement(CardWithImageAndGradient, { key: `unique${card.title}`, ...card }))))))));\r\n};\r\n","import React from \"react\";\r\nexport const FormInputs = ({ email, name, phoneNumber, emailPlacerHolder, namePlacerHolder, phoneNumberPlacerHolder, inputHandler, buttonLabel, onSubmit, errorLabel, validateErrors }) => (React.createElement(\"form\", { className: \"form-inputs-root\", onSubmit: onSubmit },\r\n React.createElement(\"span\", null,\r\n React.createElement(\"input\", { onChange: inputHandler, value: name, type: \"text\", name: \"name\", id: \"name\", onBlur: validateErrors, placeholder: namePlacerHolder }),\r\n errorLabel?.name && React.createElement(\"p\", { className: \"errorLabel\" }, errorLabel.name)),\r\n React.createElement(\"span\", null,\r\n React.createElement(\"input\", { onChange: inputHandler, value: email, type: \"text\", name: \"email\", id: \"email\", onBlur: validateErrors, placeholder: emailPlacerHolder }),\r\n errorLabel?.email && React.createElement(\"p\", { className: \"errorLabel\" }, errorLabel.email)),\r\n React.createElement(\"span\", null,\r\n React.createElement(\"input\", { onChange: inputHandler, value: phoneNumber, type: \"text\", name: \"phoneNumber\", id: \"phoneNumber\", onBlur: validateErrors, placeholder: phoneNumberPlacerHolder }),\r\n errorLabel?.phoneNumber && React.createElement(\"p\", { className: \"errorLabel\" }, errorLabel.phoneNumber)),\r\n React.createElement(\"button\", { type: \"submit\" }, buttonLabel)));\r\n","import React from \"react\";\r\nimport { ButtonV2 } from \"../../ButtonV2\";\r\nexport const Overlay = ({ modalMessage, handleVisibility, modalButtonMessage }) => (React.createElement(\"div\", { className: 'overlay-wrapper' },\r\n React.createElement(\"div\", { className: \"overlay-wrapper__modal-wrapper\" },\r\n React.createElement(\"p\", { className: \"modal-message\" }, modalMessage),\r\n React.createElement(ButtonV2, { onClick: handleVisibility, design: \"cta-large-wbg\" }, modalButtonMessage))));\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { getClassConditionalAppend, getColors, getContainerClassPerMaxWidth, isValidEmail, isValidName, isValidPhone } from \"../../utils\";\r\nimport { Container, ContainerFW } from \"../global\";\r\nimport { Heading } from \"../Heading\";\r\nimport { FormInputs } from \"./FormInputs/FormInputs\";\r\nimport { Overlay } from \"./Overlay/Overlay\";\r\nconst initialUserData = {\r\n name: {\r\n value: \"\",\r\n isValid: false,\r\n },\r\n email: {\r\n value: \"\",\r\n isValid: false,\r\n },\r\n phoneNumber: {\r\n value: \"\",\r\n isValid: false,\r\n }\r\n};\r\nconst initialErrorData = {\r\n email: undefined,\r\n phoneNumber: undefined,\r\n name: undefined,\r\n};\r\nexport const M35IntouchForm = ({ subTitle, title, userData, buttonLabel, titleAlignment, titleColor, aubTitleColor, subTitleAlignment, backgroundColor, containerMaxWidth, backgroundImageUrl, emailErrorLabel, phoneErrorLabel, requiredFieldLabel, nameErrorLabel, modalMessage, modalButtonMessage, campaignId, errorModalMessage, sendingInfoMessage }) => {\r\n const [formData, setFormData] = React.useState(initialUserData);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [errorValue, setErrorValue] = useState(initialErrorData);\r\n const [currentModalMessage, setCurrentModalMessage] = useState(modalMessage);\r\n const { bgColor } = getColors(backgroundColor);\r\n const containerMaxWidthClass = getContainerClassPerMaxWidth(containerMaxWidth);\r\n const containerExtraClass = getClassConditionalAppend(containerMaxWidthClass);\r\n const handleCheck = useCallback((htmlId, value) => {\r\n let validated;\r\n if (htmlId === \"name\") {\r\n validated = isValidName(value);\r\n if (!validated) {\r\n setErrorValue((prev) => ({ ...prev, name: nameErrorLabel }));\r\n return validated;\r\n }\r\n setErrorValue((prev) => ({ ...prev, name: undefined }));\r\n return validated;\r\n }\r\n if (htmlId === \"email\") {\r\n validated = isValidEmail(value);\r\n if (!validated) {\r\n setErrorValue((prev) => ({ ...prev, email: emailErrorLabel }));\r\n return validated;\r\n }\r\n setErrorValue((prev) => ({ ...prev, email: undefined }));\r\n return validated;\r\n }\r\n validated = isValidPhone(value);\r\n if (!validated) {\r\n setErrorValue((prev) => ({ ...prev, phoneNumber: phoneErrorLabel }));\r\n return validated;\r\n }\r\n setErrorValue((prev) => ({ ...prev, phoneNumber: undefined }));\r\n return validated;\r\n }, [emailErrorLabel, nameErrorLabel, phoneErrorLabel]);\r\n const handleUserInput = useCallback((event) => {\r\n const value = event.target.value;\r\n const htmlId = event.target.id;\r\n const isValid = handleCheck(htmlId, value);\r\n setFormData((prevData) => ({\r\n ...prevData,\r\n [htmlId]: {\r\n value,\r\n isValid,\r\n }\r\n }));\r\n }, [handleCheck]);\r\n const constructRequestFormData = React.useCallback(() => {\r\n const requestFormData = new FormData();\r\n for (const key in formData) {\r\n if (key !== \"formFile\") {\r\n requestFormData.append(key, formData[key].value);\r\n }\r\n else {\r\n const files = formData[key];\r\n files.forEach((file) => {\r\n requestFormData.append(\"formFile\", file);\r\n });\r\n }\r\n }\r\n campaignId && requestFormData.append(\"campaignId\", campaignId);\r\n return requestFormData;\r\n }, [campaignId, formData]);\r\n const sendRequest = React.useCallback(async () => {\r\n setIsLoading(true);\r\n setCurrentModalMessage(sendingInfoMessage);\r\n const requestFormData = constructRequestFormData();\r\n try {\r\n const r = await fetch(\"/m35intouchform\", {\r\n method: \"POST\",\r\n body: requestFormData\r\n });\r\n if (r.status === 200) {\r\n setCurrentModalMessage(modalMessage);\r\n }\r\n else {\r\n setCurrentModalMessage(errorModalMessage);\r\n }\r\n }\r\n catch {\r\n setCurrentModalMessage(errorModalMessage);\r\n }\r\n }, [constructRequestFormData, errorModalMessage, modalMessage, sendingInfoMessage]);\r\n const handleSubmit = useCallback(async (event) => {\r\n event.preventDefault();\r\n if (isLoading) {\r\n return;\r\n }\r\n let canSubmit = true;\r\n const inputValues = Object.keys((formData));\r\n inputValues.forEach((fieldName) => {\r\n if (!formData[fieldName].isValid) {\r\n canSubmit = false;\r\n }\r\n });\r\n inputValues.forEach((a) => (handleCheck(a, formData[a].value)));\r\n if (!canSubmit) {\r\n return;\r\n }\r\n if (canSubmit) {\r\n await sendRequest();\r\n }\r\n setFormData(initialUserData);\r\n setErrorValue(initialErrorData);\r\n }, [formData, handleCheck, isLoading, sendRequest]);\r\n const handleModalVisibility = useCallback(() => {\r\n setIsLoading(!isLoading);\r\n }, [isLoading]);\r\n const handleErrorValidator = useCallback((event) => {\r\n const value = event.target.value;\r\n const htmlId = event.target.id;\r\n handleCheck(htmlId, value);\r\n }, [handleCheck]);\r\n return (React.createElement(\"div\", { className: \"in-touch-form-root\", style: { \"--background-image-url\": `url(${backgroundImageUrl})` }, id: \"M35-Intouch-Form-identifier\" },\r\n React.createElement(ContainerFW, { className: containerExtraClass, backgroundColor: bgColor },\r\n React.createElement(Container, { className: containerExtraClass },\r\n React.createElement(\"div\", { className: \"in-touch-form\" },\r\n (isLoading) && React.createElement(Overlay, { handleVisibility: handleModalVisibility, modalMessage: currentModalMessage, modalButtonMessage: modalButtonMessage }),\r\n React.createElement(\"div\", { className: \"in-touch-form__textWrapper\" },\r\n title && React.createElement(Heading, { className: \"h2-regular\", style: { \"--title-text-alignment\": titleAlignment, \"--title-text-color\": titleColor } }, title),\r\n React.createElement(\"p\", { className: \"in-touch-form-subTitle\", style: { \"--subTitle-text-alignment\": subTitleAlignment, \"--subTitle-text-color\": aubTitleColor } }, subTitle)),\r\n React.createElement(FormInputs, { errorLabel: errorValue, onSubmit: handleSubmit, name: formData.name.value, email: formData.email.value, phoneNumber: formData.phoneNumber.value, emailPlacerHolder: userData.emailPlacerHolder, namePlacerHolder: userData.namePlacerHolder, phoneNumberPlacerHolder: userData.phoneNumberPlacerHolder, inputHandler: handleUserInput, buttonLabel: buttonLabel, validateErrors: handleErrorValidator }))))));\r\n};\r\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__1024__","__WEBPACK_EXTERNAL_MODULE__314__","Object","defineProperty","value","e","t","n","default","i","r","assign","arguments","length","prototype","hasOwnProperty","call","apply","o","indexOf","getOwnPropertySymbols","propertyIsEnumerable","s","c","useState","useEffect","window","matchMedia","concat","addEventListener","addListener","removeEventListener","removeListener","devicePixelRatio","Math","min","max","SuppressedError","l","observe","unobserve","disconnect","f","globalThis","ResizeObserver","d","v","h","width","height","innerWidth","innerHeight","a","useRef","contentRect","clearTimeout","setTimeout","current","p","useDevicePixelRatio","fitCanvasToArtboardHeight","useOffscreenRenderer","shouldResizeCanvasToContainer","b","w","riveLoaded","canvasElem","containerRef","options","u","onCanvasHasResized","artboardBounds","y","g","m","R","C","E","O","x","T","P","L","S","k","customDevicePixelRatio","M","j","z","H","maxX","I","maxY","D","useCallback","clientWidth","clientHeight","style","IntersectionObserver","elementsMap","Map","onObserved","forEach","get","target","observer","registerCallback","set","removeCallback","delete","setContainerRef","setCanvasRef","className","children","createElement","ref","verticalAlign","Boolean","layout","fit","Fit","Layout","layoutScaleFactor","devicePixelRatioUsed","artboardWidth","artboardHeight","startRendering","resizeToCanvas","bounds","Rive","canvas","on","EventType","Load","cleanup","getBoundingClientRect","top","document","documentElement","bottom","left","right","shouldUseIntersectionObserver","isIntersecting","stopRendering","boundingClientRect","animations","isPlaying","stop","animationNames","play","isPaused","pause","container","rive","RiveComponent","src","artboard","stateMachines","shouldDisableRiveListeners","automaticallyHandleEvents","autoplay","useResizeCanvas","useRive","useRiveFile","Promise","next","throw","done","then","label","sent","trys","ops","create","Iterator","return","Symbol","iterator","TypeError","pop","push","RiveFile","init","getInstance","LoadError","console","error","buffer","riveFile","status","useStateMachineInput","stateMachineInputs","find","name","keys","enumerable","lottie","React","_interopDefaultLegacy","lottie__default","React__default","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","source","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","arg","input","hint","prim","toPrimitive","undefined","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_x","_r","_arr","_n","_d","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","_excluded$1","useLottie","props","animationData","loop","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_useState2","animationLoaded","setAnimationLoaded","animationInstanceRef","animationContainer","onUnmount","_a","forcedConfigs","destroy","config","loadAnimation","currentRawFrame","setSegment","resetSegments","listeners","handler","listener","deregisterList","map","deregister","View","setSpeed","speed","goToAndStop","isFrame","goToAndPlay","setDirection","direction","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","animationContainerRef","animationItem","useInitInteractivity","_ref","wrapperRef","mode","actions","handleCursor","mouseMoveHandler","mouseOutHandler","assignedSegment","scrollHandler","wrapper","_container$getBoundin","currentPercent","action","_ref2","visibility","type","frames","frameToGo","ceil","firstFrame","_y","cursorX","cursorY","_container$getBoundin2","pos","_ref3","position","isNaN","xPercent","yPercent","ev","clientX","clientY","useLottieInteractivity","_ref4","lottieObj","_excluded","_b","_c","interactivity","lottieProps","_useLottie","_","N","Y","F","A","W","q","K","B","Q","V","U","$","G","J","X","Z","ee","te","re","ae","ne","oe","se","ie","pe","le","ce","de","ue","fe","he","me","ye","ve","De","ge","ke","we","be","Se","Ce","Me","Pe","Ee","Ne","xe","Ye","Oe","Ie","Te","Re","Le","Fe","Ae","We","qe","Ke","Be","Qe","He","je","Ve","Ue","ze","$e","Ge","Je","Xe","Ze","et","tt","rt","at","nt","ot","st","it","pt","lt","ct","dt","ut","ft","ht","mt","yt","vt","Dt","St","gt","kt","wt","Ot","bt","Ct","bind","_t","Pt","Mt","setPrototypeOf","getPrototypeOf","__proto__","Et","ReferenceError","Nt","Reflect","construct","sham","Proxy","valueOf","xt","Yt","It","date","Tt","time","Rt","match","dateTime","replace","Ft","At","Date","Wt","qt","awareOfUnicodeTokens","tr","warn","er","locale","Kt","dateFormat","Bt","hour","minute","second","Qt","weekStartsOn","Ht","jt","Vt","Ut","zt","$t","Gt","Jt","Xt","Zt","start","end","__localeId__","__localeData__","rr","ar","nr","minDate","maxDate","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","ur","some","or","sr","ir","pr","lr","cr","dr","fr","hr","excludeTimes","includeTimes","filterTime","mr","minTime","maxTime","Error","yr","every","vr","Dr","gr","kr","wr","br","includes","Sr","holidayName","holidayNames","Cr","Mr","startPeriod","endPeriod","Pr","getSeconds","getMilliseconds","getTime","Er","Nr","year","state","yearsList","onClick","onChange","unshift","incrementYears","decrementYears","onCancel","setState","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","dropdownRef","createRef","ariaSelected","scrollTop","offsetTop","scrollHeight","renderOptions","Component","xr","Yr","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Or","month","monthNames","isSelectedMonth","Ir","Tr","useShortMonthInDropdown","Rr","Lr","monthYearsList","scrollableMonthYearDropdown","Fr","Ar","parseInt","Wr","isDisabled","onMouseEnter","preventDefault","handleOnKeyDown","day","disabledKeyboardNavigation","isSameDay","selected","isSameWeek","preSelection","calendarStartDay","showWeekPicker","highlightDates","holidays","has","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isSelected","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","getHolidaysClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","join","showWeekNumber","isStartOfWeek","getTabIndex","isInputFocused","activeElement","body","inline","shouldFocusDayInline","contains","classList","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","dayEl","focus","preventScroll","renderDayContents","getClassNames","onKeyDown","handleClick","handleMouseEnter","tabIndex","getAriaLabel","role","title","getTitle","handleFocusDay","qr","weekNumberEl","handleFocusWeekNumber","weekNumber","ariaLabelPrefix","Kr","onDayClick","onDayMouseEnter","onWeekSelect","handleDayClick","shouldCloseOnSelect","formatWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayMouseEnter","startOfWeek","renderDays","Br","Qr","Hr","jr","grid","verticalNavigationOffset","Vr","Ur","orderInDisplay","onMouseLeave","isInSelectingRangeMonth","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthClick","handleMonthNavigation","QUARTER_REFS","onQuarterClick","handleQuarterNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isSelectingMonthRangeStart","isSelectingMonthRangeEnd","isCurrentMonth","isSelectedQuarter","isInSelectingRangeQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","renderMonthContent","renderQuarterContent","onMonthKeyDown","onMonthMouseEnter","getMonthClassNames","getMonthContent","onQuarterKeyDown","onQuarterMouseEnter","getQuarterClassNames","getQuarterTabIndex","isCurrentQuarter","getQuarterContent","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","zr","requestAnimationFrame","list","centerLi","calcCenterPosition","monthRef","header","timeClassName","isSelectedTime","isDisabledTime","injectTimes","intervals","previousSibling","nextSibling","format","openToDate","sort","getFullYear","getMonth","getDate","round","reduce","liClasses","scrollToTheSelectedTime","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","$r","yearItemNumber","YEAR_REFS","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","renderYearContent","onYearMouseEnter","onYearMouseLeave","onYearKeyDown","getYearTabIndex","getYearClassNames","getYearContent","getYearContainerClassNames","clearSelectingDate","Gr","setHours","split","setMinutes","timeString","customTimeInput","cloneElement","placeholder","required","timeInputLabel","renderTimeInput","Jr","showPopperArrow","arrowProps","Xr","Zr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","isRenderAriaLiveMessage","handleCustomMonthChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","handleTodayButtonClick","monthDate","renderCurrentMonth","onFocus","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","monthAriaLabelPrefix","handleOnDayKeyDown","handleMonthMouseLeave","handleYearMouseEnter","handleYearMouseLeave","timeFormat","timeIntervals","withPortal","getHours","getMinutes","showTimeInput","getDateInView","assignMonthContainer","display","renderAriaLiveRegion","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","renderChildren","ea","icon","isValidElement","xmlns","viewBox","ta","el","portalRoot","portalHost","getElementById","portalId","setAttribute","appendChild","removeChild","createPortal","ra","disabled","aa","tabLoopRef","querySelectorAll","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","na","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","targetComponent","popperOnKeyDown","Popper","modifiers","placement","popperContainer","Manager","Reference","oa","sa","ia","pa","getPreSelection","open","startOpen","preventFocus","focused","preventFocusTimeout","blur","cancelFocusInput","calcInitialState","lastPreSelectChange","ca","setBlur","inputValue","readOnly","preventOpenOnFocus","clearPreventFocusTimeout","setFocus","inputFocusTimeout","onBlur","onChangeRaw","isDefaultPrevented","la","strictParsing","formatLong","hours","minutes","seconds","setSelected","sendFocusBackToInput","showDateSelect","allowSameDay","focusSelectedMonth","onInputClick","calendar","componentNode","querySelector","inputOk","handleSelect","onInputError","code","msg","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","modifyHolidays","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","id","form","autoFocus","placeholderText","autoComplete","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onScroll","onCalendarOpen","onCalendarClose","showIcon","calendarIconClassname","toggleCalendarOnIconClick","toggleCalendar","renderDateInput","renderClearButton","renderCalendar","onPortalKeyDown","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","_setPrototypeOf","_assertThisInitialized","self","isNodeFound","ignoreClass","correspondingElement","seed","passiveEventSupport","uid","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","instance","eventName","handlerOptions","passive","WrappedComponent","_class","_temp","componentName","displayName","_Component","subClass","superClass","_this","__outsideClickHandler","event","__clickOutsideHandlerProp","handleClickOutside","__getComponentNode","setClickOutsideRef","findDOMNode","enableOnClickOutside","_uid","noop","testPassiveEventSupport","events","eventTypes","evt","initTimeStamp","timeStamp","stopPropagation","parentNode","host","findHighest","composed","composedPath","shift","disableOnClickOutside","fn","getRef","instanceRef","performance","now","_proto","isReactComponent","componentDidMount","componentDidUpdate","componentWillUnmount","render","_this$props","wrappedRef","defaultProps","getClass","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","node","Provider","unwrapArray","safeInvoke","_len","args","_key","setRef","fromEntries","entries","acc","useIsomorphicLayoutEffect","getWindow","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","navigator","userAgentData","brands","item","brand","version","userAgent","isLayoutViewport","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","offsetLeft","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","modifierPhases","order","visited","Set","result","modifier","add","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","pending","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","phase","orderModifiers","existing","data","enabled","_ref$options","effect","cleanupFn","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","resolve","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","hash","getOppositePlacement","matched","getOppositeVariationPlacement","parent","child","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","removeAttribute","initialStyles","margin","property","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","createPopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","innerRef","setPopperElement","_React$useState2","setArrowElement","_usePopper","childrenProps","hide","refHandler","AlphabetListItem","term","definition","AlphabetList","handleGlossaryTitle","useMemo","charAt","toUpperCase","setData","selectedType","setSelectedType","letters","content","letter","parts","location","href","lastSegment","searchQuery","searchResultsText","noResultsText","getHighlightedText","text","highlightedText","highLightColor","RegExp","part","isPartHighlighted","Fragment","backgroundColor","buttonArrowRight","fill","strokeWidth","strokeLinecap","strokeLinejoin","buttonArrowUp","stroke","buttonArrowDown","ButtonV2","design","classes","hrefTarget","openInNewTab","mountArrows","showArrowRight","showArrowUp","showArrowDown","anchor","iconHover","spn","cursor","classesWrapper","SearchInput","onSearch","searchValue","searchPlaceholder","setInputValue","timeoutId","handleKeyDown","maxLength","stripHTML","myString","innerHTML","textContent","innerText","requestOptions","method","headers","ERROR_TYPE_MAP","NoResults","noResults","SearchResultItem","summary","url","groomResultSummary","plainText","SearchResults","subtitle","resultsList","onPageChange","totalResults","resultsPerPage","currentPage","noResultsFoundText","handleSearch","onSearchChange","inputSearchValue","searchResultsFor","view","setView","pageViewStyle","onViewUpdate","totalPagesCount","previousResultsCount","remainingResultsCount","pageResultsCount","firstResultNum","lastResultNum","calculateResultsStats","hasResults","JobBoardPagination","numOfPages","isSmallScreen","getCorrectedPageNum","pageNum","addHistoryEntry","newHistoryEntry","useCurrentParamValue","replaceCurrentEntry","origin","pathname","search","searchParms","URLSearchParams","currentSearchValue","SEARCH_PARAM_NAME","currentPageNum","PAGENUM_PARAM_NAME","newParamValue","newPageNum","getNewParamValues","paramValue","pageNumValue","newUrl","tweakedParamValues","tweakCurrentParamValues","checkIsNewEntryAllowed","entryState","pageName","paramName","resultsPageNum","history","replaceState","pushState","Contacts","mainTitle","subTitle","chatLabel","emailLabel","phoneNumberLabel","chatIcon","emailIcon","phoneNumberIcon","chatCallFunction","onClickFn","Heading","dangerouslySetInnerHTML","__html","Img","CreateAccount","secondTitle","buttonLabel","buttonHref","ContactUs","contacts","createAccountValues","INITIAL_SEARCH_STATUS","requestedSearchValue","isLoading","errorMessage","requestTimestamp","GlobalSearch","searchResultsTitle","searchResultsSubtitle","initialSearchValue","initialResults","sessionToken","apiUrl","currentCulture","contact","setSearchValue","results","setResults","setStatus","abortController","contactValues","bgColor","fetchResults","isRefetch","abort","AbortController","async","requestUrl","payloadObj","signal","queryParams","prev","response","fetch","ok","isError","errorType","json","responseCode","message","fetchSearchResults","token","pageNumber","wholeSiteCulture","query","items","catch","finally","debouncedSearch","debounce","searchFunction","onRefetch","setTriggerRerenderTime","latestFetchTimestampRef","getPossibleRefetchValue","triggerRefetch","handleHistoryNavigation","refetchValue","handleHistoryOnMount","useGlobalSearchNavigation","checkIsValidSearchValue","handlePageChange","behavior","LoadingSpinner","MobileTrigger","active","setActive","getElementsByTagName","remove","ClickWrapper","func","click","dropdownType","sectionWrapperRef","mouseOver","colsLength","param","sections","optionalParam","article","navWidget","linkUrl","alt","navCardWithLink","opensInNewTab","imageUrl","description","navCardWithMoreLink","linkMoreUrl","sectionItem","widget","cardWithLink","cardWithMore","handleValidMenuItems","section","sectionItems","mouseInHandler","overlayRef","ContainerFW","Container","LoginButtons","activeMenu","navigationItems","activeMenuHandler","link","SearcherWidgets","searchItems","activeWidget","setActiveWidget","searchActiveValue","searchFieldHandler","handleOnSearchClick","clickHandler","activeWidgetHandler","val","bodyElement","Navigation","dropdownData","setDropdownData","setDropdownType","setActiveMenu","mouseOverDropdown","setMouseOverDropdown","mouseOverMenu","setMouseOverMenu","isLarge","isSmall","isMedium","largeView","setLargeView","widgets","language","handleCloseDropDown","handleMouseOut","handleMouseIn","renderButtons","searchWidgetProps","currentIcon","Logo","logoHref","imageUrlReverse","menuTitle","menuitem","NavigationWidgets","outsideClickHandler","iconElement","SecondaryNavigation","dropdownHandler","itemWithDropdown","MobileHeader","TabletHeader","DesktopHeader","secondaryNavigation","NavigationHeader","riskWarningMessage","RiskWarningRibbon","descriptionHtml","imgUrl","imgUrlReverse","headingClassName","getClassName","BaseImg","loading","onError","srcset","sizes","handleError","srcSet","sources","ResponsiveImg","media","removeLeadingTilda","string","generateSrcsetAttribute","largeViewImageUrl","mediumViewImageUrl","smallViewImageUrl","srcsetWidthDescriptors","descriptorsArray","checkIsHelperDataValid","helperProps","values","propValue","descriptor","ResponsiveImgDecorator","htmlSrcset","sizesDescriptor","setCurrentPage","linkPagination","scrollTopOnPageChange","btnPageIndexArr","setBtnPageIndexArr","nextPage","scrollTo","previousPage","changePage","numOfSlots","incremntingArr","arrayLength","dotsLeftShow","dotsRightShow","halfNumOfSlots","floor","maxSlotsWithoutCurrentPage","leftSideSlots","rightSideSlots","splice","currentPageIndex","findIndex","pageIndexValue","logo","cls","lightLogo","darkLogo","logoWithSource","isLanding","expanded","setExpanded","exp","mouseClickEvents","simulateMouseClickOnZendeskChatIcon","closest","currentTarget","mouseEventType","dispatchEvent","MouseEvent","bubbles","cancelable","buttons","handleCardClick","cardUrl","providedUrl","determineContactItemType","itemUrl","Col","RowMain","Cols2","Cols3","Cols4","Cols5","Cols6","WidgetsContainer","colsCount","random","CaretDown","CaretUp","GrayCheckMark","rx","fillOpacity","GreenCheckIcon","color","IconHamburger","MultiplesSectorsIcon","clipPath","PlusIcon","accountTypesTick","IconChat","cx","cy","ry","IconChevronDown","IconClose","downloadExternalIcon","IconGlobe","handIcon","IconArrowLeft","IconCalendar","IconFb","FlameIcon","IconIn","IconNoResults","IconTw","IconMagnifyingGlass","useMarketSentiment","securityKey","marketSentiments","setMarketSentiments","setError","getMarketSentiment","statusText","fetchData","usePagination","itemsPerPage","currentPageItems","usePageViewStyle","newView","viewStyle","viewSizes","smallMaxWidth","mediumMaxWidth","pageviewstyle","getView","subscribe","callback","subscribers","maxSubscribers","unsubscribe","subscriberIndex","onResize","calculateView","viewClasses","small","medium","large","onResizeDebounced","capitalizeString","checkIsNumber","duplicateArrayItems","times","curr","getClassConditionalAppend","extraClassName","getColors","textColor","white","dark","CONTAINER_CLASS_PER_MAX_WIDTH","getContainerClassPerMaxWidth","maxWidth","keyFound","VIDEO_TYPE_MAP","mp4","webm","getVideoType","videoSrc","extension","handleLinkTarget","isExternalLocation","sanitizeUrl","startsWith","isValidName","isValidPhone","phone","isValidEmail","email","__webpack_modules__","__unused_webpack___webpack_module__","__webpack_exports__","_scriptDir","currentScript","moduleArg","fa","ob","Tb","cancelAnimationFrame","size","Rb","toFixed","Ob","ha","assert","ready","onRuntimeInitialized","decodeAudio","decodeFont","FileAssetLoader","ptrToAsset","ptrToFileAsset","isImage","ptrToImageAsset","isFont","ptrToFontAsset","isAudio","ptrToAudioAsset","CustomFileAssetLoader","extend","__construct","loadContents","__parent","Gb","CDNFileAssetLoader","cdnUuid","cdnBaseUrl","XMLHttpRequest","responseType","onreadystatechange","readyState","decode","Uint8Array","send","FallbackFileAssetLoader","kb","addLoader","computeAlignment","ja","ka","alpha","depth","stencil","antialias","premultipliedAlpha","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","enableExtensionsByDefault","explicitSwapControl","renderViaOffscreenBackBuffer","getContext","log","createShader","shaderSource","compileShader","getShaderInfoLog","attachShader","isContextLost","getParameter","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_SIZE","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","bindAttribLocation","linkProgram","getProgramInfoLog","trim","getUniformLocation","useProgram","bindBuffer","ARRAY_BUFFER","createBuffer","enableVertexAttribArray","ELEMENT_ARRAY_BUFFER","uniform1i","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","hc","Mb","deleteTexture","Lb","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_LINEAR","generateMipmap","Qb","disable","SCISSOR_TEST","clearColor","clear","COLOR_BUFFER_BIT","enable","ba","wb","bufferData","DYNAMIC_DRAW","bufferSubData","Ta","Db","indices","image","Ka","Ja","mc","scissor","Ya","Za","jb","Ac","uniform4f","Ba","Ca","uniform2f","ic","jc","vertexAttribPointer","FLOAT","drawElements","TRIANGLES","UNSIGNED_SHORT","srcOver","screen","overlay","darken","lighten","colorDodge","colorBurn","hardLight","softLight","difference","exclusion","hue","saturation","luminosity","drawWidth","drawHeight","RenderPaintStyle","RenderPath","RenderPaint","Renderer","StrokeCap","StrokeJoin","BlendMode","FillRule","evenOdd","RenderImage","xa","__destruct","URL","revokeObjectURL","Wa","Image","createObjectURL","Blob","onload","Fb","Path2D","rewind","addPath","DOMMatrix","fillRule","Va","moveTo","lineTo","cubicTo","bezierCurveTo","close","closePath","Xa","thickness","Ib","miter","Ia","bevel","cap","butt","Ha","square","Hb","blendMode","Eb","clearGradient","linearGradient","yb","zb","bb","cb","Ra","radialGradient","ec","addStop","completeGradient","draw","globalCompositeOperation","createRadialGradient","sqrt","createLinearGradient","da","addColorStop","strokeStyle","lineWidth","lineCap","lineJoin","fillStyle","CanvasRenderer","Ua","save","restore","rotate","sin","cos","_drawPath","_drawRiveImage","globalAlpha","drawImage","_getMatrix","_drawImageMesh","Yb","Zb","Ga","DynamicRectanizer","addRect","$b","ac","Float32Array","Uint16Array","za","qd","resetTransform","bc","_clipPath","clip","clearRect","flush","translate","makeRenderer","decodeImage","renderFactory","makeRenderPaint","makeRenderPath","makeRenderImage","total","loaded","load","rd","RendererWrapper","align","enableFPSCounter","disableFPSCounter","resolveAnimationFrame","ua","va","ma","importScripts","qa","substr","lastIndexOf","onerror","ya","wa","print","printErr","thisProgram","wasmBinary","noExitRuntime","WebAssembly","Aa","Da","Ea","Fa","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","HEAPU32","Uint32Array","HEAPF32","HEAPF64","Float64Array","La","Ma","Na","Oa","preRun","Pa","Qa","onAbort","RuntimeError","Sa","locateFile","credentials","arrayBuffer","instantiate","$a","db","AudioContext","webkitAudioContext","capture","ga","stopped","xb","yc","Cb","Sc","Bb","unlock","resume","ab","pb","mediaDevices","getUserMedia","sampleRate","suspend","createScriptProcessor","onaudioprocess","inputBuffer","getChannelData","outputBuffer","numberOfChannels","audio","video","createMediaStreamSource","connect","destination","eb","fb","gb","hb","exec","ib","crypto","getRandomValues","lb","mb","TextDecoder","nb","subarray","fromCharCode","charCodeAt","qb","rb","sb","tb","ub","vb","seekable","read","timestamp","write","prompt","readline","Fc","Hc","Ec","Gc","Dc","cc","dc","Ub","createNode","dir","Ab","stream","file","Kc","Jc","Mc","Oc","Lc","Bc","Nc","Ic","Jb","Cc","byteOffset","path","Kb","Nb","lc","Pb","Vb","flags","Sb","Wb","Qc","kc","Xb","zc","logReadFiles","fc","gc","pc","stack","nc","oc","qc","rc","sc","tc","uc","vc","wc","xc","count","Pc","FinalizationRegistry","unregister","register","Rc","fromWireType","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","clone","gd","hd","toWireType","jd","kd","ld","md","nd","od","pd","sd","td","ud","vd","wd","xd","yd","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Nd","Hd","Kd","Ld","Md","Od","USER","LOGNAME","PATH","PWD","HOME","LANG","languages","Pd","Qd","Rd","byteLength","BindingError","super","count_emval_handles","PureVirtualError","Td","Ud","getInheritedInstanceCount","getLiveInheritedInstances","flushPendingDeletes","setDelayFunction","InternalError","isAliasOf","isDeleted","deleteLater","argPackAdvance","readValueFromPointer","deleteObject","pointerType","UnboundTypeError","Xd","__syscall_fcntl64","Vd","__syscall_ioctl","__syscall_openat","_embind_create_inheriting_constructor","implement","notifyOnDestruction","_embind_finalize_value_object","_embind_register_bigint","_embind_register_bool","_embind_register_class","_embind_register_class_class_function","substring","_embind_register_class_class_property","_embind_register_class_constructor","_embind_register_class_function","_embind_register_class_property","_embind_register_emval","_embind_register_enum","_embind_register_enum_value","_embind_register_float","_embind_register_function","_embind_register_integer","_embind_register_memory_view","_embind_register_std_string","ArrayBuffer","Uint8ClampedArray","Wd","_embind_register_std_wstring","_embind_register_value_object","_embind_register_value_object_field","_embind_register_void","_emscripten_get_now_is_monotonic","_emval_as","_emval_call_method","_emval_call_void_method","_emval_decref","_emval_get_method_caller","Jd","Id","_emval_get_module_property","_emval_get_property","_emval_incref","_emval_new_cstring","_emval_new_object","_emval_run_destructors","_emval_set_property","_emval_take_value","emscripten_asm_const_int","emscripten_date_now","emscripten_get_now","emscripten_memcpy_big","copyWithin","emscripten_resize_heap","grow","environ_get","environ_sizes_get","fd_close","fd_read","fd_seek","NaN","fd_write","strftime_l","getDay","setDate","setMonth","setFullYear","Sd","memory","__indirect_function_table","__wasm_call_ctors","monitorRunDependencies","clearInterval","env","wasi_snapshot_preview1","instantiateWasm","instantiateStreaming","free","malloc","_ma_device__on_notification_unlocked","ma_device__on_notification_unlocked","_ma_malloc_emscripten","ma_malloc_emscripten","_ma_free_emscripten","ma_free_emscripten","Yd","_ma_device_process_pcm_frames_capture__webaudio","ma_device_process_pcm_frames_capture__webaudio","_ma_device_process_pcm_frames_playback__webaudio","ma_device_process_pcm_frames_playback__webaudio","__errno_location","__getTypeName","$d","calledRun","noFSInit","stdin","stdout","stderr","postRun","__embind_initialize_bindings","_embind_initialize_bindings","dynCall_iiji","dynCall_jiji","dynCall_iiiji","dynCall_iij","dynCall_jii","dynCall_viijii","dynCall_iiiiij","dynCall_iiiiijj","dynCall_iiiiiijj","Zd","preInit","__WEBPACK_DEFAULT_EXPORT__","JSON","parse","__unused_webpack_module","Animation","_Animation__WEBPACK_IMPORTED_MODULE_0__","animation","runtime","playing","loopCount","scrubTo","LinearAnimationInstance","loopValue","advance","mix","BLANK_URL","_sanitizeUrl__WEBPACK_IMPORTED_MODULE_1__","registerTouchInteractions","_registerTouchInteractions__WEBPACK_IMPORTED_MODULE_0__","alignment","isTouchScrollEnabled","_prevEventType","_syntheticEventsActive","boundingRect","touches","changedTouches","getClientCoordinates","canvasX","canvasY","forwardMatrix","minX","minY","invertedMatrix","Mat2D","invert","canvasCoordinatesVector","Vec2D","transformedVector","mapXY","transformedX","transformedY","stateMachines_1","pointerMove","stateMachines_2","stateMachines_3","pointerDown","stateMachines_4","pointerUp","invalidProtocolRegex","htmlEntitiesRegex","htmlCtrlEntityRegex","ctrlCharactersRegex","urlSchemeRegex","relativeFirstCharacters","str","sanitizedUrl","dec","isRelativeUrlWithoutProtocol","urlSchemeParseResults","urlScheme","__webpack_module_cache__","moduleId","cachedModule","prop","toStringTag","Alignment","LoopType","RiveEventType","RuntimeLoader","StateMachineInput","StateMachineInputType","Testing","extendStatics","_rive_advanced_mjs__WEBPACK_IMPORTED_MODULE_0__","package_json__WEBPACK_IMPORTED_MODULE_1__","_animation__WEBPACK_IMPORTED_MODULE_2__","_utils__WEBPACK_IMPORTED_MODULE_3__","__extends","__","__awaiter","thisArg","_arguments","generator","reject","fulfilled","step","rejected","__generator","verb","op","RiveError","_super","isHandledError","params","_f","_g","Contain","Center","new","copyWith","runtimeFit","cachedRuntimeFit","Cover","cover","Fill","FitWidth","fitWidth","FitHeight","fitHeight","ScaleDown","scaleDown","none","runtimeAlignment","cachedRuntimeAlignment","TopLeft","topLeft","TopCenter","topCenter","TopRight","topRight","CenterLeft","centerLeft","CenterRight","centerRight","BottomLeft","bottomLeft","BottomCenter","bottomCenter","BottomRight","bottomRight","loadRuntime","wasmURL","callBackQueue","errorDetails","wasmError","CompileError","originalError","debug","backupJsdelivrUrl","setWasmUrl","awaitInstance","getWasmUrl","runtimeInput","fire","Trigger","StateMachine","stateMachine","inputs","StateMachineInstance","initInputs","names","stateChangedCount","stateChangedNameByIndex","advanceAndApply","reportedEventCount","reportedEventAt","inputCount","mapRuntimeInput","SMIInput","bool","asBool","number","asNumber","trigger","asTrigger","Animator","eventManager","animatables","fireEvent","mapToStringArray","instancedAnimationNames","instancedMachineNames","aIndex","mIndex","anim","animationByName","newAnimation","sm","stateMachineByName","newStateMachine","Play","Pause","paused","initLinearAnimations","initStateMachines","instancedStateMachineNames","scrub","forScrubbing","removedNames","animationsToRemove","machinesToRemove","Stop","atLeastOne","instancedName","animationCount","animationByIndex","stateMachineCount","stateMachineByIndex","handleLooping","Loop","PingPong","handleStateChanges","statesChanged","StateChange","handleAdvancing","Advance","SystemAudioStatus","EventManager","getListeners","currentListener","removeAll","TaskQueueManager","queue","task","process","AudioManager","_started","_enabled","_status","UNAVAILABLE","delay","timeout","reportToListeners","AudioStatusChange","enableAudio","AVAILABLE","testAudio","_audioContext","race","_establishAudio","listenForUserAction","once","establishAudio","audioManager","FakeResizeObserver","MyResizeObserver","observers","ObjectObservers","_elementsMap","_onObservedEntry","entry","observed","_resizeObserver","_onObserved","enableRiveAssetCDN","referenceCount","destroyed","assetLoader","onLoad","onLoadError","initData","loader","loadRiveFile","fileLoadErrorMessage","missingErrorMessage","off","removeAllRiveEventListeners","_observed","readyForPlaying","eventCleanup","_volume","_artboardWidth","_artboardHeight","_devicePixelRatioUsed","_hasZeroSize","_audioEventListener","_boundDraw","durations","frameTimes","frameCount","onCanvasResize","hasZeroSize","toggledDisplay","_layout","resizeDrawingSurfaceToCanvas","renderSecondTimer","HTMLCanvasElement","onPlay","onPause","onStop","onLoop","onStateChange","onAdvance","onloaderror","onplay","onpause","onstop","onloop","onstatechange","taskQueue","onSystemAudioChanged","volume","startingAnimationNames","startingStateMachineNames","removeRiveListeners","deleteRiveRenderer","setupRiveListeners","riveListenerOptions","activeStateMachines","animator","hasListeners","touchScrollEnabledOption","initializeAudio","hasAudio","initArtboardSize","artboardName","stateMachineNames","error_1","cleanupErrorMessage","initArtboard","drawFrame","instanceNames","rootArtboard","artboardByName","defaultArtboard","systemVolume","timeline","currentTime","frameRequestId","onSecond","before","lastRenderTime","elapsedTime","activeAnimations_1","needsScrub","first","didLoop","activeStateMachines_1","numEventsReported","event_1","OpenUrl","RiveEvent","newAnchorTag","alignRenderer","after","isStopped","cleanupInstances","retrieveTextRun","textRunName","textRun","getTextRunValue","setTextRunValue","textRunValue","artBoardName","scaleFactor","retrieveInputAtPath","inputByPath","setBooleanStateAtPath","inputName","setNumberStateAtPath","fireStateAtPath","retrieveTextAtPath","textByPath","getTextRunValueAtPath","textName","run","setTextRunValueAtPath","unsubscribeAll","fpsCallback","riveContents","artboards","artboardCount","artboardByIndex","artboardContents","name_1","inputContents","resetArtboardSize","req","Request","bytes","__global__","__globalThis__","DOMException","global","support","isArrayBufferView","isView","normalizeName","normalizeValue","iteratorFor","Headers","append","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","DataView","_bodyArrayBuffer","readAsText","chars","readArrayBufferAsText","formData","oldValue","methods","upcased","referrer","cache","reParamSearch","decodeURIComponent","Response","bodyInit","redirectStatuses","redirect","RangeError","request","aborted","xhr","abortXhr","rawHeaders","getAllResponseHeaders","line","responseURL","responseText","ontimeout","onabort","fixUrl","withCredentials","setRequestHeader","polyfill","ponyfill","ctx","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","findKey","valueCallback","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","firstWeekContainsDate","getDefaultOptions","dateLongFormatter","pattern","timeLongFormatter","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","UTC","setUTCFullYear","getUTCISOWeekYear","dirtyDate","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCHours","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","requiredArgs","toDate","diff","startOfUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCWeekYear","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","startOfUTCWeek","toInteger","firstWeek","startOfUTCWeekYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","getUTCDay","setUTCDate","getUTCDate","_options$weekStartsOn","addDays","dirtyAmount","amount","MILLISECONDS_IN_HOUR","addHours","addMilliseconds","MILLISECONDS_IN_MINUTE","addMinutes","addMonths","dayOfMonth","endOfDesiredMonth","addQuarters","months","addWeeks","days","addYears","pow","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","differenceInCalendarYears","endOfDay","endOfMonth","endOfWeek","endOfYear","addLeadingZeros","targetLength","sign","output","signedYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","formatTimezoneShort","dirtyDelimiter","absOffset","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","unit","lightFormatters","signedWeekYear","weekYear","week","isoWeek","dayOfYear","setUTCMonth","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","_localize","timezoneOffset","_originalDate","getTimezoneOffset","originalDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_options$locale2","_options$locale2$opti","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","isValid","subMilliseconds","formatterOptions","firstCharacter","longFormatter","longFormatters","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","startOfISOWeek","getISOWeek","getISOWeekYear","startOfISOWeekYear","getQuarter","getYear","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isDate","isEqual","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameYear","isWithinInterval","interval","startTime","endTime","dirtyDatesArray","datesArray","currentDate","parseISO","argument","_options$additionalDi","additionalDigits","dateStrings","dateString","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timeRegex","parseTimeUnit","validateTime","parseTime","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","parseFloat","_createForOfIteratorHelper","_inherits","_getPrototypeOf","_isNativeReflectConstruct","_createSuper","assertThisInitialized","_classCallCheck","toPropertyKey","_defineProperties","_createClass","Setter","_utcDate","ValueSetter","_Setter","validateValue","setValue","priority","subPriority","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","timestampIsSet","convertedDate","Parser","setter","validate","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","setUTCWeek","ISOWeekParser","dirtyISOWeek","setUTCISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setUTCDay","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","_step","subFnOptions","setters","tokens","usedTokens","_iterator","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","dirtyHours","dirtyMinutes","dirtyMonth","dateWithDesiredMonth","daysInMonth","monthIndex","lastDayOfMonth","getDaysInMonth","setQuarter","dirtyQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","setMilliseconds","startOfDay","startOfMonth","startOfQuarter","currentMonth","startOfYear","cleanDate","subDays","subMonths","subQuarters","subWeeks","subYears","argStr","wait","immediate","later","last","debounced","callNow","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","Function","objectToString","nativeMax","nativeMin","isObject","toNumber","isObjectLike","isSymbol","isBinary","leading","trailing","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","isInvoking","leadingEdge","cancel","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_isMuted","addAudio","setRate","rateValue","createAudio","assetPath","Howl","seek","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","createTypedArray","createRegularArray","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","comp","findComp","__used","stringify","ks","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","iterateLayers","textLayer","documentData","assets","checkChars","charData","ip","sk","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","formatResponse","contentTypeHeader","getResponseHeader","fullPath","errorCallback","completeData","payload","createProcess","processId","loadData","completeAnimation","ImagePreloader","proxyImage","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","callbacks","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","duration","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","fileName","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","pendingFrame","setLoop","isLooping","getPath","getAssetData","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","div","freeze","unfreeze","getRegisteredAnimations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","is","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","setLocation","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","miterLimit","angleOut","tangentAngle","angleIn","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","fStyle","fWeight","weight","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","p10","p11","p20","p21","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","familyArray","enabledFamilies","trimFontOptions","createHelper","def","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","codePoint","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","monoCase","sansCase","fPath","fOrigin","rel","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","initRenderable","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","matteMasks","gg","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","of","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","anchorGrouping","currentSize","currentPos","currentLine","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","clearCanvas","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","hideElement","showElement","prepareLayer","bufferCtx","getTransform","exitLayer","forceRealStack","transformHelper","dashResetter","preTransforms","co","wi","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","copy","flatten","typ","mixkey","smear","stringseed","tostring","shortseed","entropy","msCrypto","browser","plugins","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","anchor_point","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","$$typeof","hasOwn","classNames","appendClass","parseValue","newClass","fetchApi","_dotLottie","_animationsMap","_themeMap","_stateMachinesMap","_manifest","dotLottie","animationsMap","themeMap","stateMachinesMap","manifest","loadFromUrl","activeAnimationId","loadFromLottieJSON","loadFromArrayBuffer","getAnimation","inlineAssets","getTheme","getStateMachines","getStateMachine","__esModule","toJSON","peek","_state","_prevState","captureStackTrace","Lt","dictionary","$e$","terminate","consume","queueMicrotask","issues","nested","reason","validation","abortEarly","abortPipeEarly","issue","schema","_parse","literal","wrapped","tuple","union","CreateImageFactory","convolve","lanczos2","lanczos","Bounce","Normal","nativeEnum","defaultTheme","hover","intermission","playMode","themeColor","author","custom","record","keywords","revision","themes","states","onAfter","onEnter","onShow","playOnScroll","animationId","playbackSettings","jpeg","png","gif","bmp","webp","mpeg","mp3","Buffer","atob","btoa","originalSize","compression","success","tn","un","cn","hn","dn","pn","DotLottieStateMachineManager","all","Complete","DataFail","DataReady","Frame","Freeze","LoopComplete","Ready","VisibilityChange","Completed","Fetching","Frozen","Initial","Loading","Paused","Playing","Stopped","activeStateId","currentState","frame","seeker","background","currentAnimationId","visibilityPercentage","_lottie","_src","_animationConfig","_prevUserPlaybackOptions","_userPlaybackOptions","_hover","_counter","_intermission","_counterInterval","_container","_mode","_background","_animation","_defaultTheme","_activeAnimationId","_currentAnimationId","_testId","_listeners","_currentState","_stateBeforeFreeze","_light","_worker","_dotLottieLoader","_activeStateId","_inInteractiveMode","_scrollTicking","_scrollCallback","_onShowIntersectionObserver","_visibilityPercentage","_audios","_stateMachineManager","testId","_validatePlaybackOptions","setBackground","light","worker","_listenToHover","_listenToVisibilityChange","_onVisibilityChange","_getOption","_getPlaybackOptions","_setPlayerState","clearCountTimer","_getOptionsFromAnimation","_updateTestData","dotLottiePlayer","setContainer","setCurrentState","_notify","isPathJSON","updateSrc","setHover","setIntermission","setMode","_areNumbersInRange","_updatePosition","i$1","_handleAnimationComplete","_requestTick","stopPlayOnScroll","positionCallback","stopPlayOnShow","addIntersectionObserver","rootMargin","intersectionRatio","callbackOnIntersect","Event","playOnShow","_requireValidPlaybackOptions","_requireAnimationsInTheManifest","_requireAnimationsToBeLoaded","togglePlay","_getAnimationByIdOrIndex","_getActiveAnimationId","_startInteractivity","enterInteractiveMode","exitInteractiveMode","previous","getManifest","__lottie","unload","getAnimationInstance","getLottieWebVersion","getState","_frame","_seeker","_requireValidDirection","_requireValidSpeed","setAutoplay","_requireValidAutoplay","toggleAutoplay","setDefaultTheme","_requireValidLoop","toggleLoop","_requireValidBackground","revertToManifestValues","_setCurrentAnimation","addEventListeners","_getAudioFactory","DotLottieAudio","h$1","p$1","_getLottiePlayerInstance","setErrorState","_requireValidIntermission","isInteger","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_require__","amdO","getter","ns","chunkId","promises","miniCssF","script","needAttach","getAttribute","charset","onScriptComplete","doneFns","head","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","Bye","Hello","imageURL","SocialContacts","logoImageUrl","logoImageAlt","liveChatText","icons","iconLink","iconUrl","iconAlt","FooterBanner","imageAlt","TradingViewSmallButton","urlLink","AccordionMenu","isActive","setIsActive","isDesktop","setIsDesktop","handleToggle","accordionData","haveTVButton","buttonTVUrlLink","buttonTVImageUrl","buttonTVImageAlt","MainFooter","links","RiskWarning","textValue","setTextValue","WideRangeCard","toggle","toggleExpand","opened","caretIcon","instrumentTitle","instruments","linkText","arrowIcon","ScrollToTopButton","scrollToTopBtnRef","setScrollButtonDisplay","button","displayValue","scrollTopHandler","scrollListener","throttledScrollListener","throttledResizeListener","BellyBanner","buttonUrl","buttonText","IconChevronRight","IconHome","clipRule","Breadcrumbs","breadcrumbs","lightMode","itemScope","itemType","itemProp","breadcrumbText","breadcrumbLink","StaticBanner","rootClassName","isSmallBanner","primaryLinkText","secondaryLinkText","getRootClassName","primaryLinkUrl","secondaryLinkUrl","ssrDocument","createEvent","initEvent","importNode","hostname","protocol","doc","ssrWindow","go","back","CustomEvent","getPropertyValue","noExtend","nextSource","nodeType","keysArray","nextKey","desc","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","startPosition","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","animate","progress","easeProgress","currentPosition","slideEl","shadowEl","selector","matches","tag","elementStyle","parents","parentElement","elementOuterSize","includeMargins","deviceCached","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","isHorizontal","updateSlides","getDirectionLabel","getDirectionPropertyValue","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","minusOffset","swiperSlideOffset","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","nextEls","nextElementSibling","elementNextAll","prevSlide","prevEls","previousElementSibling","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","realIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","slideTo","internal","initial","animating","preventInteractionOnTransition","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","transitionEnd","isH","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSliding","loopFix","_clientLeft","slidePrev","normalizedSnapGrid","prevSnap","prevSnapIndex","slideReset","slideToClosest","currentSnap","slideToIndex","slideSelector","loopedSlides","onTouchStart","touchEventsData","evCache","simulateTouch","originalEvent","targetEl","touchEventsTarget","which","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","closestElement","allowClick","swipeHandler","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","touchAngle","zoom","touchMoveStopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","getTranslate","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","currentTranslate","disableParentSwiper","resistanceRatio","activeSlideIndex","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","setBreakpoint","isVirtualLoop","running","preventClicks","preventClicksPropagation","stopImmediatePropagation","newProgress","previousTranslate","processLazyPreloader","imageEl","lazyEl","lazyPreloaderClass","dummyEventAttached","dummyEventListener","device","domMethod","swiperMethod","updateOnWindowResize","ios","android","isGridEnabled","resizeObserver","virtualTranslate","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","eventsEmitter","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","transition","transitionDuration","loopCreate","slideRealIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","prepend","recalcSlides","currentSlideTranslate","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","isLocked","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","minRatio","wasLocked","lastSlideRightEdge","addClasses","suffixes","resultClasses","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","overrides","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","calcDevice","getDevice","needPerspectiveFix","major","minor","isWebView","calcBrowser","modules","__modules__","extendParams","swiperParams","defaults","passedParams","clickTimeout","velocities","imagesToLoad","setProgress","getSlideClasses","updates","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","newWidth","contentBoxSize","inlineSize","blockSize","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","Mousewheel","mousewheel","releaseOnEdges","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","mouseEntered","animateSlider","newEvent","raw","handle","targetElContainsTarget","rtlFactor","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","positions","ignoreWheelEvents","sticky","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","releaseScroll","returnValue","checkProps","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","toggleEl","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","pagination","clickable","isHidden","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","firstIndex","midIndex","suffix","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","progressEl","paginationHTML","numberOfBullets","Autoplay","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","delayForce","currentSlideDelay","activeSlideEl","getSlideDelay","proceed","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","effectParams","transformEl","EffectFade","fadeEffect","crossFade","overwriteParams","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","slideOpacity","transformElements","allSlides","transitionEndTarget","eventTriggered","fireCallBack","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","isChildSwiperSlide","processChildren","getChildren","slot","foundSlides","deps","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","_extends","forwardRef","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","updateSwiper","parallax","getSlideIndex","loopFrom","loopTo","slidesToRender","renderVirtual","SwiperSlide","externalRef","lazy","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","Button","primary","hasArrow","openInNewTabValue","openinnewtab","HeroBanner","darkTheme","buttonTitle","linkTitle","linkHref","mobileImageUrl","HeroBannerSlider","navigationImageUrl","navigationText","RibbonBanner","ArticleBanner","homeIcon","difficultyColor","difficulty","categories","category","culture","categoryLinks","urlSuffix","PressBanner","isAnnouncement","updatedDate","updatedHours","cfdCategory","authorUrl","authorName","shareText","lang","toLocaleString","Intl","DateTimeFormat","SearchBanner","optionsHandler","inputPlaceholder","defaultValue","ContactsBanner","iconURL","additionalText","RibbonBanner2","largeText","smallText","ImgV2","smallUrl","mediumUrl","largeUrl","strictRender","chosenUrl","normalUrl","RibbonBanner3","iconImgUrl","iconImgAlt","mainText","linkOpenInNewTab","linkHrefTarget","MethodImage","PaymentMethodsBanner","ErrorBanner","backgroundSize","backgroundRepeat","backgroundPosition","backgroundImage","backgroundUrl","returnButtonText","returnToHomepageHtml","ButtonSquare","HeroBannerWithImages","slideTitles","stats","linkLabel","changingInterval","buttonOpenInNewTab","handleFadeInAndFadeOut","mainSubTitle","mainImage","mainImageAlt","observerMap","RootIds","WeakMap","rootId","unsupportedValue","fallbackInView","intersectionRect","rootBounds","optionsToId","thresholds","inView","trackVisibility","createObserver","useInView","triggerOnce","initialInView","entryTarget","previousEntryTarget","getButtonDesign","buttonType","OptionalButtonBanner","note","imageDesktop","imageMobile","imagePosition","hasBigImage","linkURL","openInNewTabButton","bigImage","setBigImage","smallImage","setSmallImage","OptionalButtonSectionBanner","imageDesktopValue","setImageDesktopValue","altValue","setAltValue","OptionalButtonSectionBanner2","designStyles","titleDesign","buttonDesign","IconBrowser","IconSmartphone","IconAppStore","IconGooglePlay","strokeMiterlimit","gradientUnits","stopColor","AnimatedBanner","qrImage","qrImageAlt","downloadText","launchText","launchButtonText","launchButtonLink","footerQuote","googlePlayLink","appstroreLink","setAnimate","HeroBannerWithImagesAndTitle","OptionalButtonBannerWithAnimation","HeroBannerImageRight","BreadcrumbsBanner","lightmode","BasicBannerWithChangingTextPosition","alignItems","titlePosition","textAlign","AcademyBanner","h1title","Gap","divMobileStyle","minHeight","mobileGap","maxHeight","divDesktopStyle","desktopGap","gapColor","BasicBanner","subtitlePosition","SimpleBanner","rollingTitle","imageURLAlt","rollingTitles","AffiliateBanner","numbers","firstButtonLink","firstButtonLabel","secondButtonLink","openInNewTabButton2","secondButtonLabel","Constructor","protoProps","staticProps","Derived","hasNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","zeroPad","strValue","strNo","paddedNo","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","timeDeltaFormatOptionsDefaults","daysInHours","zeroPadTime","formatTimeDelta","timeDelta","_Object$assign$zeroPa","zeroPadDays","zeroPadTimeLength","formattedHours","Countdown","_React$Component","startCountdown","stopCountdown","prevState","addTime","Countdown$1","initialTimestamp","calcOffsetStartTimestamp","offsetStartTimestamp","autoStart","legacyMode","legacyCountdownRef","tick","calcTimeDelta","overtime","onTick","setTimeDeltaState","setLegacyCountdownRef","isStarted","prevOffsetStartTimestamp","onStart","controlled","clearTimer","intervalDelay","isStatus","isCompleted","onMount","prevProps","precision","startTimestamp","_options$now","_options$precision","_options$offsetTime","clampedPrecision","completing","completedOnStart","newStatus","api","_this$props2","getApi","formatted","_this$props3","_children","_this$props4","renderProps","getRenderProps","countdown","_renderProps$formatte","CountdownBanner","fullDate","setFullDate","backgroundImageURL","backgroundImageURLTablet","backgroundImageURLMobile","countdown1","ren","daysLabel","countdown2","hoursLabel","countdown3","minutesLabel","countdown4","secondsLabel","yearValue","monthValue","dateValue","hoursValue","minetsValue","secondsValue","optionalBreadCrumb","TradingViewBanner","orString","buttonLink","HeroBannerWithImagesNew","desktopImage","mobileImage","buttonHrefMobile","setButtonUrl","desktopImageEl","setDesktopImageEl","mobileImageEl","setMobileImageEl","mainClassName","emptyStatisticsTest","cardsRendering","ThinkTraderMainBanner","desktopImageUrl","appStoreButtonLabel","appStoreButtonLink","appStoreButtonIcon","googlePlayButtonLabel","googlePlayButtonLink","googlePlayButtonIcon","webButtonLabel","webButtonLink","webButtonIcon","openInNewTabWebRutton","haveBottomButtons","topButtonLink","openInNewTabTopRutton","topButtonLabel","topButtonIcon","textBetweenButtons","TradingViewDownloadBanner","buttonList","VideoBannerLP","shortText","videoSRC","autoPlay","muted","playsInline","N3","V3","_lastHandleId","MAX_SAFE_INTEGER","_lastImmediate","setImmediate","clearImmediate","_strategy","T1","Y2","r2","Y3","r1","_2","n3","w1","w2","r3","R1","M2","a3","L2","E2","O1","P2","M1","$1","S2","I2","F2","W1","C1","L1","U1","l3","B1","G1","h3","P1","_1","A2","T2","f3","E1","H1","m3","X1","D2","N1","V1","Y1","R2","_3","J1","g3","O2","w3","b3","M3","C3","L3","E3","q1","I3","K1","$2","F3","S1","W2","U2","B2","I1","d3","k3","u3","Q1","V2","Z1","S3","P3","H2","T3","A3","i3","dynCall_iijj","dynCall_vijj","dynCall_jiii","F1","dynCall_viiij","N22","G2","_tryLoad","_loadWithBackup","_ModulePromise","_wasmURL","_eventListeners","dispatch","removeAllEventListeners","_initializeObserver","_observer","_observedCanvases","K2","J3","q2","A1","Mode","Reverse","ReverseBounce","Forward","None","VectorFloat","push_back","u2","C2","_canvas","_context","_eventManager","_frameManager","_renderConfig","freezeOnOffscreen","_wasmModule","_dotLottieCore","DotLottiePlayer","loopAnimation","useFrameInterpolation","createDefaultLayout","_loadFromData","_loadFromSrc","setBackgroundColor","_pointerUpMethod","_onPointerUp","_pointerDownMethod","_onPointerDown","_pointerMoveMethod","_onPointerMove","_pointerEnterMethod","_onPointerEnter","_pointerExitMethod","_onPointerLeave","_onCompleteMethod","_onComplete","_dispatchError","_fetchData","loadAnimationData","loadDotLottieData","_animationFrameId","_draw","autoResize","activeThemeId","manifestString","isFrozen","_backgroundColor","isReady","segmentDuration","setConfig","ImageData","putImageData","requestFrame","setFrame","isComplete","setUseFrameInterpolation","_cleanupStateMachineListeners","setRenderConfig","setMarker","loadTheme","loadThemeData","setLayout","setViewport","loadStateMachine","startStateMachine","_setupStateMachineListeners","stopStateMachine","_getPointerPosition","postStateMachineEvent","postEventPayload","getStateMachineListeners","stateMachineFrameworkSetup","loadStateMachineData","animationSize","setStateMachineBooleanContext","setStateMachineNumericContext","setStateMachineStringContext","X2","Z2","Q2","e3","N2","_id","workerId","_workerManager","getWorker","assignAnimationToWorker","_wasmUrl","_sendMessage","_handleWorkerEvent","instanceId","_updateDotLottieInstanceState","_dotLottieInstanceState","transferControlToOffscreen","_created","themeId","unassignAnimationFromWorker","themeData","stateMachineId","stateMachineData","DotLottieComponent","_workers","_animationWorkerMap","sendMessage","terminateWorker","DotLottieReact","dotLottieRefCallback","playOnHover","DotLottieComponent2","setDotLottie","dotLottieRef","configRef","canvasRef","hoverHandler","dotLottieInstance","startFrame","endFrame","useDotLottie","stableDotLottieRefCallback","callbackContainer","useStableCallback","HomePageMainBanner","desktopAnimation","mobileAnimation","textBelowCTA","animationPath","setAnimationPath","animationWidth","setAnimationWidth","animationHeight","setAnimationHeight","MarketsBanner","animationVideo","Person","WebinarBanner","bgImageDesktop","bgImageMobile","persons","TTAccBannerButtonAndLink","linkButtonLabel","linkButtonUrl","hasTextLink","ThinkTraderAccountBanner","standardString","showButtonWrapper","itemTitle","itemSubTitle","clock","PodcastEpisodeBanner","titleBig","timeToReadString","richTitleSide","richSubtitle1","richSubtitle2","headingDesign","SimpleTitleAndSubtitleBanner","StatsList","years","HeaderWithImgAndStatsBanner","stat","FeaturesList","featureTitle","TrustPilotMiniBanner","theme","handleTVWidget","CheckOutButton","StatsLineRibbonBanner","features","trustPilotLocale","checkOutButtonValues","trustPilotTheme","StatsValuesRibbon","ButtonSection","MediaViewerComponent","AnimationSection","animationSrc","animationStateMachines","CryptoDisclaimer","HeroBannerWithImagesHomeUplift","actionMessageLink","actionMessageBadge","actionMessageText","actionMessageLinkInNewTab","statValues","mobileTitleAlignment","tabletTitleAlignment","desktopTitleAlignment","mobileSubTitleAlignment","tabletSubTitleAlignment","desktopSubTitleAlignment","cryptoDisclaimerContent","setImageEl","handleButtonStatsBanner","HeroBannerWithImagesAndAnimation","bgImage","spaceFromTopForImage","imageTopLimitedByText","ArticleInsert","textPosition","MeetOurCEO","isMediumValue","setIsMediumValue","isLargeValue","setIsLargeValue","JobBoard","jobs","setJobs","departments","job","offices","setSearch","selectedDepartment","setSelectedDepartment","selectedOffice","setSelectedOffice","setErrorMessage","jobsPerPage","limit","filteredJobs","toLocaleLowerCase","selectedJobs","setSearchDebounced","searchJobs","searchDepartment","searchCity","thisComponentRef","scrollToThisComponentRef","scrollIntoView","scrollBy","htmlFor","office","department","absolute_url","metadata","Footer","socialSectionLogoImageUrl","socialSectionLogoImageAlt","socialSectionLiveChatText","socialSectionIcons","riskWarningText","widgetMock","navigationMock","isCurrentPage","linkMoreText","secondaryNavigationMock","footerMock","footerBannerImageUrl","footerBannerImageAlt","AccordionCardDeckWithImageV2","imageIndexState","setImageIndexState","setIndexImageStateCallback","indexElement","cards","card","imageUrlDesktop","disclaimer","imageUrlMobile","SmallArrowIcon","DarkBackgroundCardDeckWithImage","titleDescription","dataset","titleValue","setTitleValue","titleDescValue","setTitleDescValue","isSmallValue","setIsSmallValue","smallTitleContainer","textDecoration","iconImageUrl","bigTitleContainer","CardWithIcon","CardWithIconDeck","DarkNumberedCard","DarkNumberedCardDeck","titleSubtitlePosition","InformationCardDark","backgroundImgURL","InformationCardDarkDeck","setSwiper","showSwiper","setShowSwiper","setSwiperInstance","PlatformInformationCard","PlatformInformationCardDeck","numberCols","announcement","AccountCard","AccountCardDeck","col1Items","col2Items","col1Height","col2Height","legend","VPSProviderCard","logoUrl","logoAlt","keyFeatures","specifications","warning","featureName","featureValue","VPSproviderCardDeck","providerData","NumberedCardDemo","NumberedCardDemoDeck","GetHelpCard","GetHelpCardDeck","HotTopicCard","cardId","onExpand","isAnimating","setIsAnimating","animationClass","isNewOpenState","newOpenedState","getAnimationClass","oldState","isOpened","useIsNewOpenState","setAnimationStart","setAnimationEnd","handleExpand","readingTime","textAfterReadingTime","onAnimationStart","onAnimationEnd","HotTopicCardDeck","selectedCardId","setSelectedCardId","isFirstRender","prevId","shouldCardBeOpened","BrokerRegulationCard","BrokerRegulationCardDeck","NewsCard","articleDate","articleTitle","articleSummary","articleAuthor","articleCategory","articleCategoryTranslated","articleURL","articleCfdTrading","isListView","articleImageAlt","publishDate","toLocaleDateString","EconomicCalendarMemoized","memo","TwitterFeedEmbed","twitterFeedUrl","twitterFeedPlaceholderText","NewsCardDeck","filtersRibbonElement","filtersElement","noWidgets","twitterFeed","hasResultsOnPage","hasTwitterEmbed","getTranslation","word","cultureCode","All","Beginners","Experienced","eu","uk","ky","nz","latam","tw","th","es","AcademyArticleCard","renderDetails","articleReadingTime","articleReadingTimeTimeUnit","articleLevel","articleTags","AcademyArticleCardDeckPool","articlesString","filterOptions","pageSize","totalArticlesCount","getPage","setCurrentPageNum","selectedFilterOption","setSelectedFilterOption","articlesPerPage","currentPageHandler","setSelectedFilterOptionCallback","option","renderFilterRadio","sanitizeJSON","isFinite","serializeQuery","queryObject","keysToRemove","copiedQueryObject","getWindowLocationPage","pageNumericInUrl","pageNumberInUrl","setWindowLocationPage","searchParams","stringSearchParams","getWindowLocationDifficulty","difficultyInUrl","useHandleWindowLocationPage","setCurrentPageFunc","skipDifficultyPages","pageInUrl","AcademyArticleCardDeck","filteredCards","selectedArticles","handlePaginationChange","WideRangeCardDeck","setCards","newCards","YOUTUBE_IFRAME_ID_PREFIX","YouTubeVideoEmbed","videoUrl","webSiteRootUrl","videoId","iframeId","allow","allowFullScreen","COMMANDS","ConditionalPortal","isActivePortal","SimpleLightbox","isLightBoxOn","setIsLightboxOn","hasLightboxBeenOnAlreadyRef","lightboxRef","showLightbox","hideLightbox","videoIframeEl","videoIframe","command","messageContent","contentWindow","controlIframedVideo","keyEventListener","closeIcon","VideoCard","isLightboxed","hasLightbox","VideoEmbedHelper","created","VideoCardDeck","isSliderOnMobile","VideoCardDeckWithPagination","selectedCards","cardsLength","itemsString","itemsShown","MySwiper","swiperOff","InformationCardDarkDeckAcademy","getClassForCard","bigCard","renderCardContent","alignRight","RenderCard","imgsmall","imgmedium","imglarge","CardDeckWithDifferentSize","InstrumentCategoryDeck","titleSize","buttonIcon","buttonIconHover","iconNest","iconNestHover","renderCard","NumberedSwipeCardVariant","cardVariantComponents","APP_DOWNLOAD","desktopText","desktopImageAlt","mobileText","mobileDownloadLinks","NumberedSwipeCard","CardVariantComponent","cardVariant","cardVariantProps","NumberedSwipeCardDeck","VideoCardDeckSliderCard","videoURL","videoTitle","videoUploadTime","maxTitleLength","setMaxTitleLength","VideoCardDeckSlider","loadMoreUrl","loadMoreText","SellBuyPriceCard","buyLabel","price1status","instrumentUrl","price1","sellLabel","price2status","price2","zero$1","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","sym_next","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","sym_buf","build_tree","stree","heap_max","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","tr_static_init","l_desc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","block_mask","detect_data_type","BL_CODES$1","build_bl_tree","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","sym_end","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","crcTable","makeTable","crc32_1","crc","messages","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","MAX_MATCH","MIN_LOOKAHEAD","INIT_STATE","BUSY_STATE","FINISH_STATE","errorCode","zero","slide_hash","wsize","w_size","hash_size","HASH","hash_shift","hash_mask","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","insert","ins_h","deflate_stored","have","min_block","pending_buf_size","used","high_water","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","MAX_BITS","lit_bufsize","deflateStateCheck","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","deflate_1$2","deflateInit","deflateSetHeader","deflate","old_flush","level_flags","hcrc","comment","beg","gzhead_extra","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictLength","tmpDict","avail","deflateInfo","_has","common","flattenChunks","chunks","chunk","STR_APPLY_UIA_OK","_utf8len","strings","string2buf","TextEncoder","encode","m_pos","str_len","buf_len","buf2string","utf16buf","c_len","buf2binstring","utf8border","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","Deflate$1","chunkSize","opt","gzip","ended","dict","_dict_set","deflate$1","deflator","flush_mode","_flush_mode","onData","onEnd","deflate_1$1","Deflate","deflateRaw","constants","BAD$1","inffast","_in","_out","dmax","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","dolen","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","opts","incr","low","drop","huff","MAXBITS","offs","here_bits","here_op","here_val","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","HEAD","DICT","TYPE","TYPEDO","COPY_","LEN_","LEN","CHECK","BAD","zswap32","InflateState","havedict","wbits","ncode","nlen","ndist","lendyn","distdyn","was","inflateStateCheck","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","lenfix","distfix","virgin","fixedtables","updatewindow","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","Inflate$1","inflate$1","inflator","last_avail_out","next_out_utf8","tail","utf8str","inflate_1$1","Inflate","inflateRaw","ungzip","pako","SellBuyPriceCardsDeck","setInstruments","prevAskPrices","prevBidPrices","websocket","WebSocket","wsUrl","session","binaryType","pingRequest","onopen","updatePriceFeed","parsedValues","Name","dailyChange","calcDailyChange","Code","Bid","Ask","prevBid","prevAsk","instrument","groupCode","bid","bidStyle","bidAskStyle","bidIcon","ask","askStyle","askIcon","spread","calcSpread","dailyChangeStyle","dailyChangeIcon","newInstruments","instrumentsToShow","marketItem","decimalPrecision","tickSize","marketItemInfo","DecimalPrecision","TickSize","decimal","prevClose","PrevClose","currentPrice","previousPrice","nodeText","CardWithImage","bgCardPicture","bgCardPictureAlt","TwoCardsWithImages","backGroundColor","CardWithTexts","cardText","cardIndex","CardDeckWithTextsAndButtons","primaryButtonLabel","primaryButtonLink","secondaryButtonLabel","secondaryButtonLink","orText","NumberedListImageCard","NumberedListImageCardDeck","colors","IconAndTitleCard","IconAndTitleCardDeck","IconAndTitleCardDeck2Rows","bottomLinkUrl","bottomLinkText","CardWithIconTextCard","cardColor","CardsWithIconText","ThinkTraderCardWithImage","imageSectionBackground","imgPositionUpOrDown","buttonPosition","buttonShowArrowRight","buttonBgColor","leftButtonImage","hoverLeftImage","withCenteredStyle","secondClassNAme","textButtonSection","TheCard","cardTitle","cardPlace","iconPlace","listItems","separatedArray","ThreeCardsLP","IconAndTitleSquaredCard","IconAndTitleCardSquaredDeck","CardWithHoverAnimation","hoverImage","setHoverImage","hoverAnimation","setHoverAnimation","setAnimation","jsonData","handlerOnMouseEnterProp","handlerOnMouseLeaveProp","CardsWithHoverAnimation","CardWithImageAndButton","mobileDescription","buttonURL","smallImageUrl","currentImage","setCurrentImage","descriptionText","setDescriptionText","TwoCardsWithImagesAndButton","CardWithOutHoverAnimation","descriptionTextColor","CardsWithOutHoverAnimation","additionalStyle","SectionWithThreeColumns","CardsDeckWithSliderOnMobile","cardsBackgroundColor","SingleCard","CardsDeckWithTitleAndSubSwiper","CardWithImageAndLabel","CardDeckWithImages","CardDeckGradientSwiper","CardSwiper","AddressCardDeck","InterchangeableImageCardDeck","MobileSmallAwardCard","mobileAwardImage","SmallAwardCard","leftLeavesImage","rightLeavesImage","SmallAwardCardsDeck","awardCards","titleAlignment","award","MarketCard","categoryName","mobileBgImage","desktopBgImage","linkCard","setLinkCard","d$1","animationWithControls","onEvent","e$1","a$1","FeatureCard","cardBackgroundColor","cardDescription","cardClass","cardVideoURL","thumbnailImageURL","cardButtonURL","cardButtonLabel","openOnNewPage","cardLottieURL","cardImageURL","cardImageAlt","linkTarget","dotLottieOrImgV2","setDotLottieOrImgV2","videoPath","setVideoPath","poster","FeatureCardsSection","InstrumentSlider","onMarketClick","currentMarketTab","activeMarketIndex","setActiveMarketIndex","handleMarketClick","handleOnTouchStart","instrumentsMap","forex","commodities","etfs","futures","stocks","popular","PriceFeed","tableInfo","instrumentIcons","marketsInfo","resources","footerText","activeMarket","activeRowIndex","setActiveRowIndex","filteredInstruments","setFilteredInstruments","filteredInstrumentIcons","setFilteredInstrumentIcons","setCurrentMarketTab","market","bidAskIcon","handleRowClick","LargeImageSection","isPlaybackTriggered","videoType","videoEl","videoSourceEl","InnovationBlockDemo","paragraph","checkmark","FaqAccordionCard","setActiveCardId","activeCardId","question","answer","FaqAccordion","DemoAccountTabsSlider","InnovationBlockThinkZero","footerTitle","footerButtons","styleOverrides","WebkitAppearance","MozAppearance","appearance","Dropdown","selectedOption","isPlaceholderDisabled","optionText","optionValue","ExternalLink","ButtonLink","PlatformCardHeader","haveRecommended","recommendedText","logoDarkText","logoGreenText","PlatformCardBody","haveImage","PlatformComparison","AccountCardHeader","titleText","buttonHeaderText","buttonHeaderUrl","AccountCardBody","title2","AccountTypes","AccountCardV2","mostPopularTitle","titleIconUrl","titleIconAlt","spec1","spec2","spec3","availableLabel","platformsIcons1","platformsIcons2","buttonLearnMoreText","buttonLearnMoreUrl","buttonLearnMoreDesign","buttonLearnMoreOpenInNewTab","featuresBulletsSplit","buttonSeeAllFeaturesText","featuresBullets","expandedFeatures","setExpandedFeatures","handleToggleFeatures","renderSpec","spec","feature","AccountTypesV2","h2title","getFrame","parentWindow","getMountElement","SCRIPT_ID","HCAPTCHA_LOAD_FN_NAME","HCaptcha","_hcaptcha","renderCaptcha","resetCaptcha","removeCaptcha","loadCaptcha","handleOnLoad","handleSubmit","handleExpire","handleOpen","handleClose","handleChallengeExpired","apiScriptRequested","isApiReady","isRemoved","elementId","captchaId","scriptLocation","hcaptcha","shouldComponentUpdate","nextProps","nextState","_this3","apihost","assethost","endpoint","imghost","scope","domain","loadAsync","encodeURIComponent","generateQuery","mountCaptchaScript","hl","languageOverride","recaptchacompat","reCaptchaCompat","reportapi","sentry","onReady","renderParams","_this4","onVerify","_this$state","getResponse","ekey","getRespKey","onExpire","_this$state2","onOpen","onClose","onChalExpired","execute","ContactForm","initialFormData","region","regionOptions","firstName","mobilePhone","aboutQuestionOptions","formFile","agreement","initialValidationHints","runOnInput","OverlayState","dataToSend","setDataToSend","validationHints","setValidationHints","generalError","setGeneralError","generalSuccess","setGeneralSuccess","overlayState","setOverlayState","isactiveSubmitBtn","setIsactiveSubmitBtn","setFormData","captchaRef","handleCaptchaError","isValidQuestion","isValidRegion","captchaSize","setCaptchaSize","setToken","handleCaptchaSize","newValidationHints","inputHandler","checkboxHandler","resetForm","constructRequestFormData","captchaResponse","requestFormData","campaignId","getValidation","valid","setOverlaySucess","setOverlayError","sendRequest","handleCaptchaResponse","submitHandler","captchaString","closeSendingOverlay","RequiredStar","RequiredLabel","field","requiredFieldHint","SubmitBtn","submitLabel","OverlayMessage","popUpFormIsBeingSendMessage","popUpFormSucessfullySentMessage","Overlay","popUpOkButtonLabel","regionLabel","firstNameLabel","firstNamePlaceholder","emailPlaceholder","phoneLabel","phonePlaceholder","aboutQuestionLabel","messageLabel","messagePlaceholder","checked","agreementLabel","sitekey","hcaptchaKey","hcaptchaLanguageCode","PartnershipForm","lastName","lastNameLabel","lastNamePlaceholder","ContactItemContent","imgAlt","StillHaveQuestionItem","handleKeyPress","contactItemType","onKeyPress","ContactOptions","contactOptions","ContactUsWrapper","answerValue","setAnswerValue","FaqAccordionList","iconImage","moreQuestions","moreQuestionsLinkText","moreQuestionsLinkUrl","containerMaxWidth","accordion","containerMaxWidthClass","containerExtraClass","Article","h2Tags","setH2tags","setLoaded","articleContainerRef","setScrollTop","dom","parseHTML","faqTitle","publishedOn","tableOfContentsTitle","SidebarItem","faqItems","faqLinkText","faqLinkUrl","disclaimerText","scrollToHeading","block","SupportSection","activeMenuItem","setActiveMenuItem","activeItem","sidebar","backLinkText","backLinkUrl","listItem","PressArticle","relatedArticles","pressBanner","headerLink","headerTitle","headerDescription","headerIcon","itemsTitle","footerButtonUrl","footerButtonText","PopularQuestions","itemLink","LayoutOptions","viewHandler","handleGridViewClick","handleListViewClick","gridViewIcon","listViewIcon","FiltersRibbon","subscriptionText","searchText","subscriptionButtonText","filterText","viewToggle","filterToggle","hasLayoutOptions","setSearchQuery","hasFiltersApplied","searchVal","setSearchVal","fieldHandler","searchClickHandler","subscribeHandler","toggleFilters","ribbonWidgetTypes","ribbonWidget","chevronUp","Checkboxes","tabActive","setTabActive","dataTitle","replaceAll","prevValue","filtersData","tabValueAll","inlineClass","inlineLayout","CheckboxesDatepicker","setChecked","setStartDate","setEndDate","mapStringsToDates","toggleAll","toISOString","padStart","initialCheckedState","categoryId","dateHandler","startPrefix","endPrefix","categoryTitle","itemChecked","updateAll","objectForUpdate","updateCheckedValues","updatedChecked","prevChecked","prevCheckboxes","Range","range","setRangeValue","setStep","setRange","rangeLinePadding","calcStep","valPercent","valueAsNumber","onRangeInput","onInput","getFilterItemsType","filterData","firstItem","Filters","resetText","applyText","fields","setReset","submit","areAnyFiltersSet","checkAll","hasValuesToClear","setHasValuesToClear","getCurrentlySelectedItem","filterField","dataValue","extendedFields","resetFilters","resetHandler","applyFilters","prevData","closeFilters","validValues","processFilterItems","fieldType","itemsType","filterItems","displayText","getFieldDisplayText","TradersGym","AlphabetsSearchCard","activeClass","AlphabetsSearch","homelink","noWrappers","CardsGridIconAndTitle","activeCardValue","handleActiveCard","TradingGlossary","alphabetContent","SectionHeader","BrokerLocationMap","ellipse","LatestMarketNews","numberOfCharacters","news","toDateString","CardComponent","longPercent","shortPercent","baseLinkUrl","startTradingUrl","longValue","shortValue","instrumentLinkUrl","InstrumentsBuySellCardsBar","startTradingDescription","FilterCards","listView","setListView","filtersActive","setFiltersActive","setFiltersData","setResetFilters","isFilterOrSearchApplied","setIsFilterOrSearchApplied","setHasFiltersApplied","adjustedCards","containsVideos","getAdjustedCards","dropInitialCards","getSlicedCards","isSearch","isFilteredResult","shouldShowLatestNews","hasCards","getConditionalRenderingContext","getInitialCheckedAllState","checkedAll","setCheckedAll","allValues","dataKey","prevFilterData","handlerHasFiltersApplied","fetchArticles","allArticles","responseData","handleSearchQuery","searchString","dataHandler","filterHandier","newFilters","mostTradedContent","mostTradedIntruments","mostTradedIntrumentsTitle","showClearFilters","latestVideoCards","pastVideoCards","videoCards","deckTitle","filtersToggle","areFiltersDisplayed","renderNewsContent","DropdownFilter","filterTitle","TabsFilter","ContractSpecsFilterFactory","filterType","getConditionalValue","preferredValue","fallbackValue","getAdjustedFilterOptions","optionsTexts","ContractSpecsFilterSet","positionQualities","countries","currencies","accountTypes","instrumentSubtypes","leverageTypes","activePositionQuality","activeCountry","activeCurrency","activeAccountType","activeInstrumentSubtype","activeLeverageType","onPositionQualityChange","onCountryChange","onCurrencyChange","onAccountTypeChange","onInstrumentSubtypeChange","onLeverageTypeChange","filtersTranslations","allPossibleFiltersOrdered","filterDefinition","ToggleExpandCollapseButton","buttonIconUrl","onToggle","buttonFunction","iconUrlVar","getDefaultIconUrlVar","styleObj","getDefaultText","getComponentClassname","cssClasses","ToggleExpandCollapse","isDefaultExpanded","isOnlyToggledFromOutside","onToggleExpand","toggleButtonsProps","toggleViews","isExpanded","setIsExpanded","handleTransitionEnd","expandButtonProps","isContainerExpanded","collapseButtonProps","ContractSpecsFilters","iniActivePositionQuality","iniActiveCountry","iniActiveCurrency","iniActiveAccountType","iniActiveInstrumentSubtype","iniActiveLeverageType","onToggleFiltersExpand","onFiltersTransitionEnd","onResetAllFilters","mustResetFiltersInternally","areFiltersExpanded","showClearFiltersButton","filtersEmptyState","getActivePositionQuality","getActiveCountry","getActiveCurrency","getActiveAccountType","getActiveInstrumentType","getActiveLeverageType","setActivePositionQuality","setActiveCountry","setActiveCurrency","setActiveAccountType","setActiveInstrumentSubtype","setActiveLeverageType","searchHandler","handlePositionQualityChange","handleCountryChange","countryCode","handleCurrencyChange","currencyCode","handleInstrumentSubtypeChange","indexString","instrumentSubtype","handleAccountTypeChange","accountType","handleLeverageChange","leverageType","handleSearchInputEnterKeyUp","keyCode","hasRealFilters","areRealFiltersEmpty","onKeyUp","SearchRibbon","backgrounColor","TradingGlossarySearch","filteredQuery","categoriesProps","alphabetProps","alreadyWarned","_len2","_key2","loadedClb","i18n","isInitialized","loadNamespaces","loadLanguages","lng","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","initReactI18next","setDefaults","react","setI18n","ReportNamespaces","usedNamespaces","addUsedNamespaces","namespaces","getUsedNamespaces","alwaysNewT","namespace","keyPrefix","getFixedT","AdditionalInformation","subtitle1","subtitle2","content1","content2","miniContent","ContractSpecsTable","columnInfo","columnsThatAllowHtml","columnsTranslations","translateFieldFunction","column","columnIndex","dataColumnName","getTranslatedColumnName","row","rowIndex","normalizedColumnName","getNormalizedColumnName","getValueWithSpecialCase","dataField","translatedDataField","originalValue","fieldName","translateFieldValue","instrumentGroup","isInstrumentCell","cellTitle","columnName","rowHasThisField","checkDoesDataHaveColumn","isValueDisplayable","checkIsValueDisplayable","isCellEmpty","isHtmlAllowed","altText","ContractsSpecsTableCell","cellFieldName","iconOrFlag","ContractSpecsImage","ContractsSpecsTableCellContent","instrumentName","logAnyEmptyValues","imgRef","handleImageError","checkIsCorrectLeverageColumn","columnsPerLeverageType","leverageDataGroups","isStrictCheck","columnNameLessAnyCulture","isSuffixlessColumnName","listOfColumns","leverageGroupSuffix","leverageDataGroup","cultures","columnSuffix","getCultureSpecialCaseColumn","specialCase","specialCaseCultures","possibleLeverageColumn","getInstrGroupSpecialCaseColumn","instrumentGroupsAndSubgroups","instrumentGroupOrSubgroup","groupNamesToLookFor","getGroupsAndSubgroupsByMember","specialCaseInstrumentGroups","correctionColumn","getSpecialCaseLeverageColumn","possibleSpecialLeverageCase","cultureSpecialCaseColumn","instrGroupSpecialCaseColumn","getEnhancedTableInfo","tableColumns","isLeverageColumn","specialCaseColumn","getCultureConfigData","pageConfig","cultureConfig","cultureName","getInstrumentGroupConfigData","instrumentGroupName","instrumentSubgroupName","instrumentGroupKey","getGroupConfigKeyName","instrumentGroupConfigData","instrumentGroupsConfig","instrumentGroupConfigKey","info","getRelevantData","instrumentGroupConfig","inputData","extractedData","extractInstrumentGroupData","getRelevantFilters","getDefaultFilterValues","getAutoExecutedHandlers","getAccountTypeIds","accountTypeIds","getColumnsPerLeverageType","getColumnsThatAllowHtml","checkColumnExistsForAccountType","accountTypeName","columnAccTypesArray","accountTypeId","accountName","getAdditionInfoMap","addInfoMap","getAdditionaInfo","localInfoKey","additionalInfos","addInfoKey","decapitalizeString","groomInitFilterName","filterName","getGroupFiltersTranslations","accumulatedObject","currentFilter","filterConfig","translationKey","translatedTitle","translatedOptions","getAccountTypes","accountTypesPerCulture","accountTypeIdsToNames","culturesSettings","accTypesIdsPerInstrGroup","accountId","mustShowLeverageFilter","leverageDataGroupsConfig","groupOrSubgroup","possibleGroupsAndSubgroups","groupingMembers","getPossibleReassignMap","reassignMapConfig","configMap","namesToLookFor","reassignMap","instrumentCodes","getGroomedData","dataItem","reassingEntry","getFiltersEmptyState","filterEntries","nonEmptyRealFiltersList","emptyRealFiltersList","searchTextEmptyState","getEmptyState","filterKey","filterValues","isValuesArray","areAllFiltersEmpty","isSearchEmpty","emptyList","nonEmptyList","compareColumnPositions","column1","column2","firstColumnPosition","columnPosition","secondColumnPosition","getOrderedColumns","columns","dataRow","isInstrumentIncludedInMini","instrumentData","minTradeSizeMini","maxTradeSizeMini","targetSpreadMini","maxLeverageMini","checkIsMatchingSearchString","checkIsMatchingPositionQuality","positionQuality","checkIsMatchingCountry","country","checkIsMatchingCurrency","currency","getSearchResults","checkIsMetalInAccountType","metal","isMetalInMiniAccount","isMetalInThinkzeroAccount","maxTradeSizeThinkZero","mini","thinkzero","standard","thinktrader","getDataPerAccountType","GROUP_FUNCTIONS_OBJ__MINI","GROUP_FUNCTIONS_OBJ__GENERAL","lcInstrGroupName","lcAccountType","functionMappingObject","filteringFunction","applyCommonFilteringRules","translatedColumnName","specialCaseValue","columnValue","getCultureTranslateConfigData","getInstrGroupTranslateConfigData","instrumentGroupsCfg","getReplacementValue","keyType","keyPath","translationFunction","realKey","translatedValue","getTranslatedValue","fieldTranslationRules","translationRule","valueSoFar","newRule","targetString","translationKeyType","translationKeyPath","ContractSpecsTabObj","contextInfo","instrumentSubgroup","setProps","objectProps","getFilters","additionalInfo","getTabFiltersTranslations","filterTranslations","instrumentGroupOrSubgroups","consoleLogger","Logger","concreteLogger","logger","forward","_len3","_key3","deprecate","_len4","_key4","debugOnly","moduleName","baseLogger","EventEmitter","numListeners","numTimesAdded","defer","rej","makeString","lastOfPathSeparatorRegExp","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","stackIndex","deepExtend","overwrite","regexEscape","_entityMap","looksLikeObjectPathRegExpCache","capacity","regExpMap","regExpQueue","getRegExp","regExpFromCache","regExpNew","deepFind","keySeparator","nextPath","getCleanedCode","ResourceStore","defaultNS","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","addResource","silent","addResources","addResourceBundle","deep","skipCopy","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","translator","processor","checkedLoadedFor","Translator","services","changeLanguage","exists","interpolation","resolved","extractFromKey","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","shouldUseIntlApi","pluralSeparator","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsContextHandling","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","capitalize","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","two","few","many","PluralResolver","compatibilityJSON","PluralRules","rules","plurals","createRules","addRule","getRule","needsPlural","resolvedOptions","pluralCategories","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","getPathWithDefaults","Interpolator","escapeValue","escape","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","regexp","regexpUnescape","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","createCachedFormatter","Formatter","NumberFormat","datetime","relativetime","RelativeTimeFormat","ListFormat","iOpts","addCached","mem","formatName","formatOptions","optStr","parseFormatStr","valOptions","formatParams","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queueLoad","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","pushPath","removePending","loadedKeys","fcName","tried","resolver","prepareLoading","loadOne","isUpdate","clb","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","I18n","inst","external","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","initializedStoreOnce","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","li","lngInLngs","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","detect","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","createInstance","cloneInstance","forkResourceStore","mergedOptions","hasXMLHttpRequest","XmlHttpRequestApi","ActiveXObjectApi","_objectSpread","ActiveXObject","addQueryString","fetchIt","fetchOptions","altFetch","altResponse","omitFetchOptions","queryStringParams","customHeaders","versions","arch","reqOptions","alternateFetch","requestWithFetch","crossDomain","overrideMimeType","requestWithXmlHttpRequest","Backend","allOptions","loadPath","parsePayload","parseLoadPayload","reloadInterval","timer","unref","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","loadUrl","parseErr","finished","dataArray","resArray","_this5","_this$services","currentLanguage","CULTURES_TO_LOCALE_MAP","skipTranslation","setUpReactI18n","getCultureConfig","mustSkipTranslation","InstrumentFieldsTranslator","instrFieldsTranslateConfig","useExecuteTriggerCallback","callbackFunc","getTimestamp","setRefreshTime","triggerRefresh","ACCOUNT_TYPE_IDS_TO_NAMES","ACCOUNT_TYPES_PER_CULTURE","Forex","Indices","Energy","Metals","Futures","Crypto","DEFAULT_ADDINFO_KEY_MAP","LEVERAGE_DATA_GROUPS","instrumentGroups","DEFAULT_CS_PAGE_CONFIG","filterProps","Retail","Professional","CS_FIELDS_TRANSLATE_CONFIG","Commodities","ETFs","Shares","propertyReassignMap","CardsDeckInfoBox","ImportantNote","mustShowImportantNote","ContractSpecsTab","subGroup","listOfPossibleFilters","tableInfos","swiperHandler","tabContextConfigInfo","i18nFromProps","i18nFromContext","defaultNSFromContext","useContext","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","i18nOptions","oldI18nextHasLoadedNamespace","memoGetT","useMemoizedT","nsMode","getT","getNewT","setT","joinedNS","previousJoinedNS","ignore","usePrevious","isMounted","boundReset","TabObject","groomedData","allTabData","adjustedFilters","defaultFilterSelectedValues","adjustedFilterTranslations","setNumberOfPages","allPagesData","filteredData","setFilteredData","filteredTableInfo","setFilteredTableInfo","filtersState","setFiltersState","updateFiltersState","filterValue","setMustResetFiltersInternally","filterDefaultsValues","setFilterDefaultValues","currentFilterName","keyName","currentFilterValuesSet","adjustFilterDefaulValues","newDefaultValue","prevValues","handleDisplayedRows","dataPerAccountType","handleDisplayedColumns","forceDisplayColumns","handleSearchFilter","allFilteredData","handlePositionQualityFilter","isDefaultValue","handleCountryFilter","handleCurrencyFilter","handleAccountTypeFilter","handleLeverageTypeFilter","handleInstrumentSubtype","adjustedFilteredData","handlerFunctions","autoExecuteRelevantHandlers","handlersToExecute","handlerKey","handlerValue","handleResetAllFilters","tabElementRef","filtersElementCoordY","headerEl","headerHeight","scrollToY","scrollY","haveAutoHandlersBeenExecuted","orderedTableInfo","instrFieldTranslator","handleFiltersTransition","importantNote","checkAreDefaultFilterValues","ContractSpecsTabs","swiperOnBeforeInit","handleSwiperHeightUpdate","activeTabIndex","pageConfigInfo","Suspense","fallback","onBeforeInit","iconActiveUrl","subGroupAdditionalInfo","InstrumentSliderNew","renderFlameIcon","handleOnTouchMove","PriceFeedNewSocketComponent","buttonLinkText","buttonLinkUrl","instrumentItems","popularInstrumentToRemove","popularInstrumentToAdd","instrumentsData","hasButtons","getValueByKey","Stocks","Popular","startWebsocket","updatePriceFeedNewSocketComponent","OPEN","PriceFeedNew","instrumentParagraph","instrumentLinkText","PriceFeedNewWidget","CardsGridImageAndDescription","AnimatedImageBoxesGridSimple","markets","social","paymentMethods","paymentRoller","upperTitleMarkets","titleMarkets","mainImageSmall","mainImageLarge","upperTitleSocial","titleSocial","imageMain","altMain","upperTitlePayment","titlePayment","paymentImagesUpperRow","paymentImagesLowerRow","TradingScenarios","radioSelector","scenarios","setLong","toggleRadioLong","toggleRadioShort","summaryFragment","radioFragment","longPosition","radioText","shortPosition","renderScenario","htmlContent","scenariosFragment","scenarioA","scenarioB","TradingScenariosMultiple","examples","exampleIndex","setExampleIndex","handleRadioClick","handleDropdownClick","example","summaryToTraverse","dropdownFragment","exampleFragment","scenario","htmlContent1","htmlContent2","htmlContent3","TrustpilotCard","theMonth","monthTranslations","fulldate","TrustPilotEvaluation","excellentLabel","rating","starsImage","trustpilotImage","TrustpilotSlider","bottomText","bottomTextIcon","TradingGlossaryLanding","bg","categoryContent","SupportSearch","setItems","contentRef","Node","TEXT_NODE","replacedText","tempElement","firstChild","popularQuestions","supportSection","FreeText","cssClass","isWarningText","mainWidth","FaqAccordionListWithImage","imageValue","setImageValue","TradingViewCard","BlackSectionItems","CommonCard","cardBackground","blackCardButtonLabel","OtherAccounts","blackCard","tradingViewCard","handleVisibleButton","ButtonWrapper","TradeWithComponentBlackBackground","subMainTitle","subTitleColor","subTitlePosition","subTitleFontWeight","titleColor","titleFontWeight","intrinsicImgSize","evenSetsForm2ColsMobile","mainTitleWidth","correctedBgColor","getBackgroundColor","hasButton","checkHasComponentButton","numItems","getContainerExtraClass","h2Ttile","TradeWithComponent3Items","renderAdditionalIcons","additionalIcon1","additionalIcon1LinkUrl","additionalIcon2","additionalIcon2LinkUrl","additionalIcon3","additionalIcon3LinkUrl","renderSectionImageAndHeading","headingClass","renderSectionItem","IconPDF","TradeWithComponent","informationItems","downloadButton","titleFontSize","tabletDesign","greenButton","renderButton","buttonOpenInNewTabValue","download","TradeWithThinkCopy","scrollPX","getScroolPX","TradeWithThinkTrader","componentMode","textColorClassName","cardHtml","InstrumentSliderCard","TwoInstrumentSliders","noteUnderPrices","showTitle","multiplyInstruments","originalArray","flat","HeroBannerWithInstruments","priceFeed","ExpandableCard","cardComments","cardImage","cardSubtitle","currenciesTitle","currenciesValues","feeLabel","feeValue","isOpen","onPlusIconClick","showLoadMore","showLoadMoreFunc","loadMoreLabel","ComponentHeader","ExpandableCardsContainer","componentMainTitle","componentSubTitleTitle","readyCards","setReadyCards","handleCardOpingCard","handleCurrencyLength","handleShowLoadMoreFunc","handleCardSubtitle","PopularInstruments","centeredTitle","buttonLoadMoreText","threeColumns","instrumentsQuantity","allowManyOnMobile","setAllowManyOnMobile","showMore","renderInstrument","iconImg","CardDescription","mainDescription","KeepTraderInOrderSwiperCard","comments","KeepTraderInOrderSwiper","localizationStringOF","setCurrentIndex","handleCurrentIndex","onRealIndexChange","CentredTitleWithSubtitle","imageSmall","imageLarge","videoSmall","videoLarge","breadcrumbBottomMargin","mainCssClasses","imgLarge","imgSmall","CardsDeckWithTitle","itemSection","mainButtonHref","mainButtonLabel","firstButtonHref","secondButtonHref","firstButtonImage","secondButtonImage","secondInfoTitle","secondInfoSubtitle","darkMode","firstButtonTarget","secondButtonTarget","infoTextIcon","infoText","infoBox","firstLinkHrefTarget","secondLinkHrefTarget","CardsDeckWithTitleSimple","TradeMiniAccountCard","mobileImg","TradeMiniAccount","cardOrientation","tabletImg","desktopImg","ItemDeckWithTitle","numColumns","IconCloseWhite","IconPlayButton","HeroBannerWithVideo","text2","videoText","videoText2","imageTopUrl","imageTopAlt","isPopoverOpen","setPopoverOpen","handlePopoverToggle","handlePopoverClose","renderVideoLinks","frameBorder","AnimatedRollingNumber","rollTo","rollFrom","currentNumber","setCurrentNumber","validStep","incrementTime","prevNumber","HeroBannerWithRollingAnimationVideoBG","rollingItems","upperAmount","staticElement","ComponentColItemsDeckWithTitle","mainSubtitle","mainTitlePosition","buttonOpenOnNewPage","justifyItems","WideCardWithList","IconPDFDark","WideCardWithListV2","wideCardWithListCard1","wideCardWithListCard2","widecardwithlistpropscard","SectionWithList","IconChevronUpp","AccessThinkPortalToday","expandedIndex","setExpandedIndex","expandedIndexDesktop","setExpandedIndexDesktop","onClickHandler","onClickHandlerDesktop","mainImageUrl","mobileSVGIcon","mobileSVGIconAlt","buttonMobileTitle","mobileQRCode","mobileQRCodeAlt","buttonMobileText","mobileButtonIcon","buttonWebLink","browserSVGIcon","browserSVGIconAlt","buttonWebText","buttonDesktopText","desktopSVGIcon","desktopSVGIconAlt","arrowIconDesktop","buttonDesktopWindowsLink","buttonDesktopWindowsText","buttonDesktopMacLink","buttonDesktopMacText","desktopButtonIcon","googlePlayUrl","googlePlayImageUrl","googlePlayImageAlt","appStoreUrl","appStoreImageUrl","appStoreImageAlt","alignSelf","buttonWebMobileDescription","buttonDesktopMobileDescription","ImageToggle","toggleImages","toggledImageUrl","toggledImageAlt","imgContainerCssClass","isImageToggled","setIsImageToggled","handleShowMainImage","handleShowToggledImage","AccessThinkPortalTodayImgToggle","TitleWithSubtitleAndThreeSimpleCards","ThreeImagesCardComponent","ThreeImagesCardComponentLarge","ThreeImagesCardComponentSwiper","ThreeImagesCards","alternativeComponent","setAlternativeComponent","currentComponentHandler","ManagePortfolioWithEase","mobileLinkLabel","mobileLink","webLinkLabel","webLink","currentUrlVideo","setCurrentUrlVideo","showVideo","setShowVideo","handleCurrentVideo","handleCloseVideo","HeroBannerWithVideoBG","BubbleTitleDescButtons","buttonkHrefTarget","PhonesGridContainer","upperTitle","phonesImageUrl","currentImageIndex","setCurrentImageIndex","ChartsGridContainer","chartsUrl","NotificationCard","NotificationsGridContainer","notifications","AnimatedBoxGrid","phoneGridContent","chartGridContent","notificationsGridContent","ClickAndPlayButton","buttonIndex","handleButtonClick","getContainerClassName","ClickAndPlayVideoCard","hasVideos","videosProp","videos","videoPosition","currentVideoIndex","videoIndex","setVideoIndex","playbackStatus","setPlaybackStatus","videoElRef","allowAutoPlay","activeVideo","changeVideoStatus","forcedIsPlayingStatus","handleVideoTransitionEnd","_event","playVideo","onVideoEndHandler","realVideoSrc","videoData","posterUrl","ThinkTrader","animatedBanner","managePortfolioWithEase","clickAndPlayVideoCard","threeImagesCard","optionalButtonBanner","animatedBoxGrid","instrumentCategoryDeck","accessThinkPortalToday","DownloadButton","DownloadButtonDeck","CardItem","groupName","PopularInstrumentsByGroups","WhatWeOffer","tabletImage","phoneImage","CulturesContainer","itemInfo","cultureFlag","cultureFlagAlt","TitleWithImageAndCountries","TwoSectionWithTitleCard","iconType","TwoSectionWithTitle","leftCardContent","rightCardContent","CustomLottie","animationAlt","setImage","DynamicLeveragePricingTable","tableContent","marketInfo","filteredInfo","marketName","openLots","maximumLeverage","marginRequirement","TrendingVideos","videosList","TrendingVideosV2","HeroBannerWithTitleSubtitleImageButton","objectFit","IconChevronRightSupport","TitleSubtitleAndSearch","withFiltersActive","withOrWithoutFilterButton","handleSearchOnChange","handleOnSearch","handleOnClick","CategoriesWithIconSwiperCard","CategoriesWithIconSwiper","cardsContent","WideCard","cardNumber","TwoWideCards","cardContent","StillHaveQuestionsItems","Announcements","contentToShow","setContentToShow","charNumbers","itemSubtitleValue","setItemSubtitleValue","depContent0ItemSubtitle","itemSubtitle","handleLoadMoreContent","newContent","itemUploadDate","itemImage","itemImageAlt","CardsWithTitleAndSub","CardsDeckWithTitleAndSub","cardsWithTitleAndSubContent","CardsDeckWithTitleAndSubV2","bulletPoints","buttonUrls","SideBarSection","sideBarInfo","subCategory","SupportBody","sideBarProps","MaintenanceCardsStrip","maintenanceCards","specificDateMaintenanceHtml","regularMaintenance","noScheduledMaintenanceHtml","maintenanceTextHtml","weekday","regularScheduledMaintenanceWeekdayInGmtPlus2","hourGMTPlus2","regularScheduledMaintenanceHourInGmtPlus2","targetWeekdayGMTPlus2","targetHourGMTPlus2","maintenanceDurationHours","resultDate","currentWeekday","currentHourGMTPlus2","daysToAdd","resultDateGMTPlus3","endDateGMTPlus3","startTime1","startTime2","hour12","getNextTargetDayAndTime","regularScheduledMaintenanceHourDuration","TitleWithCard","TitleWithTwoCards","MarketNews","newsContent","moreNewsLabel","moreNewsUrl","newsLink","newsImg","newsTitle","newsInstrumentCategory","newsCategory","newsUploadTime","newsAuthor","WhyTradersChooseUs","yearItems","itemImg","itemImgAlt","RichTextWithImage","textAlignment","richText","mobileImageURL","ToggleableTitleContentSwiperCard","responsiveImageData","ResponsivelyDecoratedImg","ToggleableTitleContentSwiper","WideCardWithButton","TwoWideCardsWithButtonsDeck","EmployeeTestimonialSliderCard","employeeImageUrl","employeeImageAlt","employeeName","employeePosition","EmployeeTestimonialSlider","CardWithImageAndTitleAnimated","cardSubTitle","cardAnimation","CardDeckWithImageAndTitleAnimated","RibbonWithDataForTrustPilot","evaluationLabel","evaluationValue","trustPilotIconImage","VideoBgComponentCard","boldLeftTitle","boldRightTitle","LeftSubtitle","rightSubtitle","SimpleSwiperComponent","isReverseDirection","VideoBgComponent","SwiperWithVideoBg","animationJson","buttonLink2","buttonLabel2","openInNewTabButton1","logoContent","RichTextDescriptionCtaAndImageBanner","richTitle","imgUrlDesktop","imgUrlMobile","videoRef","AnimatedCard","imgUrlTablet","imgUrlPhone","AnimatedBigCard","SectionWithTwoAnimatedCards","RibbonWithStatLine","buttonHoverColor","buttonHoverTextColor","AnimatedViewWithTitle","SectionCardsMovingInOppositeDirection","upperRow","lowerRow","BannerImageBackground","gradient1","gradient2","buttonHref2","SectionWithAwardsCard","SectionWithAwards","webIcon","mobileIcon","CardsGridWithFullWidthCenteredImagesAndTags","tags","textBeforeTags","CardsGridWithFullWidthCenteredImagesAndTagsV2","CardsGridTitleDescriptionIcon","shortArrowIcon","InstantSwiper","setActiveSlide","handleChangeBtnClick","supportUpIcon","supportDownIcon","supportMaintenanceIcon","maskUnits","StatusCardsGrid","renderUp","statusDescription","renderDown","renderMaintenance","serviceTitle","statusCode","TrustPilotOpinionLP","buttonImage","buttonImage2","LogoLP","CardWithAnimation","CardDeckWithTitleAndAnimatinOrImage","imgMarginBottom","bigCardPosition","flexDirection","haveLabels","TextAndImageLP","WhySpreadBetWithUsCard","WhySpreadBetWithUs","ContractSpecsSBTabs","BottomTimeLine","TopTimeLine","Draggable","ourRef","isMouseDown","setIsMouseDown","mouseCoords","handleDragStartCallback","slider","handleDragEndCallback","handleDragCallback","walkX","walkY","onMouseDown","onMouseUp","onMouseMove","TimelineWithText","timelineData","TopTimeLineElements","bottomTimeLineElements","MarketsAndInstruments","CustomSelect","selectOptionText","setSelectedOption","setIsOpen","optionClickHandler","handleOptionClick","toggleHandler","ItemDeckWithTitleHorizontal","ContactUsBannerWithButton","CardInfo","cardImg","TradeWithExpertInsights","cardInfoSet","TextAndImageLPCentered","FilterAcademyCards","setIsLoading","setTotalArticlesCount","lastQuery","categoryFilterItems","categoriesTitles","categoriesIds","getIndexOfSelectedElements","categoryTranslator","wordsArray","handleCategoriesQuantity","fullCategoriesList","Difficulty","Category","page","translatedQueryParams","getQueryCategory","accumulatedParams","candidateEntry","paramKey","lastQueryObject","newQueryObject","serializedQuery","queryAbortController","articles","fetchFunction","setFiltersDataFunction","difficultyParam","prevFilters","useFetchAcadArticlesOnMount","cultureSuffix","BigTextSection","openButtonLabel","descriptionToShow","setDescriptionToShow","ContactFormBanner","fullName","nameLabel","namePlaceholder","AspectItem","Aspects","SectionWithFeaturedLists","criteria","orLabel","firstButtonUrl","firstButtonOpenOnNewPage","secondButtonUrl","secondButtonOpenOnNewPage","centeredColStyle","withThreeButtonStyle","thirdButtonLabel","thirdButtonUrl","aspects","aspectItems","GetTheBestOfBoth","firstIcon","secondIcon","bgImageTablet","ExperienceNewWayToTrade","leftIcon","rightIcon","TabFaqAccordionCard","omitFaq","answerElement","TabWithAccordion","TabsWithAccordion","tabs","activeTab","setActiveTab","smallView","setSmallView","tab","OtherCard","contentTextColor","borderColor","OtherAccountsVariationCardsDeck","twoColumns","handleConditionalHeader","Mt5GradientBanner","bannerImage","ctaUrl","ctaLabel","gradientImage","additionalStyles","Mt5HeroBanner","COLOR_SCHEME_BTN_CLASSES","green","lightpurple","lightPurpleSquared","RibbonWithOutStatLine","linkOpensInNewTab","ribbonColorScheme","colorSchemeName","BidAskQuote","BidAskQuoteBase","TimescaleEnum","UIDataRangeStatusEnum","DEFAULT_TIMESCALE","TS_1DAY","InstrumentHeader","instrumentCode","bidTitle","askTitle","openTitle","prevCloseTitle","dayRangeTitle","week52RangeTitle","currencyIconUrl","bidAskLinksUrl","prevBidPrice","prevAskPrice","bidPrice","setBidPrice","askPrice","setAskPrice","setPrevClose","dayRange","setDayRange","yearRange","setYearRange","checkIsChangeNegative","getValueChangeClass","isValueNegative","handleWebSocketMessage","priceQuote","historyRequestCounter","fetchHistory","reqHistory","fetchWeek52Range","reqWeek52","historyRequestInterval","MAX_REQUEST_ATTEMPTS","REQUEST_INTERVAL","timescale","historyTicks","Low","DECIMAL_PRECISION","High","Open","Close","week52RequestCounter","week52RequestInterval","week52Range","notExists","useInstrumentPriceHistory","getRangeBarProps","FAIL_OFFSET","CSS_CLASS_PREFFIX","checkIsStringRangeValid","hasError","INVALID_RANGE_POINTS","pinPosition","rangeStart","UNDEFINED_INPUTS","rangeDiff","INCALCULABLE_INPUTS","ZERO_RANGE","REGULAR_RANGE","UKNOWN","calcRangeBarProps","STATUS_TO_RETURN","possiblePredefinedStatusObj","dayRangeStats","yearRangeStats","dayRangeFrom","dayRangeTo","yearRangeFrom","yearRangeTo","getRangeStats","dayRangeBarPinPosition","dayRangeBarCssClass","yearRangeBarPinPosition","yearRangeBarCssClass","changeValue","Infinity","calculatePercentageChange","formattedChangeValue","priceChangeClass","bidQuoteClass","askQuoteClass","InstrumentHeaderValue","appUrl","Mt5DownloadSection","titleStyles","apple","amazon","airbnb","visa","alibaba","tesla","microsoft","goldman","alphabet","InstrumentChartMemoized","chartInstrumentCode","correctionsMap","getInstrumentCodeCorrection","InstrumentInfo","instrumentDescription","ProfileSection","VideoSection","openNewTab","ProfileArticles","academyCards","newsCards","SimpleTitleAndSubtitle","TierInstrument","TabWithInstrumentsAndTable","tableData","instrumentsSectionTitle","TabsWithInstrumentsAndTable","tabName","tabData","SimpleHeaderBanner","lottieSize","setLottieSize","handleLottieAnimation","LoginTabs","ttLogoIcon","mt4LogoIcon","mt5LogoIcon","tpLogoIcon","ttButtonLabel","mt4ButtonLabel","mt5ButtonLabel","tpButtonLabel","desktopTitle","mobileTitle","openTTTabs","setOpenTTTabs","openMT4Tabs","setOpenMT4Tabs","openMT5Tabs","setOpenMT5Tabs","openTPTabs","setOpenTPTabs","handleTTButtonClick","handleMT4ButtonClick","handleMT5ButtonClick","handleTPButtonClick","buttonBox","openTab","buttonHandle","logoIcon","tabLabel","tabPosition","tabsBox","Listitem","SectionWithListVersioned","Items","SectionWithImageLateralItems","ErrorHandler","stamp","commentRef","SectionItem","SectionWithTwoLists","HeaderWithTitleSubTitleAndButton","SectionWithGradientAndImage","backGroundImage","TwoSectionWithTitleNewCard","mainIcon","TwoSectionWithTitleNew","ImageAndText","BigOrSmallCard","cardImageUrl","cardIconUrl","cardImageOrIconAlt","cardSize","GridBigAndSmallCards","AwardsSlider","slidesQuantity","awards","BigAwardsCard","awardImgUrl","organization","backgroundImg","topIconPosition","firstGradientColor","secondGradientColor","imageUrlCss","handleIconPosition","BigAwardsCardDeck","License","LicenseSlider","licenses","isClient","setIsClient","license","getHeadingDesignStyle","headingStyle","headingType","TitleSubTitleCTA","buttonOnLargeOnly","centered","buttonOnLargeAndMediumOnly","buttonOpensInNewTab","MEDIA_EXTENSIONS","MediaViewer","mediaFileUrl","isVideoLooping","mediaType","fileUrl","getMediaFileExtension","extensions","getMediaType","SmartphoneFrameWithMedia","frameImageUrl","LinkPill","purpose","LinkPillsPair","pills","MobileAppDownloadPopin","qRCodeImageUrl","downloadLinks","handleEsc","PortalledMobileAppDownload","SimpleIconAndTextCard","SimpleIconAndTextCardDeck","ThreeColsSectionMediaAndButtonsBase","cardsGroup1","cardsGroup2","mediaProps","mobileAppDownloadProps","ctaButtons","backgroundImageUrl","anchorId","isModalOpen","setIsModalOpen","handleMobileDownloadButton","newCtaButtons","buttonProps","newButtonProps","INTERSECTION_THRESHOLDS","ThreeColsSectionMediaAndButtonsIntersectionObserver","animationType","interSectionPhase","setIntersectionPhase","intersectionThresholds","phaseSettingFunction","isIntersectionCompleteRef","passedThresholdsRef","sorted_thresholds","phaseNum","manageIntersections","useComponentIntersection","animationBaseClass","getExtraClasses","ThreeColsSectionMediaAndButtons","SmallCardWithAnimatedIcon","SmallCardsSlider","leftContent","rightContent","changeToColumn","windowWidth","setWindowWidth","handleResize","leftRatio","rightRatio","leftFlex","rightFlex","dropToColumnsClass","RichTextWithImageUplift","titletype","mainContainerWidth1400","descriptionColor","headingTextColor","haveItems","item1title","item1subtitle","item2title","item2subtitle","item3title","item3subtitle","titleType","titleTextAlignment","titleTextColor","titleLabel","descriptionTextAlignment","firstItemtitle","firstItemsubtitle","secondItemtitle","secondItemsubtitle","thirdItemtitle","thirdItemsubtitle","desktopAndTabletImage","desktopAndMobileImageAlt","SingleAwardBanner","posterImgUrl","posterBkgrImgUrl","FooterBannerV2_6","topImageUrl","leftImageUrl","rightImageUrl","SocialMedia","socialMedia","LiveChatCTA","simulateMouseClick","SocialBarLogoLiveChat","liveChatCTA","PaymentMethodsIcons","methodIconURL","methodIconAlt","FooterNavLink","FooterNavSection","FooterNavV2_6","navSections","FooterV2_6","socialBarLogoLiveChat","paymentMethodsIcons","footerNavigationProps","legalInfo","hasBanner","footerBannerProps","LinkWithTargetAndRel","CardWithIconTextsLink","M30CardsWithIconTextsLink","CardWithImageAndGradient","M31FiveCardsTitleText","subTitleAlignment","FormInputs","phoneNumber","emailPlacerHolder","namePlacerHolder","phoneNumberPlacerHolder","onSubmit","errorLabel","validateErrors","modalMessage","handleVisibility","modalButtonMessage","initialUserData","initialErrorData","M35IntouchForm","userData","aubTitleColor","emailErrorLabel","phoneErrorLabel","requiredFieldLabel","nameErrorLabel","errorModalMessage","sendingInfoMessage","errorValue","setErrorValue","currentModalMessage","setCurrentModalMessage","handleCheck","htmlId","validated","handleUserInput","canSubmit","inputValues","handleModalVisibility","handleErrorValidator"],"sourceRoot":""}