{"version":3,"file":"default/js/main.js","mappings":";;;;;;;;;;AAAA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;AC3BA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5DA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AAEA;;;;;;;;;;;AC7BA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7CA;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1EA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAsBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AAEA;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpxBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAKA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvQA;;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA;;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACt4KA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpNA;;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AC7LA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjNA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtBA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;;;;;;;;;;ACpDA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/GA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;ACxCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AClFA;;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAAA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AAEA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;AChjBA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAqBA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;ACnJA;;AAAA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AAGA;AAEA;AAIA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7aA;;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCA;;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpCA;;AAEA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3mBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;;;;;;;;;;AC3IA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnBA;;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAGA;AACA;AAGA;AACA;AACA;AAKA;AAGA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAIA;AACA;AAGA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChhBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;ACzMA;AACA;AACA;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAKA;AAGA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AAIA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAIA;AAGA;AAGA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAyBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AAYA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAEA;AACA;AAQA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAYA;AACA;AAUA;AACA;AACA;AAEA;AACA;AAMA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAYA;AACA;AAUA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AAKA;AACA;AAGA;AACA;AACA;AAQA;AACA;AAMA;AACA;AACA;AAKA;AACA;AACA;AACA;AAMA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAYA;AACA;AAUA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AAMA;AACA;AAEA;AACA;AAMA;AAEA;AAEA;AAMA;AAEA;AAEA;AACA;AACA;AAIA;AACA;AACA;AAQA;AACA;AAMA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAUA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AAEA;AAIA;AAGA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAIA;AACA;AAMA;AAMA;AAMA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAIA;AACA;AAIA;AAEA;AAIA;AAIA;AAGA;AACA;AAIA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAKA;AACA;AAIA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AAAA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAoBA;AACA;;AAEA;AACA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAOA;AACA;AAEA;AACA;;AAEA;AACA;AAiBA;AAIA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAGA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAKA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAEA;AAKA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAIA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAYA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAIA;AACA;;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAKA;AAIA;;AAEA;AACA;AACA;;AAOA;AACA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AAIA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAIA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAGA;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AAGA;AAGA;AACA;AAMA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AAMA;AAIA;AAIA;AAIA;AAIA;AAIA;AAKA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAIA;AAIA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AAIA;AACA;AACA;AAGA;AAGA;AACA;AACA;AAGA;AAEA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAMA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAIA;AACA;AAKA;AACA;AAEA;AAOA;AACA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAIA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAQA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAKA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AAGA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAQA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AAIA;AACA;AACA;AAAA;AACA;AAGA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AAEA;AAIA;AAKA;AAIA;;AAEA;AACA;AACA;;AAKA;AACA;AAYA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAEA;AACA;AAOA;AACA;AAIA;AAGA;AACA;AACA;AACA;AACA;AAGA;AAIA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AAGA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AAMA;AAIA;AAIA;AAIA;AAIA;AAIA;AACA;AAIA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AAGA;;AAEA;AACA;;AAIA;AACA;AACA;AACA;AACA;AAGA;AAIA;AAEA;AACA;AACA;AAGA;AAGA;AACA;AACA;AAGA;AAEA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAMA;AACA;AAGA;AAMA;AAGA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AAGA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAGA;AAEA;AACA;AAKA;AACA;AAEA;AACA;AACA;AAGA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAKA;AACA;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAIA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAQA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AAIA;AAGA;AACA;AAKA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AAMA;AAKA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAIA;AACA;AACA;AAKA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AACA;AAOA;AAIA;AAUA;AAKA;AACA;AAWA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAIA;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AAIA;AAMA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AAIA;AAIA;AAEA;AACA;AAIA;AAKA;AAEA;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAGA;AAGA;AACA;AAMA;AAGA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AAGA;AACA;AAGA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AAEA;AACA;;AAEA;AAKA;AACA;AAIA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;;AACA;AACA;AAKA;AACA;AAMA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AAQA;AACA;AACA;AAGA;AAGA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;;AAKA;AACA;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAKA;AACA;AACA;;AAEA;AACA;AAKA;AAKA;AACA;AAIA;AAEA;AAEA;AAOA;AAIA;AAIA;AACA;AAIA;AAKA;AAIA;AACA;AACA;AAOA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAMA;AAGA;AAEA;AAOA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAIA;AAGA;AAGA;AACA;AAGA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAEA;AASA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AAEA;AAMA;AAMA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;;AAQA;AACA;AAEA;AAKA;;AAKA;AACA;;AAEA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AAQA;AACA;AAGA;AAOA;AACA;AAGA;AACA;AAKA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AAIA;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAMA;AALA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAEA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AAGA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAQA;AAKA;AACA;AAKA;AAKA;AACA;AACA;AAEA;AAcA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAGA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AAUA;AACA;AAKA;AAUA;AACA;AAUA;AACA;AACA;AACA;AAMA;AACA;AAUA;AACA;AAWA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAIA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAIA;AACA;AACA;AAGA;AACA;AAGA;AAIA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAMA;AACA;AAGA;AAGA;AACA;AAOA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAMA;AACA;AACA;AAGA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAMA;AAIA;AACA;AAGA;AACA;AAGA;AAEA;AAOA;AACA;AACA;AAGA;AAGA;AACA;AAOA;AACA;AAIA;AAKA;AAOA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AAIA;AAGA;AAKA;AACA;AAEA;AAMA;AAEA;AACA;AAQA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAMA;AACA;AACA;AAGA;AACA;AACA;AAOA;AACA;AAIA;AAKA;AAOA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAMA;AAIA;AACA;AAEA;AACA;AAIA;AAEA;AAIA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AAIA;AACA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAMA;AAEA;AACA;AAEA;AAEA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AAKA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAKA;AAGA;AACA;AACA;AAGA;AACA;AAMA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAIA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AAIA;AAGA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAIA;AAKA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AAOA;AAEA;AAAA;AAAA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AAEA;AAGA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAGA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAIA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAOA;AAEA;AACA;AACA;AAMA;AACA;;AAEA;AACA;AAKA;AACA;AAEA;AACA;AACA;AAQA;AACA;AACA;AAEA;AACA;AACA;AAGA;AAGA;AAIA;AACA;AACA;;AAEA;AACA;AAKA;AACA;AAMA;AAMA;AAIA;AACA;AAEA;AAOA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAGA;AACA;AACA;AAIA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;ACzgOA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAcA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;ACpuBA;;AAEA;;AAAA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;ACn3BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;;;;;;;;;;AC7EA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;;;;;;;;;;;ACHA;;AAAA;AAAA;AAAA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAQA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;ACnUA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;AChEA;;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAOA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAIA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AClBA;;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAMA;AAEA;AACA;AAMA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AC/mBA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvBA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjFA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AASA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AAGA;AAEA;AACA;;AAEA;AAIA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AClQA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAMA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AAGA;AAIA;;AAEA;AAAA;AAAA;AAAA;AAvEA;AACA;AAAA;AAAA;AAAA;AAyEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAUA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAIA;AAEA;AACA;AAGA;AAEA;AAEA;AACA;AAKA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAIA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAKA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAIA;AAEA;AACA;AAEA;AAGA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AAIA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AAIA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AAGA;AACA;;AAEA;AAAA;AAAA;AAAA;AAnOA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAiOA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;ACjZA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAUA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAGA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AAIA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAGA;;AAEA;AACA;AACA;AACA;AACA;AAGA;;AAEA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AA/ZA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AA6ZA;AACA;AACA;AAMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AC1kBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAUA;;AAEA;AAAA;AACA;AAGA;AAGA;AAGA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AAAA;AAAA;AAAA;AAGA;AAIA;AAAA;AAAA;AAAA;AAGA;AAEA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AAEA;AAEA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AACA;AAAA;AACA;;AAEA;AAAA;AAAA;AAAA;AAtLA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAoLA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;ACrUA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAMA;;AAEA;AAAA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAEA;AACA;AAIA;AACA;AACA;AAAA;AAIA;AAEA;AACA;AAEA;AAIA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAlJA;AACA;AAAA;AAAA;AAAA;AAoJA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AChQA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AAAA;AAAA;AAAA;AA8BA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAIA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AAGA;AAEA;AACA;;AAEA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AAAA;AAEA;AACA;AAGA;AAIA;AAIA;AAAA;AAKA;AAAA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AAKA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AAMA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAMA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AA/iBA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAyhBA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;AC9tBA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;;;;;;;;;;;AC5KA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAGA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;;AAIA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;;AAEA;AACA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AAAA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AAIA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAGA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;;AAMA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAKA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAIA;AAOA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAIA;AAMA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;;AAEA;AAQA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAGA;AAKA;AACA;AACA;;AAGA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAMA;AACA;AAIA;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAAA;AAOA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAOA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AAEA;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAIA;AAEA;AAEA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAKA;AACA;;AAGA;;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAKA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAIA;AACA;AAEA;AACA;AACA;;AAMA;AACA;AAEA;AACA;AAEA;AAOA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAWA;AACA;;AAUA;AACA;AASA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAGA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;AAKA;AACA;AAEA;AAEA;;AAGA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AAIA;AACA;AACA;AACA;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AAIA;AACA;AAAA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AAGA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AAGA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAGA;AACA;;AAIA;AACA;AACA;AACA;AAIA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AAGA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAGA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AAGA;AAQA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAIA;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAOA;AACA;AAAA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAQA;AACA;AAGA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAEA;;AAUA;AACA;AACA;AACA;AAMA;;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AAMA;AAEA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAYA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAKA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAGA;AAIA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAIA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;;AAEA;;AAEA;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAGA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAIA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAIA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAIA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAMA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;AAEA;AACA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAQA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAQA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AAAA;AAAA;AACA;;AAQA;AACA;AAEA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAEA;AAAA;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AAGA;AACA;AAEA;;AAGA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AAKA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AAQA;AACA;AACA;AACA;AAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AAMA;AACA;AACA;AAGA;AACA;;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAKA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;AChvVA;;AAEA;AACA;AAEA;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;;;;;;;;;;AC3BA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;;;;;;;;;;;AClBA;AACA;AAEA;;;;;;;;;;ACHA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;ACrBA;;AAEA;AACA;;AAEA;AACA;AAEA;;;;;;;;;;ACRA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;;;;;;;;;;AClBA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AC5BA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;;;;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;ACpEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;ACEA;AACA;AACA;AACA;AACA;;;AAGA;AAPA;AAUA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AADA;AALA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;AADA;;AAHA;;AAWA;;;;;;;;;;;AAYA;;ACnDA;;;;;;;AAOA;AACA;AAEA;;;ACVA;;;;;;;AAOA;AACA;AACA;;;AAGA;AACA;AACA;;;ACdA;;;;;;;AAOA;AACA;AACA;;AAEA;;;ACRA;;;;;;;AAOA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;AAIA;AAAA;AAAA;AAAA;AACA;AACA;;AAGA;;;AC9BA;;;;;;;AAOA;AACA;;ACNA;AACA;;;;;;;;;AASA;AACA;AACA;;AAEA;AACA;;AAEA;;;ACjBA;;;;;;;AAOA;AACA;AACA;;AAGA;;;AAGA;;AAEA;AACA;;AAGA;AAEA;AACA;;;;;AAMA;AAGA;;AAGA;;ACpCA;AACA;AACA;AACA;;AAGA;;;ACRA;;;;;;;AAOA;AACA;AACA;;AAGA;;;ACRA;;;;;;;;AAQA;;AAEA;AACA;;;;AAIA;AAGA;AACA;;;AAGA;AACA;AACA;AACA;;;;AAIA;AAIA;AACA;;AAGA;;;;AAIA;AACA;AACA;AADA;AAGA;;;;ACjDA;;;;;;;;AAQA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAGA;;;AChBA;;;;;;;;;AASA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnBA;;;;;;;;;;AAUA;AACA;AACA;AAGA;;ACbA;AACA;;AAcA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;;;;;AAOA;AAEA;AACA;AACA;;;;ACJA;;;;;;;AAOA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;;AAXA;AAgBA;AACA;AACA;AACA;AACA;AAJA;;;AAQA;AACA;AAEA;AAGA;AACA;;;;AAIA;AACA;AACA;AACA;AAEA;AACA;;AAGA;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;;;;;;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAIA;AAIA;;AAGA;;ACtDA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAFA;;AAAA;AAOA;;;ACjBA;;;;;;;;AAQA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;ACrBA;;;;;;;;AAQA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;ACTA;;;;;;;;;;;AAWA;AAKA;;;;AAIA;AAAA;AAAA;AAAA;AACA;;;AAGA;AACA;AADA;;AAMA;AACA;AACA;AACA;AACA;;AAHA;AAMA;AADA;AAGA;;AAGA;;;AAOA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AALA;;AAQA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AAEA;;AC7EA;AAAA;AAAA;AACA;;;;;;;;;;;;AAYA;AAMA;AAEA;AACA;;AAGA;AAOA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAPA;AASA;AACA;AACA;AAXA;AAaA;AACA;AACA;;AAfA;AAmBA;;;AAGA;AACA;;AAJA;AAMA;AANA;AAQA;AACA;AAAA;AACA;AAFA;AAKA;AAIA;AAEA;;;ACnEA;;;;;;;;;;AAUA;AAAA;AACA;AACA;;;ACjBA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;;;AChBA;;;;;;;AAOA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;;;ACNA;;;;;;;;;;AAUA;AACA;;;AAGA;;;AAGA;AACA;AACA;AAFA;;;AAMA;AACA;AACA;AACA;AACA;AAEA;AAIA;AACA;AADA;AAIA;;AAIA;;;AC5CA;;;;;;;;;AASA;;AAEA;AACA;;;;AAIA;;;ACdA;;;;;;;;;AASA;;AAEA;AACA;AAAA;AAAA;;;;AAIA;AAAA;AAAA;AACA;;;ACfA;;;;;;;;;;AAUA;AACA;AAIA;AACA;;AACA;;AAEA;AACA;;;;AAIA;AACA;AAEA;;AAZA;AAgBA;;;AC9BA;;;;;;;AAOA;;AAEA;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;;;AAUA;;;;;AAUA;;;AAUA;AAEA;;;AAGA;AAMA;;;AAKA;;;;AAIA;AACA;AACA;AAFA;AAIA;;;;ACxEA;;;;;;AAMA;AACA;AACA;AAAA;AAAA;AADA;;;ACPA;;;;;;;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;;ACfA;;;;;AAKA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;;;AAIA;AACA;;AAEA;;;AC9BA;;;;;AAKA;AACA;AACA;;ACJA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAEA;;AAMA;;;;;;;;;AASA;;AAOA;AACA;AAAA;AAAA;;;AAGA;AAEA;AAKA;AACA;AAEA;;;AC5CA;;;;;;AAMA;AACA;AACA;;;;ACRA;;;;;;AAMA;;AAEA;;;AAGA;AACA;AADA;;;AAKA;AACA;AACA;AACA;AACA;;;ACpBA;;;;;;;AAOA;AACA;AACA;AACA;;;;ACZA;;;;;;;AAOA;AACA;;;ACNA;;;;;;;;AAQA;AACA;AACA;;AAGA;AAIA;;AAEA;AAVA;;;ACXA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AADA;AAGA;;AALA;;;ACJA;;;;;;;;;AASA;;;;;AAKA;;;;AAIA;;;AAGA;AACA;;AAGA;;;;;;;;;;;;;AAaA;;AAQA;;;;;AAKA;AASA;;;;AAIA;AAAA;AAAA;AAEA;;;ACvEA;;;;;;;;;;;;;;;;;;;AAmBA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAKA;AAEA;AACA;AAKA;AACA;AACA;AARA;;AChCA;;;;;;;;;AASA;AACA;AAAA;AACA;;;;AAGA;AAEA;AAFA;AAIA;AACA;;AAIA;AAKA;AACA;;;AAGA;AACA;AADA;AAIA;AAKA;AACA;;;;;AAKA;;;;;;;;;;;AAWA;AAAA;AACA;;;AAGA;AACA;AADA;AAGA;;AANA;AASA;;AAEA;AACA;AACA;AADA;AAGA;;AAJA;AAOA;;AAEA;AACA;AACA;AACA;AACA;AAJA;;AAOA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AADA;;;AAKA;AACA;AACA;AAEA;;;AC5GA;;;;;;;;;;AAUA;AAKA;AAAA;AAAA;AAAA;AAEA;AAIA;AAFA;AAQA;AACA;AACA;AACA;;AAIA;;;AC/BA;;;;;;;AAOA;;;;AAEA;AACA;;AAGA;;;AAGA;AACA;;;AAGA;AACA;;AALA;;;AAUA;AACA;AAGA;;;AAIA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;;;AAIA;AACA;;AAGA;;;AAGA;;;;AAIA;AACA;AACA;AACA;;;AAIA;AAEA;AACA;AAKA;;;ACvFA;;;;;;;AAOA;AACA;AACA;AADA;AAGA;;AAEA;;;ACbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA;;AC7BA;AACA;;;;;;;;;;;;AAYA;AAAA;AACA;AACA;AAGA;;ACZA;AACA;AACA;AACA;AAHA;;;;;;;;;AAaA;;AAEA;AACA;;AAGA;;AAEA;;AAGA;AAQA;AACA;AACA;AAEA;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AAAA;AAGA;AACA;AACA;;AAGA;AACA;AAEA;AACA;;;AAGA;AACA;AAUA;AACA;AACA;AACA;AAGA;;;AAOA;;;AAGA;;;AAQA;AAOA;AAEA;;AAEA;AAEA;AACA;;AAGA;AACA;;AAGA;;;;AAIA;AASA;;AAjFA;AAoFA;;;AChJA;;;;;;;AAOA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAGA;AACA;;AAGA;;;ACpBA;;;;;;;;;;;;AAYA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AAAA;AAGA;AACA;AAbA;;AAgBA;AACA;AACA;AADA;AAMA;;AAKA;AAdA;;;AAkBA;;;;;;;;;;;;;;;AAeA;AAMA;;;;;AAKA;;;;AAIA;AAAA;AAAA;;;;AAIA;AACA;AAAA;AAGA;AACA;;;;;AAOA;AACA;;;AAYA;;AAEA;AAGA;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAHA;AAKA;;AAbA;;AAiBA;AAAA;AAjBA;AAPA;;;AA6BA;AACA;AACA;AACA;;AAFA;AADA;AAOA;;;;;;;;;;;;AAYA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AADA;AAGA;;AAGA;AACA;AACA;AAFA;AAIA;AACA;AAFA;AAIA;AACA;AAFA;AAIA;AACA;;AAGA;AACA;;;AC5LA;;;;;;;AAOA;AACA;;;;;AAMA;AACA;;;;;;AAMA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;AAUA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAA;AAEA;AAEA;AAGA;;AAEA;AATA;AAAA;AAYA;AACA;AAEA;AAGA;;AAMA;;AAxBA;AA4BA;AACA;AAEA;AAHA;AAMA;AAEA;;;ACvFA;;;;;;;AAOA;AACA;AACA;AACA;;;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAHA;AAOA;;AAGA;;;AC1BA;;;;;;;AAOA;AACA;AACA;;AAGA;AACA;AAEA;AAFA;AAMA;;AAMA;AACA;;AAGA;AACA;AAZA;;AAeA;AACA;;AAGA;AACA;;AAGA;;;ACzCA;;;;;;;AAOA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AAEA;AAIA;AACA;AAEA;;;ACdA;;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;AASA;;AAEA;;AAEA;;AAEA;AAfA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA;;AAEA;;AAEA;;AAEA;;;;AAIA;AAlEA;;;;;;;;;;;;;;;;;;AAsFA;;AAEA;;AAEA;;AAEA;;;;;;AAMA;;;;;;;AAOA;;;;;;AAMA;AA/GA;;;;;;;;;;AA2HA;;AAEA;;AAEA;;AAEA;AAjIA;;;;;;;;;;;AA8IA;;AAEA;;AAEA;;AAEA;;AAEA;AAtJA;;;;;;;;;;;;AAoKA;;AAEA;;AAEA;;AAEA;;;;;;;AAOA;;;;;AAKA;;;;;;;AAOA;;;;;;;;AAQA;;;;;;;;AAQA;AA7MA;;;;;;;;AAuNA;;AAEA;;AAEA;;AAEA;AA7NA;;;;;;;;;;;AA0OA;;AAEA;;AAEA;;AAEA;AAhPA;;;;;;;;;;;;;;;;AAkQA;;AAEA;;AAEA;;AAEA;;;;;;AAMA;;;;;;AAMA;;;;;;AAMA;AA1RA;;;;;;;;;;;;;;;;AA4SA;;AAEA;;AAEA;;AAEA;;AAEA;;;;;;;AAOA;;AA3TA;;;;;;;;;;;;;;;;;;;;;AC9BA;;;;;;;;;;;;;;;;AAgBA;;;;;AAKA;;;;;AAMA;;;;;AAMA;;;;;;AAOA;;;;;;;AAQA;;;;;;;;;AAUA;;;;;;;AA1CA;;;;;;;;;;;;AClBA;AACA;AAIA;;;;;;;;;AAgBA;;AAAA;;AAyFA;AAAA;AAzFA;;;AAEA;;;AAGA;;;AAGA;AACA;AACA;AACA;AAHA;;;AAOA;AACA;;;AAGA;AACA;AAIA;AAJA;;;AAaA;;;AAGA;AAHA;;AAMA;AAAA;AANA;;;;;;AAYA;AACA;AACA;;AAFA;;;AAaA;AAEA;AACA;;AAEA;;AAGA;;;;;;;;AAKA;AACA;;;;AAEA;AACA;;;;AAEA;AACA;;;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1FA;AAAA;AAAA;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAMA;AACA;;AACA;AAEA;AAEA;AAEA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAIA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAGA;AAEA;AAEA;AAIA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAAA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAKA;AAEA;AACA;AAGA;AAEA;AAEA;AAIA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAAA;AAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAAA;AAGA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAKA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAKA;AACA;AACA;AACA;AAEA;AAEA;AAKA;AACA;AACA;AACA;AAGA;AAEA;AAKA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAIA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAIA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AAEA;AAEA;AAAA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AAEA;AAKA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;AAEA;AACA;AAEA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAKA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAAA;AAAA;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAAA;AAAA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAKA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAGA;AAEA;AAEA;AAEA;AAGA;AAEA;AAEA;AAEA;AAEA;AAEA;;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AAKA;AAIA;AAEA;AAEA;AAEA;AAEA;AACA;AAKA;AAEA;AACA;AAKA;AAEA;AAEA;AAIA;AAEA;AAIA;AAEA;AAEA;AAIA;AAEA;AAEA;AAKA;AAEA;AAIA;AAEA;AACA;AAEA;AAEA;AAKA;AAEA;AAKA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAKA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAKA;AAEA;AAEA;AACA;AAEA;AAKA;AAEA;AAEA;AAAA;AAKA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAGA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAIA;AAEA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAGA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAKA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AAIA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAKA;AAKA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEA;;;;;;;;;;;ACl8FA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://sfcc/./cartridges/app_lyonscg/cartridge/client/default/js/components/scanbarcode.js","webpack://sfcc/./cartridges/app_lyonscg/cartridge/client/default/js/config/slickConfigs.js","webpack://sfcc/./cartridges/app_lyonscg/cartridge/client/default/js/product/base.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/components/cleave.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/components/collapsibleItem.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/components/cookie.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/components/spinner.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/product/base.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/storeLocator/storeLocator.js","webpack://sfcc/./cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack://sfcc/./cartridges/int_googletags/cartridge/client/default/js/tagManager.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/appsession/keepAlive.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/breadFinancialHelpers.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/carousels.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/cleave.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/clientSideValidation.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/footerSignup.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/formValidation.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/injectDynamicCss.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/injectDynamicUtils.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/input.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/menu.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/miniCartBasic.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/modal.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/search.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/stickyTopNav.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/components/storeHeaderClientLogic.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/config/slickConfigs.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/header/account.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/header/banner.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/header/store.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/header/trackOrder.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/mobileAppUtils.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/pageHeader.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/product/addToCartModalWarranty.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/product/base.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/product/pdpInstoreInventory.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/storeLocator/storeLocator.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/thirdParty/bootstrap.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/thirdParty/jquery-visible.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/thirdParty/lazysizes.min.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/tileRender.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/tileRenderCarousel.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/tradeinOverlay.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/transparentTileRender.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/util/cookie.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/util/getSafeValue.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/utils.js","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/wisTulsa/wisTulsa.js","webpack://sfcc/./cartridges/plugin_aws/cartridge/client/default/js/hops.js","webpack://sfcc/./cartridges/plugin_aws/cartridge/client/default/js/hops/hops.js","webpack://sfcc/./cartridges/plugin_instorepickup/cartridge/client/default/js/product/pdpInstoreInventory.js","webpack://sfcc/./node_modules/bootstrap/js/src/alert.js","webpack://sfcc/./node_modules/bootstrap/js/src/collapse.js","webpack://sfcc/./node_modules/bootstrap/js/src/modal.js","webpack://sfcc/./node_modules/bootstrap/js/src/scrollspy.js","webpack://sfcc/./node_modules/bootstrap/js/src/tab.js","webpack://sfcc/./node_modules/bootstrap/js/src/tooltip.js","webpack://sfcc/./node_modules/bootstrap/js/src/util.js","webpack://sfcc/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://sfcc/./node_modules/jquery/dist/jquery.js","webpack://sfcc/./node_modules/lodash/_Symbol.js","webpack://sfcc/./node_modules/lodash/_baseGetTag.js","webpack://sfcc/./node_modules/lodash/_baseTrim.js","webpack://sfcc/./node_modules/lodash/_freeGlobal.js","webpack://sfcc/./node_modules/lodash/_getRawTag.js","webpack://sfcc/./node_modules/lodash/_objectToString.js","webpack://sfcc/./node_modules/lodash/_root.js","webpack://sfcc/./node_modules/lodash/_trimmedEndIndex.js","webpack://sfcc/./node_modules/lodash/debounce.js","webpack://sfcc/./node_modules/lodash/isObject.js","webpack://sfcc/./node_modules/lodash/isObjectLike.js","webpack://sfcc/./node_modules/lodash/isSymbol.js","webpack://sfcc/./node_modules/lodash/now.js","webpack://sfcc/./node_modules/lodash/throttle.js","webpack://sfcc/./node_modules/lodash/toNumber.js","webpack://sfcc/../../src/utils/isBrowser.js","webpack://sfcc/../../src/utils/debounce.js","webpack://sfcc/../../src/utils/isFunction.js","webpack://sfcc/../../src/utils/getStyleComputedProperty.js","webpack://sfcc/../../src/utils/getParentNode.js","webpack://sfcc/../../src/utils/getScrollParent.js","webpack://sfcc/../../src/utils/getReferenceNode.js","webpack://sfcc/../../src/utils/isIE.js","webpack://sfcc/../../src/utils/getOffsetParent.js","webpack://sfcc/../../src/utils/isOffsetContainer.js","webpack://sfcc/../../src/utils/getRoot.js","webpack://sfcc/../../src/utils/findCommonOffsetParent.js","webpack://sfcc/../../src/utils/getScroll.js","webpack://sfcc/../../src/utils/includeScroll.js","webpack://sfcc/../../src/utils/getBordersSize.js","webpack://sfcc/../../src/utils/getWindowSizes.js","webpack://sfcc/../../src/utils/getClientRect.js","webpack://sfcc/../../src/utils/getBoundingClientRect.js","webpack://sfcc/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://sfcc/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://sfcc/../../src/utils/isFixed.js","webpack://sfcc/../../src/utils/getFixedPositionOffsetParent.js","webpack://sfcc/../../src/utils/getBoundaries.js","webpack://sfcc/../../src/utils/computeAutoPlacement.js","webpack://sfcc/../../src/utils/getReferenceOffsets.js","webpack://sfcc/../../src/utils/getOuterSizes.js","webpack://sfcc/../../src/utils/getOppositePlacement.js","webpack://sfcc/../../src/utils/getPopperOffsets.js","webpack://sfcc/../../src/utils/find.js","webpack://sfcc/../../src/utils/findIndex.js","webpack://sfcc/../../src/utils/runModifiers.js","webpack://sfcc/../../src/methods/update.js","webpack://sfcc/../../src/utils/isModifierEnabled.js","webpack://sfcc/../../src/utils/getSupportedPropertyName.js","webpack://sfcc/../../src/methods/destroy.js","webpack://sfcc/../../src/utils/getWindow.js","webpack://sfcc/../../src/utils/setupEventListeners.js","webpack://sfcc/../../src/methods/enableEventListeners.js","webpack://sfcc/../../src/utils/removeEventListeners.js","webpack://sfcc/../../src/methods/disableEventListeners.js","webpack://sfcc/../../src/utils/isNumeric.js","webpack://sfcc/../../src/utils/setStyles.js","webpack://sfcc/../../src/utils/setAttributes.js","webpack://sfcc/../../src/modifiers/applyStyle.js","webpack://sfcc/../../src/utils/getRoundedOffsets.js","webpack://sfcc/../../src/modifiers/computeStyle.js","webpack://sfcc/../../src/utils/isModifierRequired.js","webpack://sfcc/../../src/modifiers/arrow.js","webpack://sfcc/../../src/utils/getOppositeVariation.js","webpack://sfcc/../../src/methods/placements.js","webpack://sfcc/../../src/utils/clockwise.js","webpack://sfcc/../../src/modifiers/flip.js","webpack://sfcc/../../src/modifiers/keepTogether.js","webpack://sfcc/../../src/modifiers/offset.js","webpack://sfcc/../../src/modifiers/preventOverflow.js","webpack://sfcc/../../src/modifiers/shift.js","webpack://sfcc/../../src/modifiers/hide.js","webpack://sfcc/../../src/modifiers/inner.js","webpack://sfcc/../../src/modifiers/index.js","webpack://sfcc/../../src/methods/defaults.js","webpack://sfcc/../../src/index.js","webpack://sfcc/./node_modules/slick-carousel/slick/slick.js","webpack://sfcc/./node_modules/svg4everybody/dist/svg4everybody.js","webpack://sfcc/./node_modules/jquery/dist/jquery-exposed.js","webpack://sfcc/webpack/bootstrap","webpack://sfcc/webpack/runtime/compat get default export","webpack://sfcc/webpack/runtime/define property getters","webpack://sfcc/webpack/runtime/global","webpack://sfcc/webpack/runtime/hasOwnProperty shorthand","webpack://sfcc/webpack/runtime/make namespace object","webpack://sfcc/webpack/runtime/node module decorator","webpack://sfcc/./cartridges/org_gamestop/cartridge/client/default/js/main.js"],"sourcesContent":["'use strict';\n\nvar $scanBarcodeButton = $('.scan-barcode-btn');\n\nvar scanbarcode = {\n init: function () {\n /**\n * initialize scan barcode button and event handlers.\n * */\n if (typeof ___ENGAGE_NATIVE_PLAYER___ === 'function' || window.SHOW_BARCODE_BUTTON === true) {\n scanbarcode.show();\n // When the user clicks on the button, focus on the search bar at the top of the page\n $scanBarcodeButton.on('click', function () {\n scanbarcode.focusOnSearchBar();\n });\n }\n },\n focusOnSearchBar: function () {\n document.querySelector('.js-search-input').focus();\n },\n show: function () {\n $scanBarcodeButton.fadeIn(0).removeClass('d-none');\n }\n};\n\nmodule.exports = function () {\n scanbarcode.init();\n};\n","'use strict';\n\n/**\n * Reusable slick carousel configurations\n * @example - $('.product-carousel').slick(slickConfigs.pdp)\n */\n\nmodule.exports = {\n hero: {\n autoplay: true,\n autoplaySpeed: 5000,\n easing: 'swing',\n infinite: true,\n speed: 800,\n dots: true,\n arrows: true,\n slidesToShow: 1,\n rows: 0,\n slidesToScroll: 1\n },\n\n productTiles: {\n infinite: true,\n speed: 300,\n dots: false,\n arrows: true,\n slidesToShow: 4,\n rows: 0,\n slidesToScroll: 1\n },\n\n pdp: {\n infinite: true,\n speed: 400,\n dots: true,\n arrows: false,\n slidesToShow: 1,\n rows: 0,\n slidesToScroll: 1,\n mobileFirst: true,\n adaptiveHeight: true,\n slide: '.slide:not(.more-slide)',\n responsive: [\n {\n breakpoint: 768,\n settings: 'unslick'\n }\n ]\n },\n\n pdpSetAndBundle: {\n infinite: true,\n speed: 400,\n dots: true,\n arrows: true,\n slidesToShow: 1,\n rows: 0,\n slidesToScroll: 1,\n slide: '.slide'\n }\n};\n","'use strict';\n\nvar base = require('base/product/base');\nvar slickConfigs = require('../config/slickConfigs');\n\n/**\n * Init the product carousel using a predefined slick configuration\n */\nfunction carouselInit() {\n // debugger;\n // if ($('.product-carousel').length) {\n // if ($('.primary-images').hasClass('thumbs')) {\n // $('.product-carousel').not('.slick-initialized').slick(slickConfigs.pdp);\n //\n // $(window).on('resize.productcarousel', function () {\n // if ($(window).width() < 768 && !$('.product-carousel').hasClass('slick-initialized')) {\n // $('.product-carousel').not('.slick-initialized').slick(slickConfigs.pdp);\n // }\n // });\n // } else {\n // $('.product-carousel').not('.slick-initialized').slick(slickConfigs.pdpSetAndBundle);\n // }\n // }\n}\n\nvar exportBase = $.extend({}, base, {\n carouselInit: carouselInit\n});\n\nmodule.exports = exportBase;\n","'use strict';\n\n// var Cleave = require('cleave.js'); // it's getting loaded from vendor.js\nvar Cleave = window.Cleave;\n\nmodule.exports = {\n handleCreditCardNumber: function (cardFieldSelector, cardTypeSelector) {\n var cleave = new Cleave(cardFieldSelector, {\n creditCard: true,\n onCreditCardTypeChanged: function (type) {\n var creditCardTypes = {\n visa: 'Visa',\n mastercard: 'Master Card',\n amex: 'Amex',\n discover: 'Discover',\n unknown: 'Unknown'\n };\n\n var cardType = creditCardTypes[Object.keys(creditCardTypes).indexOf(type) > -1\n ? type\n : 'unknown'];\n $(cardTypeSelector).val(cardType);\n $('.card-number-wrapper').attr('data-type', type);\n if (type === 'visa' || type === 'mastercard' || type === 'discover') {\n $('#securityCode').attr('maxlength', 3);\n } else {\n $('#securityCode').attr('maxlength', 4);\n }\n }\n });\n\n $(cardFieldSelector).data('cleave', cleave);\n },\n\n serializeData: function (form) {\n var serializedArray = form.serializeArray();\n\n serializedArray.forEach(function (item) {\n if (item.name.indexOf('cardNumber') > -1) {\n item.value = $('#cardNumber').data('cleave').getRawValue(); // eslint-disable-line\n }\n });\n\n return $.param(serializedArray);\n }\n};\n","'use strict';\nmodule.exports = function () {\n var sizes = ['xs', 'sm', 'md', 'lg', 'xl'];\n\n sizes.forEach(function (size) {\n var selector = '.collapsible-' + size + ' .title, .collapsible-' + size + '>.card-header';\n $('body').on('click', selector, function (e) {\n e.preventDefault();\n $(this).parents('.collapsible-' + size).toggleClass('active');\n });\n });\n};\n","'use strict';\n\n/**\n * Get cookie value by cookie name from browser\n * @param {string} cookieName - name of the cookie\n * @returns {string} cookie value of the found cookie name\n */\nfunction getCookie(cookieName) {\n var name = cookieName + '=';\n var decodedCookie = decodeURIComponent(document.cookie);\n var cookieArray = decodedCookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookieItem = cookieArray[i];\n while (cookieItem.charAt(0) === ' ') {\n cookieItem = cookieItem.substring(1);\n }\n if (cookieItem.indexOf(name) === 0) {\n return cookieItem.substring(name.length, cookieItem.length);\n }\n }\n return '';\n}\n\nmodule.exports = function () {\n if ($('.valid-cookie-warning').length > 0) {\n var previousSessionID = window.localStorage.getItem('previousSid');\n var currentSessionID = getCookie('sid');\n if (!previousSessionID && currentSessionID) {\n // When a user first time visit the home page,\n // set the previousSessionID to currentSessionID\n // and Show the cookie alert\n previousSessionID = currentSessionID;\n window.localStorage.setItem('previousSid', previousSessionID);\n $('.cookie-warning-messaging').show();\n } else if (previousSessionID && previousSessionID === currentSessionID) {\n // Hide the cookie alert if user is in the same session\n $('.cookie-warning-messaging').hide();\n } else {\n // Clear the previousSessionID from localStorage\n // when user session is changed or expired\n previousSessionID = '';\n window.localStorage.removeItem('previousSid');\n }\n }\n};\n","'use strict';\n\nmodule.exports = function (selector, keyFunctions, preFunction) {\n $(selector).on('keydown', function (e) {\n var key = e.which;\n var supportedKeyCodes = [37, 38, 39, 40, 27];\n if (supportedKeyCodes.indexOf(key) >= 0) {\n e.preventDefault();\n }\n var returnedScope = preFunction.call(this);\n if (keyFunctions[key]) {\n keyFunctions[key].call(this, returnedScope);\n }\n });\n};\n","'use strict';\n\n/**\n * Show a spinner inside a given element\n * @param {element} $target - Element to block by the veil and spinner.\n * Pass body to block the whole page.\n */\nfunction addSpinner($target) {\n var $veil = $('
');\n $veil.append('
');\n if ($target.get(0).tagName === 'IMG') {\n $target.after($veil);\n $veil.css({ width: $target.width(), height: $target.height() });\n if ($target.parent().css('position') === 'static') {\n $target.parent().css('position', 'relative');\n }\n } else {\n $target.append($veil);\n if ($target.css('position') === 'static') {\n $target.parent().css('position', 'relative');\n $target.parent().addClass('veiled');\n }\n if ($target.get(0).tagName === 'BODY') {\n $veil.find('.spinner').css('position', 'fixed');\n }\n }\n $veil.click(function (e) {\n e.stopPropagation();\n });\n}\n\n/**\n * Remove existing spinner\n * @param {element} $veil - jQuery pointer to the veil element\n */\nfunction removeSpinner($veil) {\n if ($veil.parent().hasClass('veiled')) {\n $veil.parent().css('position', '');\n $veil.parent().removeClass('veiled');\n }\n $veil.off('click');\n $veil.remove();\n}\n\n// element level spinner:\n$.fn.spinner = function () {\n var $element = $(this);\n var Fn = function () {\n this.start = function () {\n if ($element.length) {\n addSpinner($element);\n }\n };\n this.stop = function () {\n if ($element.length) {\n var $veil = $('.veil');\n removeSpinner($veil);\n }\n };\n };\n return new Fn();\n};\n\n// page-level spinner:\n$.spinner = function () {\n var Fn = function () {\n this.start = function () {\n addSpinner($('body'));\n };\n this.stop = function () {\n removeSpinner($('.veil'));\n };\n };\n return new Fn();\n};\n","'use strict';\n\n/**\n * Retrieves the relevant pid value\n * @param {jquery} $el - DOM container for a given add to cart button\n * @return {string} - value to be used when adding product to cart\n */\nfunction getPidValue($el) {\n var pid;\n\n if ($('#quickViewModal').hasClass('show') && !$('.product-set').length) {\n pid = $($el).closest('.modal-content').find('.product-quickview').data('pid');\n } else if ($('.product-set-detail').length || $('.product-set').length) {\n pid = $($el).closest('.product-detail').find('.product-id').text();\n } else {\n pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n }\n\n return pid;\n}\n\n/**\n * Retrieve contextual quantity selector\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {jquery} - quantity selector DOM container\n */\nfunction getQuantitySelector($el) {\n return $el && $('.set-items').length\n ? $($el).closest('.product-detail').find('.quantity-select')\n : $('.quantity-select');\n}\n\n/**\n * Retrieves the value associated with the Quantity pull-down menu\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {string} - value found in the quantity input\n */\nfunction getQuantitySelected($el) {\n return getQuantitySelector($el).val();\n}\n\n/**\n * Process the attribute values for an attribute that has image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction processSwatchValues(attr, $productContainer) {\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer.find('[data-attr=\"' + attr.id + '\"] [data-attr-value=\"' +\n attrValue.value + '\"]');\n var $swatchAnchor = $attrValue.parent();\n\n if (attrValue.selected) {\n $attrValue.addClass('selected');\n } else {\n $attrValue.removeClass('selected');\n }\n\n if (attrValue.url) {\n $swatchAnchor.attr('href', attrValue.url);\n } else {\n $swatchAnchor.removeAttr('href');\n }\n\n // Disable if not selectable\n $attrValue.removeClass('selectable unselectable');\n\n $attrValue.addClass(attrValue.selectable ? 'selectable' : 'unselectable');\n });\n}\n\n/**\n * Process attribute values associated with an attribute that does not have image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction processNonSwatchValues(attr, $productContainer) {\n var $attr = '[data-attr=\"' + attr.id + '\"]';\n var $defaultOption = $productContainer.find($attr + ' .select-' + attr.id + ' option:first');\n $defaultOption.attr('value', attr.resetUrl);\n\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer\n .find($attr + ' [data-attr-value=\"' + attrValue.value + '\"]');\n $attrValue.attr('value', attrValue.url)\n .removeAttr('disabled');\n\n if (!attrValue.selectable) {\n $attrValue.attr('disabled', true);\n }\n });\n}\n\n/**\n * Routes the handling of attribute processing depending on whether the attribute has image\n * swatches or not\n *\n * @param {Object} attrs - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction updateAttrs(attrs, $productContainer) {\n // Currently, the only attribute type that has image swatches is Color.\n var attrsWithSwatches = ['color'];\n\n attrs.forEach(function (attr) {\n if (attrsWithSwatches.indexOf(attr.id) > -1) {\n processSwatchValues(attr, $productContainer);\n } else {\n processNonSwatchValues(attr, $productContainer);\n }\n });\n}\n\n/**\n * Updates the availability status in the Product Detail Page\n *\n * @param {Object} response - Ajax response object after an\n * attribute value has been [de]selected\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction updateAvailability(response, $productContainer) {\n var availabilityValue = '';\n var availabilityMessages = response.product.availability.messages;\n if (!response.product.readyToOrder) {\n availabilityValue = '
' + response.resources.info_selectforstock + '
';\n } else {\n availabilityMessages.forEach(function (message) {\n availabilityValue += '
' + message + '
';\n });\n }\n\n $($productContainer).trigger('product:updateAvailability', {\n product: response.product,\n $productContainer: $productContainer,\n message: availabilityValue,\n resources: response.resources\n });\n}\n\n/**\n * Generates html for promotions section\n *\n * @param {array} promotions - list of promotions\n * @return {string} - Compiled HTML\n */\nfunction getPromotionsHtml(promotions) {\n if (!promotions) {\n return '';\n }\n\n var html = '';\n\n promotions.forEach(function (promotion) {\n html += '
' + promotion.calloutMsg +\n '
';\n });\n\n return html;\n}\n\n/**\n * Generates html for product attributes section\n *\n * @param {array} attributes - list of attributes\n * @return {string} - Compiled HTML\n */\nfunction getAttributesHtml(attributes) {\n if (!attributes) {\n return '';\n }\n\n var html = '';\n\n attributes.forEach(function (attributeGroup) {\n if (attributeGroup.ID === 'mainAttributes') {\n attributeGroup.attributes.forEach(function (attribute) {\n html += '
' + attribute.label + ': '\n + attribute.value + '
';\n });\n }\n });\n\n return html;\n}\n\n/**\n * @typedef UpdatedOptionValue\n * @type Object\n * @property {string} id - Option value ID for look up\n * @property {string} url - Updated option value selection URL\n */\n\n/**\n * @typedef OptionSelectionResponse\n * @type Object\n * @property {string} priceHtml - Updated price HTML code\n * @property {Object} options - Updated Options\n * @property {string} options.id - Option ID\n * @property {UpdatedOptionValue[]} options.values - Option values\n */\n\n/**\n * Updates DOM using post-option selection Ajax response\n *\n * @param {OptionSelectionResponse} options - Ajax response options from selecting a product option\n * @param {jQuery} $productContainer - DOM element for current product\n */\nfunction updateOptions(options, $productContainer) {\n options.forEach(function (option) {\n var $optionEl = $productContainer.find('.product-option[data-option-id*=\"' + option.id\n + '\"]');\n option.values.forEach(function (value) {\n var valueEl = $optionEl.find('option[data-value-id*=\"' + value.id + '\"]');\n valueEl.val(value.url);\n });\n });\n}\n\n/**\n * Parses JSON from Ajax call made whenever an attribute value is [de]selected\n * @param {Object} response - response from Ajax call\n * @param {Object} response.product - Product object\n * @param {string} response.product.id - Product ID\n * @param {Object[]} response.product.variationAttributes - Product attributes\n * @param {Object[]} response.product.images - Product images\n * @param {boolean} response.product.hasRequiredAttrsSelected - Flag as to whether all required\n * attributes have been selected. Used partially to\n * determine whether the Add to Cart button can be enabled\n * @param {jQuery} $productContainer - DOM element for a given product.\n */\nfunction handleVariantResponse(response, $productContainer) {\n var isChoiceOfBonusProducts =\n $productContainer.parents('.choose-bonus-product-dialog').length > 0;\n var isVaraint;\n if (response.product.variationAttributes) {\n updateAttrs(response.product.variationAttributes, $productContainer);\n isVaraint = response.product.productType === 'variant';\n if (isChoiceOfBonusProducts && isVaraint) {\n $productContainer.parent('.bonus-product-item')\n .data('pid', response.product.id);\n\n $productContainer.parent('.bonus-product-item')\n .data('ready-to-order', response.product.readyToOrder);\n }\n }\n\n // Update primary images\n var primaryImageUrls = response.product.images;\n primaryImageUrls.large.forEach(function (imageUrl, idx) {\n $productContainer.find('.primary-images').find('img').eq(idx)\n .attr('src', imageUrl.url);\n });\n\n // Update pricing\n if (!isChoiceOfBonusProducts) {\n var $priceSelector = $('.prices .price', $productContainer).length\n ? $('.prices .price', $productContainer)\n : $('.prices .price');\n $priceSelector.replaceWith(response.product.price.html);\n }\n\n // Update promotions\n $('.promotions').empty().html(getPromotionsHtml(response.product.promotions));\n\n updateAvailability(response, $productContainer);\n\n if (isChoiceOfBonusProducts) {\n var $selectButton = $productContainer.find('.select-bonus-product');\n $selectButton.trigger('bonusproduct:updateSelectButton', {\n product: response.product, $productContainer: $productContainer\n });\n } else {\n // Enable \"Add to Cart\" button if all required attributes have been selected\n $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', {\n product: response.product, $productContainer: $productContainer\n }).trigger('product:statusUpdate', response.product);\n }\n\n // Update attributes\n $productContainer.find('.main-attributes').empty()\n .html(getAttributesHtml(response.product.attributes));\n}\n\n/**\n * @typespec UpdatedQuantity\n * @type Object\n * @property {boolean} selected - Whether the quantity has been selected\n * @property {string} value - The number of products to purchase\n * @property {string} url - Compiled URL that specifies variation attributes, product ID, options,\n * etc.\n */\n\n/**\n * Updates the quantity DOM elements post Ajax call\n * @param {UpdatedQuantity[]} quantities -\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction updateQuantities(quantities, $productContainer) {\n if (!($productContainer.parent('.bonus-product-item').length > 0)) {\n var optionsHtml = quantities.map(function (quantity) {\n var selected = quantity.selected ? ' selected ' : '';\n return '';\n }).join('');\n getQuantitySelector($productContainer).empty().html(optionsHtml);\n }\n}\n\n/**\n * updates the product view when a product attribute is selected or deselected or when\n * changing quantity\n * @param {string} selectedValueUrl - the Url for the selected variation value\n * @param {jQuery} $productContainer - DOM element for current product\n */\nfunction attributeSelect(selectedValueUrl, $productContainer) {\n if (selectedValueUrl) {\n $('body').trigger('product:beforeAttributeSelect',\n { url: selectedValueUrl, container: $productContainer });\n\n $.ajax({\n url: selectedValueUrl,\n method: 'GET',\n success: function (data) {\n handleVariantResponse(data, $productContainer);\n updateOptions(data.product.options, $productContainer);\n updateQuantities(data.product.quantities, $productContainer);\n $('body').trigger('product:afterAttributeSelect',\n { data: data, container: $productContainer });\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @return {string} - The provided URL to use when adding a product to the cart\n */\nfunction getAddToCartUrl() {\n return $('.add-to-cart-url').val();\n}\n\n/**\n * Parses the html for a modal window\n * @param {string} html - representing the body and footer of the modal window\n *\n * @return {Object} - Object with properties body and footer.\n */\nfunction parseHtml(html) {\n var $html = $('
').append($.parseHTML(html));\n\n var body = $html.find('.choice-of-bonus-product');\n var footer = $html.find('.modal-footer').children();\n\n return { body: body, footer: footer };\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @param {Object} data - data object used to fill in dynamic portions of the html\n */\nfunction chooseBonusProducts(data) {\n $('.modal-body').spinner().start();\n\n if ($('#chooseBonusProductModal').length !== 0) {\n $('#chooseBonusProductModal').remove();\n }\n var bonusUrl;\n if (data.bonusChoiceRuleBased) {\n bonusUrl = data.showProductsUrlRuleBased;\n } else {\n bonusUrl = data.showProductsUrlListBased;\n }\n\n var htmlString = ''\n + '
'\n + '
'\n + ''\n + '
'\n + '
'\n + ' ' + data.labels.selectprods + ''\n + ' '\n + '
'\n + '
'\n + '
'\n + '
'\n + '
'\n + '
';\n $('body').append(htmlString);\n $('.modal-body').spinner().start();\n\n $.ajax({\n url: bonusUrl,\n method: 'GET',\n dataType: 'html',\n success: function (html) {\n var parsedHtml = parseHtml(html);\n $('#chooseBonusProductModal .modal-body').empty();\n $('#chooseBonusProductModal .modal-body').html(parsedHtml.body);\n $('#chooseBonusProductModal .modal-footer').html(parsedHtml.footer);\n $('#chooseBonusProductModal').modal('show');\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\n/**\n * Updates the Mini-Cart quantity value after the customer has pressed the \"Add to Cart\" button\n * @param {string} response - ajax response from clicking the add to cart button\n */\nfunction handlePostCartAdd(response) {\n $('.minicart').trigger('count:update', response);\n var messageType = response.error ? 'alert-danger' : 'alert-success';\n // show add to cart toast\n if (response.newBonusDiscountLineItem\n && Object.keys(response.newBonusDiscountLineItem).length !== 0) {\n chooseBonusProducts(response.newBonusDiscountLineItem);\n } else {\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append(\n '
'\n );\n }\n\n $('.add-to-cart-messages').append(\n '
'\n + response.message\n + '
'\n );\n\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n }, 5000);\n }\n}\n\n/**\n * Retrieves the bundle product item ID's for the Controller to replace bundle master product\n * items with their selected variants\n *\n * @return {string[]} - List of selected bundle product item ID's\n */\nfunction getChildProducts() {\n var childProducts = [];\n $('.bundle-item').each(function () {\n childProducts.push({\n pid: $(this).find('.product-id').text(),\n quantity: parseInt($(this).find('label.quantity').data('quantity'), 10)\n });\n });\n\n return childProducts.length ? JSON.stringify(childProducts) : [];\n}\n\n/**\n * Retrieve product options\n *\n * @param {jQuery} $productContainer - DOM element for current product\n * @return {string} - Product options and their selected values\n */\nfunction getOptions($productContainer) {\n var options = $productContainer\n .find('.product-option')\n .map(function () {\n var $elOption = $(this).find('.options-select');\n var urlValue = $elOption.val();\n var selectedValueId = $elOption.find('option[value=\"' + urlValue + '\"]')\n .data('value-id');\n return {\n optionId: $(this).data('option-id'),\n selectedValueId: selectedValueId\n };\n }).toArray();\n\n return JSON.stringify(options);\n}\n\nmodule.exports = {\n attributeSelect: attributeSelect,\n handleVariantResponse: handleVariantResponse,\n updateOptions: updateOptions,\n updateQuantities: updateQuantities,\n updateAvailability: updateAvailability,\n processSwatchValues: processSwatchValues,\n processNonSwatchValues: processNonSwatchValues,\n getPromotionsHtml: getPromotionsHtml,\n getAttributesHtml: getAttributesHtml,\n methods: {\n handlePostCartAdd: handlePostCartAdd,\n editBonusProducts: function (data) {\n chooseBonusProducts(data);\n }\n },\n colorAttribute: function () {\n $(document).on('click', '[data-attr=\"color\"] a', function (e) {\n e.preventDefault();\n\n if ($(this).attr('disabled')) {\n return;\n }\n var $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n\n attributeSelect(e.currentTarget.href, $productContainer);\n });\n },\n\n selectAttribute: function () {\n $(document).on('change', 'select[class*=\"select-\"], .options-select', function (e) {\n e.preventDefault();\n\n var $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n attributeSelect(e.currentTarget.value, $productContainer);\n });\n },\n\n availability: function () {\n $(document).on('change', '.quantity-select', function (e) {\n e.preventDefault();\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.modal-content').find('.product-quickview');\n }\n\n if ($('.bundle-items', $productContainer).length === 0) {\n attributeSelect($(e.currentTarget).find('option:selected').data('url'),\n $productContainer);\n }\n });\n },\n\n addToCart: function () {\n $(document).on('click', 'button.add-to-cart, button.add-to-cart-global', function () {\n var addToCartUrl;\n var pid;\n var pidsObj;\n var setPids;\n\n // hide spinner\n // $('body').trigger('product:beforeAddToCart', this);\n\n // remove the following? should only need to set the request to add to cart. \n if ($('.set-items').length && $(this).hasClass('add-to-cart-global')) {\n setPids = [];\n\n $('.product-detail').each(function () {\n if (!$(this).hasClass('product-set-detail')) {\n setPids.push({\n pid: $(this).find('.product-id').text(),\n qty: $(this).find('.quantity-select').val(),\n options: getOptions($(this))\n });\n }\n });\n pidsObj = JSON.stringify(setPids);\n }\n\n pid = getPidValue($(this));\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.quick-view-dialog').find('.product-detail');\n }\n\n addToCartUrl = getAddToCartUrl();\n\n var form = {\n pid: pid,\n pidsObj: pidsObj,\n childProducts: getChildProducts(),\n quantity: getQuantitySelected($(this))\n };\n\n if (!$('.bundle-item').length) {\n form.options = getOptions($productContainer);\n }\n\n $(this).trigger('updateAddToCartFormData', form);\n if (addToCartUrl) {\n $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n handlePostCartAdd(data);\n $('body').trigger('product:afterAddToCart', data);\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n });\n },\n selectBonusProduct: function () {\n $(document).on('click', '.select-bonus-product', function () {\n var $choiceOfBonusProduct = $(this).parents('.choice-of-bonus-product');\n var pid = $(this).data('pid');\n var maxPids = $('.choose-bonus-product-dialog').data('total-qty');\n var submittedQty = parseInt($(this).parents('.choice-of-bonus-product').find('.bonus-quantity-select').val(), 10);\n var totalQty = 0;\n $.each($('#chooseBonusProductModal .selected-bonus-products .selected-pid'), function () {\n totalQty += $(this).data('qty');\n });\n totalQty += submittedQty;\n var optionID = $(this).parents('.choice-of-bonus-product').find('.product-option').data('option-id');\n var valueId = $(this).parents('.choice-of-bonus-product').find('.options-select option:selected').data('valueId');\n if (totalQty <= maxPids) {\n var selectedBonusProductHtml = ''\n + '
'\n + '
'\n + $choiceOfBonusProduct.find('.product-name').html()\n + '
'\n + '
'\n + '
'\n ;\n $('#chooseBonusProductModal .selected-bonus-products').append(selectedBonusProductHtml);\n $('.pre-cart-products').html(totalQty);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n } else {\n $('.selected-bonus-products .bonus-summary').addClass('alert-danger');\n }\n });\n },\n removeBonusProduct: function () {\n $(document).on('click', '.selected-pid', function () {\n $(this).remove();\n var $selected = $('#chooseBonusProductModal .selected-bonus-products .selected-pid');\n var count = 0;\n if ($selected.length) {\n $selected.each(function () {\n count += parseInt($(this).data('qty'), 10);\n });\n }\n\n $('.pre-cart-products').html(count);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n });\n },\n enableBonusProductSelection: function () {\n $('body').on('bonusproduct:updateSelectButton', function (e, response) {\n $('button.select-bonus-product', response.$productContainer).attr('disabled',\n (!response.product.readyToOrder || !response.product.available));\n var pid = response.product.id;\n $('button.select-bonus-product').data('pid', pid);\n });\n },\n showMoreBonusProducts: function () {\n $(document).on('click', '.show-more-bonus-products', function () {\n var url = $(this).data('url');\n $('.modal-content').spinner().start();\n $.ajax({\n url: url,\n method: 'GET',\n success: function (html) {\n var parsedHtml = parseHtml(html);\n $('.modal-body').append(parsedHtml.body);\n $('.show-more-bonus-products:first').remove();\n $('.modal-content').spinner().stop();\n },\n error: function () {\n $('.modal-content').spinner().stop();\n }\n });\n });\n },\n addBonusProductsToCart: function () {\n $(document).on('click', '.add-bonus-products', function () {\n var $readyToOrderBonusProducts = $('.choose-bonus-product-dialog .selected-pid');\n var queryString = '?pids=';\n var url = $('.choose-bonus-product-dialog').data('addtocarturl');\n var pidsObject = {\n bonusProducts: []\n };\n\n $.each($readyToOrderBonusProducts, function () {\n var qtyOption =\n parseInt($(this)\n .data('qty'), 10);\n\n var option = null;\n if (qtyOption > 0) {\n if ($(this).data('optionid') && $(this).data('option-selected-value')) {\n option = {};\n option.optionId = $(this).data('optionid');\n option.productId = $(this).data('pid');\n option.selectedValueId = $(this).data('option-selected-value');\n }\n pidsObject.bonusProducts.push({\n pid: $(this).data('pid'),\n qty: qtyOption,\n options: [option]\n });\n pidsObject.totalQty = parseInt($('.pre-cart-products').html(), 10);\n }\n });\n queryString += JSON.stringify(pidsObject);\n queryString = queryString + '&uuid=' + $('.choose-bonus-product-dialog').data('uuid');\n queryString = queryString + '&pliuuid=' + $('.choose-bonus-product-dialog').data('pliuuid');\n // $.spinner().start();\n $.ajax({\n url: url + queryString,\n method: 'POST',\n success: function (data) {\n $.spinner().stop();\n if (data.error) {\n $('.error-choice-of-bonus-products')\n .html(data.errorMessage);\n } else {\n $('.configure-bonus-product-attributes').html(data);\n $('.bonus-products-step2').removeClass('hidden-xl-down');\n $('#chooseBonusProductModal').modal('hide');\n\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append(\n '
'\n );\n }\n $('.minicart-quantity').html(data.totalQty);\n $('.add-to-cart-messages').append(\n '
'\n + data.msgSuccess + '
'\n );\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n if ($('.cart-page').length) {\n location.reload();\n }\n }, 3000);\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n },\n\n getPidValue: getPidValue,\n getAddToCartUrl: getAddToCartUrl,\n getChildProducts: getChildProducts,\n getQuantitySelected: getQuantitySelected\n};\n","/* globals google */\n'use strict';\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n var newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function (key) {\n return key + '=' + encodeURIComponent(params[key]);\n }).join('&');\n\n return newUrl;\n}\n\n/**\n * Uses google maps api to render a map\n */\nfunction maps() {\n var map;\n var infowindow = new google.maps.InfoWindow();\n\n // Init U.S. Map in the center of the viewport\n var latlng = new google.maps.LatLng(37.09024, -95.712891);\n var mapOptions = {\n scrollwheel: false,\n zoom: 4,\n center: latlng\n };\n\n map = new google.maps.Map($('.map-canvas')[0], mapOptions);\n var mapdiv = $('.map-canvas').attr('data-locations');\n\n mapdiv = JSON.parse(mapdiv);\n\n var bounds = new google.maps.LatLngBounds();\n\n // Customized google map marker icon with svg format\n var markerImg = {\n path: 'M13.5,30.1460153 L16.8554555,25.5 L20.0024287,25.5 C23.039087,25.5 25.5,' +\n '23.0388955 25.5,20.0024287 L25.5,5.99757128 C25.5,2.96091298 23.0388955,0.5 ' +\n '20.0024287,0.5 L5.99757128,0.5 C2.96091298,0.5 0.5,2.96110446 0.5,5.99757128 ' +\n 'L0.5,20.0024287 C0.5,23.039087 2.96110446,25.5 5.99757128,25.5 L10.1445445,' +\n '25.5 L13.5,30.1460153 Z',\n fillColor: '#0070d2',\n fillOpacity: 1,\n scale: 1.1,\n strokeColor: 'white',\n strokeWeight: 1,\n anchor: new google.maps.Point(13, 30),\n labelOrigin: new google.maps.Point(12, 12)\n };\n\n Object.keys(mapdiv).forEach(function (key) {\n var item = mapdiv[key];\n var label = parseInt(key, 10) + 1;\n var storeLocation = new google.maps.LatLng(item.latitude, item.longitude);\n var marker = new google.maps.Marker({\n position: storeLocation,\n map: map,\n title: item.name,\n icon: markerImg,\n label: { text: label.toString(), color: 'white', fontSize: '16px' }\n });\n\n marker.addListener('click', function () {\n infowindow.setOptions({\n content: item.infoWindowHtml\n });\n infowindow.open(map, marker);\n });\n\n // Create a minimum bound based on a set of storeLocations\n bounds.extend(marker.position);\n });\n // Fit the all the store marks in the center of a minimum bounds when any store has been found.\n if (mapdiv && mapdiv.length !== 0) {\n map.fitBounds(bounds);\n }\n}\n\n/**\n * Renders the results of the search and updates the map\n * @param {Object} data - Response from the server\n */\nfunction updateStoresResults(data) {\n var $resultsDiv = $('.results');\n var $mapDiv = $('.map-canvas');\n var hasResults = data.stores.length > 0;\n\n if (!hasResults) {\n $('.store-locator-no-results').show();\n } else {\n $('.store-locator-no-results').hide();\n }\n\n $resultsDiv.empty()\n .data('has-results', hasResults)\n .data('radius', data.radius)\n .data('search-key', data.searchKey);\n\n $mapDiv.attr('data-locations', data.locations);\n\n if ($mapDiv.data('has-google-api')) {\n maps();\n } else {\n $('.store-locator-no-apiKey').show();\n }\n\n if (data.storesResultsHtml) {\n $resultsDiv.append(data.storesResultsHtml);\n }\n}\n\n/**\n * Search for stores with new zip code\n * @param {HTMLElement} element - the target html element\n * @returns {boolean} false to prevent default event\n */\nfunction search(element) {\n var dialog = element.closest('.in-store-inventory-dialog');\n var spinner = dialog.length ? dialog.spinner() : $.spinner();\n spinner.start();\n var $form = element.closest('.store-locator');\n var radius = $('.results').data('radius');\n var url = $form.attr('action');\n var urlParams = { radius: radius };\n\n var payload = $form.is('form') ? $form.serialize() : { postalCode: $form.find('[name=\"postalCode\"]').val() };\n\n url = appendToUrl(url, urlParams);\n\n $.ajax({\n url: url,\n type: $form.attr('method'),\n data: payload,\n dataType: 'json',\n success: function (data) {\n spinner.stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n return false;\n}\n\nmodule.exports = {\n init: function () {\n if ($('.map-canvas').data('has-google-api')) {\n maps();\n } else {\n $('.store-locator-no-apiKey').show();\n }\n\n if (!$('.results').data('has-results')) {\n $('.store-locator-no-results').show();\n }\n },\n\n detectLocation: function () {\n // clicking on detect location.\n $('.detect-location').on('click', function () {\n $.spinner().start();\n if (!navigator.geolocation) {\n $.spinner().stop();\n return;\n }\n\n navigator.geolocation.getCurrentPosition(function (position) {\n var $detectLocationButton = $('.detect-location');\n var url = $detectLocationButton.data('action');\n var radius = $('.results').data('radius');\n var urlParams = {\n radius: radius,\n lat: position.coords.latitude,\n long: position.coords.longitude\n };\n\n url = appendToUrl(url, urlParams);\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n $.spinner().stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n });\n });\n },\n\n search: function () {\n $('.store-locator-container form.store-locator').submit(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('.store-locator-container .btn-storelocator-search[type=\"button\"]').click(function (e) {\n e.preventDefault();\n search($(this));\n });\n },\n\n changeRadius: function () {\n $('.store-locator-container .radius').change(function () {\n var radius = $(this).val();\n var searchKeys = $('.results').data('search-key');\n var url = $('.radius').data('action-url');\n var urlParams = {};\n\n if (searchKeys.postalCode) {\n urlParams = {\n radius: radius,\n postalCode: searchKeys.postalCode\n };\n } else if (searchKeys.lat && searchKeys.long) {\n urlParams = {\n radius: radius,\n lat: searchKeys.lat,\n long: searchKeys.long\n };\n }\n\n url = appendToUrl(url, urlParams);\n var dialog = $(this).closest('.in-store-inventory-dialog');\n var spinner = dialog.length ? dialog.spinner() : $.spinner();\n spinner.start();\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n spinner.stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n });\n },\n selectStore: function () {\n $('.store-locator-container').on('click', '.select-store', (function (e) {\n e.preventDefault();\n var selectedStore = $(':checked', '.results-card .results');\n var data = {\n storeID: selectedStore.val(),\n searchRadius: $('#radius').val(),\n searchPostalCode: $('.results').data('search-key').postalCode,\n storeDetailsHtml: selectedStore.siblings('label').find('.store-details').html(),\n event: e\n };\n\n $('body').trigger('store:selected', data);\n }));\n },\n updateSelectStoreButton: function () {\n $('body').on('change', '.select-store-input', (function () {\n $('.select-store').prop('disabled', false);\n }));\n }\n};\n","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n","'use strict';\n/* global pageContext */\n\nvar customLink = 'custom_link';\nvar dataLayer = window.dataLayer;\nvar isPaymentElementVisible = false;\nvar customerType = $('#checkout-main').attr('data-customer-type');\nvar isAppSession = false;\nif ($('#app-session').length > 0) {\n isAppSession = $('#app-session').val();\n}\nvar customError = 'custom_error';\n/**\n * get cookie by name\n * @param {string} name - Cookie name\n * @return {string} - Cookie value\n */\nfunction getCookie(name) {\n var value = ';' + document.cookie + ';';\n var parts = value.split('; ' + name + '=');\n if (parts.length === 2) {\n return (parts[1]).substr(0, parts[1].indexOf(';')).replace(/\"/g, '');\n }\n return null;\n}\n\n/**\n * Triggers an event to react native app.\n * @param {string} data - details\n */\nfunction postMessageToRN(data) {\n try {\n window.webkit.messageHandlers.ReactNativeWebView.postMessage(data);\n } catch (webkiterror) {\n try {\n window.ReactNativeWebView.postMessage(data);\n } catch (error) {\n console.log(error);\n }\n }\n}\n\n/**\n * pass account navigation user to GTM\n * @param {Object} details details data about the event\n * @param {string} event event name\n */\nfunction dataToReactNative(details, event) {\n var json = {\n message: 'callFBEvent',\n eventDetails: details,\n event: event\n };\n postMessageToRN(JSON.stringify(json));\n}\n\n/**\n * pass Trade Analytics data\n * @param {string} event event name\n * @param {string} component component name\n * @param {Object} detail details data about the event\n * @param {Object} itemDetails itemDetails data\n */\nfunction tradeProductData(event, component, detail, itemDetails) {\n var details = {\n component: component,\n details: detail,\n source: window.pageContext.ns\n };\n if (itemDetails) {\n details = Object.assign(details, itemDetails);\n }\n dataToReactNative(details, event);\n}\n\n/**\n * @param {Object} product product object\n * @param {string|number} quantity product quantity\n * @returns {Object} - json object\n */\nfunction populateProductItem(product, quantity) {\n var item;\n item = {\n item_id: product.productInfo.productID,\n item_name: product.productInfo.name,\n item_category: product.productInfo.category,\n item_variant: product.productInfo.variant,\n item_brand: product.productInfo.brand,\n item_sku: product.productInfo.sku,\n item_condition: product.productInfo.condition,\n item_product_availability: product.productInfo.availability,\n item_genre: product.productInfo.genre,\n item_platform: product.productInfo.platform,\n warranty_id: product.productInfo.warranty_id ? product.productInfo.warranty_id : '',\n warranty_name: product.productInfo.warranty_name ? product.productInfo.warranty_name : '',\n warranty_price: product.productInfo.warranty_price ? product.productInfo.warranty_price : '',\n warranty_quantity: product.productInfo.warranty_quantity ? product.productInfo.warranty_quantity : '',\n item_shipping_method: product.productInfo.item_shipping_method ? product.productInfo.item_shipping_method : '',\n item_shipping_sdd_type: product.productInfo.item_shipping_sdd_type ? product.productInfo.item_shipping_sdd_type : '',\n item_shipping_sdd_availability: product.productInfo.item_shipping_sdd_availability ? product.productInfo.item_shipping_sdd_availability : ''\n };\n\n if (isAppSession === 'true') {\n if (window.pageContext.ns === 'trade search' || window.pageContext.ns === 'trade details' || window.pageContext.ns === 'Trade') {\n item.item_subgenre = product.productInfo.subGenre;\n } else {\n item.item_base_price = product.price.basePrice;\n item.price = product.price.sellingPrice;\n item.quantity = quantity;\n }\n }\n return item;\n}\n\n\n/**\n * returns component Name using the zoneSource (Analytics)\n * @param {string} zoneSource - zoneSource for addToCart from Recommendation section\n * @return {string} - returns componentName\n */\nfunction returnListNameValue(zoneSource) {\n switch (zoneSource) {\n case 'PDP ATC Modal': return 'PDP Add to Cart Modal';\n case 'console Landing':\n case 'Sales Landing':\n case 'Franchise Landing': return 'Landing Page';\n default: return (window.pageContext.pageType).toUpperCase();\n }\n}\n\n/**\n * @param {Object} productObject The product data\n * @param {string} position position in the list\n * @param {string} listItemType list type\n * @param {string} curatedFlag curated flag\n * @description gets the data for a product click\n */\nfunction productClick(productObject, position, listItemType, curatedFlag) {\n position = position || 1; // eslint-disable-line no-param-reassign\n listItemType = listItemType || 'Product list'; // eslint-disable-line no-param-reassign\n productObject.itemPosition = position; // eslint-disable-line no-param-reassign\n var componentType = $('.google-recommendation').attr('data-component-name') || '';\n var obj;\n if (componentType !== '') {\n obj = {\n event: 'Listing Item Clicked',\n componentType: componentType,\n listing: {\n listingResults: {\n itemListType: listItemType,\n item: []\n }\n }\n };\n } else {\n obj = {\n event: 'Listing Item Clicked',\n listing: {\n listingResults: {\n itemListType: listItemType,\n item: []\n }\n }\n };\n }\n obj.listing.listingResults.item.push(productObject);\n if (curatedFlag) {\n var listNameVal = returnListNameValue(productObject.productInfo.zoneSource);\n var ItemType = listNameVal + ' | Curated Promotions';\n obj.listing.listingResults.itemListType = ItemType;\n }\n dataLayer.push(obj);\n if (isAppSession === 'true' && window.pageContext.ns === 'trade search') {\n var event = 'tradein_product_click';\n var itemDetails = populateProductItem(productObject);\n\n tradeProductData(event, 'Trade In: Search Results', productObject.productInfo.name, itemDetails);\n }\n}\n\n/**\n * @param {Object} productObject product object\n * @param {string} experienceType CTA state\n * @returns {Object} - json object\n */\nfunction populateProductCustomDimension(productObject, experienceType) {\n var returnExperienceType = productObject && productObject.experienceType;\n if (experienceType) {\n returnExperienceType = experienceType;\n }\n return {\n gtmContainerId: $('#googleTagManagerIdNew').val(),\n searchInput: productObject && productObject.searchInput,\n productSKU: productObject && productObject.id,\n searchAutocompleteCategory: productObject && productObject.searchAutocompleteCategory,\n searchAutocompleteValue: productObject && productObject.searchAutocompleteValue,\n cartValue: productObject && productObject.miniCartSubTotal,\n componentType: productObject && productObject.componentType,\n experienceType: returnExperienceType,\n filterType: productObject && productObject.filterType,\n filterValue: productObject && productObject.filterValue,\n persistentSignIn: productObject && productObject.persistentSignIn,\n storeId: productObject && productObject.storeId,\n memberTier: productObject && productObject.memberTier,\n authenticationState: productObject && productObject.authenticationState,\n paymentType: productObject && productObject.paymentType,\n reviewsRating: productObject && productObject.reviewsRating,\n reviewsNumber: productObject && productObject.reviewsNumber\n };\n}\n\n/**\n * @param {Object} productObject product object\n * @returns {Object} - json object\n */\nfunction populateProductCustomMetrics(productObject) {\n return {\n orderDiscount: productObject && productObject.orderDiscount,\n eventValue: productObject && productObject.eventValue\n };\n}\n\n/**\n * @param {Object} productObject The product data\n * @param {string} listItemType list type\n * @param {string} eventLabel event label\n * @param {string} eventAction event action\n * @param {Object} customDimensions for customDimensions\n * @description gets the data for a product click\n */\nfunction productClicked(productObject, listItemType, eventLabel, eventAction, customDimensions) {\n var componentType = $('.google-recommendation').attr('data-component-name') || '';\n var productObj = {\n id: productObject.id,\n componentType: componentType\n };\n if (customDimensions) {\n productObj.searchInput = customDimensions.queryData;\n productObj.searchAutocompleteValue = customDimensions.suggestResult;\n productObj.experienceType = customDimensions.experienceType;\n }\n var customDimension = populateProductCustomDimension(productObj);\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: eventAction,\n eventLabel: eventLabel,\n ecommerce: {\n click: {\n actionField: {\n list: listItemType\n },\n products: [productObject]\n }\n },\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(productObj)\n });\n}\n\n/**\n * @param {string} eventLabel event label\n * @param {string} id for id\n * @param {string} name for name\n * @param {string} creative for creative\n * @param {integer} position for position\n * @description gets the data for a promo click\n */\nfunction promoClicked(eventLabel, id, name, creative, position) {\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'promotion clicked',\n eventLabel: eventLabel,\n ecommerce: {\n promoClick: {\n promotions: [{\n id: id,\n name: name,\n creative: creative,\n position: position\n }]\n }\n },\n customDimensions: populateProductCustomDimension({}),\n customMetrics: populateProductCustomMetrics({})\n });\n}\n\n/**\n * pass account navigation user to GTM\n * @param {string} linkReg for linkRegion\n * @param {string} linkCat for linkCategories\n *\n */\nfunction accountNavigation(linkReg, linkCat) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkReg,\n linkCategories: linkCat\n },\n event: 'Navigation Link Clicked'\n });\n}\n/**\n * pass API Errors to GTM\n * @param {string} errorType for errorType\n * @param {string} errorMessage for errorMessage\n *\n */\nfunction apiErrorForLoyalty(errorType, errorMessage) {\n dataLayer.push({\n errorDetails: {\n errorTrigger: 'API Error',\n errorType: errorType,\n errorMessage: errorMessage,\n errorCategory: 'loyalty'\n },\n event: 'Error Occurrence'\n });\n}\n\n/**\n * @description user clicks on Edit Payment link\n */\n$(document).on('click', '.editPaymentLink', function () {\n var paymentType = $(this).data('payment-type') && $(this).data('payment-type').toString();\n dataLayer.push({\n eventDetails: {\n eventAction: 'payment Initiate',\n paymentType: paymentType\n },\n event: 'Edit Payment'\n });\n});\n\n/**\n * @description user clicks on Save Changes link on edit order page\n */\n$(document).on('click', '.updatePaymentLink', function () {\n var paymentType = $(this).data('payment-type') && $(this).data('payment-type').toString();\n dataLayer.push({\n eventDetails: {\n eventAction: 'payment updated',\n paymentType: paymentType\n },\n event: 'Edit Payment'\n });\n});\n\n$('.account-nav a').on('click', function (e) {\n var navLink = e.target && e.target.innerText;\n accountNavigation('Account|Left Nav', 'PUR:' + navLink);\n});\n\n$(document).on('click', '.header-account-loyalty .header-account-loyalty-links .item-link', function (e) {\n var navLink = e.target && e.target.innerText;\n accountNavigation('Account|slide in', 'PUR:' + navLink);\n});\n\n$(document).on('click', '.rewards-grid-header .view-all-link', function () {\n accountNavigation('Account|Dashboard', 'PUR:Rewards Center:View All');\n});\n\n$(document).on('API-Error', function (eventName, value) {\n var errMsg = value && value.responseJSON && value.responseJSON.error && value.responseJSON.error.errorText;\n var errType = value && value.responseJSON && value.responseJSON.action;\n apiErrorForLoyalty(errType, errMsg);\n});\n\n$(document).on('points:error', function () {\n apiErrorForLoyalty('Points Error', 'There was a problem updating your points preference. Please try again later.');\n});\n\n$(document).on('cart-promo-applied:loyaltyerror', function (eventName, data) {\n var errMessage = data && data.errorMessage;\n dataLayer.push({\n eventDetails: {\n eventCategory: 'Powerup Rewards',\n eventAction: 'Reward Center|Apply to cart|Error',\n eventLabel: errMessage\n },\n event: 'Powerup Rewards'\n });\n});\n\n$(document).on('Loyalty:RewardsPurchaseSuccess', function () {\n var categoryType = $('#get-it-now').data('attr') && $('#get-it-now').data('attr').toString();\n var isSuccessRedeemed = $('#isRewardsSuccess').val();\n if (isSuccessRedeemed) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'Powerup Rewards funnel',\n eventAction: 'Reward Center|Purchase Successful',\n eventLabel: categoryType,\n redeemedLoyalty: '1'\n },\n event: 'Powerup Rewards'\n });\n }\n});\n\n$(document).on('savechanges:birthday', function () {\n var fromBirthdayLink = $('#save-personal-profile').data('frombirthdaylink') && $('#save-personal-profile').data('frombirthdaylink').toString();\n if (fromBirthdayLink) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'Powerup Rewards',\n eventAction: 'Save Personal Data',\n eventLabel: 'Birthday Saved'\n },\n event: 'Powerup Rewards'\n });\n }\n});\n\n$(document).on('rewardsRedeemCTA:click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Account|Rewards',\n eventLabel: 'Redeem Points CTA'\n },\n event: 'Site Interaction'\n });\n});\n\n$(document).on('rewardsShopNowCTA:click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Account|Rewards',\n eventLabel: 'Shop Now'\n },\n event: 'Site Interaction'\n });\n});\n\n$(document).on('rewardsJoinProCTA:click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Account|Rewards',\n eventLabel: 'Join Pro'\n },\n event: 'Site Interaction'\n });\n});\n\n/**\n * @description user clicks on Confirm during canceling an order\n */\n$(document).on('WIS:cancelTradeInOrder', function (e, queryString) {\n var storeId = $('.sub-nav-store-info').attr('data-preferred-store-id');\n dataLayer.push({\n ecommerce: {\n refund: {\n actionField: {\n id: queryString.split('=')[1],\n orderType: 'wis',\n wisStoreID: storeId\n }\n }\n },\n event: 'CancelOrder'\n });\n});\n\n/**\n * @description When a user checks/unChecks trade-in acknowledgement\n */\n$(document).on('PDP:TradeInAcknowledgement', function (e, isChecked) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Trade in acknowledgment|PDP',\n eventLabel: isChecked\n },\n event: 'Site Interaction'\n });\n});\n\n/**\n * @description When a user clicks on how it works CTA under trade-in\n */\n$(document).on('PDP:TradeInHowItWorks', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Trade in|PDP',\n eventLabel: 'How it works'\n },\n event: 'Site Interaction'\n });\n});\n\n\n/**\n * @param {string} errorCode\n * @description error tracking during canceling an order\n */\n$(document).on('order:trackOrderCancelError', function (e, errorCode) {\n dataLayer.push({\n eventDetails: {\n errorTrigger: 'API Error',\n errorType: 'Order Cancellation',\n errorCode: errorCode,\n errorCategory: 'ecommerce'\n },\n event: 'Error Occurrence'\n });\n\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order details',\n eventAction: 'error encountered',\n eventLabel: errorCode\n }, 'analyticsEvent');\n }\n});\n\n$(document).on('loyaltyPoints:save', function (event, eventValue) {\n var label = $('form.points-preferences-form [for=' + eventValue + ']');\n if (label && label[0] && label[0].innerText) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'Powerup Rewards',\n eventAction: 'Save Manage points preference',\n eventLabel: label[0].innerText\n },\n event: 'Powerup Rewards'\n });\n }\n});\n\n/**\n * @param {string} clickedPageLink\n * @description When user selects page number or right/left carets to jump through the order History pages\n */\n$(document).on('orderHistory:pagination', function (e, clickedPageLink) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Order Details| Pagination click',\n eventLabel: clickedPageLink\n },\n event: 'Site Interaction'\n });\n});\n\n/**\n * @param {string} clickedCtaEventLabel\n * @description When the user selects “COMPLETE ORDER“ or \"CONTINUE SHOPPING\" on an empty order history page\n */\n$(document).on('orderHistory:emptyOrder', function (e, clickedCtaEventLabel) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Order History| Empty Order',\n eventLabel: clickedCtaEventLabel\n },\n event: 'Site Interaction'\n });\n\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order history',\n eventAction: 'button clicked',\n eventLabel: clickedCtaEventLabel\n }, 'analyticsEvent');\n }\n});\n\n/**\n * @param {string} clickedCtaEventLabel\n * @description When user selects \"ORDER DETAILS\" on the order history page\n */\n$(document).on('orderHistory:orderDetails', function () {\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order history',\n eventAction: 'link clicked',\n eventLabel: 'order details'\n }, 'analyticsEvent');\n }\n});\n\n/**\n * @param {string} clickedCtaEventLabel\n * @description When user selects tracking order number link on the order history page\n */\n$(document).on('orderHistory:trackOrder', function () {\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order history',\n eventAction: 'link clicked',\n eventLabel: 'track order'\n }, 'analyticsEvent');\n }\n});\n\n/**\n * @param {string} dashboard-nav-link link on left navigation pannel\n * @description gets the href link from the left navigation pannel\n */\n$(document).on('click', '.dashboard-nav-link', function () {\n accountNavigation('Account Navigation Panel', 'Account');\n});\n\n/**\n * @param {string} help-phone-number link on customer care number\n * @description gets the href link from the customer care number\n */\n$(document).on('click', '.customer-care-dial', function () {\n var label = 'Account Navigation Panel';\n if ($(this).parents('.customer-care-banner').length) {\n label = 'Account Footer';\n }\n accountNavigation(label, 'Customer Care Dial');\n});\n\n/**\n * @param {string} change-setting link on account page top panel\n * @description gets the href link from account page top panel, when user clicks on Stock Pile Change setting\n */\n$(document).on('click', '.membership-progress-chart .member-tile-link', function () {\n accountNavigation('Account Powerup Rewards Panel', 'Account');\n});\n\n/**\n * @param {string} Show My Benefits link on account page\n * @description gets the link info from account page , when user clicks on Show My benefits link\n */\n$(document).on('click', '.membership-progress-chart .showMyBenefitsLink', function () {\n accountNavigation('Account Powerup Rewards Panel', 'Show My benefits');\n});\n\n/**\n * @param {string} How do I earn Points link on account page\n * @description gets the link info from account page, when user clicks on How do I earn Points link\n */\n$(document).on('click', '.membership-progress-chart .howToEarnPointsLink', function () {\n accountNavigation('Account Powerup Rewards Panel', 'How do I earn Points');\n});\n\n/**\n * @param {string} write a review on account page my orders section\n * @description gets the link info from account page top panel, when user clicks on Write a Review link\n */\n$(document).on('click', '.dashboard-order #WAR', function () {\n accountNavigation('Account My Orders', 'Write a Review');\n});\n\n/**\n * @param {string} rewards center carousel on account page\n * @description gets the link info from account page top panel, when user clicks on Rewards Center\n */\n$(document).on('click', '.reward-center-link', function () {\n var category = $(this).data('points') && $(this).data('points').toString();\n accountNavigation('Account Dashboard Reward Certificates', category);\n});\n\n// When use clicks on Set up auto Renew on Order Confirmation Page.\n$(document).on('click', '.pro-auto-renew-btn', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Pro Auto Renewal Initiation',\n eventLabel: 'Order Confirmation Page'\n },\n event: 'Power Up Rewards'\n });\n});\n\n/**\n * @param {Object} product product object\n * @param {string|number} quantity product quantity\n * @param {string} event name of analytics event\n * @returns {Object} - json object\n */\nfunction populateProductTempItem(product, quantity, event) {\n var item = product.productInfo.productID + ',' + product.productInfo.sku + ',' + product.productInfo.variant + ',' + product.price.sellingPrice + ',' + quantity;\n if (event === 'purchase') {\n if (product.productInfo.productFulfillmentMethod === 'PHYSICAL') {\n item += ',Regular';\n } else if (product.productInfo.productFulfillmentMethod === 'PICKUP_BOPS') {\n item += ',BOPIS';\n } else if (product.productInfo.productFulfillmentMethod === 'SDD') {\n item += ',SDD';\n }\n } else if (product.productInfo.item_shipping_method) {\n item += ',' + product.productInfo.item_shipping_method;\n }\n return item;\n}\n/**\n * @returns {Object} - json event\n */\nfunction tradeResultDetails() {\n var tradeResult;\n var searchTermEntered;\n var resultsCount;\n for (var i = 0; i < dataLayer.length; i++) {\n if ((dataLayer && (dataLayer[i].event === 'Trade In Searched'))) {\n tradeResult = dataLayer[i].listing;\n searchTermEntered = tradeResult.listingParams.searchInfo.searchTermEntered;\n resultsCount = tradeResult.listingResults.resultsCount;\n break;\n }\n }\n\n var tradeDetails = {\n resultsCount: resultsCount,\n searchTermEntered: searchTermEntered\n };\n\n return tradeDetails;\n}\n/**\n * @param {Object} action action object\n * @returns {Object} - json event\n */\nfunction fetchProductDetails(action) {\n var currency = '';\n var productItem = [];\n var productTempItem = [];\n var totalPrice = 0;\n var products;\n var product;\n var quantity;\n var qtyValue;\n for (var i = 0; i < dataLayer.length; i++) {\n if ((dataLayer && (dataLayer[i].event === 'Cart Viewed')) || (dataLayer && dataLayer[i].event === 'Checkout Step Encountered') || (dataLayer && dataLayer[i].event === 'Order Placed')) {\n products = dataLayer[i].product || dataLayer[i].transaction.item;\n for (var j = 0; j < products.length; j++) {\n product = products[j];\n currency = product.price.currency;\n qtyValue = $('.quantity-value[data-pid=\"' + product.productInfo.sku + '\"]')[0];\n quantity = $('.quantity[data-pid=\"' + product.productInfo.sku + '\"]').val() || $(qtyValue).text() || 0;\n totalPrice += quantity * parseFloat(product.price.sellingPrice);\n if (action === 'view_cart' || action === 'begin_checkout' || action === 'add_payment_info' || action === 'add_shipping_info' || action === 'purchase') {\n productItem.push(populateProductItem(product, quantity));\n productTempItem.push(populateProductTempItem(product, quantity, action));\n }\n }\n break;\n }\n }\n var totalRevenue;\n if (action === 'begin_checkout' || action === 'add_payment_info' || action === 'add_shipping_info' || action === 'purchase') {\n totalRevenue = $('.container.cart .grand-total').text().substr(1) || $('.grand-total-sum')[0].innerText.substr(1);\n }\n var details = {\n currency: currency,\n value: action === 'begin_checkout' || action === 'add_payment_info' || action === 'add_shipping_info' || action === 'purchase' ? totalRevenue : totalPrice,\n items: productItem\n };\n if (productTempItem.length < 13) { // Maximum 25 (11 + 12) parameter is accepted on firebase, for safe keeping it 23\n for (var z = 0; z < productTempItem.length; z++) {\n details['temp_item' + z] = productTempItem[z];\n }\n }\n return details;\n}\n\n/**\n * @returns {Object} - order details object\n */\nfunction fetchOrderDetails() {\n var orderDetails = {};\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer && dataLayer[i].event === 'Order Placed') {\n orderDetails.transaction_id = dataLayer[i].transaction.transactionID;\n orderDetails.affiliation = 'Google Store';\n orderDetails.currency = dataLayer[i].transaction.total.currency;\n orderDetails.value = Number(dataLayer[i].transaction.total.revenue);\n orderDetails.tax = dataLayer[i].transaction.total.tax;\n orderDetails.shipping = dataLayer[i].transaction.total.shippingCost;\n orderDetails.payment_type = dataLayer[i].transaction.payment_type ? dataLayer[i].transaction.payment_type : '';\n break;\n }\n }\n return orderDetails;\n}\n\n/**\n * @returns {string} - return coupon code\n */\nfunction fetchCouponCode() {\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer && dataLayer[i].event === 'Promo Code Added') {\n if (dataLayer[i].voucherDiscount && dataLayer[i].voucherDiscount.voucherCodeIsValid === true) {\n return dataLayer[i].voucherDiscount.voucherCode;\n }\n break;\n }\n }\n return null;\n}\n\n/**\n * @returns {string} - return payment type\n */\nfunction fetchPaymentType() {\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer[i].event === 'Checkout Step Encountered') {\n if (dataLayer[i].eventDetails && dataLayer[i].eventDetails.checkoutOption && dataLayer[i].eventDetails.checkoutOption.length) {\n return dataLayer[i].eventDetails && dataLayer[i].eventDetails.checkoutOption;\n }\n }\n }\n return '';\n}\n\n/**\n * @returns {string} - return coupon code\n */\nfunction getCouponCodeOnOrderPlace() {\n var couponCode = '';\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer && dataLayer[i].event === 'Order Placed') {\n if (dataLayer[i].transaction && dataLayer[i].transaction.total) {\n var total = dataLayer[i].transaction.total;\n if (total.orderLevelDiscountCode || total.productLevelDiscountCode) {\n couponCode = total.orderLevelDiscountCode ? total.orderLevelDiscountCode + ': ' + total.orderLevelDiscount : total.productLevelDiscountCode + ': ' + total.productDiscount;\n }\n break;\n }\n }\n }\n return couponCode;\n}\n\n/**\n * post RN event on adding payment info\n * @param {string} paymentType tells the payment type used\n */\nfunction postMessageOnCheckoutPayment(paymentType) {\n var event = 'add_payment_info';\n\n var details = fetchProductDetails(event);\n var paymentMethod = $.trim($('.payment-options a.nav-link.active').text());\n if (paymentMethod === 'BUY NOW, PAY LATER' && paymentType === undefined) {\n return;\n }\n if (fetchCouponCode() != null) {\n details.coupon = fetchCouponCode();\n }\n if (paymentType) {\n details.payment_type = paymentType;\n } else {\n details.payment_type = fetchPaymentType();\n }\n details.checkout_step = '3';\n dataToReactNative(details, event);\n}\n\n/**\n * post RN event on adding shipping method\n */\nfunction postMessageOnAddingShippingInfo() {\n var event = 'add_shipping_info';\n\n var details = fetchProductDetails(event);\n if (fetchCouponCode() != null) {\n details.coupon = fetchCouponCode();\n }\n details.checkout_step = '2';\n dataToReactNative(details, event);\n}\n\n/**\n *\n * @param {Object} product product object\n * @param {string|number} quantity product quantity\n */\nfunction postMessageOnProductRemove(product, quantity) {\n var event = 'remove_from_cart';\n var totalPrice = fetchProductDetails(event).value;\n var value = totalPrice - (quantity * parseFloat(product.price.sellingPrice));\n var productDetails = product;\n var products;\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer[i].event === 'Cart Viewed') {\n products = dataLayer[i].product;\n for (var productItr = 0; productItr < products.length; productItr++) {\n if (dataLayer[i].product[productItr].productInfo && dataLayer[i].product[productItr].productInfo.productID === product.productInfo.productID) {\n productDetails = dataLayer[i].product[productItr];\n break;\n }\n }\n break;\n }\n }\n var details = {\n currency: product.price.currency,\n value: value,\n items: populateProductItem(productDetails, quantity),\n temp_item0: populateProductTempItem(product, quantity)\n };\n\n if (isAppSession === 'true') {\n dataToReactNative(details, event);\n }\n}\n\n/**\n * @param {Object} productObject The product data\n * @param {string} position position of product in the list\n * @param {string} listItemType recommendation zone type\n * @description gets the data for a product clicked in recommendation zone\n */\nfunction recomProductClick(productObject, position, listItemType) {\n var obj = {\n event: 'Product Impression Click',\n ecommerce: {\n click: {\n actionfield: {\n list: listItemType\n },\n products: []\n }\n }\n };\n var recomposition = position;\n var recomProductObject = productObject;\n recomProductObject.itemPosition = recomposition;\n obj.ecommerce.click.products.push(recomProductObject);\n dataLayer.push(obj);\n}\n\n/**\n *\n * @param {Object} productObject product object\n * @param {string|number} quantity product quantity\n * @param {string|Object} source source\n * @param {Object} warrantyData game plan warranty data object\n */\nfunction removeFromCart(productObject, quantity, source, warrantyData) {\n\n if (!productObject) {\n return;\n }\n\n var quantityObj = {\n quantity: quantity\n };\n productObject.productInfo.productState = source; // eslint-disable-line no-param-reassign\n var obj = {\n event: 'Product Removed',\n product: []\n\n };\n\n if (warrantyData) {\n productObject.productInfo.warrantyOption = warrantyData.warrantyId; // eslint-disable-line no-param-reassign\n }\n\n obj.product.push($.extend(productObject, quantityObj));\n\n // Game Warranty Analytics\n var warrantyProductObj = warrantyData && {\n quantity: 1,\n productInfo: {\n sku: warrantyData.warrantyId,\n productID: warrantyData.warrantyId,\n name: warrantyData.warrantyName,\n warrantyOption: warrantyData.warrantyId,\n productType: 'Warranty',\n parentProduct: warrantyData.parentProductName\n },\n price: {\n sellingPrice: warrantyData.warrantyPrice,\n basePrice: warrantyData.warrantyPrice\n }\n };\n\n if (warrantyProductObj) {\n obj.product.push(warrantyProductObj);\n }\n\n dataLayer.push(obj);\n\n if (isAppSession && window.pageContext.ns === 'cart') {\n postMessageOnProductRemove(productObject, quantity);\n }\n}\n\n/**\n* Remove product from mini cart\n* @param {Object} productObject product object\n* @param {string|number} quantity product quantity\n* @param {Object} warrantyData game plan warranty data object\n* @param {string|number} miniCartSubTotal miniCart sub total quantity\n* @param {string} eventLabel event label\n*/\nfunction removeFromMiniCart(productObject, quantity, warrantyData, miniCartSubTotal, eventLabel) {\n\n if (!productObject) {return;}\n\n var customDimension = {\n gtmContainerId: $('#googleTagManagerIdNew').val(),\n searchInput: productObject && productObject.searchInput,\n productSKU: productObject && productObject.id,\n searchAutocompleteCategory: productObject && productObject.searchAutocompleteCategory,\n searchAutocompleteValue: productObject && productObject.searchAutocompleteValue,\n cartValue: miniCartSubTotal,\n componentType: productObject && productObject.componentType,\n experienceType: productObject && productObject.experienceType,\n filterType: productObject && productObject.filterType,\n filterValue: productObject && productObject.filterValue,\n persistentSignIn: productObject && productObject.persistentSignIn,\n storeId: productObject && productObject.storeId,\n memberTier: productObject && productObject.memberTier,\n authenticationState: productObject && productObject.authenticationState,\n paymentType: productObject && productObject.paymentType,\n reviewsRating: productObject && productObject.reviewsRating,\n reviewsNumber: productObject && productObject.reviewsNumber\n };\n var customMetric = {\n orderDiscount: productObject && productObject.orderDiscount,\n eventValue: productObject && productObject.eventValue\n };\n var obj = {\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product removed',\n eventLabel: eventLabel,\n customDimensions: customDimension,\n customMetrics: customMetric,\n ecommerce: {\n remove: {\n products: []\n }\n }\n };\n var productObj = productObject;\n if (warrantyData && productObj) {\n productObj.dimension18 = warrantyData.warrantyId;\n }\n productObj.quantity = quantity;\n\n // Game Warranty Analytics\n var warrantyProductObj = warrantyData && {\n name: warrantyData.warrantyName,\n id: warrantyData.warrantyId,\n price: warrantyData.warrantyPrice && warrantyData.warrantyPrice.replace('$', ''),\n brand: '',\n category: '',\n variant: '',\n quantity: 1,\n dimension13: '',\n dimension14: '',\n dimension15: '',\n dimension16: '',\n dimension17: '',\n dimension19: productObject.id\n };\n obj.ecommerce.remove.products.push(productObj);\n if (warrantyProductObj) {\n obj.ecommerce.remove.products.push(warrantyProductObj);\n }\n\n dataLayer.push(obj);\n}\n/**\n * Updates the current step in the checkout flow\n * @param {number} step - checkout step\n */\nfunction checkoutStepEncountered(step) {\n var gtmData = $('#checkout-main').data('gtmdata');\n if (!gtmData || step > 5) {\n return;\n }\n\n var checkoutOption = '';\n var $shippingMethod = $('[id^=\"shippingMethod\"]:checked');\n if (step === 3 && $shippingMethod.length > 0) {\n checkoutOption = $.trim($shippingMethod.closest('.custom-control').find('.display-name').html());\n }\n var $paymentMethod = $('.payment-options .active[data-toggle=\"tab\"]');\n if ((step === 4 || step === 5) && $paymentMethod.length > 0) {\n checkoutOption = $.trim($paymentMethod.text());\n if (checkoutOption === 'PayPal' && sessionStorage.getItem('paypalExpressCart')) {\n checkoutOption = sessionStorage.getItem('paypalExpressCart');\n }\n }\n\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: step,\n checkoutOption: checkoutOption\n },\n product: gtmData.product\n });\n}\n\n/**\n * @param {Object} elem - selector or dom element\n * @returns {bool} - is element visible or not\n */\nfunction isScrolledIntoView(elem) {\n var $elem = $(elem);\n var $window = $(window);\n\n var docViewTop = $window.scrollTop();\n var docViewBottom = docViewTop + $window.height();\n\n var elemTop = $elem.offset().top;\n var elemBottom = elemTop + $elem.height();\n\n return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));\n}\n\n/**\n * Handles promotion viewed event\n */\nfunction promotionViewed() {\n var promotions = [];\n window.gtmSentPromotions = window.gtmSentPromotions || [];\n $('[data-row-index][data-row-position][data-block-index][data-block-position]').each(function () {\n var el = $(this);\n var promotionId = el.data('promotionID');\n if (promotionId && window.gtmSentPromotions.indexOf(promotionId) !== -1 && isScrolledIntoView(el)) {\n window.gtmSentPromotions.push(promotionId);\n promotions.push({\n promotionID: promotionId,\n promotionPosition: el.data('promotionPosition'),\n promotionCreative: el.data('promotionCreative'),\n promotionName: el.data('promotionName')\n });\n }\n });\n if (promotions.length > 0) {\n dataLayer.push({\n event: 'Promotion Viewed',\n promotions: promotions\n });\n }\n}\n\n/**\n * pass selected shipment to GTM\n * @param {string} option shipment text\n *\n */\nfunction shipmentSelected(option) {\n if (option) {\n dataLayer.push({\n shipmentType: {\n shipmentSelected: option\n },\n event: 'shipment type selection'\n });\n }\n}\n\n/**\n * pass selected user to GTM\n * @param {string} option user text\n *\n */\nfunction selectPurUserType(option) {\n if (option) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Create Account',\n eventLabel: option\n },\n event: 'Power Up Rewards'\n });\n }\n}\n\n/**\n * add xaa line of credit application form submitted event\n */\nfunction xaaLOCFormSubmitted() {\n dataLayer.push({\n eventDetails: {\n eventAction: 'XAA Form Submitted'\n },\n event: 'XAA Interactions'\n });\n}\n\n/**\n * pass enrollment status to GTM\n * @param {string} option user text\n *\n */\nfunction selectEnrollmentStatus(option) {\n if (option) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Join As A Player',\n eventLabel: option\n },\n event: 'Power Up Rewards'\n });\n }\n}\n\n/**\n *\n * @param {Object} event event object\n * @param {boolean} checkoutBtnClicked Checkout Btn clicked\n * @param {boolean} stepCheckout Stepchckout\n */\nfunction postMessageOnEvent(event, checkoutBtnClicked, stepCheckout) {\n var details = {\n productDetails: fetchProductDetails(event)\n };\n if (fetchCouponCode() != null && checkoutBtnClicked) {\n details.coupon = fetchCouponCode();\n }\n if (stepCheckout) {\n details.productDetails.checkout_step = '1';\n }\n if (event === 'view_cart') {\n var flexpayEnableInApp = $('#flexpay-enable-in-app').val();\n if (flexpayEnableInApp === 'true') {\n details.productDetails.display_flexible_payment = 'yes';\n } else {\n details.productDetails.display_flexible_payment = 'no';\n }\n }\n var json = {\n message: 'callFBEvent',\n eventDetails: details.productDetails,\n event: event\n };\n try {\n window.ReactNativeWebView.postMessage(JSON.stringify(json));\n } catch (e) {\n console.log(e);\n }\n}\n\n/**\n * @param {Object} productInfo product info\n * @returns {string} - category3\n */\nfunction populateItemVariant(productInfo) {\n var variant = '';\n if (productInfo) {\n if (productInfo.productType === 'Warranty') {\n variant = 'Warranty | ' + productInfo.parentProduct;\n } else {\n variant = productInfo.warranty_name ? 'Warranty | Parent | ' + productInfo.warranty_name : '';\n }\n }\n return variant;\n}\n\n/**\n * @param {Object} productInfo product info\n * @returns {string} - category3\n */\nfunction populateItemCategory3(productInfo) {\n var category = '';\n if (productInfo) {\n var shippingMethod = productInfo.item_shipping_method;\n switch (shippingMethod) {\n case 'SDD':\n category = shippingMethod + ' | ' + shippingMethod + ' | ' + productInfo.shippingOption;\n break;\n case 'Regular':\n category = shippingMethod + ' | ' + productInfo.productFulfillmentMethod + ' | ' + productInfo.shippingOption;\n break;\n default:\n // TODO: Pass \"No Shipping Method Selected\" if no shipping options available or for Guest Checkout.\n if (customerType === 'guest') {\n category = 'No Shipping Method Selected';\n } else {\n category = shippingMethod + ' | ' + productInfo.productFulfillmentMethod;\n }\n break;\n }\n }\n return category;\n}\n\n/**\n * @param {Object} product product info\n * @returns {Object} - categoryInfo\n */\nfunction getWarrantyCategoryInfo(product) {\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer && (dataLayer[i].event === 'Checkout Step Encountered' || dataLayer[i].event === 'Order Placed')) {\n var products = dataLayer[i].product || dataLayer[i].transaction.item;\n for (var j = 0; j < products.length; j++) {\n if (products[j].productInfo.productID === product.parentProductID) {\n return {\n category3: populateItemCategory3(products[j].productInfo),\n category5: products[j].productInfo.item_shipping_method\n };\n }\n }\n }\n }\n return {\n category3: '',\n category5: ''\n };\n}\n\n/**\n * @param {Object} product product object\n * @param {string|number} quantity product quantity\n * @returns {Object} - json object\n */\nfunction populateProductItemOnSPC(product, quantity) {\n var warrantyType = product && product.productInfo.productType === 'Warranty';\n var category3 = populateItemCategory3(product.productInfo);\n var variant = populateItemVariant(product.productInfo);\n var warrantyCategoryInfo;\n if (warrantyType) {\n warrantyCategoryInfo = getWarrantyCategoryInfo(product.productInfo);\n }\n var item;\n item = {\n quantity: typeof quantity === 'string' ? parseInt(quantity, 10) : quantity,\n price: parseFloat(product.price.sellingPrice),\n item_brand: warrantyType ? 'GameStop Inc.' : product.productInfo.brand,\n item_category: warrantyType ? product.productInfo.parentProductCategory : product.productInfo.category,\n item_category2: warrantyType ? 'Digital' : product.productInfo.condition,\n item_category3: warrantyType ? warrantyCategoryInfo.category3 : category3,\n item_category4: warrantyType ? 'Available' : product.productInfo.availability,\n item_category5: warrantyType ? warrantyCategoryInfo.category5 : product.productInfo.item_shipping_method,\n item_id: warrantyType ? product.productInfo.productId : product.productInfo.productID,\n item_name: product.productInfo.name,\n item_variant: variant\n };\n\n return item;\n}\n\n/**\n * @param {Object} action action object\n * @param {string} paymentMethod payment name\n * @returns {Object} - json event\n */\nfunction fetchProductDetailsOnSPC(action, paymentMethod) {\n var currency = '';\n var productItem = [];\n var totalPrice = 0;\n var products;\n var product;\n var quantity;\n for (var i = 0; i < dataLayer.length; i++) {\n if (dataLayer && (dataLayer[i].event === 'Checkout Step Encountered' || dataLayer[i].event === 'Order Placed')) {\n products = dataLayer[i].product || dataLayer[i].transaction.item;\n for (var j = 0; j < products.length; j++) {\n product = products[j];\n currency = product.price.currency || 'USD';\n quantity = product.quantity;\n totalPrice += quantity * parseFloat(product.price.sellingPrice);\n if (action === 'begin_checkout' || action === 'add_shipping_info' || action === 'add_payment_info' || action === 'purchase') {\n productItem.push(populateProductItemOnSPC(product, quantity));\n }\n }\n break;\n }\n }\n\n var $total = $('.grand-total');\n if ($total.length) {\n totalPrice = $total.text();\n totalPrice = parseFloat(totalPrice.substring(totalPrice.indexOf('$') + 1));\n }\n\n var details = {\n currency: currency,\n value: totalPrice,\n items: productItem\n };\n\n if (action === 'add_payment_info' && paymentMethod) {\n details.payment_type = paymentMethod;\n }\n return details;\n}\n\n/**\n *\n * @returns {Object} - json event\n */\nfunction getCouponInfoSPC() {\n var $coupons = $('.os-discount').find('.coupon');\n var coupons = [];\n if ($coupons.length > 0) {\n $coupons.each(function (i, coupon) {\n var discountAmount = $(coupon).find('.discount-amount').text().trim();\n coupons.push({\n code: $(coupon).find('.coupon-name').text().trim(),\n amount: parseFloat(discountAmount.substring(discountAmount.indexOf('$') + 1))\n });\n });\n }\n\n return coupons.length > 0 ? coupons : null;\n}\n\n/**\n * Post message to RN on SPC page\n * @param {string} event name\n * @param {string} paymentMethod name\n */\nfunction postMessageOnSPC(event, paymentMethod) {\n var details = fetchProductDetailsOnSPC(event, paymentMethod);\n if (event === 'add_shipping_info' || event === 'add_payment_info') {\n var coupons = getCouponInfoSPC();\n var result = '';\n if (coupons) {\n coupons.forEach(function (coupon) {\n result = result === '' ? result + coupon.code + ' : ' + coupon.amount : result + ', ' + coupon.code + ' : ' + coupon.amount;\n });\n }\n\n var $gifCard = $('#giftCertificateAmount');\n if ($gifCard.length && parseFloat($gifCard.val()) !== 0.0) {\n result = result === '' ? 'Gift Card : ' + parseFloat($gifCard.val()) : result + ' | Gift Card : ' + parseFloat($gifCard.val());\n }\n details.coupon = result !== '' ? result : 'No Rewards Applied';\n }\n dataToReactNative(details, event);\n}\n\n/**\n * post RN event on order place\n */\nfunction postMessageOnOrderPlace() {\n var event = 'purchase';\n var details;\n var productCartItems = fetchProductDetailsOnSPC(event);\n var orderDetails = fetchOrderDetails();\n var couponCode = getCouponCodeOnOrderPlace();\n\n details = Object.assign(orderDetails, productCartItems);\n details.checkout_step = '4';\n\n if (couponCode.length) {\n details.coupon = couponCode;\n }\n details.value = parseFloat(details.value);\n dataToReactNative(details, event);\n}\n\n/**\n * Post RN event on single page checkout screen view\n * @param {string} event name\n */\nfunction postMessageScreenViewOnSPC(event) {\n var details = {\n screen_name: 'checkout',\n screen_category: 'Checkout'\n };\n dataToReactNative(details, event);\n}\n\n/**\n * Trigger the event and pass the details to RN\n * @param {string} componentName Component name\n * @param {Object} eventDetail Event Details\n * @param {string} pagecontext Current Page Context\n * @param {string} event Event\n */\nfunction triggerRNEvent(componentName, eventDetail, pagecontext, event) {\n var detail = {\n component: componentName,\n details: eventDetail,\n source: pagecontext\n };\n dataToReactNative(detail, event);\n}\n\nif (isAppSession === 'true') {\n if (window.pageContext.ns === 'orderconfirmation') {\n dataToReactNative({\n screen_class: 'Order Confirmation',\n screen_name: 'Purchase'\n }, 'orderconfirmation_screenview');\n postMessageOnOrderPlace();\n var orderConfirmShippingViewed = false;\n var orderConfirmPaymentViewed = false;\n\n $(window).on('resize scroll', function () {\n var elShipping = $('.order-summary-shipping');\n if (isScrolledIntoView(elShipping) && !orderConfirmShippingViewed) {\n orderConfirmShippingViewed = true;\n triggerRNEvent('Shipping', 'Component: Shipping | Viewed', 'Order Confirmation', customLink);\n }\n var elPayment = $('.order-summary-shipping');\n if (isScrolledIntoView(elPayment) && !orderConfirmPaymentViewed) {\n orderConfirmPaymentViewed = true;\n triggerRNEvent('Payment', 'Component: Payment | Viewed', 'Order Confirmation', customLink);\n }\n });\n\n $('body').on('orderconfirmation:appanalytics', function () {\n triggerRNEvent('Return to Shopping', 'Link: Return to Shopping | Clicked', 'Order Confirmation', customLink);\n });\n }\n\n if (window.pageContext.ns === 'cart' && !$('.cart-empty').length) {\n postMessageOnEvent('view_cart');\n }\n\n if (window.pageContext.ns.toLowerCase().includes('checkout')) {\n postMessageScreenViewOnSPC('checkout_screenview');\n postMessageOnSPC('begin_checkout');\n triggerRNEvent('Shipping', 'Component: Shipping | Viewed', window.pageContext.ns, 'view_shipping_component');\n postMessageOnSPC('add_shipping_info');\n // TODO: Check if it is a member with no address\n if (customerType === 'guest' || (customerType === 'registered' && $('#checkout-main').find('form.shipping-form').hasClass('guest-checkout'))) {\n triggerRNEvent('Shipping', 'Component: Shipping | No Address Available', window.pageContext.ns, customLink);\n }\n\n $('body').on('checkout:paymentFormView', function () {\n triggerRNEvent('Payment', 'Component: Payment | Form View', window.pageContext.ns, customLink);\n });\n\n $('body').on('checkout:appPaymentInitiated', function (e, data) {\n triggerRNEvent('Place Order CTA', 'CTA: Payment Initiated | ' + data.payment, window.pageContext.ns, customLink);\n });\n\n $('#klarna-checkout-btn').on('click', function () {\n triggerRNEvent('Place Order CTA', 'CTA: Payment Initiated | Klarna', window.pageContext.ns, customLink);\n });\n }\n}\n\n/**\n * pass suggestion status to GTM\n * @param {string} data text\n *\n */\nfunction searchSuggestionEvent(data) {\n var resultCheck = data.resultVal;\n dataLayer.push({\n eventDetails: {\n eventAction: resultCheck ? data.resultVal : 'Search Cancel',\n eventLabel: data.queryData\n },\n event: resultCheck ? 'Internal Search' : 'Search Cancel'\n });\n}\n\n/**\n * pass suggestion status to GTM\n * @param {string} domObj text\n * @return {string} - true or false\n *\n */\nfunction isCheckedRadioOptions(domObj) {\n var isChecked = $(domObj).filter(function () {\n return $(this).prop('checked');\n });\n return isChecked;\n}\n\n/**\n * pass suggestion status to GTM\n * @param {string} productObj text\n * @return {string} - product data\n *\n */\nfunction addToCartWarrantyList(productObj) {\n var pageContext = window.pageContext.ns;\n var productObjData = productObj;\n var checkedWarranty = isCheckedRadioOptions('.primary-details-row .warranty-option');\n\n if (pageContext === 'search') {\n productObjData.list = {\n listName: 'Product list'\n };\n }\n\n if (pageContext === 'product' && checkedWarranty.length > 0) {\n productObjData.list = {\n listName: 'PDP|Warranty'\n };\n }\n\n return productObjData;\n}\n\n/**\n * pass suggestion status to GTM\n * @return {string} - product data\n *\n */\nfunction returnWarrantyOptionParent() {\n var componentNameParent = '';\n $('.primary-details-row .warranty-option').each(function (index) {\n var commorOper = (index === 0) ? '' : ', ';\n componentNameParent += commorOper + $.trim($(this).data('display-value'));\n });\n\n return componentNameParent;\n}\n\n/**\n * pass suggestion status to GTM\n * @param {Object} e - event\n * @param {Object} response - product variation response object\n * @deprecated - can be removed if there is no issue\n */\nfunction productViewWarrantyImpression(e, response) {\n var pageContext = window.pageContext.ns;\n var checkedWarranty = $('.primary-details-row .warranty-option');\n if (pageContext === 'product' && checkedWarranty.length === 0) {\n return;\n }\n var sliceProductObject;\n var productViewedIndex;\n var productObject = {};\n var dataLayerobj = dataLayer.map(function (x) {\n return x;\n });\n var prodViewedObj = {\n event: 'Product Viewed',\n certifiedRefurbished: response.data.product.isCertifiedRefurbished && (response.data.product.productCondition.toLocaleLowerCase().indexOf('refurbished') !== -1),\n product: []\n };\n for (var i = 0; i < dataLayerobj.length; i++) {\n if (dataLayerobj[i].event === 'Product Viewed') {\n productViewedIndex = i;\n var pdata = dataLayerobj.splice(i, 1);\n sliceProductObject = pdata[0].product[0];\n break;\n }\n }\n\n var componentName = returnWarrantyOptionParent();\n productObject.componentInfo = {\n componentDetails: 'Warranty|' + componentName + '|Parent'\n };\n\n prodViewedObj.product.push($.extend({}, sliceProductObject, productObject));\n\n $('.primary-details-row .warranty-option').each(function () {\n var id = $(this).data('value-id');\n var childComponentName = $.trim($(this).data('display-value'));\n var warrantyprice = $(this).data('warranty-price');\n productObject.componentInfo = {\n componentDetails: 'Warranty|' + childComponentName + '|Up-sell'\n };\n productObject.price = {\n sellingPrice: warrantyprice.replace('$', ''),\n basePrice: warrantyprice.replace('$', ''),\n currency: 'USD'\n };\n productObject.productInfo = {\n name: childComponentName,\n parentProduct: sliceProductObject.productInfo.name,\n productID: id,\n productType: 'Warranty',\n sku: id,\n warrantyOption: id\n };\n productObject.productInfo = $.extend({}, sliceProductObject.productInfo, productObject.productInfo);\n prodViewedObj.product.push($.extend({}, sliceProductObject, productObject));\n });\n dataLayer.splice(productViewedIndex, 1, prodViewedObj);\n}\n\n/**\n * Triggers payment section analytics just once when we scroll into payment section\n * @param {Object} entry - all the entries\n * @param {Object} self - the current object\n *\n */\nfunction intersectPaymentSection(entry, self) {\n if (entry[0].isIntersecting && !isPaymentElementVisible) {\n $('body').trigger('checkout:paymentSectionAnalytics', { checkoutStep: '5a', checkoutOption: 'Credit Card' });\n if (isAppSession === 'true') {\n triggerRNEvent('Payment', 'Component: Payment | Viewed', window.pageContext.ns, 'view_payment_component');\n var savedCreditCardCount = $('#savedCreditCardCount').val();\n if (savedCreditCardCount === 'null' || parseInt(savedCreditCardCount, 10) === 0) {\n triggerRNEvent('Payment', 'Component: Payment | No Payment Method Available', window.pageContext.ns, customLink);\n postMessageOnSPC('add_payment_info', 'CREDIT_CARD');\n }\n }\n self.unobserve(entry[0].target);\n isPaymentElementVisible = true;\n }\n}\n\n/**\n * Returns the coupon details like code and net savings\n * @param {Object} detailsObj - response\n * @return {Object} - coupon details\n *\n */\nfunction couponDetails(detailsObj) {\n var details = {\n couponCode: '',\n value: 0\n };\n var data = detailsObj.data;\n var discounts = data.totals.discounts;\n if (discounts) {\n $.each(discounts, function (count) {\n var discount = discounts[count];\n if (discount.valid && discount.applied && discount.type === 'coupon') {\n details.couponCode = discount.couponCode;\n if (discount.relationship && discount.relationship.length) {\n var couponDiscountAmount = discount.relationship[0].price.formatted;\n if (couponDiscountAmount.indexOf('$') > -1) {\n details.value = parseFloat(couponDiscountAmount.substring(couponDiscountAmount.indexOf('$') + 1));\n }\n }\n }\n });\n }\n return details;\n}\n\n/**\n * Returns the coupon details like code and net savings\n * @param {Object} source - Source\n * @return {Object} - zone and placement details\n *\n */\nfunction googleAIRecommendationSource(source) {\n var zonesource;\n var placement;\n var listImpression;\n if (source === 'PEOPLE_ALSO_BOUGHT') {\n zonesource = 'PDP';\n placement = 'PDP (2) - People also bought';\n listImpression = 'pdp:people_also_bought';\n } else if (source === 'MORE_LIKE_THIS') {\n zonesource = 'PDP';\n placement = 'PDP (1)- More like this';\n listImpression = 'pdp:more_like_this';\n } else if (source === 'SEARCH') {\n zonesource = 'Search';\n placement = 'Search Page';\n listImpression = 'plp:you_might_also_like';\n } else if (source === 'PLP') {\n zonesource = 'PLP';\n placement = 'PLP - Recommended-for-you';\n listImpression = 'plp:you_might_also_like';\n } else if (source === 'NO_SEARCH_RESULT') {\n zonesource = 'pageType-Null Search';\n placement = 'No results search';\n listImpression = '';\n } else if (source === 'HOME_PAGE') {\n zonesource = 'Home';\n placement = 'Homepage';\n listImpression = 'Homepage:recommended_products';\n } else if (source === 'ATC_MODAL') {\n zonesource = 'ATC Modal';\n placement = 'Add to Cart';\n listImpression = '';\n } else {\n zonesource = '';\n placement = '';\n listImpression = '';\n }\n return {\n zonesource: zonesource,\n placement: placement,\n listImpression: listImpression\n };\n}\n\nvar events = {\n account: function () { },\n store: function () {\n $(document).on('click', '.store-locator-search-stores-container .results-card .store-name a', function () {\n var gtmData = $(this).closest('.card-body').data('gtmdata');\n if (!gtmData) {\n return;\n }\n\n gtmData.storeSearch.selectAction = 'Store Name';\n dataLayer.push(gtmData);\n });\n $(document).on('click', '.store-locator-search-stores-container .results-card .store-phone a', function () {\n var gtmData = $(this).closest('.card-body').data('gtmdata');\n if (!gtmData) {\n return;\n }\n\n gtmData.storeSearch.selectAction = 'Phone Number';\n dataLayer.push(gtmData);\n });\n $(document).on('click', '.store-locator-search-stores-container .results-card .store-directions-link', function () {\n var gtmData = $(this).closest('.card-body').data('gtmdata');\n if (!gtmData) {\n return;\n }\n\n gtmData.storeSearch.selectAction = 'Directions';\n dataLayer.push(gtmData);\n });\n $(document).on('click', '.store-locator-search-stores-container .results-card .store-details-link', function () {\n var gtmData = $(this).closest('.card-body').data('gtmdata');\n if (!gtmData) {\n return;\n }\n\n gtmData.storeSearch.selectAction = 'Store Details';\n dataLayer.push(gtmData);\n });\n $(document).on('click', '.store-locator-search-stores-container .results-card .my-store-link', function () {\n var gtmData = $(this).closest('.card-body').data('gtmdata');\n if (!gtmData) {\n return;\n }\n\n gtmData.storeSearch.selectAction = 'Set As Home Store';\n dataLayer.push(gtmData);\n });\n },\n cart: function () {\n $(document).on('cart-promo-applied:error', function (e, code) {\n dataLayer.push({\n voucherDiscount: {\n voucherCodeIsValid: false,\n voucherCode: code\n },\n event: 'Promo Code Added'\n });\n });\n $(document).on('cart-promo-applied:success', function (e, code) {\n dataLayer.push({\n voucherDiscount: {\n voucherCodeIsValid: true,\n voucherCode: code\n },\n event: 'Promo Code Added'\n });\n });\n $('.checkout-and-applepay .checkout-btn, .checkout-and-applepay .checkout-btn-header').on('click', function () {\n var product = [];\n for (var i = dataLayer.length - 1; i > 0; i--) {\n if ((dataLayer && (dataLayer[i].event === 'Cart Viewed')) || (dataLayer && dataLayer[i].event === 'Checkout Step Encountered')) {\n product = dataLayer[i].product;\n if (dataLayer[i].event === 'Checkout Step Encountered') {\n for (var j = 0; j < product.length; j++) {\n if (product[j].productInfo) {\n product[j].productInfo.beginCheckout = 1;\n }\n if (product[j].productInfo.appliedPromotion && product[j].productInfo.appliedPromotion === 'PriceMatch') {\n product[j].productInfo.promoLabel = 'PriceMatch';\n }\n }\n }\n break;\n }\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: 2,\n checkoutOption: ''\n },\n product: product\n });\n });\n $(document).on('cart-paypal-checkout:start', function () {\n var product = [];\n for (var i = dataLayer.length - 1; i > 0; i--) {\n if ((dataLayer && (dataLayer[i].event === 'Cart Viewed')) || (dataLayer && dataLayer[i].event === 'Checkout Step Encountered')) {\n product = dataLayer[i].product;\n if (dataLayer[i].event === 'Checkout Step Encountered') {\n for (var j = 0; j < product.length; j++) {\n if (product[j].productInfo) {\n product[j].productInfo.beginCheckout = 1;\n }\n if (product[j].productInfo.appliedPromotion && product[j].productInfo.appliedPromotion === 'PriceMatch') {\n product[j].productInfo.promoLabel = 'PriceMatch';\n }\n }\n }\n break;\n }\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: '5b',\n checkoutOption: 'Paypal Express'\n },\n product: product\n });\n });\n $(document).on('cart-paypal-checkout:error', function (e, errorMessage) {\n dataLayer.push({\n errorDetails: {\n errorCategory: 'ecommerce',\n errorTrigger: 'Paypal Express Transaction Error',\n errorType: 'Paypal Express',\n errorMessage: errorMessage || ''\n },\n event: 'Error Occurence'\n });\n });\n $(document).on('cart:protectionAdded:success', function (e, protection) {\n dataLayer.push({\n protectionDetails: {\n name: protection.optionDisplayName,\n totalValue: protection.itemTotal,\n protectionValue: protection.protectionValue,\n protectionId: protection.protectionValue\n },\n event: 'Protection added in cart'\n });\n });\n $(document).on('cart:protectionRemoved:success', function (e, protection) {\n dataLayer.push({\n protectionDetails: {\n name: protection.optionDisplayName,\n totalValue: protection.itemTotal,\n protectionValue: protection.protectionValue,\n protectionId: protection.protectionValue\n },\n event: 'Protection removed in cart'\n });\n });\n $('.protection-button.unselected').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Warranty Selection|Cart',\n eventLabel: 'Warranty Added'\n },\n event: 'ecommerce'\n });\n });\n $('.protection-button.selected').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Warranty Selection|Cart',\n eventLabel: 'Warranty Removed'\n },\n event: 'ecommerce'\n });\n });\n $(document).on('cart:afterAddToCartRecommendation', function (e, data) {\n if (data && data.gtmData) {\n dataLayer.push({\n product: [data.gtmData],\n event: 'Recommended Product Added - Cart page'\n });\n dataLayer.push({\n productDetails: data.resultval,\n event: 'Product Option Selected - Cart page'\n });\n }\n if (data && data.gtmPURData) {\n dataLayer.push({\n product: [data.gtmPURData],\n event: 'Recommended Giftcard Added - Cart page'\n });\n }\n if (data && data.gtmData) {\n var productObj = data.gtmData;\n productObj.productInfo.zoneSource = 'Cart';\n productObj.componentInfo = {\n componentDetails: 'Recommendation | More Like This | cross-sell'\n };\n var list = {\n listName: 'Cart | More Like This'\n };\n dataLayer.push({\n product: [productObj],\n list: list,\n event: 'Product Added'\n });\n }\n }\n );\n $(document).on('cart:upsellGiftCard:afterPageLoad', function (e, data) {\n dataLayer.push({\n product: [data],\n event: 'Product Viewed'\n });\n });\n\n $(document).on('cart:UpsellGiftCard:afterAdded', function (e, data) {\n var gtmData = data;\n var isMobileView = data && data.isMobileView;\n\n if (isMobileView === 'true') {\n var isTopUpsellGCSection = gtmData.isTopUpsellGCSection && Number(gtmData.isTopUpsellGCSection);\n var isBottomUpsellGCSection = gtmData.isBottomUpsellGCSection && Number(gtmData.isBottomUpsellGCSection);\n if (isTopUpsellGCSection) {\n gtmData.gtmProductData.productInfo.zoneSource = 'cart|top';\n }\n\n if (isBottomUpsellGCSection) {\n gtmData.gtmProductData.productInfo.zoneSource = 'cart|bottom';\n }\n }\n\n dataLayer.push({\n product: [gtmData && gtmData.gtmProductData],\n event: 'Product Added'\n });\n });\n },\n checkoutlogin: function () {\n $('.checkout-as-guest').on('click', function () {\n if (isAppSession === 'true') {\n var event = 'custom_link';\n var details = {\n component: 'Signin modal',\n detail: 'Guest Checkout',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n } else {\n var gtmSessionData = $(this).data('gtmdata');\n if (!gtmSessionData) {\n return;\n }\n dataLayer.push({\n user: {\n userType: gtmSessionData.user.userType,\n memberTier: gtmSessionData.user.memberTier,\n memberSinceDate: gtmSessionData.user.memberSinceDate,\n loyaltyPoints: gtmSessionData.user.loyaltyPoints,\n loginStatus: gtmSessionData.user.loginStatus,\n custKey: gtmSessionData.user.custKey,\n lastOrderDate: gtmSessionData.user.lastOrderDate,\n customerStatus: gtmSessionData.user.customerStatus\n },\n event: 'Guest Checked Out'\n });\n }\n });\n },\n checkout: function () {\n $(document).on('click', '[name$=\"_shippingMethodID\"]', function () {\n var shippingMethod = $.trim($(this).closest('.shipping-method-set').find('.display-name').text());\n var checkoutOption = shippingMethod;\n dataLayer.push({\n step: 3,\n eventDetails: {\n checkoutOption: checkoutOption\n },\n event: 'Checkout Option Selected'\n });\n });\n\n // DEN-15029 New Checkout\n var moreClick = 1;\n $('.view-more-button.view-more-button-ordersummary').on('click', function () {\n if (moreClick === 1) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'ecommerce|Checkout',\n eventAction: 'Order Summary | Click on More'\n },\n event: 'Checkout Step updated'\n });\n }\n moreClick++;\n });\n\n $('.payment-options a.nav-link').on('click', function () {\n if ($('.single-page-checkout').length) {\n return;\n }\n var paymentMthod = $.trim($(this).text());\n var checkoutOption = paymentMthod;\n dataLayer.push({\n step: 4,\n eventDetails: {\n checkoutOption: checkoutOption\n },\n event: 'Checkout Option Selected'\n });\n });\n\n $('body').on('checkout:beforeUpdateStage', function (e, data) {\n if ($('.single-page-checkout').length) {\n return;\n }\n if (data.stage || data.stage === 0) {\n var stage = data.stage + 4;\n checkoutStepEncountered(stage);\n }\n });\n\n if (isAppSession === 'true' && window.pageContext.ns === 'checkout') {\n $('.submit-shipping').on('click', function () {\n postMessageOnAddingShippingInfo();\n });\n\n $('.submit-payment').on('click', function () {\n postMessageOnCheckoutPayment();\n });\n $('#klarna-checkout-btn').on('click', function () {\n postMessageOnCheckoutPayment('KLARNA');\n });\n }\n },\n compare: function () { },\n product: function () {\n $('body').on('product:afterProductViewWarranty', function (e, response) {\n productViewWarrantyImpression(e, response);\n });\n },\n search: function () {\n $('.search-results').on('click', '.refinement-bar a', function () {\n var label = $(this).find('label').text();\n if (!label) {\n label = $(this).find('span').text();\n }\n var plpFilterVal = $('.savefilter').attr('savefilter');\n var preplpFilterVal = plpFilterVal === undefined || plpFilterVal === '' ? label : plpFilterVal.toString().concat('|' + label);\n var replaceFilterVal = preplpFilterVal.replace(/\\s\\s+/g, '');\n $('.savefilter').attr('savefilter', replaceFilterVal);\n if (label) {\n dataLayer.push({\n filterClicked: {\n label: $.trim(label)\n },\n event: 'Filter Clicked'\n });\n dataLayer.push({\n filterPilldetails: {\n pillsSelected: replaceFilterVal\n },\n event: 'PLP Pills Filter'\n });\n }\n });\n\n $(window).one('scroll', function () {\n var $productGrid = $('.search-results.redesign-plp .product-grid');\n if ($productGrid.length && $productGrid.attr('data-gtm')) {\n var listingViwedData = JSON.parse($productGrid.attr('data-gtm'));\n if (Array.isArray(listingViwedData) && listingViwedData.length > 1) {\n listingViwedData.forEach(function (element, index) {\n if (index > 0) {\n setTimeout(function () {\n dataLayer.push(element);\n }, 1000 * (index + 1));\n }\n });\n }\n }\n });\n },\n storefront: function () {\n $(window).scroll(promotionViewed);\n promotionViewed();\n $('[data-row-index][data-row-position][data-block-index][data-block-position]').on('click', function () {\n var el = $(this);\n var promotionId = el.data('promotionID');\n if (promotionId) {\n var promotions = [{\n promotionID: promotionId,\n promotionPosition: el.data('promotionPosition'),\n promotionCreative: el.data('promotionCreative'),\n promotionName: el.data('promotionName')\n }];\n dataLayer.push({\n event: 'Promotion Clicked',\n promotions: promotions\n });\n }\n });\n },\n wishlist: function () { },\n // events that should happen on every page\n all: function () {\n $('body').on('login:LegacyAccActivation', function (e, page) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Legacy to Player Upgrade',\n eventLabel: page\n },\n event: 'Power Up Rewards'\n });\n });\n $('body').on('purlanding:playerDataUpload', function () {\n selectEnrollmentStatus('Enrollment Initiated');\n });\n $('body').on('purlanding:playerFormSubmit', function () {\n selectEnrollmentStatus('Enrollment Completed');\n });\n $('body').on('purlanding:playerCreateAccount', function () {\n selectPurUserType('Player');\n });\n $('body').on('purlanding:proCreateAccount', function () {\n selectPurUserType('Pro');\n });\n $('body').on('xaa:lineOfCreditFormSubmitted', function () {\n xaaLOCFormSubmitted();\n });\n $(document).on('click', '#addtocart1_rr .pdp-link .link, #addtocart1_rr .product a img', function () {\n var position = $(this).closest('.product').data('slick-index');\n ++position;\n var listItemType = 'Certona | Add To Cart Recommendation';\n if ($(this).hasClass('link')) {\n recomProductClick($.parseJSON($(this).attr('data-gtmdata')).productInfo, position, listItemType);\n } else {\n recomProductClick($.parseJSON($(this).closest('.product').find('.pdp-link .link').attr('data-gtmdata')).productInfo, position, listItemType);\n }\n });\n $(document).on('click', '.product .quickview', function () {\n var position = $(this).closest('.product-grid-tile-wrapper').data('position');\n var pageNumber = $('.product-grid [data-page-number]').length > 0 ? $('.product-grid [data-page-number]').data('page-number') : 0;\n var pageSize = pageNumber > 0 ? $('.product-grid [data-page-size]').data('page-size') : 12;\n position += pageNumber * pageSize;\n var listItemType = $(this).closest('.product-grid-tile-wrapper').data('list-item-type');\n productClick($.parseJSON($(this).closest('.product').find('.pdp-link .link').attr('data-gtmdata')), position, listItemType);\n });\n $(document).on('click', '.recommendations-account-dashboard .product-tile', function () {\n var position = $(this).closest('.product.grid-tile.slick-slide').data('slick-index') + 1;\n var listItemType = $('.recommendation-type')[0].innerText;\n var splitStr = listItemType.toLowerCase().split(' ');\n for (var i = 0; i < splitStr.length; i++) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\n }\n listItemType = 'Account | ' + splitStr.join(' ');\n productClick($.parseJSON($(this).closest('.product').find('.pdp-link .link').attr('data-gtmdata')), position, listItemType);\n });\n\n if (isAppSession === 'true') {\n $('body').on('click', '.checkout-sign-in', function () {\n var event = 'custom_link';\n var details = {\n component: 'Signin modal',\n detail: 'Sign In',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n });\n\n $('body').on('click', '.checkout-create-account', function () {\n var event = 'custom_link';\n var details = {\n component: 'Signin modal',\n detail: 'Create Account',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n });\n\n $('body').on('click', '.pur-add-to-cart', function (e) {\n e.preventDefault();\n // signup button check to redirect to create account screen\n if (window.pageContext.ns === 'orderconfirmation' && $(this).hasClass('create-account-redirect')) {\n postMessageToRN('goCreateAccount');\n return;\n }\n var event = 'add_to_cart';\n var fetchpProductDetail = $('#add-pur-pro-gtm-physical').data('gtmdata');\n var item = {\n item_id: fetchpProductDetail.productInfo.productID,\n item_sku: fetchpProductDetail.productInfo.sku,\n item_name: fetchpProductDetail.productInfo.name,\n item_category: 'Power Up Rewards',\n item_variant: 'Pro Membership',\n item_brand: 'GameStop',\n price: fetchpProductDetail.price.sellingPrice,\n quantity: 1\n };\n var details = {\n currency: fetchpProductDetail.price.currency,\n value: fetchpProductDetail.price.sellingPrice,\n shipping_tier: 'digital',\n items: item,\n source: window.pageContext.ns\n };\n if ($('#playerUpgradeModal').hasClass('show')) {\n var shippingTier = $('.product-option .value-tile.pro-tile.selected')[0].innerText.toLowerCase().includes('physical');\n details.shipping_tier = shippingTier ? 'Physical' : 'Digital';\n details.items.rewards_type = shippingTier ? 'Physical' : 'Digital';\n }\n\n dataToReactNative(details, event);\n });\n\n $('[data-target=\"#powerupDetailsModal\"]').click(function (e) {\n e.preventDefault();\n var event = 'custom_link';\n var details = {\n component: 'Loyalty Cross Sell',\n details: 'Power Up Rewards Pro',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n });\n\n $('#playerUpgradeModal .close span').click(function (e) {\n e.preventDefault();\n var event = 'custom_link';\n var details = {\n component: 'Loyalty Cross Sell',\n details: 'Close Modal',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n });\n\n $('.upgrade-button').click(function () {\n var event = 'custom_link';\n var details = {\n component: 'Loyalty Cross Sell',\n details: 'Upgrade',\n source: window.pageContext.ns\n };\n dataToReactNative(details, event);\n });\n\n // Trade In: Analytics\n $('.search-initiate-analytics, .view-saved-trade-analytics').click(function (e) {\n var event = 'custom_link';\n tradeProductData(event, 'Trade In: Search Bar', e.target.getAttribute('data-text'));\n });\n\n if (window.pageContext.ns === 'trade search') {\n var event = 'tradein_search_results_view';\n var detailFetched = tradeResultDetails();\n var details = {\n tradein_result_count: detailFetched.resultsCount,\n tradein_result_term: detailFetched.searchTermEntered\n };\n if ($('.filter-bar ul li').length) {\n details.tradein_results_filter = 'filter applied';\n }\n dataToReactNative(details, event);\n }\n\n if (window.pageContext.ns === 'trade details') {\n dataToReactNative({\n screen_name: 'Trade-in PDP',\n screen_class: 'Trade-in'\n }, 'logScreenView');\n var productTradeObject = {};\n if ($('.trade-product-details').length) {\n productTradeObject = $.parseJSON($('.trade-product-details').attr('data-gtmdata'));\n }\n var itemDetails = populateProductItem(productTradeObject);\n var componentTradeDetail = 'Trade In: PDP';\n tradeProductData('tradein_pdp_view', componentTradeDetail, productTradeObject.productInfo.name, itemDetails);\n\n $('.save-trade-link, .find-store-analytics').click(function (e) {\n var iseventStoreLocator = '';\n if (window.pageContext.ns === 'trade details') {\n iseventStoreLocator = $(e.target).hasClass('find-store-redirection') ? 'tradein_pdp_storelocator' : 'tradein_add_savedtrades';\n }\n\n tradeProductData(iseventStoreLocator, componentTradeDetail, productTradeObject.productInfo.name, itemDetails);\n });\n }\n\n if (window.pageContext.ns === 'Trade') {\n var productSavedTradeObject = {};\n var eventSavedProduct = 'tradein_product_click';\n var component = 'Trade In: Saved Trades';\n\n $('.savedTradeItemCards .item-image, .savedTradeItemCards .trade-line-item-name').click(function () {\n if ($('.savedTradeItemCards .card').length) {\n productSavedTradeObject = $.parseJSON($(this).attr('data-gtmdata'));\n }\n var itemSavedDetails = populateProductItem(productSavedTradeObject);\n\n tradeProductData(eventSavedProduct, component, productSavedTradeObject.productInfo.name, itemSavedDetails);\n });\n }\n }\n $(document).on('click', '.recommendations-redesign-homepage .product-tile', function () {\n if (!$('.recommendations-redesign-homepage').find('.google-recommended-products')) {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var listItemType = $(this).closest('.recommendations-redesign-homepage').find('h3');\n listItemType = $.trim(listItemType.text());\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n if ($('.collection-landing').length) {\n listItemType = 'Collection | ' + listItemType;\n productData.productInfo.zoneSource = 'Collection';\n } else {\n listItemType = 'Home | ' + listItemType;\n productData.productInfo.zoneSource = 'Home';\n }\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n }\n });\n $(document).on('click', '#search1_rr .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#search1_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'Search | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'Search';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '.recommendations-list:not(.google-recommendation) .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('.recommendations-list').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'PLP | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'PLP';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '#product1_rr .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#product1_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'PDP | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'PDP';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '#product2_rr .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#product2_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'PDP | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'PDP';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '#account1_rr .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#account1_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'Account | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'Account';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '#nosearch1_rr .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#nosearch1_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'pageType-Null Search | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'pageType-Null Search';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('recommendation:analytics', function (e, data) {\n var productInfoArray = [];\n var zonesource;\n var categoryPattern = new RegExp('^category[0-9]*_rr$'); // for category pages\n if (data === 'product1_rr' || data === 'product2_rr') {\n zonesource = 'PDP';\n } else if (categoryPattern.test(data)) {\n zonesource = 'PLP';\n } else if (data === 'search1_rr') {\n zonesource = 'Search';\n } else if (data === 'cart1_rr') {\n zonesource = 'Cart';\n } else if (data === 'home1_rr') {\n zonesource = 'Home';\n } else if (data === 'addtocart1_rr') {\n zonesource = 'ATC Modal';\n } else if (data === 'nosearch1_rr') {\n zonesource = 'pageType-Null Search';\n } else if (data === 'account1_rr') {\n zonesource = 'Account';\n }\n var $headingRecommVal = $('#' + data).find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = zonesource + ' | ' + listItemType;\n $('#' + data + ' .pdp-link').each(function () {\n var productData = $.parseJSON($(this).attr('data-gtmdata'));\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n productData.productInfo.zoneSource = zonesource;\n productData.itemPosition = position;\n productData.itemListType = listItemType;\n productInfoArray.push(productData);\n });\n dataLayer.push({\n listing: {\n listingResults: {\n item: productInfoArray\n }\n },\n event: 'Listing Viewed'\n });\n });\n $(document).on('recommendation:datalayer', function (e, data) {\n var productInfoArray = [];\n var $container = data.caro;\n var googleURLParams = data.googleURLParams;\n var source = googleURLParams.source;\n var zonePlacement = googleAIRecommendationSource(source);\n var $headingRecommVal = $container.closest('.google-recommendation').find('h3');\n var componentType = $container.closest('.google-recommendation').attr('data-component-name') || '';\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = zonePlacement.zonesource + ' | ' + listItemType + ' | ' + zonePlacement.placement;\n $container.find('.pdp-link').each(function () {\n var productData = $.parseJSON($(this).attr('data-gtmdata'));\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n productData.productInfo.zoneSource = zonePlacement.zonesource;\n productData.itemPosition = position;\n productData.itemListType = listItemType;\n productInfoArray.push(productData);\n });\n\n if (componentType !== '') {\n dataLayer.push({\n listing: {\n listingResults: {\n item: productInfoArray\n }\n },\n componentType: componentType,\n event: 'Listing Viewed'\n });\n } else {\n dataLayer.push({\n listing: {\n listingResults: {\n item: productInfoArray\n }\n },\n event: 'Listing Viewed'\n });\n }\n });\n $(document).on('click', '.google-recommendation .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var source = $(this).closest('.google-recommendation').data('source');\n var zonePlacement = googleAIRecommendationSource(source);\n var $headingRecommVal = $(this).closest('.google-recommendation').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = zonePlacement.zonesource + ' | ' + listItemType + ' | ' + zonePlacement.placement;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = zonePlacement.zonesource;\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n\n if (isAppSession === 'true' && $(this).closest('#trade').length) {\n var json = {\n event: 'go_to_pdp',\n data: {\n productID: productData.productInfo.productID,\n productName: productData.productInfo.name\n }\n };\n postMessageToRN(JSON.stringify(json));\n }\n });\n $(document).on('click', '#recentlyViewed .recently-viewed-carousel .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#recentlyViewed').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'PDP | ' + listItemType;\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick($.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata')), position, listItemType);\n }\n });\n $(document).on('click', '#addtocart1_rr .recommended-products-caro--added-to-cart-modal .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var $headingRecommVal = $('#addtocart1_rr').find('h3');\n var listItemType = $.trim($headingRecommVal.text());\n listItemType = 'ATC Modal | ' + listItemType;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata'));\n productData.productInfo.zoneSource = 'ATC Modal';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick(productData, position, listItemType);\n }\n });\n $(document).on('click', '.pd-component .product .tile-image, .pd-component .product .pdp-link', function () {\n var position = $(this).closest('.product-tile.product-detail').data('position');\n var listItemType = $(this).closest('.product-tile.product-detail').data('list-item-type');\n var curatedpromo = $(this).closest('.curated-promo-component').length;\n if ($('.collection-landing').length) {\n listItemType = 'Collection | ' + listItemType;\n } else {\n listItemType = 'Home | ' + listItemType;\n }\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick($.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata')), position, listItemType, curatedpromo);\n }\n });\n $(document).on('click', '.product-grid-wrapper .product .tile-image, .product-grid-wrapper .product .pdp-link, .product-grid-tile-wrapper .product-tile-link-block', function () {\n var position = $(this).closest('.product-grid-tile-wrapper').data('position');\n var pageNumber = $('.product-grid [data-page-number]').length > 0 ? $('.product-grid [data-page-number]').data('page-number') : 0;\n var pageSize = pageNumber > 0 ? $('.product-grid [data-page-size]').data('page-size') : 12;\n position += pageNumber * pageSize;\n var listItemType = $(this).closest('.product-grid-tile-wrapper').data('list-item-type');\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClick($.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdata')), position, listItemType);\n }\n });\n $('body').on('search:cancel', function (e, data) {\n searchSuggestionEvent(data);\n });\n $('body').on('search:suggestion', function (e, data) {\n searchSuggestionEvent(data);\n });\n $('body').on('product:syndigo', function (e, data) {\n dataLayer.push({\n eventDetails: {\n eventAction: data.eventData,\n eventLabel: 'Syndigo'\n },\n event: 'Video Interaction'\n });\n });\n $('body').on('promotion:promotionalClicked', function (e, data) {\n dataLayer.push({\n event: 'Banner click',\n ecommerce: {\n promoClick: {\n promotions: [{\n id: data.campaignID,\n name: data.campaignName,\n creative: data.heading,\n position: data.position\n }]\n }\n }\n });\n });\n $('body').on('promotion:bannerPromotionClicked', function (e, data) {\n dataLayer.push({\n event: 'Banner click',\n componentType: data.componentType,\n ecommerce: {\n promoClick: {\n promotions: [{\n id: data.campaignID,\n name: data.campaignName,\n creative: data.heading,\n position: data.position\n }]\n }\n }\n });\n });\n $('body').on('gifthub:Clicked', function (e, data) {\n dataLayer.push({\n event: 'Banner click',\n ecommerce: {\n promoClick: {\n promotions: [{\n name: data.name,\n creative: data.heading\n }]\n }\n }\n });\n });\n $('body').on('product:afterAddToCart', function (e, data) {\n setTimeout(function () {\n if (data && data.gtmData) {\n var obj = {\n event: 'Product Added Modal',\n ecommerce: {\n impressions: []\n }\n };\n dataLayer.push(obj);\n }\n }, 5000);\n });\n $('body').on('product:applePayCheckout', function () {\n var product = [];\n for (var i = dataLayer.length - 1; i > 0; i--) {\n if (dataLayer && (dataLayer[i].event === 'Product Viewed')) {\n product = dataLayer[i].product;\n break;\n }\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: 4,\n checkoutOption: 'Apple Pay'\n },\n product: product\n });\n dataLayer.push({\n step: 4,\n eventDetails: {\n checkoutOption: 'Apple Pay'\n },\n event: 'Checkout Option Selected'\n });\n });\n $('body').on('cart:afterProductDelete', function (e, obj) {\n var uuid = obj.uuid;\n var source = obj.source;\n var qty = $('.quantity[data-uuid=\"' + uuid + '\"]').val();\n var isPurProductGTM = $('#isPURProductItem').val();\n var warrantyData = obj && obj.warrantyData;\n if (qty || isPurProductGTM === 'true') {\n var gtmData = $('.remove-product.remove-btn[data-uuid=\"' + uuid + '\"]').data('gtmdata');\n removeFromCart(gtmData, qty, source, warrantyData);\n }\n });\n $('body').on('click', '.choose-options-btn, .in-store-pickup', function () {\n var productSKU = $(this).data('productsku');\n dataLayer.push({\n productInfo: {\n productSKU: productSKU,\n redirectType: $(this).hasClass('in-store-pickup') ? 'Store pickup available' : 'Choose Variant'\n },\n event: 'PLP Redirect'\n });\n });\n $('body').on('site:navigation', function (e, data) {\n var categoryData = data.categoryData;\n var linkCat;\n if (categoryData) {\n linkCat = categoryData;\n } else {\n linkCat = 'Hamburger';\n }\n dataLayer.push({\n linkInfo: {\n linkRegion: 'Hamburger',\n linkCategories: linkCat,\n linkAction: data.state === 'linkOpen' ? 'linkOpen' : 'linkClick'\n },\n event: 'Navigation Link Clicked'\n });\n });\n $('.footer-top-links, .menu-footer, .copyright, .footer-social-spacer', 'footer').find('a').on('click', function () {\n var linkRegion = 'Footer';\n var linkCategories = $(this).attr('title');\n if (!linkCategories) {\n linkCategories = $(this).find('img').attr('alt');\n }\n if (!linkCategories) {\n linkCategories = $(this).find('h3').text();\n }\n if (!linkCategories) {\n linkCategories = $(this).find('h4').text();\n }\n if (linkCategories) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion,\n linkCategories: linkCategories\n },\n event: 'Navigation Link Clicked'\n });\n }\n });\n $('.header-brand, .header-trade-ins, .header-power-up, .header-account-options, .minicart-total', 'header').find('a').on('click', function () {\n var linkRegion = 'Utility';\n var linkCategories = $(this).attr('title');\n if (!linkCategories) {\n linkCategories = $(this).find('img').attr('alt');\n }\n if (!linkCategories) {\n linkCategories = $(this).find('span').text();\n }\n if (linkCategories) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion,\n linkCategories: linkCategories\n },\n event: 'Navigation Link Clicked'\n });\n }\n });\n $('.site-search form:not(.search-trades)').on('submit', function () {\n var linkRegion = 'Utility';\n var linkCategories = $(this).find('button:submit').text();\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion,\n linkCategories: linkCategories\n },\n event: 'Navigation Link Clicked'\n });\n });\n $(document).on('click', '.header-account-links a, .header-account-loyalty a, .header-account-footer a, header a', function () {\n var linkRegion = 'Utility';\n var linkCategories = $(this).attr('title');\n if (!linkCategories) {\n linkCategories = $(this).text();\n }\n if (linkCategories) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion,\n linkCategories: linkCategories\n },\n event: 'Navigation Link Clicked'\n });\n }\n });\n $('form.footer-email-signup').on('submit', function () {\n var linkRegion = 'Footer';\n if (!$(this).data('event-sent')) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion\n },\n event: 'Email Subscription Completed'\n });\n $(this).data('event-sent', true);\n }\n });\n /**\n * pass custom analytics event to GTM\n * @param {string} eventCategory for eventCategory\n * @param {string} eventAction for eventAction\n * @param {string} eventLabel for eventLabel\n * @param {Object} customDimensions for customDimensions\n * @param {Object} customMetrics for customMetrics\n */\n function customAnalyticsEvent(eventCategory, eventAction, eventLabel, customDimensions, customMetrics) {\n var customDimension = {\n gtmContainerId: $('#googleTagManagerIdNew').val(),\n searchInput: customDimensions && customDimensions.searchInput,\n productSKU: customDimensions && customDimensions.productSKU,\n searchAutocompleteCategory: customDimensions && customDimensions.searchAutocompleteCategory,\n searchAutocompleteValue: customDimensions && customDimensions.searchAutocompleteValue,\n cartValue: customDimensions && customDimensions.cartValue,\n componentType: customDimensions && customDimensions.componentType,\n paymentMethod: customDimensions && customDimensions.paymentMethod,\n experienceType: customDimensions && customDimensions.experienceType,\n filterType: customDimensions && customDimensions.filterType,\n filterValue: customDimensions && customDimensions.filterValue,\n persistentSignIn: customDimensions && customDimensions.persistentSignIn,\n storeId: customDimensions && customDimensions.storeId,\n memberTier: customDimensions && customDimensions.memberTier,\n authenticationState: customDimensions && customDimensions.authenticationState,\n paymentType: customDimensions && customDimensions.paymentType,\n reviewsRating: customDimensions && customDimensions.reviewsRating,\n reviewsNumber: customDimensions && customDimensions.reviewsNumber\n };\n var customMetric = {\n orderDiscount: customMetrics && customMetrics.orderDiscount,\n eventValue: customMetrics && customMetrics.eventValue\n };\n var obj = {\n event: 'analyticsEvent',\n eventCategory: eventCategory,\n eventAction: eventAction.toLowerCase(),\n eventLabel: eventLabel.toLowerCase(),\n customDimensions: customDimension,\n customMetrics: customMetric,\n ecommerce: null\n };\n dataLayer.push(obj);\n }\n $('.footer-email-signup input[name$=\"_email\"]').on('click', function () {\n var linkRegion = 'Footer';\n if (!$(this).data('event-sent')) {\n dataLayer.push({\n linkInfo: {\n linkRegion: linkRegion\n },\n event: 'Email Subscription Started'\n });\n customAnalyticsEvent('footer', 'form started', 'promotional emails');\n $(this).data('event-sent', true);\n }\n });\n $('body').on('footer:emailSignup', function (e, data) {\n customAnalyticsEvent('footer', data.eventAction, 'promotional emails');\n });\n $('a[href*=\"itunes.apple.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'apple app store');\n });\n $('a[href*=\"play.google.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'google play store');\n });\n $('a[href*=\"facebook.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'connect with us - facebook');\n });\n $('a[href*=\"twitter.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'connect with us - twitter');\n });\n $('a[href*=\"youtube.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'connect with us - youtube');\n });\n $('a[href*=\"instagram.com\"]', 'footer').on('click', function () {\n customAnalyticsEvent('footer', 'footer link clicked', 'connect with us - instagram');\n });\n $('.footer-top-links, .menu-footer', 'footer').find('a').on('click', function (e) {\n var eventLabel = e.target && e.target.innerText;\n var navCategory = $(this).parents('ul.menu-footer').siblings('h5').text();\n if (!eventLabel) {\n eventLabel = $(this).find('h4').text();\n }\n if (navCategory) {\n navCategory = navCategory.replace(/\\s+/g, ' ').trim();\n } else {\n eventLabel = $(this).find('h4').text();\n navCategory = 'top_footer';\n }\n if (eventLabel) {\n customAnalyticsEvent('footer', 'footer link clicked', navCategory + ' - ' + eventLabel);\n }\n });\n $('body').on('site:navigation', function (e, data) {\n var categoryDetails = data.categoryDetails;\n var label;\n var eventAction;\n if (categoryDetails) {\n label = categoryDetails;\n eventAction = data.state === 'linkOpen' ? 'submenu opened' : 'navigation link clicked';\n } else {\n label = 'shop';\n eventAction = 'menu opened';\n }\n customAnalyticsEvent('navigation menu', eventAction, label);\n });\n $('.header-brand, .header-trade-ins', 'header').find('a').on('click', function () {\n var eventLabel = $(this).attr('title');\n if (!eventLabel) {\n eventLabel = $(this).find('span.tradein-block').text();\n }\n if (eventLabel) {\n customAnalyticsEvent('top navigation', 'navigation link clicked', eventLabel);\n }\n });\n $(document).on('click', '.header-power-up, .header-account-options .user, .minicart-total', function () {\n var eventLabel = $(this).find('span.minicart-label').text();\n if (eventLabel) {\n eventLabel = eventLabel.replace(/\\s+/g, '');\n }\n if (!eventLabel) {\n eventLabel = $(this).find('span.powerup-block').text();\n }\n if (!eventLabel) {\n eventLabel = $(this).find('.user-message-redesign').text();\n if (eventLabel) {\n eventLabel = eventLabel.replace(/\\s+/g, ' ').trim();\n }\n }\n if (eventLabel) {\n customAnalyticsEvent('top navigation', 'navigation link clicked', eventLabel);\n }\n });\n $(document).on('click', '.header-account-options .user', function () {\n var eventLabel = $(this).find('.user-message-account').text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n if (eventLabel) {\n customAnalyticsEvent('account menu', 'menu opened', eventLabel);\n }\n });\n $(document).on('click', '.header-account-links a, .header-account-loyalty a, .header-account-footer a, .player-member-details, .user-active-points', function () {\n var eventLabel = $(this).attr('title');\n if (!eventLabel) {\n eventLabel = $(this).find('.get-rewards-heading').text();\n if (eventLabel) {\n eventLabel = 'Upgrade to pro';\n }\n }\n if (!eventLabel) {\n eventLabel = $(this).text();\n if (eventLabel) {\n eventLabel = eventLabel.replace(/\\s+/g, ' ').trim();\n }\n }\n if (eventLabel) {\n customAnalyticsEvent('account menu', 'navigation link clicked', eventLabel);\n }\n });\n $('body').on('account:closeSideSheet', function () {\n customAnalyticsEvent('account menu', 'menu closed', 'account');\n });\n $('body').on('click', '.minicart-footer', function () {\n var cartValue = $(this).find('span.sub-total').text();\n var eventLabel = $(this).find('.btn.btn-primary').text();\n if (cartValue) {\n cartValue = cartValue.replace('$', '');\n }\n customAnalyticsEvent('minicart', 'button clicked', eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '', { cartValue: cartValue });\n });\n $('body').on('search:suggestion', function (e, data) {\n customAnalyticsEvent('search', 'search started', data.eventLabel, { searchAutocompleteCategory: data.searchCategory,\n searchAutocompleteValue: data.suggestResult,\n searchInput: data.queryData });\n });\n $('body').on('product:afterMinicartLoads', function () {\n var cartValue = $(this).find('span.sub-total').text();\n if (cartValue) {\n cartValue = cartValue.replace('$', '');\n }\n customAnalyticsEvent('minicart', 'minicart viewed', '', { cartValue: cartValue });\n });\n $('body').on('click', '.mobile-store-container .change-store', function () {\n customAnalyticsEvent('navigation menu', 'navigation link clicked', 'store search');\n });\n $('body').on('click', '.wishlist-and-trade-value', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'trade value', { productSKU: productSku });\n });\n $(document).on('click', '.verify-sdd-address-pdp', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'same day delivery', { productSKU: productSku });\n });\n $('body').on('product:verifyAddressViewed', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent(productSku ? 'pdp' : 'cart', 'modal viewed', 'same day delivery', { productSKU: productSku });\n });\n $('body').on('product:verifyAddressInvalid', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'modal form errored', 'same day delivery', { productSKU: productSku });\n });\n $('body').on('product:verifyAddressSubmitted', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'modal form submitted', 'same day delivery', { productSKU: productSku });\n });\n $(document).on('sdd:closeAddressModal', '#SDDStoreVerifyModal', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent(productSku ? 'pdp' : 'cart', 'modal closed', 'same day delivery', { productSKU: productSku });\n });\n $(document).on('click', 'li.product-thumbnail-carousel-item', function (e) {\n if (e.originalEvent) {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n var position = $(this).index() + 1;\n customAnalyticsEvent('pdp', 'thumbnail clicked', 'image:' + position, { productSKU: productSku });\n }\n });\n $(document).on('change product:warrantyOptionUpdate', '#primary-details-row .warranty-option', function () {\n var check = $(this).prop('checked');\n var warranty = $(this).attr('data-display-value');\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', check ? 'warranty added' : 'warranty removed', warranty, { productSKU: productSku });\n });\n $('#product-detail-redesign .selected-store-details .store-unavailable-message, #product-detail-redesign .selected-store-details .store-address-and-link').on('click', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'store search', { productSKU: productSku });\n });\n $('body').on('minicart:afterProductDelete', function (e, obj) {\n var qty = obj.qty;\n var isPurProductGTM = $('#isPURProductItem').val();\n var warrantyData = obj && obj.miniCartWarrantyObj;\n if (qty || isPurProductGTM === 'true') {\n var gtmData = obj.miniCartGTMData;\n removeFromMiniCart(gtmData, qty, warrantyData, obj.miniCartSubTotal, 'minicart');\n }\n });\n $('body').on('click', '.nav-link.faq-redesign', function () {\n customAnalyticsEvent('navigation menu', 'navigation link clicked', 'Help');\n });\n $(document).on('click', '.product-accordion-button', function (e) {\n if (e.originalEvent) {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n var action = $(this).attr('aria-expanded');\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', action === 'true' ? 'expanded section' : 'collapsed section', eventLabel, { productSKU: productSku });\n }\n });\n $('body').on('giftCard:expandableInformation', function (e, data) {\n if (data) {\n customAnalyticsEvent('pdp', data.eventAction, data.eventLabel, { productSKU: data.productSKU });\n }\n });\n $(document).on('click', '.product-info-row .js-button-readmore', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'expanded section', 'product description', { productSKU: productSku });\n });\n $(document).on('click', '.product-info-row .js-button-readless', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'collapsed section', 'product description', { productSKU: productSku });\n });\n $(document).on('click', '.promotions-redesign .btn-show-more-promotions', function () {\n var eventValue = $(this).text();\n eventValue = eventValue ? eventValue.replace(/\\D/g, '') : '';\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'view promotions', { productSKU: productSku }, { eventValue: eventValue });\n });\n $(document).on('click', '.promotions-redesign .btn-show-less-promotions', function () {\n var eventLabel = $(this).text();\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', eventLabel, { productSKU: productSku });\n });\n $(document).on('click', '.product-options-container .product-option-details, #pdp-open-flexpay-modal', function () {\n var eventLabel = $(this).attr('data-tracking-label');\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'learn more - ' + eventLabel, { productSKU: productSku });\n });\n $(document).on('click', '.product-additional-messages .product-custom-messages', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('pdp', 'link clicked', 'learn more - pre-owned guarantee', { productSKU: productSku });\n });\n $('body').on('pdp:storeSearchViewed', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n if (productSku) {\n customAnalyticsEvent('pdp', 'modal viewed', 'store search', { productSKU: productSku });\n }\n });\n $(document).on('click submit', '.btn-outline-primary.select-store', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent(productSku ? 'pdp' : 'cart', 'modal button clicked', eventLabel, { productSKU: productSku });\n });\n $('body').on('pdp:inStoreInventoryModalClose', function () {\n var productSku = $('#product-detail-redesign').attr('data-pid');\n if (productSku) {\n customAnalyticsEvent('pdp', 'modal closed', 'store search', { productSKU: productSku });\n }\n });\n $('body').on('product:trackVariantChange', function (e, data) {\n if (data && data.action) {\n customAnalyticsEvent('pdp', 'variant selected', data.action + ' - ' + data.label, { productSKU: data.productSKU });\n }\n });\n $('body').on('giftCard:trackVariantChange', function (e, data) {\n if (data) {\n customAnalyticsEvent('pdp', 'variant selected', data.action + ' - ' + data.label, { productSKU: data.productSKU });\n }\n });\n $(document).on('click', '#product-questions-accordion .show-all-link, .view-all-answers-link, #product-reviews-accordion .show-all-link', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('pdp', 'link clicked', eventLabel, { productSKU: productSku });\n });\n $(document).on('click', '#product-questions-accordion .ask-question-link, #product-reviews-accordion .write-review-link', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('pdp', 'button clicked', eventLabel, { productSKU: productSku });\n });\n $('body').on('pdp:questionAnswers', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'form submitted', data.label, { productSKU: data.pid });\n }\n });\n $('body').on('pdp:askQuestionClose', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'form closed', 'Ask a Question', { productSKU: data.pid });\n }\n });\n $('body').on('pdp:answerTheQuestion', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'form closed', 'answer the question', { productSKU: data.pid });\n }\n });\n $('body').on('pdp:writeReview', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'modal form submitted', 'Write a Review', { productSKU: data.pid });\n }\n });\n $('body').on('pdp:writeReviewExit', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'modal form closed', 'Write a Review', { productSKU: data.pid });\n }\n });\n $('body').on('pdp:reviewsSort', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'reviews sorted', data.selectedText, { productSKU: data.pid });\n }\n });\n $('body').on('pdp:reviewsFilter', function (e, data) {\n if (data && data.pid) {\n customAnalyticsEvent('pdp', 'reviews filtered', data.filterText, { productSKU: data.pid });\n }\n });\n $('body').on('pdp:qaReviewInteraction', function (e, data) {\n customAnalyticsEvent('pdp', data.eventAction, data.label, { productSKU: data.pid });\n });\n $('body').on('product:afterAttributeSelect', function (e, response) {\n if (response && response.data && response.data.gtmDetail && response.container && !response.container.hasClass('product-tile')) {\n var sku = response.data.gtmDetail.id;\n var eventSent = false;\n dataLayer.forEach(function (el) {\n if (el.event === 'analyticsEvent' && el.eventAction === 'product detail viewed' && el.eventCategory === 'ecommerce' && el.ecommerce.detail.products[0]) {\n eventSent = el.ecommerce.detail.products[0].id === sku;\n }\n });\n var customObj = {\n reviewsRating: $('#ratings-summary .bv_avgRating_component_container').text() || '0',\n reviewsNumber: $('#ratings-summary .bv_numReviews_text').text().replace(/[()]/g, '') || '0',\n id: response.data.gtmDetail.id\n };\n var customDimension = populateProductCustomDimension(customObj, response.experienceType);\n if (!eventSent) {\n var productObj = response.data.gtmDetail;\n productObj.quantity = response.data.gtmDetail.quantity;\n var productViewedObj = {\n ecommerce: {\n detail: {\n products: [productObj]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product detail viewed',\n eventLabel: response.data.gtmProductAvailability,\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(response.data.gtmDetail)\n };\n dataLayer.push(productViewedObj);\n }\n }\n });\n $('body').on('product:afterAddToCartDetails', function (e, response) {\n var productData;\n var data = response.data;\n // Check warranty selection. If selected trigger analytics event for added warranty\n var warrantySelected = [];\n var warrantyInfo;\n\n $('.product-option input:checked').each(function () {\n warrantySelected.push($(this));\n });\n\n // populate warranty related info if warranty is added\n if (warrantySelected && warrantySelected.length > 0 && data.gtmDetail && data.gtmDetail.dimension18) {\n warrantyInfo = {\n brand: '',\n quantity: 1,\n variant: '',\n dimension13: '',\n dimension14: '',\n dimension15: '',\n dimension16: '',\n dimension17: '',\n dimension19: data.gtmDetail.id\n };\n\n var productId = data.gtmDetail.id;\n\n for (var i = data.cart.items.length - 1; i >= 0; i--) {\n var item = data.cart.items[i];\n if (item.id === productId) {\n for (var j = 0; j < item.options.length; j++) {\n var warranty = item.options[j];\n var id = warranty.selectedValueId;\n for (var k = 0; k < warrantySelected.length; k++) {\n if (id === warrantySelected[k].attr('data-value-id')) {\n warrantyInfo.id = id;\n warrantyInfo.category = warranty.optionId;\n warrantyInfo.name = warranty.selectedValueDisplayName;\n }\n }\n }\n // set warranty price\n if (item.productProtection && item.productProtection.selectedProtection && item.productProtection.selectedProtection.price) {\n var warrentyPrice = item.productProtection.selectedProtection.price;\n warrantyInfo.price = warrentyPrice.replace('$', '');\n }\n break;\n }\n }\n }\n\n productData = [data.gtmDetail];\n if (warrantyInfo) {\n productData.push(warrantyInfo);\n }\n\n var customDimension;\n if ($('.pur-landing-page').length || $('#container-pur-redesign').length) {\n var customerGroups = getCookie($('#customerGroupCookie').val());\n var memberTier = customerGroups.includes('PUR-Player') ? 'Player' : 'Non Member';\n var customObj = {\n memberTier: memberTier,\n id: data.gtmDetail ? data.gtmDetail.id : ''\n };\n customDimension = populateProductCustomDimension(customObj);\n } else {\n customDimension = populateProductCustomDimension(data.gtmDetail);\n }\n var productAddedObj = {\n ecommerce: {\n add: {\n products: productData\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product added',\n eventLabel: response.label,\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(data.gtmDetail)\n };\n\n if (data && productData[0]) {\n dataLayer.push(productAddedObj);\n }\n });\n $('body').on('giftCard:afterAddToCartAnalytics', function (e, response) {\n if (response.gtmDetail) {\n var customDimension = populateProductCustomDimension(response.gtmDetail);\n var productAddedObj = {\n ecommerce: {\n add: {\n products: [response.gtmDetail]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product added',\n eventLabel: response.label,\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(response.gtmDetail)\n };\n dataLayer.push(productAddedObj);\n }\n });\n $('body').on('product:warrantyATCEvent', function (e, response) {\n if (response.warrantyData) {\n var customDimension = populateProductCustomDimension(response.warrantyData);\n var productAddedObj = {\n ecommerce: {\n add: {\n products: [response.warrantyData]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product added',\n eventLabel: response.label,\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(response.warrantyData)\n };\n dataLayer.push(productAddedObj);\n }\n });\n $(document).on('recommendation:datalayer', function (e, data) {\n var productInfoArray = [];\n var $container = data.caro;\n var googleURLParams = data.googleURLParams;\n var source = googleURLParams.source;\n var zonePlacement = googleAIRecommendationSource(source);\n var componentType = $container.closest('.google-recommendation').attr('data-component-name') || '';\n $container.find('.pdp-link').each(function () {\n var productData = $.parseJSON($(this).attr('data-gtmdetail'));\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n productData.list = zonePlacement.listImpression;\n productData.position = position;\n productInfoArray.push(productData);\n });\n var searchQueryData = {};\n if (source === 'PLP' || source === 'SEARCH') {\n var isCategorySearch = $('#isCategorySearch');\n var isCategorySearchResult = isCategorySearch.val() === 'true' && isCategorySearch.attr('data-is-search-param') === 'false';\n searchQueryData = {\n queryData: '',\n suggestResult: '',\n eventLabel: '',\n experienceType: ''\n };\n\n if (!isCategorySearchResult) {\n if (sessionStorage.getItem('searchQueryData')) {\n searchQueryData = JSON.parse(sessionStorage.getItem('searchQueryData'));\n }\n }\n }\n var dataObj = {\n id: $('#product-detail-redesign') && $('#product-detail-redesign').attr('data-pid'),\n componentType: componentType,\n searchInput: searchQueryData.queryData,\n searchAutocompleteValue: searchQueryData.suggestResult,\n experienceType: searchQueryData.experienceType\n };\n var customDimension = populateProductCustomDimension(dataObj);\n dataLayer.push({\n eventCategory: 'ecommerce',\n eventAction: 'product list viewed',\n eventLabel: 'recs',\n ecommerce: {\n impressions: productInfoArray\n },\n event: 'analyticsEvent',\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(dataObj)\n });\n });\n $(document).on('pdp:listingViewed', function () {\n var productInfoArray = [];\n var container = $(this).find('.recently-viewed-carousel');\n container.find('.pdp-link').each(function () {\n var productData = $.parseJSON($(this).attr('data-gtmdetail'));\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n productData.list = 'pdp:recently_viewed';\n productData.position = position;\n productInfoArray.push(productData);\n });\n var data = {\n id: $('#product-detail-redesign') && $('#product-detail-redesign').attr('data-pid'),\n componentType: ''\n };\n var customDimension = populateProductCustomDimension(data);\n dataLayer.push({\n eventCategory: 'ecommerce',\n eventAction: 'product list viewed',\n eventLabel: 'recs',\n ecommerce: {\n impressions: productInfoArray\n },\n event: 'analyticsEvent',\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(data)\n });\n });\n $(document).on('click', '.google-recommendation .recommended-products-caro-redesign .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var source = $(this).closest('.google-recommendation').data('source');\n var zonePlacement = googleAIRecommendationSource(source);\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdetail'));\n productData.position = position || 1;\n productData.list = zonePlacement.listImpression;\n var customDimension = '';\n if (source === 'PLP' || source === 'SEARCH') {\n var isCategorySearch = $('#isCategorySearch');\n var isCategorySearchResult = isCategorySearch.val() === 'true' && isCategorySearch.attr('data-is-search-param') === 'false';\n customDimension = {\n queryData: '',\n suggestResult: '',\n eventLabel: '',\n experienceType: ''\n };\n\n if (!isCategorySearchResult) {\n customDimension = JSON.parse(sessionStorage.getItem('searchQueryData'));\n }\n }\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClicked(productData, zonePlacement.listImpression, 'recs', 'product clicked', customDimension);\n }\n });\n $(document).on('click', '#recentlyViewed .recently-viewed-carousel .product-tile', function () {\n var position = $(this).closest('.product.grid-tile').data('slick-index') + 1;\n var productData = $.parseJSON($(this).closest('.product').find('.pdp-link').attr('data-gtmdetail'));\n productData.position = position || 1;\n productData.list = 'pdp:recently_viewed';\n if ($(this).closest('.product').find('.pdp-link').length) {\n productClicked(productData, 'pdp:recently_viewed', 'recs', 'product clicked');\n }\n });\n $('body').on('promotion:promotionalClicked', function (e, data) {\n if (data.promoPosition) {\n var customDimension = populateProductCustomDimension(data);\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'promotion clicked',\n eventLabel: data.heading,\n ecommerce: {\n promoClick: {\n promotions: [{\n id: data.campaignID,\n name: data.campaignName,\n creative: data.heading,\n position: data.promoPosition\n }]\n }\n },\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(data)\n });\n }\n });\n $('body').on('promotion:bannerPromotionClicked', function (e, data) {\n var customDimension = populateProductCustomDimension(data);\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'promotion clicked',\n eventLabel: data.heading,\n ecommerce: {\n promoClick: {\n promotions: [{\n id: data.id || data.campaignID,\n name: data.productName || data.campaignName,\n creative: data.heading,\n position: data.promoPosition\n }]\n }\n },\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(data)\n });\n });\n $('body').on('pdp:giftCard:afterPageLoad', function (e, data) {\n var customDimension = populateProductCustomDimension(data.gtmDetail);\n var productObj = data.gtmDetail;\n productObj.quantity = data.quantity;\n dataLayer.push({\n ecommerce: {\n detail: {\n products: [productObj]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product detail viewed',\n eventLabel: data.gtmProductAvailability,\n customDimensions: customDimension,\n customMetrics: populateProductCustomMetrics(data.gtmDetail)\n });\n });\n $(document).on('click', '.order-confirmation-continue-shopping', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order confirmation', 'link clicked', eventLabel);\n });\n $(document).on('click', '.confirm-details .account-dashboard-link', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order confirmation', 'button clicked', eventLabel);\n });\n $(document).on('click', '.order-confirmation-pur-banner .player-atc-button.create-account-redirect', function () {\n customAnalyticsEvent('order confirmation', 'sign up started', 'player power up rewards');\n });\n $('body').on('confirmation:signUp', function () {\n customAnalyticsEvent('order confirmation', 'sign up completed', 'player power up rewards');\n });\n $(document).on('click', '.order-confirmation-pur-banner .upgrade-banner .upgrade-button', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order confirmation', 'button clicked', 'pro ' + eventLabel);\n });\n $(document).on('click', '.order-confirmation-pur-banner .upgrade-banner .pur-pro-membership', function () {\n customAnalyticsEvent('order confirmation', 'modal viewed', 'power up rewards pro benefits');\n });\n $(document).on('click', '.modal-body.redesign .continue-shopping, .modal-body.redesign .view-cart-button', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order confirmation', 'modal link clicked', eventLabel);\n });\n $('body').on('shipping:cartDetails', function (e, data) {\n customAnalyticsEvent('checkout', data.eventAction, data.eventLabel, { cartValue: data.cartValue && data.cartValue.replace(/\\s+/g, '') });\n });\n $('body').on('checkout:placeOrder', function (e, data) {\n customAnalyticsEvent('checkout', 'button clicked', data.eventLabel.replace(/\\s+/g, ' ').trim(), { cartValue: data.cartValue && data.cartValue.replace(/\\s+/g, '') });\n });\n $('body').on('checkout:shippingFormCustomAnalytics', function (e, data) {\n var gtmDetail = $('#checkout-main').data('gtmdetail');\n if (!gtmDetail) {\n return;\n }\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'checkout step completed',\n eventLabel: data.eventLabel,\n ecommerce: {\n checkout: {\n actionField: {\n step: 3,\n option: data.option\n },\n products: gtmDetail.product\n }\n },\n customDimensions: populateProductCustomDimension(gtmDetail.customDimensions),\n customMetrics: populateProductCustomMetrics(gtmDetail.customDimensions)\n });\n });\n $('body').on('checkout:updateShippingOptionAnalytics', function (e, data) {\n var gtmDetail = $('#checkout-main').data('gtmdetail');\n if (!gtmDetail) {\n return;\n }\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'checkout option selected',\n eventLabel: data.eventLabel,\n ecommerce: {\n checkout_option: {\n actionField: {\n step: 3,\n option: data.option\n }\n }\n },\n customDimensions: populateProductCustomDimension(gtmDetail.customDimensions),\n customMetrics: populateProductCustomMetrics(gtmDetail.customDimensions)\n });\n });\n $('body').on('checkout:checkoutPaymentOptionAnalytics', function (e, data) {\n var gtmDetail = $('#checkout-main').data('gtmdetail');\n if (!gtmDetail) {\n return;\n }\n var ecommerce;\n var eventAction;\n if (data.ecomAction === 'checkout_option') {\n eventAction = 'checkout option selected';\n ecommerce = {\n checkout_option: {\n actionField: {\n step: 4,\n option: data.option\n }\n }\n };\n } else if (data.ecomAction === 'checkout') {\n eventAction = 'checkout step completed';\n ecommerce = {\n checkout: {\n actionField: {\n step: 4,\n option: data.option\n },\n products: gtmDetail.product\n }\n };\n }\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: eventAction,\n eventLabel: 'payment',\n ecommerce: ecommerce,\n customDimensions: populateProductCustomDimension({ miniCartSubTotal: data.cartValue && data.cartValue.replace(/\\s+/g, '') }),\n customMetrics: populateProductCustomMetrics(gtmDetail.product)\n });\n });\n $('body').on('checkout:sddAnalytics', function (e, data) {\n customAnalyticsEvent('checkout', data.eventAction, data.eventLabel, { cartValue: data.cartValue });\n });\n $('body').on('checkout:editShippingDetailsAnalytics', function (e, data) {\n customAnalyticsEvent('checkout', data.eventAction, data.eventLabel, { cartValue: data.cartValue });\n });\n $('body').on('checkout:editPaymentDetailsAnalytics', function (e, data) {\n customAnalyticsEvent('checkout', 'option selected', 'payment', { cartValue: data.cartValue, paymentMethod: data.paymentMethod });\n });\n $('body').on('checkout:editBillingAddressDetails', function (e, data) {\n customAnalyticsEvent('checkout', data.eventAction, data.eventLabel, { cartValue: data.cartValue });\n });\n $('body').on('pdp:oosNotifyMeEmail', function (e, data) {\n customAnalyticsEvent('email', data.eventAction, data.eventLabel, { productSKU: data.productSKU });\n });\n $(document).on('keyup', '.oos-notify-form input[name$=\"_email\"]', function () {\n var productSku = $(this).parents('#product-detail-redesign').attr('data-pid');\n customAnalyticsEvent('email', 'start', 'oos notify me', { productSKU: productSku });\n $(document).off('keyup', '.oos-notify-form input[name$=\"_email\"]');\n });\n $('body').on('hamburgerMenu:close', function () {\n customAnalyticsEvent('navigation menu', 'menu closed', 'shop');\n });\n $(document).on('cart:updateProductWarrantyAnalytics', function (e, obj) {\n if (obj.warrantyInfo && obj.warrantyPrice) {\n var warrantyInfo = obj.warrantyInfo;\n var ecommerce;\n var warrantyData = {\n id: warrantyInfo.sku,\n name: warrantyInfo.name,\n price: obj.warrantyPrice && obj.warrantyPrice.replace('$', ''),\n quantity: 1,\n variant: '',\n brand: '',\n category: '',\n dimension13: '',\n dimension14: '',\n dimension15: '',\n dimension16: '',\n dimension17: '',\n dimension19: obj.dimension19\n };\n if (obj.eventAction === 'product added') {\n ecommerce = {\n add: {\n products: warrantyData\n }\n };\n } else {\n ecommerce = {\n remove: {\n products: warrantyData\n }\n };\n }\n dataLayer.push({\n ecommerce: ecommerce,\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: obj.eventAction,\n eventLabel: 'cart - warranty',\n customDimensions: populateProductCustomDimension({}),\n customMetrics: populateProductCustomMetrics(obj.warrantyInfo)\n });\n }\n });\n $('body').on('cart:afterUpdateQuantity', function (e, obj) {\n if (obj.data && obj.data.gtmDetail) {\n var qty = obj.qty;\n var gtmDetail = obj.data.gtmDetail;\n var warrantyInfo = obj.warrantyInfo;\n var productData;\n var ecommerce;\n var $subtotalAfterDiscount = $('.cart-order-summary .subtotal-after-discount');\n var cartValue = $subtotalAfterDiscount.length ? $subtotalAfterDiscount.text() : $('.cart-order-summary .cart-subtotal').text();\n if (cartValue) cartValue = cartValue.replace(/\\s+/g, '');\n if (qty && qty.oldQuantity !== qty.newQuantity) {\n var eventAction;\n var quantity;\n if (qty.oldQuantity > qty.newQuantity) {\n eventAction = 'product removed';\n quantity = qty.oldQuantity - qty.newQuantity;\n } else {\n eventAction = 'product added';\n quantity = qty.newQuantity - qty.oldQuantity;\n }\n gtmDetail.quantity = quantity;\n if (warrantyInfo) {\n gtmDetail.dimension18 = warrantyInfo.id;\n productData = [gtmDetail];\n warrantyInfo.quantity = quantity;\n productData.push(warrantyInfo);\n } else {\n productData = [gtmDetail];\n }\n if (eventAction === 'product added') {\n ecommerce = {\n add: {\n products: productData\n }\n };\n } else {\n ecommerce = {\n remove: {\n products: productData\n }\n };\n }\n dataLayer.push({\n ecommerce: ecommerce,\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: eventAction,\n eventLabel: 'cart - change quantity',\n customDimensions: populateProductCustomDimension({ miniCartSubTotal: cartValue && cartValue.replace('$', '') }),\n customMetrics: populateProductCustomMetrics(gtmDetail)\n });\n }\n }\n });\n $('body').on('cart:removeFromCartAnalytics', function (e, obj) {\n var uuid = obj.uuid;\n var $subtotalAfterDiscount = $('.cart-order-summary .subtotal-after-discount');\n var cartValue = $subtotalAfterDiscount.length ? $subtotalAfterDiscount.text() : $('.cart-order-summary .cart-subtotal').text();\n if (cartValue) cartValue = cartValue.replace(/\\s+/g, '');\n var qty = $('.quantity[data-uuid=\"' + uuid + '\"]').val();\n var isPurProductGTM = $('#isPURProductItem').val();\n var warrantyData = obj && obj.warrantyData;\n if (qty || isPurProductGTM === 'true' || $('#purBonusProduct').length) {\n var gtmDetail = $('.remove-product.remove-btn[data-uuid=\"' + uuid + '\"]').data('gtmdetail');\n removeFromMiniCart(gtmDetail, qty || '1', warrantyData, cartValue && cartValue.replace('$', ''), 'cart - change quantity');\n }\n });\n $('body').on('cart:verifyAddressInvalid', function () {\n customAnalyticsEvent('cart', 'modal form errored', 'same day delivery');\n });\n $('body').on('cart:verifyAddressSubmitted', function () {\n customAnalyticsEvent('cart', 'modal form submitted', 'same day delivery');\n });\n $('body').on('cart:storeSearchViewed', function () {\n customAnalyticsEvent('cart', 'modal viewed', 'store search');\n });\n $('body').on('cart:inStoreInventoryModalClose', function () {\n customAnalyticsEvent('cart', 'modal closed', 'store search');\n });\n $(document).on('click', '.phone-number-container .help-phone-number', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('cart', 'phone number clicked', eventLabel);\n });\n $('.checkout-and-applepay .checkout-btn').on('click', function () {\n customAnalyticsEvent('cart', 'button clicked', 'proceed to checkout');\n });\n $(document).on('cart-paypal-checkout:start', function () {\n customAnalyticsEvent('cart', 'button clicked', 'proceed to paypal');\n });\n $(document).on('cart-promo-applied:error', function (e, code) {\n customAnalyticsEvent('cart', 'promo code errored', code);\n });\n $(document).on('cart-promo-applied:success', function (e, code) {\n customAnalyticsEvent('cart', 'promo code applied', code);\n });\n $(document).on('change', '.delivery-options-pid .delivery-option', function () {\n var deliveryOption = $(this).val();\n var selectedDeliveryOption;\n var gtmDetail = $(this).parents('.card.product-info').find('.remove-btn.remove-product.remove-line-hyperlink').data('gtmdetail');\n if (deliveryOption === 'home') {\n selectedDeliveryOption = 'Deliver To Home';\n } else if (deliveryOption === 'store') {\n var $storeTitle = $('.can-pickup.vertical .font-bold .pickup-label');\n var $availableTitle = $('.can-pickup.vertical .font-bold .available-tomorrow');\n $availableTitle = $availableTitle.length ? $availableTitle.text().replace(/\\s+/g, ' ').trim() : $('.can-pickup.vertical .font-bold .available-today').text().replace(/\\s+/g, ' ').trim();\n selectedDeliveryOption = $storeTitle.length ? $storeTitle.text().replace(/\\s+/g, ' ').trim() + ' ' + $availableTitle : '';\n } else if (deliveryOption === 'sdd') {\n var $sddTitle = $('.delivery-options-card .same-day-title');\n selectedDeliveryOption = $sddTitle.length ? $sddTitle.text().replace(/\\s+/g, ' ').trim() : '';\n }\n if (selectedDeliveryOption && gtmDetail) {\n dataLayer.push({\n ecommerce: {\n checkout: {\n actionField: {\n step: 1,\n option: selectedDeliveryOption\n },\n products: [gtmDetail]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'cart option selected',\n eventLabel: 'shipping',\n customDimensions: populateProductCustomDimension(gtmDetail),\n customMetrics: populateProductCustomMetrics(gtmDetail)\n });\n }\n });\n $(document).on('click', '.pro-upsell-container .join-btn.js-pur-upgrade', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('cart', 'button clicked', eventLabel);\n });\n $(document).on('click', '.protect-your-purchase-container .product-protection-modal', function () {\n customAnalyticsEvent('cart', 'link clicked', 'product replacement plan - learn more');\n });\n $('body').on('cart:saveForLaterOrMoveToCart', function (e, data) {\n customAnalyticsEvent('ecommerce', data.eventAction, 'cart - save for later', { productSKU: data.productSKU });\n });\n $('.search-results').on('click', '.refinement-bar a', function () {\n var filterValue = $(this).find('label').text();\n var filterType = $(this).parents('.card-body').siblings('.card-header').text();\n var $breadcrumbs = $('.redesign-breadcrumbs').find('li.breadcrumb-item:not(:first-child)');\n var eventLabel = '';\n $breadcrumbs.each(function (index) {\n eventLabel += $.trim($(this).find('a').text().split('\\n')\n .join(' '));\n if (index !== $breadcrumbs.length - 1) {\n eventLabel += '/';\n }\n });\n if (!filterValue) {\n filterValue = $(this).find('span').text();\n var filterVal = $(this).parents('.card-body').siblings('.card-header').find('span');\n if (filterVal.length) {\n filterType = filterVal.text();\n }\n }\n var customerRating = $(this).find('.grey-stars.star-img').attr('data-no-of-stars');\n var searchQueryData = {\n queryData: '',\n suggestResult: '',\n eventLabel: '',\n experienceType: ''\n };\n var isCategorySearch = $('#isCategorySearch');\n var isCategorySearchResult = isCategorySearch.val() === 'true' && isCategorySearch.attr('data-is-search-param') === 'false';\n\n if (!isCategorySearchResult) {\n if (sessionStorage.getItem('searchQueryData')) {\n searchQueryData = JSON.parse(sessionStorage.getItem('searchQueryData'));\n }\n }\n if (filterValue) {\n customAnalyticsEvent(isCategorySearchResult ? 'browse' : 'search', 'product list filtered', eventLabel, { filterType: $.trim(filterType), filterValue: customerRating ? customerRating + $.trim(filterValue) : $.trim(filterValue), searchInput: searchQueryData.queryData, searchAutocompleteValue: searchQueryData.suggestResult, experienceType: searchQueryData.experienceType });\n }\n });\n $('body').on('search:sortProductListEvent', function (e, data) {\n var $breadcrumbs = $('.redesign-breadcrumbs').find('li.breadcrumb-item:not(:first-child)');\n var eventLabel = '';\n $breadcrumbs.each(function (index) {\n eventLabel += $.trim($(this).find('a').text().split('\\n')\n .join(' '));\n if (index !== $breadcrumbs.length - 1) {\n eventLabel += '/';\n }\n });\n var searchQueryData = {\n queryData: '',\n suggestResult: '',\n eventLabel: '',\n experienceType: ''\n };\n var isCategorySearch = $('#isCategorySearch');\n var isCategorySearchResult = isCategorySearch.val() === 'true' && isCategorySearch.attr('data-is-search-param') === 'false';\n\n if (!isCategorySearchResult) {\n if (sessionStorage.getItem('searchQueryData')) {\n searchQueryData = JSON.parse(sessionStorage.getItem('searchQueryData'));\n }\n }\n customAnalyticsEvent(isCategorySearchResult ? 'browse' : 'search', 'product list sorted', eventLabel, { filterType: data.filterType, filterValue: $.trim(data.filterValue), searchInput: searchQueryData.queryData, searchAutocompleteValue: searchQueryData.suggestResult, experienceType: searchQueryData.experienceType });\n });\n $('body').on('search:onLoadOfSearchResultsEvent', function (e, data) {\n customAnalyticsEvent('search', data.eventAction, data.searchQueryData.eventLabel, { searchInput: data.searchQueryData.queryData, searchAutocompleteValue: data.searchQueryData.suggestResult, experienceType: data.searchQueryData.experienceType });\n });\n $(document).on('click', '.product-grid-wrapper ', function () {\n var position = $(this).closest('.product-grid-tile-wrapper').data('position');\n var $productDetail = $(this).closest('.product-tile-link');\n var isCategorySearch = $('#isCategorySearch');\n var isCategorySearchResult = isCategorySearch.val() === 'true' && isCategorySearch.attr('data-is-search-param') === 'false';\n var listAndEventLabel = isCategorySearchResult === true ? 'browse' : 'search';\n var searchQueryData = {\n queryData: '',\n suggestResult: '',\n eventLabel: '',\n experienceType: ''\n };\n\n if (!isCategorySearchResult) {\n if (sessionStorage.getItem('searchQueryData')) {\n searchQueryData = JSON.parse(sessionStorage.getItem('searchQueryData'));\n }\n }\n if ($productDetail.length) {\n var productData = $.parseJSON($productDetail.attr('data-gtmdetail'));\n productData.position = position || 1;\n productData.list = listAndEventLabel;\n productClicked(productData, listAndEventLabel, listAndEventLabel, 'product clicked', searchQueryData);\n }\n });\n $('body').on('trade:onLoadOfSearchResultsEvent', function (e, data) {\n customAnalyticsEvent('trade', 'trade in searched', '', { searchInput: data.searchInput });\n });\n $(document).on('click', '.trade-product-details .primary-details .print-trade, .trade-product-details .primary-details .find-store-analytics', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n var $productDetail = $(this).parents('.trade-product-details');\n customAnalyticsEvent('trade', 'link clicked', eventLabel, { productSKU: $productDetail.length ? $.parseJSON($productDetail.attr('data-gtmdata')).productInfo.sku : '' });\n });\n $(document).on('click', '.trade-grid-container .product .quickview', function () {\n var position = $(this).closest('.product-grid-tile-wrapper').data('position');\n var $productDetail = $(this).closest('.product').find('.pdp-link');\n if ($productDetail.length) {\n var productData = $.parseJSON($productDetail.attr('data-gtmdetail'));\n productData.position = position || 1;\n productData.list = 'trade quickview';\n var urlParameters = new URLSearchParams(window.location.search);\n productClicked(productData, 'trade quickview', 'trade quickview', 'trade product clicked', { queryData: urlParameters.get('q') });\n }\n });\n $(document).on('click', '.trade-grid-container .product .tile-body .pdp-link, .trade-grid-container .product .trade-image-analytics', function () {\n var position = $(this).closest('.product-grid-tile-wrapper').data('position');\n var $productDetail = $(this).closest('.product').find('.pdp-link');\n if ($productDetail.length) {\n var productData = $.parseJSON($productDetail.attr('data-gtmdetail'));\n productData.position = position || 1;\n productData.list = 'trade';\n var urlParameters = new URLSearchParams(window.location.search);\n productClicked(productData, 'trade', 'trade', 'trade product clicked', { queryData: urlParameters.get('q') });\n }\n });\n $(document).on('click', '#trade .cta-container', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('trade', 'button clicked', eventLabel);\n\n if (isAppSession === 'true' && eventLabel.toLowerCase() === 'find a store') {\n var json = {\n event: 'find_store'\n };\n postMessageToRN(JSON.stringify(json));\n }\n });\n $('body').on('trade:onTradeInPdpPageLoad', function (e, data) {\n var productObj = data.gtmDetail && JSON.parse(data.gtmDetail);\n if (productObj) {\n productObj.quantity = 1;\n var productViewedObj = {\n ecommerce: {\n detail: {\n products: [productObj]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'trade detail viewed',\n eventLabel: 'pdp',\n customDimensions: populateProductCustomDimension(productObj),\n customMetrics: populateProductCustomMetrics(productObj)\n };\n dataLayer.push(productViewedObj);\n }\n });\n $(document).on('change', '.trade-product-details input[name=\"trade-value-condition\"], .trade-quickview input[name=\"trade-value-condition\"]', function () {\n var eventLabel = $(this).siblings('.custom-control-label').text();\n var $productDetail = $(this).parents('.trade-product-details');\n var searchInput;\n if (!$productDetail.length) {\n $productDetail = $(this).parents('.trade-quickview');\n var urlParameters = new URLSearchParams(window.location.search);\n searchInput = urlParameters.get('q');\n }\n customAnalyticsEvent('trade', 'variant selected', 'condition - ' + $.trim(eventLabel), { productSKU: $productDetail.length ? $.parseJSON($productDetail.attr('data-gtmdata')).productInfo.sku : '', searchInput: searchInput });\n });\n $('body').on('trade:quickViewShown', function (e, data) {\n var productObj = data.gtmDetail && JSON.parse(data.gtmDetail);\n if (productObj) {\n productObj.quantity = 1;\n var urlParameters = new URLSearchParams(window.location.search);\n var obj = {\n searchInput: urlParameters.get('q'),\n id: productObj.id\n };\n var productViewedObj = {\n ecommerce: {\n detail: {\n products: [productObj]\n }\n },\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'trade detail viewed',\n eventLabel: 'quickview',\n customDimensions: populateProductCustomDimension(obj),\n customMetrics: populateProductCustomMetrics(obj)\n };\n dataLayer.push(productViewedObj);\n }\n });\n $('body').on('search:experimentationEvent', function (e, data) {\n customAnalyticsEvent('experimentation', 'experiment activated', data.eventLabel, { searchInput: data.searchQueryData.queryData, searchAutocompleteValue: data.searchQueryData.suggestResult, experienceType: data.searchQueryData.experienceType });\n });\n $('body').on('analyticsEvent:login', function (e, data) {\n customAnalyticsEvent('login', data.eventAction, '');\n });\n $('body').on('analyticsEvent:loginError', function (e, data) {\n customAnalyticsEvent('login', 'login errored', data.eventLabel && data.eventLabel.toString());\n });\n $(document).on('click touchstart', '.forgot-password-link-js, .create-account-button .create-account-btn, .not-user-text .logout-link, .create-account-initial .create-account-button, .login-guest-checkout .checkout-as-guest', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('login', 'button clicked', eventLabel);\n });\n $(document).on('click', '.dashboard-nav-link', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('account navigation', 'navigation link clicked', eventLabel);\n });\n $('.order-items-list .track-order-link').on('click', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order details', 'button clicked', eventLabel);\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order details',\n eventAction: 'button clicked',\n eventLabel: eventLabel\n }, 'analyticsEvent');\n }\n });\n $(document).on('click', '.digital-token-summary .instructions-link, .download-instructions-analytics', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order details', 'link clicked', eventLabel);\n if (isAppSession === 'true') {\n dataToReactNative({\n eventAction: 'link clicked',\n eventCategory: 'order details',\n eventLabel: eventLabel\n }, 'analyticsEvent');\n }\n });\n $(document).on('click', '.account-dashboard-container .rewards-banner a', function () {\n promoClicked('account promo', $(this)[0].href, 'account promo', 'redeem points', 1);\n });\n $(document).on('click', '.account-dashboard-container .gameinformer-banner a', function () {\n var $position = $('.account-dashboard-container .rewards-banner');\n $position = $position.length ? 2 : 1;\n promoClicked('account promo', $(this)[0].href, 'account promo', $(this).siblings('.display-3').text().toLowerCase(), $position);\n });\n $(document).on('click', '.account-dashboard-container .customer-care-banner', function () {\n var $position = $('.account-dashboard-container .rewards-banner');\n $position = $position.length ? 3 : 2;\n var creative = $(this).find('.heading').text();\n creative = creative ? creative.replace(/\\s+/g, ' ').trim().toLowerCase() : '';\n promoClicked('account promo', $(this).find('a:first').attr('href'), 'account promo', creative, $position);\n });\n $(document).on('click', '.order-items-list .card #product-image-redirection, .order-items-list .card #product-tile-link-redirection', function () {\n var $productDetail = $(this).parents('.row.product-info-row ').find('#gtmlDetail').val();\n if ($productDetail) {\n var productObject = $.parseJSON($productDetail);\n var price = $(this).parents('.row.product-info-row ').find('.price-col .sale-price').text();\n price = price ? price.replace('$', '').trim() : '';\n if (price) { productObject.price = price; }\n dataLayer.push({\n event: 'analyticsEvent',\n eventCategory: 'ecommerce',\n eventAction: 'product clicked',\n eventLabel: 'order details',\n ecommerce: {\n impressions: [productObject]\n },\n customDimensions: populateProductCustomDimension(productObject),\n customMetrics: populateProductCustomMetrics(productObject)\n });\n\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order details',\n eventAction: 'product clicked',\n eventLabel: 'product image | product link',\n ecommerce: {\n impressions: [productObject]\n },\n customDimensions: populateProductCustomDimension(productObject),\n customMetrics: populateProductCustomMetrics(productObject)\n }, 'analyticsEvent');\n }\n }\n });\n $(document).on('click', '#btn-submit-track-order', function () {\n var eventLabel = $(this).text();\n eventLabel = eventLabel ? eventLabel.replace(/\\s+/g, ' ').trim() : '';\n customAnalyticsEvent('order', 'link clicked', eventLabel);\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order',\n eventAction: 'link clicked',\n eventLabel: eventLabel\n }, 'analyticsEvent');\n }\n });\n $('body').on('orderHistory:errorScenario', function (e, data) {\n customAnalyticsEvent('order history', 'app errored', data.eventLabel);\n if (isAppSession === 'true') {\n dataToReactNative({\n eventCategory: 'order history',\n eventAction: 'error encountered',\n eventLabel: data.eventLabel\n }, 'analyticsEvent');\n }\n });\n $('body').on('profile:editLinkClicked', function (e, data) {\n customAnalyticsEvent('account profile', 'link clicked', data.eventLabel);\n });\n $('body').on('profile:saveButtonClicked', function (e, data) {\n customAnalyticsEvent('account profile', 'button clicked', 'save ' + data.eventLabel);\n });\n $('body').on('password:successfullyChanged', function () {\n customAnalyticsEvent('password', 'password changed', '');\n });\n $(document).on('click', '.address-card-body-wrapper .btn-new-address', function () {\n customAnalyticsEvent('address book', 'button clicked', 'add new address');\n });\n $(document).on('click', '.account-card .addNewCardArea .submit-redesign-btn', function () {\n customAnalyticsEvent('payments', 'button clicked', 'add new payment');\n });\n $(document).on('click', '.card.address-card.fixed-height-address-card a', function () {\n customAnalyticsEvent('address book', 'link clicked', $(this).text().trim());\n });\n $('body').on('addressOrPayment:confirmDeletion', function (e, data) {\n customAnalyticsEvent(data.eventCategory, data.eventAction, '');\n });\n $('body').on('address:saveButtonClicked', function (e, data) {\n customAnalyticsEvent('address book', data.eventAction, '');\n });\n $('body').on('addressBook:suggestedAddressModalClicked', function (e, data) {\n customAnalyticsEvent('address book', data.eventAction, data.eventLabel);\n });\n $('body').on('addressBook:modalViewedOrClosed', function (e, data) {\n customAnalyticsEvent('address book', data.eventAction, 'suggested address');\n });\n $('body').on('accountOrActivateMembership:formSubmitted', function (e, data) {\n customAnalyticsEvent('create account', 'form submitted', data.eventLabel);\n });\n $('body').on('accountOrActivateMembership:success', function (e, data) {\n customAnalyticsEvent('create account', data.eventAction, '');\n });\n $(document).on('click', '.sign-inRedesign .sign-in-link', function () {\n customAnalyticsEvent('create account', 'link clicked', $(this).text().trim());\n });\n $('body').on('login:keepMeSignedIn', function (e, data) {\n customAnalyticsEvent('login', data.eventAction, 'keep me signed in', { persistentSignIn: data.persistentSignIn });\n });\n $('body').on('password:changePasswordSteps', function (e, data) {\n customAnalyticsEvent('password', data.eventAction, data.eventLabel);\n });\n $('body').on('createAccount:radioButtonClick', function (e, data) {\n customAnalyticsEvent('create account', 'option selected', data.eventLabel);\n });\n $(document).on('click', '.store-locator-search-stores-container .storelocator-phone, .store-phone.map-phone .storelocator-phone, .storedetail-phone-analytics', function () {\n var storeId = $(this).parents('.store-details').find('.storeData').attr('data-storeid');\n if (!storeId) storeId = $(this).parents('.store-locator-detail-wrapper').attr('data-store-id');\n var eventLabel = $(this).parents('.store-details').find('h2').text();\n if (!eventLabel) eventLabel = $(this).parents('.store-locator-detail').find('.store-name-container').text();\n customAnalyticsEvent('stores', 'phone number clicked', eventLabel.trim(), { storeId: storeId });\n });\n $(document).on('click', '.store-locator-search-stores-container .my-store-link-analytics, .store-locator-company-info .my-store-link-analytics', function () {\n var storeId = $(this).parents('.store-details').find('.storeData').attr('data-storeid');\n if (!storeId) storeId = $(this).parents('.store-locator-detail-wrapper').attr('data-store-id');\n customAnalyticsEvent('stores', 'button clicked', $(this).text().trim(), { storeId: storeId });\n });\n $(document).on('click', '.store-locator-search-stores-container .store-details-link, .store-locator-search-stores-container .store-directions-link, .store-directions-analytics, .trade-value-analytics', function () {\n var storeId = $(this).parents('.store-details').find('.storeData').attr('data-storeid');\n if (!storeId) storeId = $(this).parents('.store-locator-detail-wrapper').attr('data-store-id');\n customAnalyticsEvent('stores', 'link clicked', $(this).text().trim(), { storeId: storeId });\n });\n $(document).on('click', '.store-locator-search-stores-container .store-name', function () {\n customAnalyticsEvent('stores', 'link clicked', 'store name', { storeId: $(this).parents('.store-details').find('.storeData').attr('data-storeid') });\n });\n $(document).on('click', '.map-canvas .my-store-link-analytics, .map-canvas .store-directions-link', function () {\n customAnalyticsEvent('stores', 'map link clicked', $(this).text().trim(), { storeId: $(this).parents('.store-details').find('.storeData').attr('data-storeid') });\n });\n $(document).on('click', '.map-canvas .store-name .store-map', function () {\n customAnalyticsEvent('stores', 'map link clicked', 'store name', { storeId: $(this).parents('.store-details').find('.storeData').attr('data-storeid') });\n });\n $('body').on('trade:onWizardSelectedFields', function (e, data) {\n var modalName = 'trade-' + ( $('.trade-modal-type').length ? $('.trade-modal-type').val() : '');\n customAnalyticsEvent(modalName, 'variant selected', data.selectorfor + ' - ' + data.selectedValue);\n });\n $('body').on('trade:onWizardSelectedConditionFields', function (e, data) {\n var modalName = 'trade-' + ( $('.trade-modal-type').length ? $('.trade-modal-type').val() : '');\n customAnalyticsEvent(modalName, 'variant selected', 'condition - ' + data.selectedConditionName);\n });\n $('body').on('trade:onWizardEstimationSuccess', function () {\n var modalName = 'trade-' + ( $('.trade-modal-type').length ? $('.trade-modal-type').val() : '');\n customAnalyticsEvent(modalName, 'trade-in estimated', '');\n });\n $('body').on('click', '.trade-email-submit', function () {\n var modalName = 'trade-' + ( $('.trade-modal-type').length ? $('.trade-modal-type').val() : '');\n customAnalyticsEvent(modalName, 'button clicked', $(this).text().trim());\n });\n $('body').on('click', '.another-trade-link ', function () {\n var modalName = 'trade-' + ( $('.trade-modal-type').length ? $('.trade-modal-type').val() : '');\n customAnalyticsEvent(modalName, 'button clicked', $(this).text().trim());\n });\n $(document).on('click', '.giftcard-redemption-container #gift-show', function () {\n var $subtotalAfterDiscount = $('.subtotal-after-discount');\n var cartValue = $subtotalAfterDiscount.length ? $subtotalAfterDiscount.text() : $('.cart-subtotal').text();\n if (cartValue) cartValue = cartValue.replace(/\\s+/g, '');\n customAnalyticsEvent('checkout', 'link clicked', $(this).text().trim(), { cartValue: cartValue ? cartValue.replace('$', '') : '' });\n });\n $(document).on('click', '.sticky-banner-container .btn.join-btn.js-pur-upgrade, .pur-cta-container .btn.join-btn.js-pur-upgrade', function () {\n var customerGroups = getCookie($('#customerGroupCookie').val());\n var memberTier = customerGroups.includes('PUR-Player') ? 'Player' : 'Non Member';\n customAnalyticsEvent('power up rewards', 'button clicked', 'go pro now', { memberTier: memberTier });\n });\n\n\n $('a[href*=\"itunes.apple.com\"]', 'footer').on('click', function () {\n dataLayer.push({\n eventDetails: {\n downloadType: 'app store'\n },\n event: 'Application Downloaded'\n });\n });\n $('a[href*=\"play.google.com\"]', 'footer').on('click', function () {\n dataLayer.push({\n eventDetails: {\n downloadType: 'google play'\n },\n event: 'Application Downloaded'\n });\n });\n $('form.registration').on('register:success', function (e, data) {\n if (!data.gtmSessionData) {\n return;\n }\n dataLayer.push({\n user: {\n userType: data.gtmSessionData.user.userType,\n memberTier: data.gtmSessionData.user.memberTier,\n memberSinceDate: data.gtmSessionData.user.memberSinceDate,\n loyaltyPoints: data.gtmSessionData.user.loyaltyPoints,\n loginStatus: data.gtmSessionData.user.loginStatus,\n custKey: data.gtmSessionData.user.custKey,\n lastOrderDate: data.gtmSessionData.user.lastOrderDate,\n customerStatus: data.gtmSessionData.user.customerStatus\n },\n event: 'User Registered',\n persistentLoginFlag: data.rememberMe\n });\n });\n $('body').on('click', '.my-store-link', function (e) {\n e.preventDefault();\n var storeDetails = $(this).parents('.store-details').find('.storeData');\n var storeID = storeDetails.attr('data-storeID');\n var storeName = storeDetails.attr('data-storeName');\n var storeStateProvince = storeDetails.attr('data-stateProvince');\n var storePostalCode = storeDetails.attr('data-postalCode');\n var storeCity = storeDetails.attr('data-City');\n dataLayer.push({\n storeSearch: {\n selectAction: 'store Select'\n },\n store: {\n storeName: storeName,\n storeID: storeID,\n stateProvince: storeStateProvince,\n postalCode: storePostalCode,\n city: storeCity\n },\n event: 'Store Selected'\n });\n });\n $('form.step-3').on('register:success', function (e, data) {\n if (!data.gtmSessionData) {\n return;\n }\n dataLayer.push({\n user: {\n userType: data.gtmSessionData.user.userType,\n memberTier: data.gtmSessionData.user.memberTier,\n memberSinceDate: data.gtmSessionData.user.memberSinceDate,\n loyaltyPoints: data.gtmSessionData.user.loyaltyPoints,\n loginStatus: data.gtmSessionData.user.loginStatus,\n custKey: data.gtmSessionData.user.custKey,\n lastOrderDate: data.gtmSessionData.user.lastOrderDate,\n customerStatus: data.gtmSessionData.user.customerStatus\n },\n event: 'User Registered',\n persistentLoginFlag: data.rememberMe\n });\n });\n $(document).on('login:success', 'form.login', function (e, data) {\n if (!data.gtmSessionData) {\n return;\n }\n dataLayer.push({\n user: {\n userType: data.gtmSessionData.user.userType,\n memberTier: data.gtmSessionData.user.memberTier,\n memberSinceDate: data.gtmSessionData.user.memberSinceDate,\n loyaltyPoints: data.gtmSessionData.user.loyaltyPoints,\n loginStatus: data.gtmSessionData.user.loginStatus,\n custKey: data.gtmSessionData.user.custKey,\n lastOrderDate: data.gtmSessionData.user.lastOrderDate,\n customerStatus: data.gtmSessionData.user.customerStatus\n },\n event: 'User Signed In',\n persistentLoginFlag: data.rememberMe\n });\n });\n $(document).on('login:initiate', 'form.login', function (e, data) {\n if (!data.gtmSessionData) {\n return;\n }\n dataLayer.push({\n user: {\n userType: data.gtmSessionData.user.userType,\n memberTier: data.gtmSessionData.user.memberTier,\n memberSinceDate: data.gtmSessionData.user.memberSinceDate,\n loyaltyPoints: data.gtmSessionData.user.loyaltyPoints,\n loginStatus: data.gtmSessionData.user.loginStatus,\n custKey: data.gtmSessionData.user.custKey,\n lastOrderDate: data.gtmSessionData.user.lastOrderDate,\n customerStatus: data.gtmSessionData.user.customerStatus\n },\n event: 'User Sign In Initate'\n });\n });\n $('a[data-action=\"logout\"]').on('click', function (e) {\n var el = $(this);\n var gtmSessionData = el.data('gtmdata');\n if (!gtmSessionData) {\n return;\n }\n e.preventDefault();\n var logoutUrl = el.attr('href');\n dataLayer.push({\n user: {\n userType: gtmSessionData.user.userType,\n memberTier: gtmSessionData.user.memberTier,\n memberSinceDate: gtmSessionData.user.memberSinceDate,\n loyaltyPoints: gtmSessionData.user.loyaltyPoints,\n loginStatus: gtmSessionData.user.loginStatus,\n custKey: gtmSessionData.user.custKey,\n lastOrderDate: gtmSessionData.user.lastOrderDate,\n customerStatus: gtmSessionData.user.customerStatus\n },\n event: 'User Signed Out'\n });\n window.location.href = logoutUrl;\n });\n $(document).on('storelocator:search-completed', function (e, data) {\n var searchTerm = $('#store-search-input').val();\n if (!searchTerm) {\n searchTerm = $('#store-postal-code').val();\n }\n\n if (!data || !searchTerm) {\n return;\n }\n\n var resultsCount = data.stores && data.stores.length;\n dataLayer.push({\n storeSearch: {\n selectAction: resultsCount ? 'store search' : 'results not returned'\n },\n listing: {\n listingResults: {\n resultsCount: resultsCount || 0\n },\n listingParams: {\n searchInfo: {\n searchTermEntered: searchTerm\n }\n }\n },\n event: 'Store Searched'\n });\n var productSku = $('#product-detail-redesign').attr('data-pid');\n if (productSku) {\n customAnalyticsEvent('pdp', 'modal form submitted', 'store search', { productSKU: productSku });\n } else if ($('.cart-page').length) {\n customAnalyticsEvent('cart', 'modal form submitted', 'store search');\n } else {\n customAnalyticsEvent('stores', 'stores searched', data.radius + ' miles');\n }\n });\n $(document).on('xaainstorelocator:search-completed', function (e, data) {\n var searchTerm = $('#store-search-input').val();\n if (!searchTerm) {\n searchTerm = $('#store-postal-code').val();\n }\n\n if (!data || !searchTerm) {\n return;\n }\n\n var resultsCount = data.stores && data.stores.length;\n dataLayer.push({\n storeSearch: {\n selectAction: resultsCount ? 'Instore search results returned' : 'Instore search results not returned'\n },\n listing: {\n listingResults: {\n resultsCount: resultsCount || 0\n },\n listingParams: {\n searchInfo: {\n searchTermEntered: searchTerm\n }\n }\n },\n event: 'Store Searched'\n });\n });\n $(document).on('xaainstorelocator:store-selected', function (e, data) {\n data.storeSearch.selectAction = 'Instore Select'; // eslint-disable-line no-param-reassign\n dataLayer.push(data);\n });\n $('body').on('xaainstore:navigation', function (e, data) {\n console.log(data);\n dataLayer.push({\n eventDetails: data,\n event: 'XAA Instore Experience'\n });\n });\n $(document).on('quickview:shown', '.quickview', function () {\n var gtmData = $('.product-quickview').not('.trade-quickview').data('gtmdata');\n if (gtmData) {\n dataLayer.push({\n product: [gtmData],\n event: 'Product Viewed'\n });\n }\n });\n\n $('body').on('product:trackVariantChange', function (e, data) {\n if (data) {\n var variantChanged = {\n event: 'PDP Variant Interaction',\n eventDetails: {\n eventAction: data.action,\n eventLabel: data.label\n },\n productSKU: data.productSKU,\n position: data.position\n };\n dataLayer.push(variantChanged);\n }\n });\n\n $('body').on('product:viewed', function (e, response) {\n var productViewedObj = {\n product: response.product,\n event: 'Product Viewed',\n certifiedRefurbished: response.isCertifiedRefurbished\n };\n dataLayer.push(productViewedObj);\n });\n $('body').on('product:afterAddressFormSubmit', function (e, response) {\n if (response.gtmData) {\n dataLayer.push({\n product: [response.gtmData],\n event: 'Product Viewed'\n });\n }\n });\n\n $('body').on('product:afterAddToCartSPA', function (e, productName) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SPA|Add To Cart',\n eventLabel: 'Out Of Stock',\n productName: productName\n },\n event: 'Site Interaction'\n });\n });\n\n $('body').on('product:afterAddToCart', function (e, data, curatedFlag, curatedComponentDetails) {\n var productData;\n // Check warranty selection. If selected trigger analytics event for added warranty\n var warrantySelected = [];\n var selectedWarranty;\n var warrantyComponentInfo;\n var parentProductComponentInfo;\n var warrantyName = '';\n var listNameVal = null;\n\n $('.product-option input:checked').each(function () {\n warrantySelected.push($(this));\n });\n\n // populate warranty related info if warranty is added\n if (warrantySelected && warrantySelected.length > 0 && data.gtmData && data.gtmData.productInfo.warrantyOption) {\n var warrantyInfo = {\n zoneSource: 'PDP',\n productType: 'Warranty',\n parentProduct: data.gtmData.productInfo.name\n };\n\n var warrantyPriceInfo = {};\n var productId = data.gtmData.productInfo.sku;\n\n for (var i = data.cart.items.length - 1; i >= 0; i--) {\n var item = data.cart.items[i];\n if (item.id === productId) {\n for (var j = 0; j < item.options.length; j++) {\n var warranty = item.options[j];\n var id = warranty.selectedValueId;\n for (var k = 0; k < warrantySelected.length; k++) {\n if (id === warrantySelected[k].attr('data-value-id')) {\n warrantyInfo.sku = id;\n warrantyInfo.productID = id;\n warrantyInfo.category = warranty.optionId;\n warrantyInfo.name = warranty.selectedValueDisplayName;\n warrantyName = warranty.displayName;\n }\n }\n }\n if (item.productProtection && item.productProtection.selectedProtection && item.productProtection.selectedProtection.price) {\n var warrentyPrice = item.productProtection.selectedProtection.price;\n warrantyPriceInfo.sellingPrice = warrentyPrice.replace('$', '');\n warrantyPriceInfo.basePrice = warrentyPrice.replace('$', '');\n warrantyPriceInfo.currency = 'USD';\n }\n break;\n }\n }\n\n warrantyComponentInfo = { componentDetails: 'Warranty|' + warrantyName + '|Up-sell' };\n parentProductComponentInfo = { componentDetails: 'Warranty|' + warrantyName + '|Parent' };\n\n selectedWarranty = {\n productInfo: warrantyInfo,\n componentInfo: warrantyComponentInfo,\n quantity: 1,\n price: warrantyPriceInfo\n };\n }\n\n if (data.gtmUpsellData) {\n productData = [data.gtmData, data.gtmUpsellData];\n } else {\n productData = [data.gtmData];\n if (selectedWarranty && parentProductComponentInfo) {\n productData.push(selectedWarranty);\n productData[0].componentInfo = parentProductComponentInfo;\n productData[0].productInfo.warrantyAdded = 1;\n }\n if (data.source === 'Move To Cart') {\n productData[0].productInfo.productState = data.source;\n productData[0].productInfo.zoneSource = 'Cart';\n }\n }\n\n var productAddedObj = {\n product: productData,\n event: 'Product Added'\n };\n\n productAddedObj = addToCartWarrantyList(productAddedObj);\n if (data.gtmData && data.gtmData.componentInfo && data.gtmData.componentInfo.componentType && data.gtmData.componentInfo.componentType === 'Recommendation') {\n listNameVal = returnListNameValue(data.gtmData.productInfo.zoneSource);\n var datacomponentName = curatedFlag ? 'Curated Promotions' : data.gtmData.componentInfo.componentName;\n productAddedObj.list = {\n listName: listNameVal + ' | ' + datacomponentName\n };\n }\n if (curatedFlag) {\n productAddedObj.product[0].productInfo.zoneSource = returnListNameValue(data.gtmData.productInfo.zoneSource);\n productAddedObj.product[0].componentInfo = {};\n productAddedObj.product[0].componentInfo.componentDetails = curatedComponentDetails;\n }\n if (data && productData[0]) {\n dataLayer.push(productAddedObj);\n }\n\n if (data && data.resultval) {\n dataLayer.push({\n productDetails: data.resultval,\n event: 'Product Option Selected'\n });\n }\n if (data && data.gtmPURData) {\n dataLayer.push({\n product: [data.gtmPURData],\n event: 'Product Added'\n });\n }\n });\n\n $('body').on('search:updateGrid', function () {\n var label = $.trim($('.plp-pagination').find('.currentPageHighlighted').text());\n var categoryName = $('.plp-pagination').find('.cat').attr('categoryval');\n var labelVal = $('.savedata').attr('savedata');\n var labelData = labelVal === undefined || labelVal === '' ? label : labelVal.toString().concat('|' + label);\n var labelText = $.trim('1|' + labelData);\n $('.savedata').attr('savedata', labelData);\n if (label) {\n dataLayer.push({\n pageinfo: {\n productCagtegory: categoryName,\n searchDepth: $.trim(labelText)\n },\n event: 'Pagination clicked'\n });\n }\n });\n $('body').on('cart:afterUpdateQuantity', function (e, obj) {\n if (obj.data && obj.data.gtmData) {\n var qty = obj.qty;\n var gtmData = obj.data.gtmData;\n if (qty && qty.oldQuantity !== qty.newQuantity) {\n var eventUpdateQuabtity;\n var quantity;\n if (qty.oldQuantity > qty.newQuantity) {\n eventUpdateQuabtity = 'Product Removed';\n quantity = qty.oldQuantity - qty.newQuantity;\n } else {\n eventUpdateQuabtity = 'Product Added';\n quantity = qty.newQuantity - qty.oldQuantity;\n }\n gtmData.quantity = quantity;\n dataLayer.push({\n product: [gtmData],\n event: eventUpdateQuabtity\n });\n }\n }\n $('body').trigger('cart:updateQuantity', { data: obj.data, qty: obj.qty });\n });\n $('body').on('trade:afterAddToSavedTrades', function (e, data) {\n var gtmData = data.gtmData;\n if (!gtmData) {\n return;\n }\n dataLayer.push(gtmData);\n });\n $('body').on('click', '.print-trade', function () {\n var gtmData = $(this).closest('.product-detail').data('gtmdata');\n if (!gtmData) {\n return;\n }\n dataLayer.push({\n productInfo: gtmData.productInfo,\n price: gtmData.price,\n event: 'Trade In Printed'\n });\n });\n $('body').on('hops:AfterRequestSubmit', function (e, data) {\n var gtmData = data.gtmData;\n if (!gtmData) {\n return;\n }\n dataLayer.push(gtmData);\n });\n $('body').on('video:expanded', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:collapsed', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched25Persent', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched50Persent', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched75Persent', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched100Persent', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:play', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:pause', function (e, data) {\n var gtmData = {\n video: data,\n event: 'Video Engaged'\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched25Percent', function (e, data) {\n var gtmData = {\n event: data.eventName,\n eventDetails: {\n eventAction: 'view',\n eventLabel: '25%'\n },\n video: data.mediainfo\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched50Percent', function (e, data) {\n var gtmData = {\n event: data.eventName,\n eventDetails: {\n eventAction: 'view',\n eventLabel: '50%'\n },\n video: data.mediainfo\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched75Percent', function (e, data) {\n var gtmData = {\n event: data.eventName,\n eventDetails: {\n eventAction: 'view',\n eventLabel: '75%'\n },\n video: data.mediainfo\n };\n dataLayer.push(gtmData);\n });\n $('body').on('video:watched100Percent', function (e, data) {\n var gtmData = {\n event: data.eventName,\n eventDetails: {\n eventAction: 'view',\n eventLabel: '100%'\n },\n video: data.mediainfo\n };\n dataLayer.push(gtmData);\n });\n $('body').on('ProductList:AfterUpdate', function (e, data) {\n var gtmData = data.gtmData;\n if (gtmData) {\n dataLayer.push(gtmData);\n }\n });\n\n $(document).on('change', '.delivery-options-pid .delivery-option', function () {\n var deliveryOption = $(this).val();\n var selectedDeliveryOption;\n if (deliveryOption === 'home') {\n selectedDeliveryOption = 'Deliver To Home';\n } else if (deliveryOption === 'store') {\n selectedDeliveryOption = 'Store Pick up';\n } else if (deliveryOption === 'delivery') {\n selectedDeliveryOption = 'Same Day Delivery';\n }\n shipmentSelected(selectedDeliveryOption);\n });\n\n $('.gme-v3-global-widgect a, .gme-v3-carousel-hero a').on('click', function () {\n var bannerId = $(this).data('ci-tracking');\n var bannerName = $(this).data('campaign-name');\n var widgect = $(this).hasClass('gme-v3-carousel-hero__slide') ? $(this).closest('.gme-v3-carousel-hero') : $(this).closest('.gme-v3-global-widgect');\n var creativeName = widgect.data('creative-name');\n promoClicked('promotion clicked', bannerId, bannerName, creativeName, 1);\n });\n\n $('body').on('home:afterPageLoad', function () {\n if ($('.home-banner').length) {\n setTimeout(function () {\n var promoArr = [];\n $('.home-banner').each(function (a, b) {\n var bannerId = $(b).attr('id');\n var bannerName = $(b).data('name');\n promoArr.push({\n id: bannerId,\n name: bannerName\n });\n });\n var obj = {\n event: 'Banner Impression',\n ecommerce: {\n promoView: {\n promotions: promoArr\n }\n }\n };\n dataLayer.push(obj);\n }, 2000);\n }\n });\n $('.home-banner-btn').on('click', function () {\n var banner = $(this).closest('.home-banner');\n var promoArr1 = [];\n var bannerId = $(banner).attr('id');\n var bannerName = $(banner).data('name');\n promoArr1.push({\n id: bannerId,\n name: bannerName\n });\n var obj = {\n event: 'Banner Click',\n ecommerce: {\n promoClick: {\n promotions: promoArr1\n }\n }\n };\n dataLayer.push(obj);\n });\n $('.getting-started-btn').on('click', function () {\n var ppid = $(this).data('pid');\n var isxaainstore = $('#xaaInstore').data('experience');\n var modalinfo = {\n modal_category: 'Xbox All Access Modal',\n modal_label: 'Get Started | CitizenOne Financing',\n XAASteps: 'step-1 | Open a citizen one Line of credit for Xbox All access',\n metric26: '1'\n };\n if (isxaainstore) {\n modalinfo.userExperience = 'instore';\n }\n dataLayer.push({\n getStarted: {\n productPPID: ppid\n },\n event: 'get started click'\n });\n dataLayer.push({\n modalinfo: modalinfo,\n event: 'modal popup'\n });\n });\n $('#pdp-open-flexpay-modal').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'learn more',\n eventLabel: 'FlexPay Info viewed',\n pageType: 'PDP'\n },\n event: 'Site Interaction'\n });\n });\n $('#cart-open-flexpay-modal').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'learn more',\n eventLabel: 'FlexPay Info viewed',\n pageType: 'Cart'\n },\n event: 'Site Interaction'\n });\n if (isAppSession === 'true') {\n var detail = {\n component: 'Payment',\n details: 'Learn more - Flexible payment',\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n }\n });\n $('body').on('purCC:avsError', function (e, data) {\n dataLayer.push(data.analyticsData);\n });\n $('body').on('payment:placeOrderError', function (e, data) {\n dataLayer.push(\n {\n errorDetails: {\n errorCategory: 'ecommerce',\n errorTrigger: data.paymentTrigger || '',\n errorType: data.paymentType || '',\n errorMessage: data.errorMessage || ''\n },\n event: 'Error Occurence'\n }\n );\n });\n\n $('body').on('product:giftCard:afterPageLoad', function (e, data) {\n dataLayer.push({\n product: [data],\n event: 'Product Viewed'\n });\n });\n\n $('label[for=giftcardtype-physical]').one('click', function () {\n var gtmData = $('.giftcard-purchase-form').data('gtmdata');\n var giftCardObj = $('.physical-giftcard');\n var productSku = giftCardObj.attr('data-physical-sku');\n var productPid = giftCardObj.attr('data-physical-pid');\n gtmData.productInfo.sku = productSku;\n gtmData.productInfo.productID = productPid;\n dataLayer.push({\n product: [gtmData],\n event: 'Product Viewed'\n });\n });\n\n $('body').on('product:giftCard:afterAddToCart', function (e, data) {\n dataLayer.push({\n product: [data],\n event: 'Product Added'\n });\n });\n\n $('body').on('header:verifyAddressInitiated', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | Header',\n eventLabel: 'Address Verification Initiated'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('header:verifyAddressSubmitted', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | Header',\n eventLabel: 'Address Verification Submitted'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('product:verifyAddressInitiated', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | PDP',\n eventLabel: 'Address Verification Initiated'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('product:verifyAddressSubmitted', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | PDP',\n eventLabel: 'Address Verification Submitted'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('cart:backButton', function () {\n var detail = {\n component: 'Navigation',\n details: 'Back Button',\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:productImageTitleClick', function () {\n var detail = {\n component: 'Navigation',\n details: 'Click to PDP',\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:protectionPlan', function (e, data) {\n var detail = {\n component: 'Product Listing',\n details: data.protectionPlan + ' : ' + data.productName,\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:deliveryOption', function (e, data) {\n var detail = {\n component: 'Product Listing',\n details: 'Fulfillment option changed to : ' + data.deliveryOption,\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:verifyAddressInitiated', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | Cart',\n eventLabel: 'Address Verification Initiated'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('cart:verifyAddressSubmitted', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'SDD | Cart',\n eventLabel: 'Address Verification Submitted'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('cart:storeSearchInitiated', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Store Pickup | Cart',\n eventLabel: 'Store Search Initiated'\n },\n event: 'ecommerce'\n });\n });\n\n $('body').on('cart:storeSelected', function (e, data) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Store Pickup | Cart',\n eventLabel: 'Store Selected'\n },\n event: 'ecommerce'\n });\n if (isAppSession === 'true') {\n var json = {\n event: 'storeChanged',\n storeID: data ? data.storeID : ''\n };\n postMessageToRN(JSON.stringify(json));\n }\n });\n\n $('body').on('cart:deliveryOptionChangedToSDD', function (e, data) {\n var detail = {\n component: 'Cart Fulfillment',\n details: 'Fulfillment option changed to : ' + data.newFulfillmentMethod + ' from ' + data.oldFulfillmentMethod,\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:sddVerifyAddressInitiated', function () {\n var detail = {\n component: 'Cart SDD Address Verification',\n details: 'Cart SDD Address Verification: Initiated',\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:sddVerifyAddressCompleted', function () {\n var detail = {\n component: 'Cart SDD Address Verification',\n details: 'Cart SDD Address Verification: Completed',\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('checkout:sddproductunavailable', function (e, data) {\n var detail = {\n component: 'Cart Checkout',\n details: 'SDD Item Unavailable:' + data.apierror,\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('cart:updateQuantity', function (e, obj) {\n if (obj.data && obj.data.gtmData && isAppSession === 'true') {\n var gtmData = obj.data.gtmData;\n var quantity = obj.qty ? obj.qty.newQuantity : '';\n\n var detail = {\n currency: gtmData.price.currency,\n value: quantity * gtmData.price.sellingPrice,\n quantity: quantity,\n temp_item0: populateProductTempItem(gtmData, quantity)\n };\n dataToReactNative(detail, 'logAddToCart');\n if (window.pageContext.ns === 'cart' && !$('.cart-empty').length) {\n postMessageOnEvent('view_cart');\n }\n }\n });\n\n $('.order-items-list .order-store-link').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Track Order| ' + $(this).attr('data-linkName') + ' clicked',\n eventLabel: $(this).attr('data-storeName')\n },\n event: 'Site Interaction'\n });\n });\n\n $('.order-items-list .track-order-link').on('click', function () {\n var fulfillmentType = $(this).parents('.fulfillment-group').data('fulfillmenttype');\n dataLayer.push({\n eventDetails: {\n eventAction: 'Track Order',\n eventLabel: fulfillmentType,\n shipmentMethod: fulfillmentType,\n orderId: $('.order-items-list').data('orderno')\n },\n event: 'Site Interaction'\n });\n });\n $('body').on('cart-apple-pay:start', function () {\n var product = [];\n for (var i = dataLayer.length - 1; i > 0; i--) {\n if (dataLayer && (dataLayer[i].event === 'Cart Viewed' || dataLayer[i].event === 'Checkout Step Encountered')) {\n product = dataLayer[i].product;\n if (dataLayer[i].event === 'Checkout Step Encountered') {\n for (var j = 0; j < product.length; j++) {\n if (product[j].productInfo) {\n product[j].productInfo.beginCheckout = 1;\n }\n if (product[j].productInfo.appliedPromotion && product[j].productInfo.appliedPromotion === 'PriceMatch') {\n product[j].productInfo.promoLabel = 'PriceMatch';\n }\n }\n }\n break;\n }\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: '5b',\n checkoutOption: 'Apple Pay'\n },\n product: product\n });\n });\n $('body').on('checkout-apple-pay:start', function () {\n var product = [];\n for (var i = dataLayer.length - 1; i > 0; i--) {\n if (dataLayer && (dataLayer[i].event === 'Checkout Step Encountered')) {\n product = dataLayer[i].product;\n product.forEach(function (element) {\n element.productInfo.zoneSource = window.pageContext.ns; // eslint-disable-line no-param-reassign\n });\n break;\n }\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: 4,\n checkoutOption: 'Apple Pay'\n },\n product: product\n });\n dataLayer.push({\n step: 4,\n eventDetails: {\n checkoutOption: 'Apple Pay'\n },\n event: 'Checkout Option Selected'\n });\n });\n\n $('body').on('cart:softBundleInteraction', function (e, eventLabel) {\n dataLayer.push({\n eventDetails: {\n eventAction: 'Soft Bundles|Cart|clicks',\n eventLabel: eventLabel || ''\n },\n event: 'Site Interaction'\n });\n });\n\n\n $('body').on('communicationpref:emailUpdate', function (e, changedPreference) {\n var updatedValue = $(changedPreference).attr('data-value') === 'true' ? 'subscribed' : 'unsubscribed';\n var updatedLabel = $(changedPreference).closest('.preference').find('.pref-label').text();\n dataLayer.push({\n eventDetails: {\n eventCategory: 'Email Subscriptions',\n eventAction: updatedValue,\n eventLabel: updatedLabel\n },\n event: 'Email Subscriptions'\n });\n });\n\n $('body').on('communicationpref:smsUpdate', function (e, smsValue) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'SMS opt-in',\n eventAction: smsValue ? 'subscribed' : 'unsubscribed'\n },\n event: 'SMS opt-in'\n });\n });\n\n $(document).on('communicationpref:error', function (e, errorMessage) {\n dataLayer.push({\n errorDetails: {\n errorTrigger: 'API Error',\n errorType: 'Customer Preferences',\n errorMessage: errorMessage,\n errorCategory: 'Account Pages'\n },\n event: 'Error Occurrence'\n });\n });\n\n $('body').on('checkout:submitShippingForm', function (e, data) {\n var gtmData = $('#checkout-main').data('gtmdata');\n if (!gtmData) {\n return;\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: data.checkoutStep,\n checkoutOption: data.checkoutOption || ''\n },\n product: gtmData.product\n });\n });\n\n $('body').on('checkout:shippingFormAnalytics', function (e, data) {\n dataLayer.push({\n eventDetails: {\n eventCategory: data.eventCategory,\n eventAction: data.eventAction\n },\n event: 'Checkout Step updated'\n });\n });\n\n $('body').on('checkout:placeOrderButtonAnalytics', function (e, data) {\n var gtmData = $('#checkout-main').data('gtmdata');\n if (!gtmData) {\n return;\n }\n var paymentMethod;\n if (!data.checkoutOption || data.checkoutOption === 'undefined' || data.checkoutOption === 'null') {\n paymentMethod = 'NA';\n } else {\n paymentMethod = data.checkoutOption;\n }\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: data.checkoutStep,\n checkoutOption: paymentMethod\n },\n product: gtmData.product\n });\n });\n\n // DEN-15030 for Single Page checkout\n $('body').on('shippingPageError:shipping', function (e, errorMessageData) {\n dataLayer.push({\n eventDetails: {\n errorCategory: errorMessageData.errorcategory,\n errorAction: errorMessageData.errorAction,\n errorMessage: errorMessageData.errorMessage\n },\n event: 'Checkout Step error'\n });\n });\n $('body').on('shippingPageError:StorePickUp', function (e, errorMessageData) {\n dataLayer.push({\n eventDetails: {\n errorCategory: errorMessageData.errorCategory,\n errorAction: errorMessageData.errorAction,\n errorMessage: errorMessageData.errorMessage\n },\n event: 'Checkout Step error'\n });\n });\n $('body').on('checkout:paymentError', function (e, errorMessageData) {\n dataLayer.push(\n {\n eventDetails: {\n errorCategory: errorMessageData.errorcategory,\n errorAction: errorMessageData.errorAction,\n errorMessage: errorMessageData.errorMessage\n },\n event: 'Checkout Step error'\n }\n );\n $(document).on('wistradeinorder:promocodeadded', function (voucherAmount) {\n dataLayer.push({\n voucherDiscount: {\n voucherCodeIsValid: 'true',\n voucherType: 'tradein',\n voucherAmount: voucherAmount\n },\n event: 'Promo Code Added'\n });\n });\n\n $(document).on('wistradeinorder:promocoderemoved', function (voucherAmt) {\n dataLayer.push({\n voucherDiscount: {\n voucherCodeIsValid: 'true',\n voucherType: 'tradein',\n voucherAmount: voucherAmt\n },\n event: 'Promo Code Removed'\n });\n });\n\n $(document).on('wistradeinorder:errors', function (errorMsg) {\n dataLayer.push({\n eventDetails: {\n errorCategory: 'Trade-in',\n errorAction: 'Validation Error',\n errorMessage: errorMsg\n },\n event: 'WIS Error'\n });\n });\n });\n\n $('body').on('checkout:paymentSectionAnalytics', function (e, data) {\n var gtmData = $('#checkout-main').data('gtmdata');\n if (!gtmData) {\n return;\n }\n if (data.checkoutStep) {\n dataLayer.push({\n event: 'Checkout Step Encountered',\n eventDetails: {\n checkoutStep: data.checkoutStep,\n checkoutOption: data.checkoutOption || ''\n },\n product: gtmData.product\n });\n }\n if (isAppSession === 'true') {\n if (data.action === 'save') {\n triggerRNEvent('Payment', 'CTA: Payment | Form Saved', window.pageContext.ns, customLink);\n postMessageOnSPC('add_payment_info', data.paymentMethod);\n }\n if (data.action === 'change') {\n triggerRNEvent('Payment', 'Link: Change Payment | Clicked', window.pageContext.ns, customLink);\n }\n }\n });\n\n $('body').on('checkout:viewPaymentSection', function () {\n var isPaymentFormHidden = $('.payment-form #payment-form-body').hasClass('d-none');\n if (isPaymentElementVisible || isPaymentFormHidden) {\n return;\n }\n var $el = $('.payment-form');\n if ($el.length && 'IntersectionObserver' in window) {\n var config = {\n rootMargin: '0px 0px 50px 0px',\n threshold: 0\n };\n var observer = new IntersectionObserver(intersectPaymentSection, config);\n observer.observe($el[0]);\n }\n });\n\n $('#gc-btn-cancel').on('click', function () {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'ecommerce|Checkout',\n eventAction: 'Payment |Cancel Click',\n eventLabel: 'GIFT_CERTIFICATE'\n },\n event: 'Checkout Step updated'\n });\n });\n\n $('body').on('checkout:giftCardAppliedAmount', function (e, eventLabel) {\n dataLayer.push({\n eventDetails: {\n eventCategory: 'ecommerce|Checkout',\n eventAction: 'Payment|Gift Card Applied',\n eventLabel: '$' + eventLabel\n },\n event: 'Checkout Step updated'\n });\n });\n\n $('body').on('cart:promoCodeSubmit', function (e, couponData) {\n var coupon = couponDetails(couponData);\n var detail = {\n component: 'Cart Coupon',\n details: 'Coupon Applied: ' + coupon.couponCode,\n source: window.pageContext.ns,\n value: coupon.value\n };\n dataToReactNative(detail, customLink);\n });\n\n $('body').on('checkout:editOrAddAddress', function (e, data) {\n triggerRNEvent(data.componentName, data.eventDetail, window.pageContext.ns, customLink);\n });\n\n $('body').on('checkout:rewardSectionAnalytics', function (e, data) {\n triggerRNEvent(data.componentName, data.eventDetail, window.pageContext.ns, customLink);\n });\n\n $('body').on('checkout:placeOrderAnalytics', function (e, data) {\n triggerRNEvent(data.componentName, data.eventDetail, window.pageContext.ns, customLink);\n });\n\n $('body').on('checkout:changeFulfillmentOption', function (e, data) {\n if (isAppSession === 'true') {\n triggerRNEvent(data.componentName, data.eventDetail, window.pageContext.ns, customLink);\n }\n });\n\n $('body').on('pro:pro_autorenewal', function (e, data) {\n dataLayer.push(data);\n });\n\n if (isAppSession === 'true') {\n $('body').on('checkout:selectPaymentSection', function (e, data) {\n postMessageOnSPC('add_payment_info', data.paymentMethod);\n });\n\n $('body').on('checkout:checkoutCustomErrorEventApp', function (e, data) {\n triggerRNEvent(data.component, data.eventDetail, window.pageContext.ns, customError);\n });\n\n $('body').on('checkout:rewardRedeemOrRemove', function (e, data) {\n var detail = {\n component: data.componentName,\n details: data.eventDetail,\n value: data.value,\n source: window.pageContext.ns\n };\n dataToReactNative(detail, customLink);\n });\n }\n\n if (window.pageContext.ns === 'cart') {\n $('body').on('cart:purmonthlyreward', function (e, data) {\n customAnalyticsEvent('cart', data.eventAction, data.eventLabel);\n if (isAppSession === 'true') {\n triggerRNEvent('cart', data, window.pageContext.ns, customLink);\n }\n });\n\n $('body').on('cart:purreward', function (e, data) {\n customAnalyticsEvent('cart', data.eventAction, data.eventLabel);\n if (isAppSession === 'true') {\n triggerRNEvent('cart', data, window.pageContext.ns, customLink);\n }\n });\n }\n }\n};\n\n\n/**\n *\n * @description Initialize the tag manager functionality\n * @param {string} nameSpace The current name space\n */\nexports.init = function (nameSpace) {\n if (document.cookie.includes('notagmanager') === false) {\n var ns = nameSpace || pageContext.ns;\n if (ns && events[ns]) {\n events[ns]();\n }\n events.all();\n }\n};\n","'use strict';\n\n/**\n * To keep app session alive\n */\nfunction keepAppSessionAlive() {\n var isAppSession = $('#app-session').val();\n if (isAppSession === 'true') {\n var url = $('#app-session-alive-url').val();\n var interval = $('#app-session-alive-interval').val();\n if (url && interval) {\n setInterval(function () { $.get(url); }, parseInt(interval, 10));\n }\n }\n}\n\nmodule.exports = function () {\n // to keep app session alive\n $(document).ready(function () {\n keepAppSessionAlive();\n });\n};\n","'use strict';\n\n// BREAD PLACEMENT SETUP\nconst pdpPlacementPreQual = {\n financingType: 'card',\n locationType: 'product',\n placementId: '20ac5a7b-2c25-468d-9a9c-171cd9bc7865',\n domID: 'bread-payments-pdp-prequal'\n};\n\nconst pdpPlacementApply = {\n financingType: 'card',\n locationType: 'product',\n placementId: '96e5c510-87fd-4439-b6ad-507010b815ba',\n domID: 'bread-payments-pdp-apply'\n};\n\nconst cartPlacementPrequal = {\n financingType: 'card',\n locationType: 'cart',\n placementId: '5106caf4-f11f-4259-9574-20df9d5c2acb',\n domID: 'bread-payments-cart-prequal'\n};\n\nconst cartPlacementApply = {\n financingType: 'card',\n locationType: 'cart',\n placementId: '8e62c7c4-e95a-40e6-bce1-4dbdc3169dac',\n domID: 'bread-payments-cart-apply'\n};\n\nconst checkoutPlacementPrequal = {\n financingType: 'card',\n locationType: 'checkout',\n placementId: 'e6769261-561d-44a0-a195-27e707457d87',\n domID: 'bread-payments-checkout-prequal'\n};\n\nconst checkoutPlacementApply = {\n financingType: 'card',\n locationType: 'checkout',\n placementId: '815859a1-123f-4ec3-9731-ccf4eac0e22c',\n domID: 'bread-payments-checkout-apply'\n};\n\nconst checkoutPlacementAccountLookup = {\n financingType: 'card',\n locationType: 'checkout',\n placementId: 'f77b4c5b-4b27-48b6-8074-b0e67ff080dc',\n domID: 'bread-payments-account-lookup'\n};\n\n/**\n * Get location type for RTPS\n * @returns {string} locationType\n*/\nfunction getBreadLocationType() {\n const path = window.location.pathname.toLowerCase();\n\n if (path.includes('checkout')) {\n return 'checkout';\n }\n\n if (path.includes('cart')) {\n return 'cart';\n }\n\n if (path.includes('pro-credit-card')) {\n return 'landing';\n }\n\n if (path.includes('products')) {\n return 'product';\n }\n\n return 'homepage';\n}\n\nconst hasBreadPayments = typeof BreadPayments !== 'undefined';\nif (hasBreadPayments) {\n const isProduction = $('.bread-button-wrapper-row').data('production') || $('.bread-env').data('production');\n\n // eslint-disable-next-line no-undef\n BreadPayments.setup({\n env: isProduction ? 'PROD' : 'STAGE' // 'STAGE' or 'PROD' defaults to 'PROD\n });\n\n // eslint-disable-next-line no-undef\n BreadPayments.registerPlacements([\n pdpPlacementPreQual,\n pdpPlacementApply,\n cartPlacementPrequal,\n cartPlacementApply,\n checkoutPlacementPrequal,\n checkoutPlacementApply,\n checkoutPlacementAccountLookup\n ]);\n\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:RECEIVE_PREQUAL_APPLICATION_RESULT', (cardResult) => {\n // Handle Application Submitted\n if (cardResult.callId) {\n const url = $('#proCreditCardModal').data('plcc-url') || $('.bread-prescreen-container').data('plcc-url');\n $.ajax({\n url: url + `?breadTokenId=${cardResult.callId}`,\n method: 'get'\n });\n }\n });\n\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:RECEIVE_PRESCREEN_APPLICATION_RESULT', (cardResult) => {\n // Handle Application Submitted\n if (cardResult.callId) {\n const url = $('#proCreditCardModal').data('plcc-url') || $('.bread-prescreen-container').data('plcc-url');\n $.ajax({\n url: url + `?breadTokenId=${cardResult.callId}`,\n method: 'get'\n });\n }\n });\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:RECEIVE_APPLICATION_RESULT', (cardResult) => {\n // Handle Application Submitted\n if (cardResult.callId) {\n const url = $('#proCreditCardModal').data('plcc-url') || $('.bread-prescreen-container').data('plcc-url');\n $.ajax({\n url: url + `?breadTokenId=${cardResult.callId}`,\n method: 'get'\n });\n }\n });\n\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:RECEIVE_ACCOUNT_EXISTS', (acctResult) => {\n if (acctResult) {\n $.ajax({\n url: $('#bread-payments-account-lookup').data('plcc-url') + `?breadTokenId=${acctResult.callId}`,\n method: 'get'\n });\n }\n });\n\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:CLOSE_OVERLAY', () => {\n if (window.location.pathname.includes('checkout')) {\n window.location.reload();\n }\n });\n\n\n const breadRTPSSubmitted = 'BREAD-RTPS-SUBMITTED';\n const breadRTPSPresented = 'BREAD-RTPS-PRESENTED';\n\n // Emitted when a customer responds to their rt prescreen offer\n // eslint-disable-next-line no-undef\n BreadPayments.on('CARD:OFFER_RESPONSE', () => {\n localStorage.setItem(breadRTPSPresented, 'true');\n });\n\n var customerGroups = document.cookie.split(';').find(cookie => cookie.trim().toLowerCase().startsWith('customergroups'));\n const isLoggedIn = customerGroups && customerGroups.toLowerCase().includes('registered');\n\n if (isLoggedIn && !localStorage.getItem(breadRTPSPresented) && !localStorage.getItem(breadRTPSSubmitted)) {\n try {\n $.ajax({\n url: '/on/demandware.store/Sites-gamestop-us-Site/default/Account-Info',\n method: 'GET',\n success: function (data) {\n if (data && data.buyer) {\n const buyer = data.buyer;\n const address = buyer && buyer.billingAddress;\n\n if (buyer && address) {\n const config = {\n loyaltyID: data.loyaltyID,\n env: isProduction ? 'PROD' : 'STAGE',\n storeNumber: data.storeNumber,\n buyer: {\n givenName: buyer.givenName,\n familyName: buyer.familyName,\n birthDate: buyer.birthDate,\n email: buyer.email,\n phone: buyer.phone,\n billingAddress: {\n address1: address.address1,\n address2: address.address2,\n country: address.country,\n locality: address.locality,\n region: address.region,\n postalCode: address.postalCode\n }\n }\n };\n\n\n // eslint-disable-next-line no-undef\n BreadPayments.setup(config);\n\n // eslint-disable-next-line no-undef\n BreadPayments.submitRtps({\n financingType: 'card',\n locationType: getBreadLocationType()\n });\n\n localStorage.setItem(breadRTPSSubmitted, 'true');\n }\n }\n }\n });\n } catch (e) {}\n }\n}\n","'use strict';\nvar slickConfigs = require('../config/slickConfigs');\nvar utils = require('../utils');\n\n/**\n * Init globally reusable carousels\n */\n\nmodule.exports = {\n heroCarousels: function () {\n $('.hero-caro').slick(slickConfigs.hero);\n },\n productTileCarousels: function () {\n $('.product-tile-caro').slick(slickConfigs.productTiles);\n },\n homePageCarousels: function () {\n $('.key-art-carousel').slick(slickConfigs.homePage);\n },\n recentlyViewedCarousels: function () {\n $('.recently-viewed-carousel').slick(slickConfigs.recentlyViewedProductTiles);\n },\n bundleIncludedCarousel: function () {\n $('.bundle-includes-carousel').slick(slickConfigs.bundleIncludedCarousel);\n },\n bundleProductDetailsCarousel: function () {\n $('.bundle-product-details-carousel').not('.slick-initialized').slick(slickConfigs.bundleIncludedCarousel);\n },\n gameinformerIssueCarousel: function () {\n $('.gameinformer-issue-carousel').slick(slickConfigs.gameinformerIssueCarousel);\n },\n recommendationRedesignHomepage: function () {\n $('.recommendedProductsOnHomepageRedesign').each(function(){$(this).not('.slick-initialized').slick(slickConfigs.recommendedProductsRedesignPDP)});\n },\n accountDashboardWishlistCarousel: function () {\n if (utils.mediaBreakpointDown('md')) {\n $('.account-dashboard-wishlist .wishlistItemCards').slick(slickConfigs.accountDashboardWishlistCarousel);\n }\n },\n activeOffersCarousel: function () {\n $('.active-offers-carousel').slick(slickConfigs.activeOffersCarousel);\n },\n dashboardOrderItemsCarousel: function () {\n $('.dashboard-order-items-carousel').slick(slickConfigs.dashboardOrderItemsCarousel);\n },\n dashboardRewardsCenterCarousel: function () {\n $('.dashboard-reward-center .reward-tile-group').slick(slickConfigs.dashboardRewardsCenterCarousel);\n }\n};\n","'use strict';\n\nvar base = require('base/components/cleave');\nvar Cleave = window.Cleave;\nvar exportBase = $.extend({}, base, {\n handleCreditCardNumber: function (cardFieldSelector, cardTypeSelector) {\n var creditCardTypes = {\n visa: 'Visa',\n mastercard: 'MasterCard',\n amex: 'Amex',\n discover: 'Discover',\n maestro: 'Maestro',\n purcc: 'purcc',\n diners: 'Diners',\n jcb: 'JCB',\n unionPay: 'UnionPay',\n unknown: 'Unknown'\n };\n\n var cleave = new Cleave(cardFieldSelector, {\n creditCard: true,\n onCreditCardTypeChanged: function (type) {\n var cardType = creditCardTypes[Object.keys(creditCardTypes).indexOf(type) > -1\n ? type\n : 'unknown'];\n $(cardTypeSelector).val(cardType);\n $('.card-number-wrapper').attr('data-type', type);\n if (type === 'visa' || type === 'mastercard' || type === 'discover' || type === 'unionPay' || type === 'jcb' || type === 'diners') {\n $('#securityCode').attr('maxlength', 3);\n } else {\n $('#securityCode').attr('maxlength', 4);\n }\n }\n });\n if ($('.nav-item').data('sa-type') !== 'SA_FLEX') {\n $(cardFieldSelector).data('cleave', cleave);\n }\n\n // DEN-22939: Combining credit card and PURCC for checkout only\n if ($('.single-page-checkout').length > 0) {\n $(document).off('focus keyup').on('focus keyup', cardFieldSelector, function () {\n var binRange = '778840';\n var creditCardNumber = $(this).val() && $(this).val().length > 0 ? $(this).val().replace(/\\s+/g, '') : '';\n if (!creditCardNumber) {\n $(cardTypeSelector).val('');\n $('.card-number-wrapper').attr('data-type', '');\n $('#creditCard input[name$=\"dwfrm_billing_paymentMethod\"]').val('');\n }\n var paymentMethod;\n var $creditCardField = $('.dwfrm_billing_creditCardFields_cardNumber');\n var $PAROptIn = $('#PAROptIn');\n var $autoRenewalPurError = $('#autoRenewalPurErrorMessage');\n\n // checking if the card number is PUR Credit card\n if (creditCardNumber.includes(binRange)) {\n paymentMethod = 'PUR_CREDIT';\n $('.credit-card-add-new, .credit-card-generic').attr('data-method-id', paymentMethod);\n $('.payment-information').attr('data-payment-method-id', paymentMethod);\n $(cardTypeSelector).val(creditCardTypes.purcc);\n $('.card-number-wrapper').attr('data-type', creditCardTypes.purcc);\n // changing name of card number field\n $('#cardNumber').attr('name', 'dwfrm_billing_creditCardFields_cardNumber');\n // changing payment method in case of PUR Credit card\n $('input[name*=\"billing_paymentMethod\"]').val(paymentMethod);\n // removing error message from security code and expiration month year\n if ($PAROptIn.length && $PAROptIn[0].checked) {\n $creditCardField.addClass('error-field');\n $creditCardField.find('.error-new-message').text($autoRenewalPurError.val());\n } else {\n $creditCardField.removeClass('error-field');\n $creditCardField.find('.error-new-message').text('Card number is invalid');\n }\n } else {\n paymentMethod = 'CREDIT_CARD';\n // enable security code and expiration month year\n $('.dwfrm_billing_creditCardFields_expirationMonthYear, .dwfrm_billing_creditCardFields_securityCode').addClass('required').removeClass('d-none');\n $('.credit-card-section').attr('data-method-id', paymentMethod);\n $('.payment-information').attr('data-payment-method-id', paymentMethod);\n $('#expirationMonthYear, #securityCode').prop('disabled', false);\n $('#cardNumber').attr('name', 'dwfrm_billing_creditCardFields_cardNumber');\n $('input[name*=\"billing_paymentMethod\"]').val(paymentMethod);\n $creditCardField.removeClass('error-field');\n var jcbBinRange = /^3(0(8[8-9]|9[0-4])|(09[6-9]|10[0-2])|(11[2-9]|120)|(158|159)|(33[7-9]|34[0-9])|(52[8-9]|5[3-8][0-9]))/;\n var unionPayBinRange = /^(62|81[0-7][0-1])/;\n if (jcbBinRange.test(creditCardNumber)) {\n $(cardTypeSelector).val(creditCardTypes.jcb);\n $('.card-number-wrapper').attr('data-type', 'jcb');\n $('#securityCode').attr('maxlength', 3);\n } else if ($(cardTypeSelector).val() === 'JCB') {\n $(cardTypeSelector).val('Unknown');\n $('.card-number-wrapper').attr('data-type', 'unknown');\n }\n\n if (unionPayBinRange.test(creditCardNumber)) {\n $(cardTypeSelector).val(creditCardTypes.unionPay);\n $('.card-number-wrapper').attr('data-type', 'unionpay');\n $('#securityCode').attr('maxlength', 3);\n } else if ($(cardTypeSelector).val() === 'UnionPay') {\n $(cardTypeSelector).val('Unknown');\n $('.card-number-wrapper').attr('data-type', 'unknown');\n }\n }\n });\n }\n },\n\n serializeData: function (form, creditCardMode) {\n var serializedArray = form.serializeArray();\n\n serializedArray.forEach(function (item) {\n if (item.name.indexOf('cardNumber') > -1) {\n var $inputClass = $('#cardNumber');\n if (creditCardMode === 'add') {\n $inputClass = $('.credit-card-add-new #cardNumber');\n }\n item.value = $inputClass.data('cleave').getRawValue(); // eslint-disable-line\n }\n });\n return $.param(serializedArray);\n },\n\n handlePhoneNumber: function (phoneFieldSelector, phoneRegionCode) {\n setTimeout(() => {\n var cleave = new Cleave(phoneFieldSelector, {\n phone: true,\n phoneRegionCode: phoneRegionCode || 'US'\n });\n\n $(phoneFieldSelector).data('cleave', cleave);\n }, 0);\n },\n\n handlePhoneNumberRedesign: function (phoneFieldSelector) {\n setTimeout(() => {\n var cleave = new Cleave(phoneFieldSelector, {\n delimiters: ['(', ') ', '-'],\n blocks: [0, 3, 3, 4],\n numericOnly: true\n });\n\n $(phoneFieldSelector).data('cleave', cleave);\n }, 0);\n },\n\n handlePrivateCardNumber: function (cardFieldSelector) {\n var cleave = new Cleave(cardFieldSelector, {\n blocks: [4, 4, 4, 4]\n });\n $(cardFieldSelector).data('cleave', cleave);\n },\n\n handleSecurityCode: function (securityCodeField) {\n var cleave = new Cleave(securityCodeField, {\n blocks: [4],\n numericOnly: true\n });\n $(securityCodeField).data('cleave', cleave);\n },\n\n handleDateField: function (birthdayFieldSelector, datePattern) {\n // datePattern: ['m', 'd', 'Y'] mm/dd/yyyy\n // datePattern: ['m', 'd'] mm/dd\n setTimeout(() => {\n var cleave = new Cleave(birthdayFieldSelector, {\n date: true,\n datePattern: datePattern || ['m', 'd', 'Y']\n });\n $(birthdayFieldSelector).data('cleave', cleave);\n }, 0);\n },\n\n handleCurrencyPrefix: function (fieldSelector) {\n var cleave = new Cleave(fieldSelector, {\n prefix: '$',\n numericOnly: true\n });\n $(fieldSelector).data('cleave', cleave);\n },\n\n handleExpirationDate: function (fieldSelector) {\n var cleave = new Cleave(fieldSelector, {\n date: true,\n delimiter: '/',\n datePattern: ['m', 'y']\n });\n $(fieldSelector).data('cleave', cleave);\n }\n});\n\nmodule.exports = exportBase;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n var valid = true;\n var filterVisibleFields = $(this).data('filter-visible-fields') === true;\n var subscriptionCardExpired = false;\n if ($('.subscription-signup-form, .subscription-payment-form').length > 0) {\n var currentDate = new Date();\n var $monthFormGroup = $('#month').closest('.form-group');\n var $yearFormGroup = $('#year').closest('.form-group');\n if (parseInt($('#month')[0].value, 10) < (currentDate.getMonth() + 1) && parseInt($('#year')[0].value, 10) === currentDate.getFullYear()) {\n $monthFormGroup.find('.invalid-feedback')[0].innerHTML = 'This Credit Card has expired';\n $monthFormGroup.find('.invalid-feedback').show();\n $yearFormGroup.find('.invalid-feedback')[0].innerHTML = 'This Credit Card has expired';\n $yearFormGroup.find('.invalid-feedback').show();\n subscriptionCardExpired = true;\n } else {\n $monthFormGroup.find('.invalid-feedback').hide();\n $yearFormGroup.find('.invalid-feedback').hide();\n }\n }\n\n if ((this.checkValidity && !this.checkValidity()) || subscriptionCardExpired) {\n if ($('.payment-form, .subscription-payment-form, .subscription-signup-form').length) {\n // scroll to first error (no scroll if already in view)\n var $firstError = null;\n $('.payment-form, .subscription-payment-form, .subscription-signup-form').find('.invalid-feedback').each(function () { // eslint-disable-line consistent-return\n if ($(this)[0].innerText.length > 0 && $(this).css('display') !== 'none') {\n $firstError = $(this);\n return false;\n }\n });\n if ($firstError !== null) {\n setTimeout(function () {\n var offset = 150;\n var elementPosition = $firstError[0].getBoundingClientRect().top;\n var offsetPosition = elementPosition - offset;\n var isIE = false;\n var ua = window.navigator.userAgent;\n var oldIE = ua.indexOf('MSIE ');\n var newIE = ua.indexOf('Trident/');\n\n if ((oldIE > -1) || (newIE > -1)) {\n isIE = true;\n }\n\n if (isIE) {\n window.scrollBy(0, offsetPosition);\n } else {\n window.scrollBy({\n top: offsetPosition,\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n }\n $(this).find('input, select, textarea').filter(function () {\n return filterVisibleFields ? $(this).is(':visible') : true;\n }).each(function () {\n if (!this.validity.valid) {\n valid = false;\n $(this).trigger('invalid', this.validity);\n }\n });\n\n if (subscriptionCardExpired) {\n valid = false;\n }\n\n // safari\n if (event && !valid) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n }\n return valid;\n}\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearForm(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n $(form).find('.form-group.has-error').removeClass('has-error');\n}\n\nmodule.exports = {\n invalid: function () {\n $('form input, form select, form textarea').on('invalid', function (e) {\n e.preventDefault();\n this.setCustomValidity('');\n if (!this.validity.valid) {\n var validationMessage = this.validationMessage;\n\n $(this).addClass('is-invalid').attr('aria-invalid', 'true');\n $(this).closest('.form-redesign').addClass('form-invalid');\n if (this.validity.patternMismatch && $(this).data('pattern-mismatch')) {\n validationMessage = $(this).data('pattern-mismatch');\n\n // overwrite the previous tooltip error message\n if ($(this).data('wis-validation')) {\n $(this).parents('.form-group').find('.invalid-tooltip').text(validationMessage);\n }\n }\n if ((this.validity.rangeOverflow || this.validity.rangeUnderflow)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if ((this.validity.tooLong || this.validity.tooShort)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if (this.validity.valueMissing && $(this).data('missing-error')) {\n validationMessage = $(this).data('missing-error');\n }\n $(this).parents('.form-group').addClass('has-error');\n $(this).parents('.form-group').find('.invalid-feedback').text(validationMessage);\n var $errorText = $(this).parents('.form-group').find('.invalid-feedback');\n if ($errorText && $errorText[0] && $errorText.length && !utils.isElementInViewport($errorText)) {\n var offset = 300;\n var elementPosition = $errorText[0].getBoundingClientRect().top;\n var offsetPosition = elementPosition - offset;\n\n window.scrollBy({\n top: offsetPosition,\n behavior: 'smooth'\n });\n }\n }\n $(this).closest('form').find('.is-invalid')\n .first()\n .focus();\n });\n },\n\n submit: function () {\n $('form').on('submit', function (e) {\n return validateForm.call(this, e);\n });\n },\n\n buttonClick: function () {\n $('form button[type=\"submit\"], form input[type=\"submit\"]').on('click', function () {\n // clear all errors when trying to submit the form\n clearForm($(this).parents('form'));\n // special case for verification code which has value changed (may be refined later)\n var $verificationField = $('[name$=\"verificationCode\"]');\n // remove non-formFiled errors, case for recaptcha\n if ($('.preorder-request-form').children('.alert').length > 0) {\n $('.preorder-request-form').children('.alert').remove();\n }\n if ($verificationField.length > 0) {\n if (String($verificationField[0].value.length) !== $verificationField[0].getAttribute('minlength')) {\n $verificationField.addClass('is-invalid').attr('aria-invalid', 'true');\n $verificationField.closest('.form-group').removeClass('is-valid').find('.invalid-feedback').text('Must be 18 characters');\n } else {\n $verificationField.addClass('is-valid');\n $verificationField.closest('.form-group').addClass('is-valid');\n $verificationField.closest('.form-group').find('.invalid-feedback').text('');\n }\n // scroll to first error (no scroll if already in view)\n var $firstError = null;\n var $digitalGiftCardRefund = $('.digital-giftcard-refund');\n if ($digitalGiftCardRefund.length && $digitalGiftCardRefund.hasClass('required') && (!$digitalGiftCardRefund.find('input').is(':checked'))) {\n $firstError = $digitalGiftCardRefund;\n } else {\n $('.preorder-request-form').find('.invalid-feedback').each(function () { // eslint-disable-line consistent-return\n if ($(this)[0].innerText.length > 0 && !$(this).closest('.form-group').hasClass('is-valid')) {\n if (!$(this).closest('.form-group').hasClass('digital-giftcard-refund')) {\n $firstError = $(this);\n return false;\n }\n return true;\n }\n });\n }\n if ($firstError !== null && !utils.isElementInViewport($firstError.closest('.form-group'))) {\n var offset = 150;\n setTimeout(function () {\n var elementPosition = $firstError[0].getBoundingClientRect().top;\n var offsetPosition = elementPosition - offset;\n\n window.scrollBy({\n top: offsetPosition,\n behavior: 'smooth'\n });\n }, 0);\n }\n }\n });\n },\n\n functions: {\n validateForm: function (form, event) {\n validateForm.call($(form), event || null);\n },\n clearForm: clearForm\n }\n};\n","'use strict';\n\nmodule.exports = {\n footerSignUp: function (dialog) {\n $('form.footer-email-signup').on('submit', function (e) {\n e.preventDefault();\n const form = $(this);\n form.spinner().start();\n $('.footersubscribe-success, .footersubscribe-error').addClass('d-none').html('');\n $.post(form.data('action'), form.serialize(), function (data) {\n if (data && data.success) {\n $('body').trigger('footer:emailSignup', {eventAction: 'form submitted'});\n $('.footersubscribe-success').html(data.message).removeClass('d-none');\n form.spinner().stop();\n } else {\n $('body').trigger('footer:emailSignup', {eventAction: 'form errored'});\n $('.footersubscribe-error').html(data.message).removeClass('d-none');\n form.spinner().stop();\n }\n }, 'json');\n });\n }\n};\n","'use strict';\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n $(form).find('.form-group.has-error').removeClass('has-error');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function (key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\n .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid').attr('aria-invalid', 'true');\n feedbackElement.closest('.form-group').addClass('has-error');\n }\n }\n });\n formElement.find('.is-invalid').first().focus();\n }\n if (payload && payload.error && payload.error.length > 0) {\n var form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n // remove previous alert messages\n var $alert = $(formElement).closest('div').find('.alert.alert-danger');\n if ($alert.length) {\n $alert.remove();\n }\n\n form.prepend('
'\n + payload.error.join('
') + '
');\n form.find('.form-control:first').focus();\n }\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function () {\n $('body').on('product:beforeAddToCart pur:beforeAddToCart', function () {\n // Injecting add to cart modal css after add to cart clicked\n let $atcModalPath = $('#atc-modal-path');\n if ($atcModalPath.length && !$atcModalPath.data('loaded')) {\n utils.injectDynamicCss($atcModalPath.data('csspath'));\n $atcModalPath.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeChangeStore', function () {\n // Injecting change store modal css\n let $storeModalPath = $('#change-store-path');\n if ($storeModalPath.length && !$storeModalPath.data('loaded')) {\n utils.injectDynamicCss($storeModalPath.data('csspath'));\n $storeModalPath.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeRecommendationsLoad', function () {\n // Injecting recommondation tiles CSS\n let $recommendationPath = $('#recommendation-path');\n if ($recommendationPath.length && !$recommendationPath.data('loaded')) {\n utils.injectDynamicCss($recommendationPath.data('csspath'));\n $recommendationPath.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeHomeRecommendationsLoad', function () {\n // Injecting home page recommendation tiles CSS\n let $recommendationPath = $('#home-recommendation-path');\n if ($recommendationPath.length && !$recommendationPath.data('loaded')) {\n utils.injectDynamicCss($recommendationPath.data('csspath'));\n $recommendationPath.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeAccountModalLoad', function () {\n // Injecting home page recommendation tiles CSS\n let $recommendationPath = $('#account-modal-path');\n if ($recommendationPath.length && !$recommendationPath.data('loaded')) {\n utils.injectDynamicCss($recommendationPath.data('csspath'));\n $recommendationPath.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeMinicartLoads', function () {\n // Injecting minicart CSS\n let $miniCartCss = $('#mini-cart-path');\n if ($miniCartCss.length && !$miniCartCss.data('loaded')) {\n utils.injectDynamicCss($miniCartCss.data('csspath'));\n $miniCartCss.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeFooterLoads', function () {\n // Injecting footer CSS\n let $footerCss = $('#footer-path');\n if ($footerCss.length && !$footerCss.data('loaded')) {\n utils.injectDynamicCss($footerCss.data('csspath'));\n $footerCss.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeSuggestionsLoads', function () {\n // Injecting search suggestions CSS\n let $suggestionsCss = $('#search-suggestion-path');\n if ($suggestionsCss.length && !$suggestionsCss.data('loaded')) {\n utils.injectDynamicCss($suggestionsCss.data('csspath'));\n $suggestionsCss.data('loaded', true);\n }\n });\n\n $('body').on('product:beforeVerifySDDLoads', function () {\n // Injecting SDD verify Address modal CSS\n let $sddCss = $('#sdd-verify-path');\n if ($sddCss.length && !$sddCss.data('loaded')) {\n utils.injectDynamicCss($sddCss.data('csspath'));\n $sddCss.data('loaded', true);\n }\n });\n\n $('body').on('product:beforehomeProductTileLoads', function () {\n // Injecting Home Product Tile CSS\n let $homeProductTileCss = $('#home-page-product-tile');\n if ($homeProductTileCss.length && !$homeProductTileCss.data('loaded')) {\n utils.injectDynamicCss($homeProductTileCss.data('csspath'));\n $homeProductTileCss.data('loaded', true);\n }\n });\n\n $('body').on('product:preownedGuaranteeCssLoads', function () {\n // Injecting Preowned Guarantee CSS\n let $preownedGuaranteeCss = $('#preowned-guarantee');\n if ($preownedGuaranteeCss.length && !$preownedGuaranteeCss.data('loaded')) {\n utils.injectDynamicCss($preownedGuaranteeCss.data('csspath'));\n $preownedGuaranteeCss.data('loaded', true);\n }\n });\n\n $('body').on('product:beforePlpRecommendationsLoad', function () {\n let $plpRecommendationsCss = $('#plp-recommendations');\n if ($plpRecommendationsCss.length && !$plpRecommendationsCss.data('loaded')) {\n utils.injectDynamicCss($plpRecommendationsCss.data('csspath'));\n $plpRecommendationsCss.data('loaded', true);\n }\n });\n};\n","'use strict';\n\nvar injectDynamicUtils = {\n /**\n * @function\n * @desc inject JS dynamically\n * @param {string} id - the id of the hidden jss path element\n */\n injectDynamicJs: function (id) {\n let $el = $(id);\n if ($el.length && !$el.data('loaded')) {\n let url = $el.data('jspath');\n $('script[src=\"' + url + '\"]').remove();\n $('