{ "version": 3, "sources": [ "node_modules/browser-pack/_prelude.js", "node_modules/awesomplete/awesomplete.js", "node_modules/lory.js/dist/lory.js", "scripts/Layouts/disconnect-form.js", "scripts/Layouts/homepage.js", "scripts/Renderings/accordion.js", "scripts/Renderings/articlegrid.js", "scripts/Renderings/carousel.js", "scripts/Renderings/findContractor.js", "scripts/Renderings/navigation.js", "scripts/Renderings/rebates.js", "scripts/Renderings/searchbox.js", "scripts/Renderings/sharebuttons.js", "scripts/Renderings/skipnav.js", "scripts/Renderings/tabs.js", "scripts/main.js", "scripts/utils/form-validation.js", "scripts/utils/utils.js", "node_modules/handlebars/dist/handlebars.runtime.js", ".tmp/js/templates.js" ], "names": [], "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC37CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})", "/**\n * Simple, lightweight, usable local autocomplete library for modern browsers\n * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P\n * @author Lea Verou http://leaverou.github.io/awesomplete\n * MIT license\n */\n\n(function () {\n\nvar _ = function (input, o) {\n\tvar me = this;\n\n\t// Setup\n\n\tthis.isOpened = false;\n\n\tthis.input = $(input);\n\tthis.input.setAttribute(\"autocomplete\", \"off\");\n\tthis.input.setAttribute(\"aria-autocomplete\", \"list\");\n\n\to = o || {};\n\n\tconfigure(this, {\n\t\tminChars: 2,\n\t\tmaxItems: 10,\n\t\tautoFirst: false,\n\t\tdata: _.DATA,\n\t\tfilter: _.FILTER_CONTAINS,\n\t\tsort: o.sort === false ? false : _.SORT_BYLENGTH,\n\t\titem: _.ITEM,\n\t\treplace: _.REPLACE\n\t}, o);\n\n\tthis.index = -1;\n\n\t// Create necessary elements\n\n\tthis.container = $.create(\"div\", {\n\t\tclassName: \"awesomplete\",\n\t\taround: input\n\t});\n\n\tthis.ul = $.create(\"ul\", {\n\t\thidden: \"hidden\",\n\t\tinside: this.container\n\t});\n\n\tthis.status = $.create(\"span\", {\n\t\tclassName: \"visually-hidden\",\n\t\trole: \"status\",\n\t\t\"aria-live\": \"assertive\",\n\t\t\"aria-relevant\": \"additions\",\n\t\tinside: this.container\n\t});\n\n\t// Bind events\n\n\tthis._events = {\n\t\tinput: {\n\t\t\t\"input\": this.evaluate.bind(this),\n\t\t\t\"blur\": this.close.bind(this, { reason: \"blur\" }),\n\t\t\t\"keydown\": function(evt) {\n\t\t\t\tvar c = evt.keyCode;\n\n\t\t\t\t// If the dropdown `ul` is in view, then act on keydown for the following keys:\n\t\t\t\t// Enter / Esc / Up / Down\n\t\t\t\tif(me.opened) {\n\t\t\t\t\tif (c === 13 && me.selected) { // Enter\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 27) { // Esc\n\t\t\t\t\t\tme.close({ reason: \"esc\" });\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 38 || c === 40) { // Down/Up arrow\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme[c === 38? \"previous\" : \"next\"]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tform: {\n\t\t\t\"submit\": this.close.bind(this, { reason: \"submit\" })\n\t\t},\n\t\tul: {\n\t\t\t\"mousedown\": function(evt) {\n\t\t\t\tvar li = evt.target;\n\n\t\t\t\tif (li !== this) {\n\n\t\t\t\t\twhile (li && !/li/i.test(li.nodeName)) {\n\t\t\t\t\t\tli = li.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (li && evt.button === 0) { // Only select on left click\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(li, evt.target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.bind(this.input, this._events.input);\n\t$.bind(this.input.form, this._events.form);\n\t$.bind(this.ul, this._events.ul);\n\n\tif (this.input.hasAttribute(\"list\")) {\n\t\tthis.list = \"#\" + this.input.getAttribute(\"list\");\n\t\tthis.input.removeAttribute(\"list\");\n\t}\n\telse {\n\t\tthis.list = this.input.getAttribute(\"data-list\") || o.list || [];\n\t}\n\n\t_.all.push(this);\n};\n\n_.prototype = {\n\tset list(list) {\n\t\tif (Array.isArray(list)) {\n\t\t\tthis._list = list;\n\t\t}\n\t\telse if (typeof list === \"string\" && list.indexOf(\",\") > -1) {\n\t\t\t\tthis._list = list.split(/\\s*,\\s*/);\n\t\t}\n\t\telse { // Element or CSS selector\n\t\t\tlist = $(list);\n\n\t\t\tif (list && list.children) {\n\t\t\t\tvar items = [];\n\t\t\t\tslice.apply(list.children).forEach(function (el) {\n\t\t\t\t\tif (!el.disabled) {\n\t\t\t\t\t\tvar text = el.textContent.trim();\n\t\t\t\t\t\tvar value = el.value || text;\n\t\t\t\t\t\tvar label = el.label || text;\n\t\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\t\titems.push({ label: label, value: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._list = items;\n\t\t\t}\n\t\t}\n\n\t\tif (document.activeElement === this.input) {\n\t\t\tthis.evaluate();\n\t\t}\n\t},\n\n\tget selected() {\n\t\treturn this.index > -1;\n\t},\n\n\tget opened() {\n\t\treturn this.isOpened;\n\t},\n\n\tclose: function (o) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ul.setAttribute(\"hidden\", \"\");\n\t\tthis.isOpened = false;\n\t\tthis.index = -1;\n\n\t\t$.fire(this.input, \"awesomplete-close\", o || {});\n\t},\n\n\topen: function () {\n\t\tthis.ul.removeAttribute(\"hidden\");\n\t\tthis.isOpened = true;\n\n\t\tif (this.autoFirst && this.index === -1) {\n\t\t\tthis.goto(0);\n\t\t}\n\n\t\t$.fire(this.input, \"awesomplete-open\");\n\t},\n\n\tdestroy: function() {\n\t\t//remove events from the input and its form\n\t\t$.unbind(this.input, this._events.input);\n\t\t$.unbind(this.input.form, this._events.form);\n\n\t\t//move the input out of the awesomplete container and remove the container and its children\n\t\tvar parentNode = this.container.parentNode;\n\n\t\tparentNode.insertBefore(this.input, this.container);\n\t\tparentNode.removeChild(this.container);\n\n\t\t//remove autocomplete and aria-autocomplete attributes\n\t\tthis.input.removeAttribute(\"autocomplete\");\n\t\tthis.input.removeAttribute(\"aria-autocomplete\");\n\n\t\t//remove this awesomeplete instance from the global array of instances\n\t\tvar indexOfAwesomplete = _.all.indexOf(this);\n\n\t\tif (indexOfAwesomplete !== -1) {\n\t\t\t_.all.splice(indexOfAwesomplete, 1);\n\t\t}\n\t},\n\n\tnext: function () {\n\t\tvar count = this.ul.children.length;\n\t\tthis.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) );\n\t},\n\n\tprevious: function () {\n\t\tvar count = this.ul.children.length;\n\t\tvar pos = this.index - 1;\n\n\t\tthis.goto(this.selected && pos !== -1 ? pos : count - 1);\n\t},\n\n\t// Should not be used, highlights specific item without any checks!\n\tgoto: function (i) {\n\t\tvar lis = this.ul.children;\n\n\t\tif (this.selected) {\n\t\t\tlis[this.index].setAttribute(\"aria-selected\", \"false\");\n\t\t}\n\n\t\tthis.index = i;\n\n\t\tif (i > -1 && lis.length > 0) {\n\t\t\tlis[i].setAttribute(\"aria-selected\", \"true\");\n\t\t\tthis.status.textContent = lis[i].textContent;\n\n\t\t\t// scroll to highlighted element in case parent's height is fixed\n\t\t\tthis.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight;\n\n\t\t\t$.fire(this.input, \"awesomplete-highlight\", {\n\t\t\t\ttext: this.suggestions[this.index]\n\t\t\t});\n\t\t}\n\t},\n\n\tselect: function (selected, origin) {\n\t\tif (selected) {\n\t\t\tthis.index = $.siblingIndex(selected);\n\t\t} else {\n\t\t\tselected = this.ul.children[this.index];\n\t\t}\n\n\t\tif (selected) {\n\t\t\tvar suggestion = this.suggestions[this.index];\n\n\t\t\tvar allowed = $.fire(this.input, \"awesomplete-select\", {\n\t\t\t\ttext: suggestion,\n\t\t\t\torigin: origin || selected\n\t\t\t});\n\n\t\t\tif (allowed) {\n\t\t\t\tthis.replace(suggestion);\n\t\t\t\tthis.close({ reason: \"select\" });\n\t\t\t\t$.fire(this.input, \"awesomplete-selectcomplete\", {\n\t\t\t\t\ttext: suggestion\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\n\tevaluate: function() {\n\t\tvar me = this;\n\t\tvar value = this.input.value;\n\n\t\tif (value.length >= this.minChars && this._list.length > 0) {\n\t\t\tthis.index = -1;\n\t\t\t// Populate list with options that match\n\t\t\tthis.ul.innerHTML = \"\";\n\n\t\t\tthis.suggestions = this._list\n\t\t\t\t.map(function(item) {\n\t\t\t\t\treturn new Suggestion(me.data(item, value));\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn me.filter(item, value);\n\t\t\t\t});\n\n\t\t\tif (this.sort !== false) {\n\t\t\t\tthis.suggestions = this.suggestions.sort(this.sort);\n\t\t\t}\n\n\t\t\tthis.suggestions = this.suggestions.slice(0, this.maxItems);\n\n\t\t\tthis.suggestions.forEach(function(text) {\n\t\t\t\t\tme.ul.appendChild(me.item(text, value));\n\t\t\t\t});\n\n\t\t\tif (this.ul.children.length === 0) {\n\t\t\t\tthis.close({ reason: \"nomatches\" });\n\t\t\t} else {\n\t\t\t\tthis.open();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.close({ reason: \"nomatches\" });\n\t\t}\n\t}\n};\n\n// Static methods/properties\n\n_.all = [];\n\n_.FILTER_CONTAINS = function (text, input) {\n\treturn RegExp($.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.FILTER_STARTSWITH = function (text, input) {\n\treturn RegExp(\"^\" + $.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.SORT_BYLENGTH = function (a, b) {\n\tif (a.length !== b.length) {\n\t\treturn a.length - b.length;\n\t}\n\n\treturn a < b? -1 : 1;\n};\n\n_.ITEM = function (text, input) {\n\tvar html = input.trim() === \"\" ? text : text.replace(RegExp($.regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n\treturn $.create(\"li\", {\n\t\tinnerHTML: html,\n\t\t\"aria-selected\": \"false\"\n\t});\n};\n\n_.REPLACE = function (text) {\n\tthis.input.value = text.value;\n};\n\n_.DATA = function (item/*, input*/) { return item; };\n\n// Private functions\n\nfunction Suggestion(data) {\n\tvar o = Array.isArray(data)\n\t ? { label: data[0], value: data[1] }\n\t : typeof data === \"object\" && \"label\" in data && \"value\" in data ? data : { label: data, value: data };\n\n\tthis.label = o.label || o.value;\n\tthis.value = o.value;\n}\nObject.defineProperty(Suggestion.prototype = Object.create(String.prototype), \"length\", {\n\tget: function() { return this.label.length; }\n});\nSuggestion.prototype.toString = Suggestion.prototype.valueOf = function () {\n\treturn \"\" + this.label;\n};\n\nfunction configure(instance, properties, o) {\n\tfor (var i in properties) {\n\t\tvar initial = properties[i],\n\t\t attrValue = instance.input.getAttribute(\"data-\" + i.toLowerCase());\n\n\t\tif (typeof initial === \"number\") {\n\t\t\tinstance[i] = parseInt(attrValue);\n\t\t}\n\t\telse if (initial === false) { // Boolean options must be false by default anyway\n\t\t\tinstance[i] = attrValue !== null;\n\t\t}\n\t\telse if (initial instanceof Function) {\n\t\t\tinstance[i] = null;\n\t\t}\n\t\telse {\n\t\t\tinstance[i] = attrValue;\n\t\t}\n\n\t\tif (!instance[i] && instance[i] !== 0) {\n\t\t\tinstance[i] = (i in o)? o[i] : initial;\n\t\t}\n\t}\n}\n\n// Helpers\n\nvar slice = Array.prototype.slice;\n\nfunction $(expr, con) {\n\treturn typeof expr === \"string\"? (con || document).querySelector(expr) : expr || null;\n}\n\nfunction $$(expr, con) {\n\treturn slice.call((con || document).querySelectorAll(expr));\n}\n\n$.create = function(tag, o) {\n\tvar element = document.createElement(tag);\n\n\tfor (var i in o) {\n\t\tvar val = o[i];\n\n\t\tif (i === \"inside\") {\n\t\t\t$(val).appendChild(element);\n\t\t}\n\t\telse if (i === \"around\") {\n\t\t\tvar ref = $(val);\n\t\t\tref.parentNode.insertBefore(element, ref);\n\t\t\telement.appendChild(ref);\n\t\t}\n\t\telse if (i in element) {\n\t\t\telement[i] = val;\n\t\t}\n\t\telse {\n\t\t\telement.setAttribute(i, val);\n\t\t}\n\t}\n\n\treturn element;\n};\n\n$.bind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function (event) {\n\t\t\t\telement.addEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.unbind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function(event) {\n\t\t\t\telement.removeEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.fire = function(target, type, properties) {\n\tvar evt = document.createEvent(\"HTMLEvents\");\n\n\tevt.initEvent(type, true, true );\n\n\tfor (var j in properties) {\n\t\tevt[j] = properties[j];\n\t}\n\n\treturn target.dispatchEvent(evt);\n};\n\n$.regExpEscape = function (s) {\n\treturn s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n\n$.siblingIndex = function (el) {\n\t/* eslint-disable no-cond-assign */\n\tfor (var i = 0; el = el.previousElementSibling; i++);\n\treturn i;\n};\n\n// Initialization\n\nfunction init() {\n\t$$(\"input.awesomplete\").forEach(function (input) {\n\t\tnew _(input);\n\t});\n}\n\n// Are we in a browser? Check for Document constructor\nif (typeof Document !== \"undefined\") {\n\t// DOM already loaded?\n\tif (document.readyState !== \"loading\") {\n\t\tinit();\n\t}\n\telse {\n\t\t// Wait for it\n\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t}\n}\n\n_.$ = $;\n_.$$ = $$;\n\n// Make sure to export Awesomplete on self when in a browser\nif (typeof self !== \"undefined\") {\n\tself.Awesomplete = _;\n}\n\n// Expose Awesomplete as a CJS module\nif (typeof module === \"object\" && module.exports) {\n\tmodule.exports = _;\n}\n\nreturn _;\n\n}());\n", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* globals jQuery */\n\nexports.lory = lory;\n\nvar _detectPrefixes = __webpack_require__(2);\n\nvar _detectPrefixes2 = _interopRequireDefault(_detectPrefixes);\n\nvar _detectSupportsPassive = __webpack_require__(3);\n\nvar _detectSupportsPassive2 = _interopRequireDefault(_detectSupportsPassive);\n\nvar _dispatchEvent = __webpack_require__(4);\n\nvar _dispatchEvent2 = _interopRequireDefault(_dispatchEvent);\n\nvar _defaults = __webpack_require__(6);\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar slice = Array.prototype.slice;\n\nfunction lory(slider, opts) {\n var position = void 0;\n var slidesWidth = void 0;\n var frameWidth = void 0;\n var slides = void 0;\n\n /**\n * slider DOM elements\n */\n var frame = void 0;\n var slideContainer = void 0;\n var prevCtrl = void 0;\n var nextCtrl = void 0;\n var prefixes = void 0;\n var transitionEndCallback = void 0;\n\n var index = 0;\n var options = {};\n var touchEventParams = (0, _detectSupportsPassive2.default)() ? { passive: true } : false;\n\n /**\n * if object is jQuery convert to native DOM element\n */\n if (typeof jQuery !== 'undefined' && slider instanceof jQuery) {\n slider = slider[0];\n }\n\n /**\n * private\n * set active class to element which is the current slide\n */\n function setActiveElement(slides, currentIndex) {\n var _options = options,\n classNameActiveSlide = _options.classNameActiveSlide;\n\n\n slides.forEach(function (element, index) {\n if (element.classList.contains(classNameActiveSlide)) {\n element.classList.remove(classNameActiveSlide);\n }\n });\n\n slides[currentIndex].classList.add(classNameActiveSlide);\n }\n\n /**\n * private\n * setupInfinite: function to setup if infinite is set\n *\n * @param {array} slideArray\n * @return {array} array of updated slideContainer elements\n */\n function setupInfinite(slideArray) {\n var _options2 = options,\n infinite = _options2.infinite;\n\n\n var front = slideArray.slice(0, infinite);\n var back = slideArray.slice(slideArray.length - infinite, slideArray.length);\n\n front.forEach(function (element) {\n var cloned = element.cloneNode(true);\n\n slideContainer.appendChild(cloned);\n });\n\n back.reverse().forEach(function (element) {\n var cloned = element.cloneNode(true);\n\n slideContainer.insertBefore(cloned, slideContainer.firstChild);\n });\n\n slideContainer.addEventListener(prefixes.transitionEnd, onTransitionEnd);\n\n return slice.call(slideContainer.children);\n }\n\n /**\n * [dispatchSliderEvent description]\n * @return {[type]} [description]\n */\n function dispatchSliderEvent(phase, type, detail) {\n (0, _dispatchEvent2.default)(slider, phase + '.lory.' + type, detail);\n }\n\n /**\n * translates to a given position in a given time in milliseconds\n *\n * @to {number} number in pixels where to translate to\n * @duration {number} time in milliseconds for the transistion\n * @ease {string} easing css property\n */\n function translate(to, duration, ease) {\n var style = slideContainer && slideContainer.style;\n\n if (style) {\n style[prefixes.transition + 'TimingFunction'] = ease;\n style[prefixes.transition + 'Duration'] = duration + 'ms';\n\n if (prefixes.hasTranslate3d) {\n style[prefixes.transform] = 'translate3d(' + to + 'px, 0, 0)';\n } else {\n style[prefixes.transform] = 'translate(' + to + 'px, 0)';\n }\n }\n }\n\n /**\n * slidefunction called by prev, next & touchend\n *\n * determine nextIndex and slide to next postion\n * under restrictions of the defined options\n *\n * @direction {boolean}\n */\n function slide(nextIndex, direction) {\n var _options3 = options,\n slideSpeed = _options3.slideSpeed,\n slidesToScroll = _options3.slidesToScroll,\n infinite = _options3.infinite,\n rewind = _options3.rewind,\n rewindSpeed = _options3.rewindSpeed,\n ease = _options3.ease,\n classNameActiveSlide = _options3.classNameActiveSlide;\n\n\n var duration = slideSpeed;\n\n var nextSlide = direction ? index + 1 : index - 1;\n var maxOffset = Math.round(slidesWidth - frameWidth);\n\n dispatchSliderEvent('before', 'slide', {\n index: index,\n nextSlide: nextSlide\n });\n\n /**\n * Reset control classes\n */\n if (prevCtrl) {\n prevCtrl.classList.remove('disabled');\n }\n if (nextCtrl) {\n nextCtrl.classList.remove('disabled');\n }\n\n if (typeof nextIndex !== 'number') {\n if (direction) {\n nextIndex = index + slidesToScroll;\n } else {\n nextIndex = index - slidesToScroll;\n }\n }\n\n nextIndex = Math.min(Math.max(nextIndex, 0), slides.length - 1);\n\n if (infinite && direction === undefined) {\n nextIndex += infinite;\n }\n\n var nextOffset = Math.min(Math.max(slides[nextIndex].offsetLeft * -1, maxOffset * -1), 0);\n\n if (rewind && Math.abs(position.x) === maxOffset && direction) {\n nextOffset = 0;\n nextIndex = 0;\n duration = rewindSpeed;\n }\n\n /**\n * translate to the nextOffset by a defined duration and ease function\n */\n translate(nextOffset, duration, ease);\n\n /**\n * update the position with the next position\n */\n position.x = nextOffset;\n\n /**\n * update the index with the nextIndex only if\n * the offset of the nextIndex is in the range of the maxOffset\n */\n if (slides[nextIndex].offsetLeft <= maxOffset) {\n index = nextIndex;\n }\n\n if (infinite && (nextIndex === slides.length - infinite || nextIndex === 0)) {\n if (direction) {\n index = infinite;\n }\n\n if (!direction) {\n index = slides.length - infinite * 2;\n }\n\n position.x = slides[index].offsetLeft * -1;\n\n transitionEndCallback = function transitionEndCallback() {\n translate(slides[index].offsetLeft * -1, 0, undefined);\n };\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n\n /**\n * update classes for next and prev arrows\n * based on user settings\n */\n if (prevCtrl && !infinite && nextIndex === 0) {\n prevCtrl.classList.add('disabled');\n }\n\n if (nextCtrl && !infinite && !rewind && nextIndex + 1 === slides.length) {\n nextCtrl.classList.add('disabled');\n }\n\n dispatchSliderEvent('after', 'slide', {\n currentSlide: index\n });\n }\n\n /**\n * public\n * setup function\n */\n function setup() {\n dispatchSliderEvent('before', 'init');\n\n prefixes = (0, _detectPrefixes2.default)();\n options = _extends({}, _defaults2.default, opts);\n\n var _options4 = options,\n classNameFrame = _options4.classNameFrame,\n classNameSlideContainer = _options4.classNameSlideContainer,\n classNamePrevCtrl = _options4.classNamePrevCtrl,\n classNameNextCtrl = _options4.classNameNextCtrl,\n enableMouseEvents = _options4.enableMouseEvents,\n classNameActiveSlide = _options4.classNameActiveSlide,\n initialIndex = _options4.initialIndex;\n\n\n index = initialIndex;\n frame = slider.getElementsByClassName(classNameFrame)[0];\n slideContainer = frame.getElementsByClassName(classNameSlideContainer)[0];\n prevCtrl = slider.getElementsByClassName(classNamePrevCtrl)[0];\n nextCtrl = slider.getElementsByClassName(classNameNextCtrl)[0];\n\n position = {\n x: slideContainer.offsetLeft,\n y: slideContainer.offsetTop\n };\n\n if (options.infinite) {\n slides = setupInfinite(slice.call(slideContainer.children));\n } else {\n slides = slice.call(slideContainer.children);\n\n if (prevCtrl) {\n prevCtrl.classList.add('disabled');\n }\n\n if (nextCtrl && slides.length === 1 && !options.rewind) {\n nextCtrl.classList.add('disabled');\n }\n }\n\n reset();\n\n if (classNameActiveSlide) {\n setActiveElement(slides, index);\n }\n\n if (prevCtrl && nextCtrl) {\n prevCtrl.addEventListener('click', prev);\n nextCtrl.addEventListener('click', next);\n }\n\n frame.addEventListener('touchstart', onTouchstart, touchEventParams);\n\n if (enableMouseEvents) {\n frame.addEventListener('mousedown', onTouchstart);\n frame.addEventListener('click', onClick);\n }\n\n options.window.addEventListener('resize', onResize);\n\n dispatchSliderEvent('after', 'init');\n }\n\n /**\n * public\n * reset function: called on resize\n */\n function reset() {\n var _options5 = options,\n infinite = _options5.infinite,\n ease = _options5.ease,\n rewindSpeed = _options5.rewindSpeed,\n rewindOnResize = _options5.rewindOnResize,\n classNameActiveSlide = _options5.classNameActiveSlide,\n initialIndex = _options5.initialIndex;\n\n\n slidesWidth = slideContainer.getBoundingClientRect().width || slideContainer.offsetWidth;\n frameWidth = frame.getBoundingClientRect().width || frame.offsetWidth;\n\n if (frameWidth === slidesWidth) {\n slidesWidth = slides.reduce(function (previousValue, slide) {\n return previousValue + slide.getBoundingClientRect().width || slide.offsetWidth;\n }, 0);\n }\n\n if (rewindOnResize) {\n index = initialIndex;\n } else {\n ease = null;\n rewindSpeed = 0;\n }\n\n if (infinite) {\n translate(slides[index + infinite].offsetLeft * -1, 0, null);\n\n index = index + infinite;\n position.x = slides[index].offsetLeft * -1;\n } else {\n translate(slides[index].offsetLeft * -1, rewindSpeed, ease);\n position.x = slides[index].offsetLeft * -1;\n }\n\n if (classNameActiveSlide) {\n setActiveElement(slice.call(slides), index);\n }\n }\n\n /**\n * public\n * slideTo: called on clickhandler\n */\n function slideTo(index) {\n slide(index);\n }\n\n /**\n * public\n * returnIndex function: called on clickhandler\n */\n function returnIndex() {\n return index - options.infinite || 0;\n }\n\n /**\n * public\n * prev function: called on clickhandler\n */\n function prev() {\n slide(false, false);\n }\n\n /**\n * public\n * next function: called on clickhandler\n */\n function next() {\n slide(false, true);\n }\n\n /**\n * public\n * destroy function: called to gracefully destroy the lory instance\n */\n function destroy() {\n dispatchSliderEvent('before', 'destroy');\n\n // remove event listeners\n frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);\n frame.removeEventListener('touchstart', onTouchstart, touchEventParams);\n frame.removeEventListener('touchmove', onTouchmove, touchEventParams);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mousedown', onTouchstart);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n frame.removeEventListener('click', onClick);\n\n options.window.removeEventListener('resize', onResize);\n\n if (prevCtrl) {\n prevCtrl.removeEventListener('click', prev);\n }\n\n if (nextCtrl) {\n nextCtrl.removeEventListener('click', next);\n }\n\n // remove cloned slides if infinite is set\n if (options.infinite) {\n Array.apply(null, Array(options.infinite)).forEach(function () {\n slideContainer.removeChild(slideContainer.firstChild);\n slideContainer.removeChild(slideContainer.lastChild);\n });\n }\n\n dispatchSliderEvent('after', 'destroy');\n }\n\n // event handling\n\n var touchOffset = void 0;\n var delta = void 0;\n var isScrolling = void 0;\n\n function onTransitionEnd() {\n if (transitionEndCallback) {\n transitionEndCallback();\n\n transitionEndCallback = undefined;\n }\n }\n\n function onTouchstart(event) {\n var _options6 = options,\n enableMouseEvents = _options6.enableMouseEvents;\n\n var touches = event.touches ? event.touches[0] : event;\n\n if (enableMouseEvents) {\n frame.addEventListener('mousemove', onTouchmove);\n frame.addEventListener('mouseup', onTouchend);\n frame.addEventListener('mouseleave', onTouchend);\n }\n\n frame.addEventListener('touchmove', onTouchmove, touchEventParams);\n frame.addEventListener('touchend', onTouchend);\n\n var pageX = touches.pageX,\n pageY = touches.pageY;\n\n\n touchOffset = {\n x: pageX,\n y: pageY,\n time: Date.now()\n };\n\n isScrolling = undefined;\n\n delta = {};\n\n dispatchSliderEvent('on', 'touchstart', {\n event: event\n });\n }\n\n function onTouchmove(event) {\n var touches = event.touches ? event.touches[0] : event;\n var pageX = touches.pageX,\n pageY = touches.pageY;\n\n\n delta = {\n x: pageX - touchOffset.x,\n y: pageY - touchOffset.y\n };\n\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(delta.x) < Math.abs(delta.y));\n }\n\n if (!isScrolling && touchOffset) {\n translate(position.x + delta.x, 0, null);\n }\n\n // may be\n dispatchSliderEvent('on', 'touchmove', {\n event: event\n });\n }\n\n function onTouchend(event) {\n /**\n * time between touchstart and touchend in milliseconds\n * @duration {number}\n */\n var duration = touchOffset ? Date.now() - touchOffset.time : undefined;\n\n /**\n * is valid if:\n *\n * -> swipe attempt time is over 300 ms\n * and\n * -> swipe distance is greater than 25px\n * or\n * -> swipe distance is more then a third of the swipe area\n *\n * @isValidSlide {Boolean}\n */\n var isValid = Number(duration) < 300 && Math.abs(delta.x) > 25 || Math.abs(delta.x) > frameWidth / 3;\n\n /**\n * is out of bounds if:\n *\n * -> index is 0 and delta x is greater than 0\n * or\n * -> index is the last slide and delta is smaller than 0\n *\n * @isOutOfBounds {Boolean}\n */\n var isOutOfBounds = !index && delta.x > 0 || index === slides.length - 1 && delta.x < 0;\n\n var direction = delta.x < 0;\n\n if (!isScrolling) {\n if (isValid && !isOutOfBounds) {\n slide(false, direction);\n } else {\n translate(position.x, options.snapBackSpeed);\n }\n }\n\n touchOffset = undefined;\n\n /**\n * remove eventlisteners after swipe attempt\n */\n frame.removeEventListener('touchmove', onTouchmove);\n frame.removeEventListener('touchend', onTouchend);\n frame.removeEventListener('mousemove', onTouchmove);\n frame.removeEventListener('mouseup', onTouchend);\n frame.removeEventListener('mouseleave', onTouchend);\n\n dispatchSliderEvent('on', 'touchend', {\n event: event\n });\n }\n\n function onClick(event) {\n if (delta.x) {\n event.preventDefault();\n }\n }\n\n function onResize(event) {\n reset();\n\n dispatchSliderEvent('on', 'resize', {\n event: event\n });\n }\n\n // trigger initial setup\n setup();\n\n // expose public api\n return {\n setup: setup,\n reset: reset,\n slideTo: slideTo,\n returnIndex: returnIndex,\n prev: prev,\n next: next,\n destroy: destroy\n };\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = detectPrefixes;\n/**\n * Detecting prefixes for saving time and bytes\n */\nfunction detectPrefixes() {\n var transform = void 0;\n var transition = void 0;\n var transitionEnd = void 0;\n var hasTranslate3d = void 0;\n\n (function () {\n var el = document.createElement('_');\n var style = el.style;\n\n var prop = void 0;\n\n if (style[prop = 'webkitTransition'] === '') {\n transitionEnd = 'webkitTransitionEnd';\n transition = prop;\n }\n\n if (style[prop = 'transition'] === '') {\n transitionEnd = 'transitionend';\n transition = prop;\n }\n\n if (style[prop = 'webkitTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'msTransform'] === '') {\n transform = prop;\n }\n\n if (style[prop = 'transform'] === '') {\n transform = prop;\n }\n\n document.body.insertBefore(el, null);\n style[transform] = 'translate3d(0, 0, 0)';\n hasTranslate3d = !!global.getComputedStyle(el).getPropertyValue(transform);\n document.body.removeChild(el);\n })();\n\n return {\n transform: transform,\n transition: transition,\n transitionEnd: transitionEnd,\n hasTranslate3d: hasTranslate3d\n };\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = detectSupportsPassive;\nfunction detectSupportsPassive() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {}\n\n return supportsPassive;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dispatchEvent;\n\nvar _customEvent = __webpack_require__(5);\n\nvar _customEvent2 = _interopRequireDefault(_customEvent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * dispatch custom events\n *\n * @param {element} el slideshow element\n * @param {string} type custom event name\n * @param {object} detail custom detail information\n */\nfunction dispatchEvent(target, type, detail) {\n var event = new _customEvent2.default(type, {\n bubbles: true,\n cancelable: true,\n detail: detail\n });\n\n target.dispatchEvent(event);\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\nvar NativeCustomEvent = global.CustomEvent;\n\nfunction useNative () {\n try {\n var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {\n }\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n\n// IE >= 9\n'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n\n// IE <= 8\nfunction CustomEvent (type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /**\n * slides scrolled at once\n * @slidesToScroll {Number}\n */\n slidesToScroll: 1,\n\n /**\n * time in milliseconds for the animation of a valid slide attempt\n * @slideSpeed {Number}\n */\n slideSpeed: 300,\n\n /**\n * time in milliseconds for the animation of the rewind after the last slide\n * @rewindSpeed {Number}\n */\n rewindSpeed: 600,\n\n /**\n * time for the snapBack of the slider if the slide attempt was not valid\n * @snapBackSpeed {Number}\n */\n snapBackSpeed: 200,\n\n /**\n * Basic easing functions: https://developer.mozilla.org/de/docs/Web/CSS/transition-timing-function\n * cubic bezier easing functions: http://easings.net/de\n * @ease {String}\n */\n ease: 'ease',\n\n /**\n * if slider reached the last slide, with next click the slider goes back to the startindex.\n * use infinite or rewind, not both\n * @rewind {Boolean}\n */\n rewind: false,\n\n /**\n * number of visible slides or false\n * use infinite or rewind, not both\n * @infinite {number}\n */\n infinite: false,\n\n /**\n * the slide index to show when the slider is initialized.\n * @initialIndex {number}\n */\n initialIndex: 0,\n\n /**\n * class name for slider frame\n * @classNameFrame {string}\n */\n classNameFrame: 'js_frame',\n\n /**\n * class name for slides container\n * @classNameSlideContainer {string}\n */\n classNameSlideContainer: 'js_slides',\n\n /**\n * class name for slider prev control\n * @classNamePrevCtrl {string}\n */\n classNamePrevCtrl: 'js_prev',\n\n /**\n * class name for slider next control\n * @classNameNextCtrl {string}\n */\n classNameNextCtrl: 'js_next',\n\n /**\n * class name for current active slide\n * if emptyString then no class is set\n * @classNameActiveSlide {string}\n */\n classNameActiveSlide: 'active',\n\n /**\n * enables mouse events for swiping on desktop devices\n * @enableMouseEvents {boolean}\n */\n enableMouseEvents: false,\n\n /**\n * window instance\n * @window {object}\n */\n window: typeof window !== 'undefined' ? window : null,\n\n /**\n * If false, slides lory to the first slide on window resize.\n * @rewindOnResize {boolean}\n */\n rewindOnResize: true\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(1);\n\n\n/***/ })\n/******/ ]);\n});", ";(function () {\r\n\r\n\t\"use strict\";\r\n\r\n\tvar utils = require('../utils/utils');\r\n\tvar validate = require('../utils/form-validation');\r\n\r\n\tvar _form = document.getElementById('disconnect-form');\r\n\r\n\tfunction _disconnectForm() {\r\n\t\tvar duplicateUser = document.getElementById('sameuser'),\r\n\t\t\tduplicateAddress = document.getElementById('sameaddress'),\r\n\t\t\tpropertyOwnerSection = document.getElementById('prop-owner-section'),\r\n\t\t\tgasSection = document.getElementById('gas-confirmation-section'),\r\n\t\t\tabandonmentSection = document.getElementById('abandonment-section'),\r\n\t\t\tauthorizationSection = document.getElementById('authorization-section'),\r\n\t\t\timpactSection = document.getElementById('impact-services-section'),\r\n\t\t\tmeterAccessSection = document.getElementById('meter-access-section'),\r\n\t\t\timpactOtherCheckbox = document.getElementById('is-other'),\r\n\t\t\tbuildingTypeSection = document.getElementById('building-type-section'),\r\n\t\t\tinputs = document.querySelectorAll('input[type=text], input[type=tel], input[type=email], input[type=number], select'),\r\n\t\t\tsubmitButton = document.getElementById('send-mail'),\r\n\t\t\taccountNumberGas = document.getElementById('account-number-gas'),\r\n\t\t\taccountNumber = document.getElementById('account-number'),\r\n\t\t\ti;\r\n\r\n\t\tduplicateUser.addEventListener('change', sameUserInfo);\r\n\t\tduplicateAddress.addEventListener('change', sameSiteInfo);\r\n\t\tpropertyOwnerSection.addEventListener('change', prospectiveOwnerDisclaimer);\r\n\t\tgasSection.addEventListener('change', gasSectionDisclaimer);\r\n\t\tabandonmentSection.addEventListener('change', abandonmentSectionDisclaimer);\r\n\t\timpactSection.addEventListener('change', onChangeImpactSection);\r\n\t\timpactOtherCheckbox.addEventListener('change', onChangeOtherInput);\r\n\t\tmeterAccessSection.addEventListener('change', meterAccess);\r\n\t\tbuildingTypeSection.addEventListener('change', onChangeOtherInput);\r\n\t\tauthorizationSection.addEventListener('change', authorizationError);\r\n\t\taccountNumberGas.addEventListener('keypress', noAlphaChars);\r\n\t\taccountNumber.addEventListener('keypress', noAlphaChars);\r\n\t\t_form.addEventListener('submit', onSubmitForm);\r\n\t\t\r\n\t\tfor (i = 0; i < inputs.length; i++) {\r\n\t\t\tplaceholder(inputs[i].getAttribute('name'));\r\n\t\t\tsetVisibility(inputs[i], utils.getSiblings(inputs[i])[0]);\r\n\t\t}\r\n\r\n\t\tfunction noAlphaChars(e) {\r\n\t\t\tif (e.which < 48 || e.which > 57) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction placeholder(fieldName) {\r\n\t\t\tvar named = document.getElementsByName(fieldName),\r\n\t\t\t\ti;\r\n\r\n\t\t\tfor (i = 0; i < named.length; i++) {\r\n\t\t\t\t(addListeners(named[i]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction addListeners(n) {\r\n\t\t\tn.addEventListener('click', onClick);\r\n\t\t\tn.addEventListener('keydown', onClick);\r\n\t\t\tn.addEventListener('keypress', onClick);\r\n\t\t\tn.addEventListener('keyup', onClick);\r\n\t\t\tn.addEventListener('focus', onClick);\r\n\t\t\tn.addEventListener('focus', onFocus);\r\n\t\t\tn.addEventListener('blur', onClick);\r\n\t\t\tn.addEventListener('blur', onBlur);\r\n\r\n\t\t\tfunction onClick(e) {\r\n\t\t\t\tsetVisibility(e.target, e.target.nextElementSibling);\r\n\t\t\t}\r\n\r\n\t\t\tfunction onFocus(e) {\r\n\t\t\t\thideLabel(e.target.nextElementSibling);\r\n\t\t\t}\r\n\r\n\t\t\tfunction onBlur(e) {\r\n\t\t\t\tshowLabel(e.target.nextElementSibling);\r\n\t\t\t\tif (validate.validateRequiredField(e.target)) {\r\n\t\t\t\t\tvalidate.removeFormError(e.target.parentElement);\r\n\t\t\t\t\tvalidate.removeFormError(e.target);\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setVisibility(field, label) {\r\n\t\t\tif (field.value === '') {\r\n\t\t\t\tlabel.style.visibility = 'visible';\r\n\t\t\t} else {\r\n\t\t\t\tlabel.style.visibility = 'hidden';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction hideLabel(label) {\r\n\t\t\tlabel.style.opacity = 0.5;\r\n\t\t}\r\n\r\n\t\tfunction showLabel(label) {\r\n\t\t\tlabel.style.opacity = 1;\r\n\t\t}\r\n\r\n\t\tfunction sameUserInfo(e) {\r\n\t\t\tif (duplicateUser.checked) {\r\n\t\t\t\tvar firstName = document.getElementById('firstName'),\r\n\t\t\t\t\tlastName = document.getElementById('lastName'),\r\n\t\t\t\t\tphoneNumber = document.getElementById('prim-phone'),\r\n\t\t\t\t\temail = document.getElementById('email'),\r\n\t\t\t\t\tinputs = [firstName, lastName, phoneNumber, email];\r\n\t\t\t\t\r\n\t\t\t\tfirstName.value = document.getElementById('PreparerFirstName').value;\r\n\t\t\t\tlastName.value = document.getElementById('PreparerLastName').value;\r\n\t\t\t\tphoneNumber.value = document.getElementById('PreparerPhone').value;\r\n\t\t\t\temail.value = document.getElementById('PreparerEmail').value;\r\n\r\n\t\t\t\tfor(i = 0; i < inputs.length; i++) {\r\n\t\t\t\t\tsetVisibility(inputs[i], utils.getSiblings(inputs[i])[0]);\r\n\t\t\t\r\n\t\t\t\t\tif (validate.validateRequiredField(e.target)) {\r\n\t\t\t\t\t\tvalidate.removeFormError(e.target.parentElement);\r\n\t\t\t\t\t\tvalidate.removeFormError(e.target);\r\n\t\t\t\t\t} \r\n\t\t\t\t}\r\n\t\t\t} \r\n\t\t}\r\n\r\n\t\tfunction sameSiteInfo(e) {\r\n\t\t\tif (duplicateAddress.checked) {\r\n\t\t\t\tvar siteAddressOne = document.getElementById('saddress1'),\r\n\t\t\t\t\tsiteAddressTwo = document.getElementById('saddress2'),\r\n\t\t\t\t\tsiteCity = document.getElementById('scity'),\r\n\t\t\t\t\tsiteState = document.getElementById('sstate'),\r\n\t\t\t\t\tsiteZip = document.getElementById('szip'),\r\n\t\t\t\t\tinputs = [siteAddressOne, siteAddressTwo, siteCity, siteState, siteZip];\r\n\r\n\t\t\t\tsiteAddressOne.value = document.getElementById('address1').value;\r\n\t\t\t\tsiteAddressTwo.value = document.getElementById('address2').value;\r\n\t\t\t\tsiteCity.value = document.getElementById('city').value;\r\n\t\t\t\tsiteState.value = document.getElementById('state').value;\r\n\t\t\t\tsiteZip.value = document.getElementById('zipcode').value;\r\n\r\n\t\t\t\tfor(i = 0; i < inputs.length; i++) {\r\n\t\t\t\t\tsetVisibility(inputs[i], utils.getSiblings(inputs[i])[0]);\r\n\r\n\t\t\t\t\tif (validate.validateRequiredField(e.target)) {\r\n\t\t\t\t\t\tvalidate.removeFormError(e.target.parentElement);\r\n\t\t\t\t\t\tvalidate.removeFormError(e.target);\r\n\t\t\t\t\t} \r\n\t\t\t\t}\r\n\t\t\t} \r\n\t\t}\r\n\r\n\t\tfunction prospectiveOwnerDisclaimer() {\r\n\t\t\tvar\tdisclaimer = document.getElementById('prosp-owner-disc'),\r\n\t\t\t\tprospectiveOwner = document.getElementById('prosp-owner');\r\n\r\n\t\t\tif (prospectiveOwner.checked) {\r\n\t\t\t\tdisclaimer.style.display = 'block';\r\n\t\t\t\tsubmitButton.disabled = true;\r\n\t\t\t} else {\r\n\t\t\t\tdisclaimer.style.display = 'none';\r\n\t\t\t\tsubmitButton.disabled = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction gasSectionDisclaimer() {\r\n\t\t\tvar\tyesGasInput = document.getElementById('gas-yes-input'),\r\n\t\t\t\tnoGasError = document.getElementById('gas-no-disc'),\r\n\t\t\t\tunknownGasError = document.getElementById('gas-unknown-disc'),\r\n\t\t\t\tnoGasButton = document.getElementById('gas-no'),\r\n\t\t\t\tuknonwnGasButton = document.getElementById('gas-unknown');\r\n\r\n\t\t\tif (noGasButton.checked) {\r\n\t\t\t\tnoGasError.style.display = 'block';\r\n\t\t\t\tunknownGasError.style.display = 'none';\r\n\t\t\t\tyesGasInput.style.display = 'none';\r\n\t\t\t} else if (uknonwnGasButton.checked) {\r\n\t\t\t\tunknownGasError.style.display = 'block';\r\n\t\t\t\tnoGasError.style.display = 'none';\r\n\t\t\t\tyesGasInput.style.display = 'none';\r\n\t\t\t} else {\r\n\t\t\t\tnoGasError.style.display = 'none';\r\n\t\t\t\tunknownGasError.style.display = 'none';\r\n\t\t\t\tyesGasInput.style.display = 'block';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction abandonmentSectionDisclaimer() {\r\n\t\t\tvar\tdisclaimer = document.getElementById('temp-disc'),\r\n\t\t\t\ttemporaryRequest = document.getElementById('temp');\r\n\r\n\t\t\tif (temporaryRequest.checked) {\r\n\t\t\t\tdisclaimer.style.display = 'block';\r\n\t\t\t} else {\r\n\t\t\t\tdisclaimer.style.display = 'none';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onChangeOtherInput() {\r\n\t\t\tvar btOtherRadioButton = document.getElementById('other'),\r\n\t\t\t\tbtOtherInputWrapper = document.getElementById('bt-other-field-wrapper'),\r\n\t\t\t\tbtOtherField = document.getElementById('other-field'),\r\n\t\t\t\tisOtherCheckbox = document.getElementById('is-other'),\r\n\t\t\t\tisOtherInputWrapper = document.getElementById('is-other-field-wrapper'),\r\n\t\t\t\tisOtherField = document.getElementById('is-other-field');\r\n\t\t\t\t\r\n\t\t\tif (btOtherRadioButton.checked) {\r\n\t\t\t\tbtOtherInputWrapper.style.display = 'block';\r\n\t\t\t\tbtOtherField.setAttribute('required', 'required');\r\n\t\t\t\tutils.addClass(btOtherField, 'required');\r\n\t\t\t} else {\r\n\t\t\t\tbtOtherInputWrapper.style.display = 'none';\r\n\t\t\t\tbtOtherField.removeAttribute('required');\r\n\t\t\t\tutils.removeClass(btOtherField, 'required');\r\n\t\t\t}\r\n\r\n\t\t\tif (isOtherCheckbox.checked) {\r\n\t\t\t\tisOtherInputWrapper.style.display = 'block';\r\n\t\t\t\tisOtherField.setAttribute('required', 'required');\r\n\t\t\t\tutils.addClass(isOtherField, 'required');\r\n\r\n\t\t\t} else {\r\n\t\t\t\tisOtherInputWrapper.style.display = 'none';\r\n\t\t\t\tisOtherField.removeAttribute('required');\r\n\t\t\t\tutils.removeClass(isOtherField, 'required');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onChangeImpactSection(e) {\r\n\t\t\tif (validate.validateRequiredField(e.target)) {\r\n\t\t\t\tvalidate.removeFormError(impactSection);\r\n\t\t\t} \r\n\t\t}\r\n\r\n\t\tfunction meterAccess() {\r\n\t\t\tvar\taccessibleMeter = document.getElementById('accessible'),\r\n\t\t\t\trestrictedDisclaimer = document.getElementById('restricted-disclaimer');\r\n\r\n\t\t\tif (accessibleMeter.checked) {\r\n\t\t\t\trestrictedDisclaimer.style.display = 'none';\r\n\t\t\t} else {\r\n\t\t\t\trestrictedDisclaimer.style.display = 'block';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction authorizationError() {\r\n\t\t\tvar\tdisclaimer = document.getElementById('disagree-disc'),\r\n\t\t\t\tdisagreeButton = document.getElementById('disagree');\r\n\t\t\t\t\r\n\r\n\t\t\tif (disagreeButton.checked) {\r\n\t\t\t\tdisclaimer.style.display = 'block';\r\n\t\t\t\tsubmitButton.disabled = true;\r\n\t\t\t} else {\r\n\t\t\t\tdisclaimer.style.display = 'none';\r\n\t\t\t\tsubmitButton.disabled = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onSubmitForm(e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar requiredFields = document.querySelectorAll('#disconnect-form input[type=text].required, #disconnect-form input[type=tel].required, #disconnect-form input[type=email].required, #disconnect-form input[type=number].required, #disconnect-form select.required'),\r\n\t\t\t\timpactServiceCheck = _form.elements['ImpactServices'],\r\n\t\t\t\temailInputs = document.querySelectorAll('input[type=email]'),\r\n\t\t\t\ttelephoneInputs = document.querySelectorAll('input[type=tel]'),\r\n\t\t\t\tcheckCount = 0,\r\n\t\t\t\tj,\r\n\t\t\t\tfieldsValid = true,\r\n\t\t\t\timpactCheckboxesValid = true,\r\n\t\t\t\treadyDateValid = true,\r\n\t\t\t\tpreferredDateValid = true,\r\n\t\t\t\temailValid = true;\r\n\r\n\t\t\t//validate telephone\r\n\t\t\tfor (i = 0; i < telephoneInputs.length; i++) {\r\n\t\t\t\tif (telephoneInputs[i].value !== '') {\r\n\t\t\t\t\tif (validate.phone(telephoneInputs[i])) {\r\n\t\t\t\t\t\tvalidate.removeFormError(telephoneInputs[i].parentElement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfieldsValid = false;\r\n\t\t\t\t\t\tvalidate.addFormError(telephoneInputs[i].parentElement, 'Enter a valid phone number');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfieldsValid = true;\r\n\t\t\t\t\tvalidate.removeFormError(telephoneInputs[i].parentElement);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//validate the text fields\r\n\t\t\tfor (i = 0; i < requiredFields.length; i++) {\r\n\r\n\t\t\t\t//if (phone)\r\n\t\t\t\tif (requiredFields[i].getAttribute('type') == 'tel') {\r\n\t\t\t\t\tif (validate.phone(requiredFields[i])) {\r\n\t\t\t\t\t\tvalidate.removeFormError(requiredFields[i].parentElement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfieldsValid = false;\r\n\t\t\t\t\t\tvalidate.addFormError(requiredFields[i].parentElement, 'Enter a valid phone number');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//if (zip)\r\n\t\t\t\telse if (requiredFields[i].getAttribute('data-attr') == 'zipcode') {\r\n\t\t\t\t\tif (validate.zip(requiredFields[i])) {\r\n\t\t\t\t\t\tvalidate.removeFormError(requiredFields[i].parentElement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfieldsValid = false;\r\n\t\t\t\t\t\tvalidate.addFormError(requiredFields[i].parentElement, 'Enter a valid zip');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (validate.validateRequiredField(requiredFields[i])) {\r\n\t\t\t\t\t\tvalidate.removeFormError(requiredFields[i].parentElement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfieldsValid = false;\r\n\t\t\t\t\t\tvalidate.addFormError(requiredFields[i].parentElement, 'Required Field');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//validate email\r\n\t\t\tfor (i = 0; i < emailInputs.length; i++) {\r\n\t\t\t\tif (emailInputs[i].value !== '') {\r\n\t\t\t\t\tif (validate.email(emailInputs[i])) {\r\n\t\t\t\t\t\tvalidate.removeFormError(emailInputs[i].parentElement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfieldsValid = false;\r\n\t\t\t\t\t\tvalidate.addFormError(emailInputs[i].parentElement, 'Enter a valid email');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//validate the \"Ready date\"\r\n\t\t\tif (isValidDate(document.getElementById('ready-date-month').value, document.getElementById('ready-date-day').value, document.getElementById('ready-date-year').value)) {\r\n\t\t\t\tvalidate.removeFormError(document.getElementById('ready-date'));\r\n\t\t\t} else {\r\n\t\t\t\treadyDateValid = false;\r\n\t\t\t\tvalidate.addFormError(document.getElementById('ready-date'), \"This Date must be greater than or equal to Today's Date. Enter today's date if the property is already vacant and ready for gas pipe and meter removal.\");\r\n\t\t\t}\r\n\r\n\t\t\t//validate the \"Impact\" checkboxes\r\n\t\t\tfor (j = 0; j < impactServiceCheck.length; j++) {\r\n\t\t\t\tcheckCount += (impactServiceCheck[j].checked) ? 1 : 0;\r\n\r\n\t\t\t\tif (checkCount > 0) {\r\n\t\t\t\t\tvalidate.removeFormError(impactSection);\r\n\t\t\t\t} else {\r\n\t\t\t\t\timpactCheckboxesValid = false;\r\n\t\t\t\t\tvalidate.addFormError(impactSection, 'Please select a checkbox');\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//validate the \"Preferred date\" \r\n\t\t\tif (isValidDate(document.getElementById('p-month').value, document.getElementById('p-day').value, document.getElementById('p-year').value)) {\r\n\t\t\t\tvalidate.removeFormError(document.getElementById('preferred-date'));\r\n\t\t\t} else {\r\n\t\t\t\treadyDateValid = false;\r\n\t\t\t\tvalidate.addFormError(document.getElementById('preferred-date'), 'Date must be greater or equal to todays date');\r\n\t\t\t}\r\n\r\n\t\t\tif (fieldsValid && impactCheckboxesValid && readyDateValid && preferredDateValid && emailValid) {\r\n\t\t\t\t_form.submit();\r\n\t\t\t} else {\r\n\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t\tdocument.getElementById('form-level-error').style.display = 'block';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction isValidDate(month, day, year) {\r\n\t\t\tvar newDate = new Date(),\r\n\t\t\t\tcurrentMonth = newDate.getMonth()+1,\r\n\t\t\t\tcurrentDay = newDate.getDate(),\r\n\t\t\t\tcurrentYear = newDate.getFullYear(),\r\n\t\t\t\tcurrentDate = new Date(currentMonth + '/' + currentDay + '/' + currentYear),\r\n\t\t\t\tdateString = month+'/'+day+'/'+year,\r\n\t\t\t\tdate = new Date(dateString);\r\n\r\n\t\t\treturn validate.date(dateString).isValid && currentDate <= date;\r\n\t\t}\r\n\t}\r\n\r\n\tmodule.exports = {\r\n\t\tinit: function(){\r\n\t\t\tvar disconnectForm = document.getElementById('disconnect-form');\r\n\t\t\tif(disconnectForm) {\r\n\t\t\t\t_disconnectForm();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n}());", ";(function () {\r\n\r\n 'use strict';\r\n\r\n var findContractor = require('../Renderings/findContractor'); \r\n\r\n module.exports = {\r\n init: function(){\r\n findContractor.init('/webapi/contractors/find');\r\n }\r\n };\r\n\r\n})();", "/**\r\nAuthor: Ben Bowes - bb@benbowes.com.\r\nSource: https://github.com/benbowes/Accessible-Accordian-Class-Pure-JS-CSS\r\n\r\nNote:\r\n------\r\nThis accordion has been modified from the original source to support multiple accordions and keyboard navigation.\r\n\r\nExample of use:\r\n---------------\r\n\r\nvar accordion = require('[path/to/accordion.js]');\r\n\r\naccordion.init({\r\n heading: '.accordion-panel__heading',\r\n content: '.accordion-panel__content'\r\n});\r\n\r\nMarkup:\r\n-------\r\n\r\n<ul class=\"accordion\" role=\"tablist\" aria-multiselectable=\"false\" data-accordion>\r\n <li>\r\n <h3 class=\"accordion-panel__heading\"><a href=\"javascript:;\">Accordion Panel One</a></h3>\r\n <div class=\"accordion-panel__content\">\r\n <h4>Potenti ligula torquent</h4>\r\n <p>Diam adipiscing eu vestibulum condimentum et gravida lacus parturient dignissim proin habitasse adipiscing torquent netus blandit vestibulum semper porttitor velit habitant pretium pharetra fusce inceptos quam quam metus.Potenti ligula torquent vestibulum cum sem blandit a eu et vestibulum aliquet.</p>\r\n </div>\r\n </li>\r\n</ul>\r\n*/\r\n\r\n;(function () {\r\n\r\n 'use strict';\r\n\r\n var utils = require('../utils/utils'),\r\n inTab = false;\r\n\r\n function AccordionPanel( parentEl, headingEl, panelHolder, index, accordionCount ) {\r\n // The AccordionPanel Class controls each of the collapsable panels spawned from Accordion Class\r\n var self = this;\r\n\r\n this.accordionCount = accordionCount;\r\n this.parent = parentEl; \r\n this.panelHolder = panelHolder; \r\n this.index = index;\r\n this.headingEl = headingEl; // this is the clickable heading\r\n this.listEl = headingEl.parentNode; // this is the clickable heading\r\n this.linkEl = headingEl.childNodes[0];\r\n this.contentEl = this.parent.querySelectorAll( this.panelHolder.panelSelectors['content'] )[this.index]; \r\n this.isSelected = false;\r\n this.offsetPos = 0;\r\n\r\n this.setPos = function(){\r\n self.offsetPos = self.listEl.offsetTop;\r\n };\r\n\r\n this.createListID = function(){\r\n var str = this.linkEl.innerHTML;\r\n str = str.toLowerCase().split(' ').join('-');\r\n\r\n return str; \r\n };\r\n\r\n this.setupAccessibility = function(){\r\n self.listEl.setAttribute('id', self.listID);\r\n\r\n self.headingEl.setAttribute( 'role', 'tab' );\r\n self.headingEl.setAttribute( 'aria-selected', 'false' );\r\n self.headingEl.setAttribute( 'id', 'WG-Accordion-'+this.accordionCount+'-Heading-'+ self.index );\r\n self.headingEl.setAttribute( 'aria-controls', 'WG-Accordion-'+this.accordionCount+'-Content-'+ self.index );\r\n self.headingEl.setAttribute( 'tabindex', '-1' );\r\n self.headingEl.setAttribute( 'aria-expanded', 'false' ); // dynamic html attribself\r\n self.contentEl.setAttribute( 'id', 'WG-Accordion-'+this.accordionCount+'-Content-'+ self.index );\r\n self.contentEl.setAttribute( 'aria-labelledby', 'WG-Accordion-'+this.accordionCount+'-Heading-'+ self.index );\r\n self.contentEl.setAttribute( 'role', 'tabpanel' );\r\n self.contentEl.setAttribute( 'tabindex', '-1' );\r\n self.contentEl.setAttribute( 'aria-hidden', 'true' ); // dynamic html attribute\r\n };\r\n this.select = function() {\r\n self.isSelected = true;\r\n\r\n utils.addClass(self.listEl, 'active');\r\n\r\n utils.addClass(self.headingEl, 'active');\r\n self.headingEl.setAttribute( 'aria-expanded', 'true' );\r\n self.headingEl.setAttribute( 'aria-selected', 'true' );\r\n self.headingEl.setAttribute( 'tabindex', '0' );\r\n\r\n utils.addClass(self.contentEl, 'active');\r\n self.contentEl.setAttribute( 'aria-hidden', 'false' );\r\n\r\n self.headingEl.focus();\r\n\r\n self.scrollTo(self.offsetPos);\r\n };\r\n this.scrollTo = function (pos) {\r\n window.scrollTo(0, pos);\r\n };\r\n this.unselect = function() {\r\n self.isSelected = false;\r\n\r\n self.listEl.removeAttribute('class');\r\n\r\n utils.removeClass(self.headingEl, 'active');\r\n self.headingEl.setAttribute( 'aria-expanded', 'false' );\r\n self.headingEl.setAttribute( 'aria-selected', 'false');\r\n self.headingEl.setAttribute( 'tabindex', '-1' ); \r\n\r\n utils.removeClass(self.contentEl, 'active'); \r\n self.contentEl.setAttribute( 'aria-hidden', 'true' );\r\n };\r\n this.keydown = function(event){\r\n var keypress = utils.keyPressed(event);\r\n var prevHeading = (this.parentNode.previousElementSibling !== null) ? this.parentNode.previousElementSibling.firstElementChild : null;\r\n var nextHeading = (this.parentNode.nextElementSibling !== null) ? this.parentNode.nextElementSibling.firstElementChild : null;\r\n\r\n switch (keypress) {\r\n case 'ARROW_DOWN':\r\n if(nextHeading !== null){\r\n nextHeading.focus();\r\n nextHeading.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n break;\r\n case 'ARROW_UP':\r\n if(prevHeading !== null){\r\n prevHeading.focus();\r\n prevHeading.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n break;\r\n // case 'TAB':\r\n // if(nextHeading !== null){\r\n // nextHeading.focus();\r\n // }\r\n // break;\r\n // case 'SHIFT_TAB':\r\n // if(prevHeading !== null){\r\n // prevHeading.focus();\r\n // }\r\n // break;\r\n case 'SPACE':\r\n this.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n break;\r\n }\r\n };\r\n\r\n this.listID = this.createListID();\r\n this.setupAccessibility();\r\n\r\n this.headingEl.addEventListener( \"click\", function (event) {\r\n \r\n if (self.isSelected){\r\n self.unselect(); // already open, presume user wants it closed\r\n }\r\n else {\r\n self.panelHolder.resetPanels(); // close all panels\r\n self.select(); // then open desired panel\r\n }\r\n this.focus();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n });\r\n\r\n if(inTab){\r\n document.addEventListener('tabEvent', function(){\r\n if(self.listEl.offsetTop > 0){\r\n self.setPos();\r\n }\r\n });\r\n }else{\r\n this.setPos();\r\n }\r\n\r\n this.headingEl.addEventListener('keydown', this.keydown);\r\n\r\n return this;\r\n }\r\n\r\n function Accordion(panelSelectorsObj, accordionCount){\r\n // var self = this;\r\n this.panels = []; \r\n this.panelSelectors = panelSelectorsObj; \r\n this.accordion = document.querySelectorAll( '[data-accordion]' )[accordionCount];\r\n this.accordion.setAttribute('data-accordion', 'WG-Accordion-'+accordionCount);\r\n this.keepScroll = false;\r\n\r\n this.accordionPanels = this.accordion.querySelectorAll( this.panelSelectors['heading'] ); \r\n\r\n this.hashSelect = function (hash) {\r\n var index = 0;\r\n \r\n this.panels.some( function (elem) {\r\n if( hash.substr(1).toLowerCase() == elem.listID ){\r\n index = elem.index;\r\n }\r\n });\r\n return index;\r\n };\r\n\r\n // this.hashLoad = function(){\r\n // if(window.location.hash !== ''){\r\n // self.resetPanels();\r\n // self.panels[this.hashSelect(window.location.hash)].select();\r\n // }else{\r\n // self.resetPanels();\r\n // // self.panels[0].select();\r\n // }\r\n // };\r\n\r\n // resetPanels() - used for unselecting/collapsing AccordionPanels\r\n this.resetPanels = function () {\r\n this.panels.forEach( function (elem) {\r\n elem.unselect();\r\n });\r\n };\r\n // makePanel( <HTMLElement>, <position index used for naming> ) - Spawns a new AccordionPanel and pushes it into the master list of AccordionPanels controlled by Accordian\r\n this.makePanel = function ( parentElement, panelElement, index, accordionCount ) {\r\n var panel = new AccordionPanel(parentElement, panelElement, this, index, accordionCount );\r\n this.panels.push( panel );\r\n document.removeEventListener('tabEvent', panel.setPos());\r\n };\r\n\r\n if(this.accordion.hasAttributes('data-in-tab')) {\r\n inTab = true;\r\n }\r\n\r\n for (var i = 0; i < this.accordionPanels.length; i++) {\r\n this.makePanel( this.accordion, this.accordionPanels[i], i, accordionCount );\r\n }\r\n // this.hashLoad();\r\n\r\n return this;\r\n }\r\n\r\n module.exports = {\r\n module_name: 'Accordion',\r\n\r\n init: function (args){\r\n var accordionEl = document.querySelectorAll('[data-accordion]');\r\n\r\n if(accordionEl.length > 0){\r\n for (var i = 0; i < accordionEl.length ; i++) {\r\n new Accordion(args, i);\r\n }\r\n }\r\n }\r\n };\r\n\r\n})();", ";(function () {\r\n\r\n 'use strict';\r\n\r\n // required modules\r\n var utils = require('../utils/utils');\r\n var Handlebars = require('handlebars.runtime');\r\n var templates = require('templates')(Handlebars);\r\n\r\n // DOM elements\r\n var _categoryTabs = document.querySelector('#media-center-categories');\r\n var _pageForm = document.querySelector('#article-form');\r\n var _categoryForm = document.querySelector('#category-form');\r\n var _pageNumberHidden = document.querySelector('#media_grid_page');\r\n var _pageNumberCfHidden = document.querySelector('#media_grid_page_cf');\r\n var _includeFeaturedArticleHidden = document.querySelector('#media_grid_featured_id');\r\n var _includeFeaturedArticleCfHidden = document.querySelector('#media_grid_featured_id_cf');\r\n var _articlesCategoryField = document.querySelector('#media_grid_category_cf');\r\n\r\n var _articleHolder = document.querySelector('#article-grid ul');\r\n var _featuredArticleHolder = document.querySelector('#featured-article-holder');\r\n\r\n var _articleDB;\r\n if(document.querySelectorAll('#media_grid_db').length > 0) {\r\n //_articleDB = utils.getQueryParam('media_grid_db');\r\n _articleDB = document.querySelector('#media_grid_db').value;\r\n if (_articleDB !== ('master' || 'web' || 'core')) {\r\n window.console.log('security violation: unexpected URL parameter.');\r\n return false;\r\n }\r\n }\r\n\r\n // parameters\r\n var url;\r\n\r\n function _bindStateSelection() {\r\n var categoryTab;\r\n if (_pageForm) {\r\n _pageForm.addEventListener('submit', function(e) {\r\n e.preventDefault();\r\n categoryTab = false;\r\n _getArticles(categoryTab);\r\n });\r\n }\r\n _categoryTabs.addEventListener('click', function(e) {\r\n var clickTarget = e.target,\r\n categoryId = clickTarget.getAttribute('data-category-id');\r\n\r\n e.preventDefault();\r\n\r\n\r\n // Check if the click target is .tab-links > a\r\n if(clickTarget.hasAttribute('data-category-id')) {\r\n _setCategory(categoryId);\r\n categoryTab = true;\r\n _getArticles(categoryTab);\r\n\r\n // Get the current active link\r\n var activeLink = document.querySelector('#media-center-categories a.active');\r\n if(activeLink) {\r\n // If there is a current active link, remove active class\r\n activeLink.classList.remove('active');\r\n }\r\n\r\n clickTarget.classList.add('active');\r\n _updateURLHash(clickTarget.innerHTML);\r\n }\r\n });\r\n _categoryTabs.addEventListener('keydown', _keydown);\r\n window.addEventListener('hashchange', _selectTab);\r\n\r\n _hashLoad();\r\n }\r\n\r\n function _hashLoad () {\r\n if(window.location.hash !== ''){\r\n _selectTab();\r\n }\r\n }\r\n\r\n function _getCurrentTab(){\r\n var hash = window.location.hash;\r\n var hashValue = hash.substr(1,hash.length);\r\n\r\n for (var i = 0; i < _categoryTabs.children.length; i++) {\r\n if(_categoryTabs.children[i].childNodes[0].innerHTML === hashValue){\r\n _categoryTabs.children[i].childNodes[0].focus();\r\n return _categoryTabs.children[i].childNodes[0];\r\n } \r\n }\r\n return false;\r\n }\r\n\r\n function _selectTab () {\r\n if(_getCurrentTab() !== false){\r\n _getCurrentTab().click();\r\n }\r\n }\r\n\r\n function _updateURLHash(hashValue) {\r\n window.location.hash = '#'+hashValue;\r\n }\r\n\r\n function _setCategory(categoryId) {\r\n _articlesCategoryField.value = categoryId;\r\n }\r\n\r\n function _getArticleUrl(pageNumberValue, includeFeaturedArticleValue, articlesCategoryValue, articleDBValue){\r\n var _articleUrl;\r\n\r\n if (articleDBValue) {\r\n if(pageNumberValue.length > 0 && includeFeaturedArticleValue.length === 0 && articlesCategoryValue.length === 0){\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue + '&media_grid_db=' + articleDBValue + '&no-cache='+ new Date().getTime();\r\n } else if (pageNumberValue.length > 0 && includeFeaturedArticleValue.length > 0 && articlesCategoryValue.length === 0){\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue +'&media_featured_id='+ includeFeaturedArticleValue +'&media_grid_db=' + articleDBValue + '&no-cache='+ new Date().getTime();\r\n } else if (pageNumberValue.length > 0 && includeFeaturedArticleValue.length > 0 && articlesCategoryValue.length > 0) {\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue +'&media_featured_id='+ includeFeaturedArticleValue + '&media_grid_category=' + articlesCategoryValue +'&media_grid_db=' + articleDBValue + '&no-cache='+ new Date().getTime();\r\n }\r\n } else {\r\n if (pageNumberValue.length > 0 && includeFeaturedArticleValue.length === 0 && articlesCategoryValue.length === 0){\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue +'&no-cache='+ new Date().getTime();\r\n } else if(pageNumberValue.length > 0 && includeFeaturedArticleValue.length > 0 && articlesCategoryValue.length === 0){\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue +'&media_featured_id='+ includeFeaturedArticleValue +'&no-cache='+ new Date().getTime();\r\n } else if (pageNumberValue.length > 0 && includeFeaturedArticleValue.length > 0 && articlesCategoryValue.length > 0) {\r\n _articleUrl = url + '?media_grid_page=' + pageNumberValue +'&media_featured_id='+ includeFeaturedArticleValue + '&media_grid_category=' + articlesCategoryValue +'&no-cache='+ new Date().getTime();\r\n }\r\n }\r\n\r\n return _articleUrl;\r\n }\r\n\r\n function _getArticles(categoryTab) {\r\n var articleUrl,\r\n pageNumberValue,\r\n includeFeaturedArticleValue,\r\n articlesCategoryValue;\r\n if(categoryTab) {\r\n pageNumberValue = _pageNumberCfHidden.value;\r\n includeFeaturedArticleValue = _includeFeaturedArticleCfHidden.value;\r\n articlesCategoryValue = _articlesCategoryField.value;\r\n } else {\r\n pageNumberValue = _pageNumberHidden.value;\r\n includeFeaturedArticleValue = _includeFeaturedArticleHidden.value;\r\n articlesCategoryValue = _articlesCategoryField.value;\r\n }\r\n\r\n if(pageNumberValue.length === 0 && includeFeaturedArticleValue.length === 0) {\r\n //_articleHolder[0].innerHTML = '';\r\n return;\r\n } else if (_articleDB) {\r\n articleUrl = _getArticleUrl(pageNumberValue, includeFeaturedArticleValue, articlesCategoryValue, _articleDB);\r\n }else{\r\n articleUrl = _getArticleUrl(pageNumberValue, includeFeaturedArticleValue, articlesCategoryValue);\r\n }\r\n\r\n utils.getJSON(articleUrl, function(data) {\r\n var articleTemplate = templates['article_grid_item'];\r\n\r\n //var errMsg = (_appliancesMenu.length === 0) ? 'Please choose a different region' : 'Please choose a different region or appliance';\r\n\r\n if(data.stories.length === 0){\r\n //_rebateHolder[0].innerHTML = '<div class=\"rebate-error\"><h4>No rebates found</h4><p>'+errMsg+'</p></div>';\r\n _articleHolder.innerHTML = \"\";\r\n }else{\r\n if(categoryTab) {\r\n _articleHolder.innerHTML = \"\";\r\n }\r\n\r\n var newArticles = articleTemplate(data);\r\n var newArticlesDOM = utils.stringToDom(newArticles);\r\n for (var j = 0; j < newArticlesDOM.length; j++) {\r\n _articleHolder.appendChild(newArticlesDOM[j]);\r\n }\r\n if(_pageNumberHidden) {\r\n _pageNumberHidden.value = parseInt(pageNumberValue) + 1;\r\n }\r\n }\r\n\r\n if(_pageForm) {\r\n if (!data.more) {\r\n utils.addClass(_pageForm, 'hidden');\r\n } else {\r\n utils.removeClass(_pageForm, 'hidden');\r\n }\r\n }\r\n\r\n if (articlesCategoryValue.length > 0) {\r\n utils.addClass(_featuredArticleHolder, 'hidden');\r\n } else {\r\n utils.removeClass(_featuredArticleHolder, 'hidden');\r\n }\r\n\r\n\r\n }, function(statusText, response) {\r\n console.log('statusText: '+statusText);\r\n console.log('response: '+response);\r\n });\r\n }\r\n function _keydown(event){\r\n var keypress = utils.keyPressed(event);\r\n var target = event.target;\r\n\r\n if(keypress == 'ARROW_DOWN' || keypress == 'ARROW_RIGHT'){\r\n if(target.parentNode.nextElementSibling !== null){\r\n target.parentNode.nextElementSibling.childNodes[0].focus();\r\n target.parentNode.nextElementSibling.childNodes[0].click();\r\n }\r\n }\r\n if(keypress == 'ARROW_UP' || keypress == 'ARROW_LEFT'){\r\n if(target.parentNode.previousElementSibling !== null){\r\n target.parentNode.previousElementSibling.childNodes[0].focus();\r\n target.parentNode.previousElementSibling.childNodes[0].click();\r\n }\r\n }\r\n if(keypress == 'SHIFT_TAB'){ \r\n if(target.parentNode.previousElementSibling !== null){\r\n target.parentNode.previousElementSibling.childNodes[0].focus();\r\n }\r\n }\r\n if(keypress == 'TAB'){\r\n if(target.parentNode.nextElementSibling !== null){\r\n target.parentNode.nextElementSibling.childNodes[0].focus();\r\n }\r\n }\r\n if(keypress == 'SPACE'){\r\n target.click(); \r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n module.exports = {\r\n init: function(jsonURL){\r\n if ((!_pageForm || _pageForm.length === 0) && (!_categoryForm || _categoryForm.length === 0)) {\r\n return;\r\n }\r\n url = jsonURL;\r\n\r\n _bindStateSelection();\r\n }\r\n };\r\n\r\n})();", ";(function () {\r\n /**\r\n * Carousel module.\r\n * @module Renderings/navigation\r\n */\r\n \"use strict\";\r\n var lory = require('lory.js').lory;\r\n var utils = require('../utils/utils');\r\n var doc = window.document;\r\n var SLIDE_SPEED = 500;\r\n var currSlide = 0;\r\n var SLIDE_INTERVAL = 9000;\r\n\r\n /**\r\n * @function\r\n * @name _initCarousel\r\n * @description Initializes carousel component with the carousel library\r\n */\r\n function Carousel(carousel) {\r\n /**\r\n * @type {object}\r\n * @private\r\n * @description Contains the DOM object for the slider container\r\n */\r\n var slider = carousel;\r\n\r\n window.addEventListener('load', function(){\r\n var liFirst = slider.querySelectorAll('.js-slide:first-child');\r\n var liLast = slider.querySelectorAll('.js-slide:last-child');\r\n\r\n if(utils.hasClass(slider,'scEnabledChrome')){\r\n liFirst[0].remove(liFirst.selectedIndex);\r\n liLast[0].remove(liLast.selectedIndex);\r\n }\r\n });\r\n\r\n if (slider) {\r\n var\r\n /**\r\n * @type {object}\r\n * @private\r\n * @description Contains the instance of the carousel object which has API methods used to control the carousel\r\n */\r\n carouselInstance,\r\n\r\n /**\r\n * @type {object}\r\n * @private\r\n * @description Contains all the individual slides in the carousel\r\n */\r\n slides = slider.querySelectorAll('.js-slide'),\r\n\r\n /**\r\n * @type {number}\r\n * @private\r\n * @description Stores the numerical ID of the timer\r\n */\r\n timer,\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Event handler for before.lory.init. Creates dot navigation for carousel.\r\n */\r\n beforeInit = function () {\r\n // Create container for dot navigation\r\n var slidenav = doc.createElement('ul');\r\n slidenav.className = 'slidenav';\r\n\r\n // Add a list of buttons which is the same number as the number of slides\r\n // Each button has the following markup structure:\r\n // <li class=\"slidenav-dot\">\r\n // <button class=\"current\" data-slide=\"0\">\r\n // <span class=\"visuallyhidden\">1 (Current Slide)</span>\r\n // </button>\r\n // </li>\r\n for (var i = 0, len = slides.length; i < len; i++) {\r\n var li = doc.createElement('li'),\r\n button = doc.createElement('button'),\r\n span = doc.createElement('span');\r\n\r\n span.className = 'visuallyhidden';\r\n span.innerHTML = ( i + 1 ) + (( i === 0 ) ? ' (Current Slide)' : '');\r\n\r\n button.className = ( i === 0 ) ? 'current dot' : 'dot';\r\n button.setAttribute('data-slide', i);\r\n button.appendChild(span);\r\n\r\n li.className = 'slidenav-dot';\r\n li.appendChild(button);\r\n\r\n slidenav.appendChild(li);\r\n }\r\n\r\n slidenav.innerHTML += '<li class=\"slidenav-dot\"><button class=\"stop-button\" data-stop=\"true\"><span class=\"visuallyhidden\">Stop Animation </span></button></li>';\r\n\r\n // Add click handler for carousel navigation\r\n slidenav.addEventListener('click', function(event) {\r\n var button = event.target;\r\n if (button.getAttribute('data-slide')) {\r\n stopAnimation();\r\n carouselInstance.slideTo(+button.getAttribute('data-slide'));\r\n } else if (button.getAttribute('data-stop')) {\r\n slider.setAttribute('data-stopped-manually', true);\r\n stopAnimation();\r\n } else if (button.getAttribute('data-start')) {\r\n slider.setAttribute('data-stopped-manually', false);\r\n startAnimation();\r\n }\r\n }, true);\r\n\r\n // carousel.className = 'active carousel with-slidenav';\r\n slider.appendChild(slidenav);\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Event handler for after.lory.init.\r\n * The number of slides change after lory is initialized. This handlers sets the new slides to #slides.\r\n * Also set the tabindex to 0 for the active slide.\r\n */\r\n afterInit = function () {\r\n slides = slider.querySelectorAll('.js-slide');\r\n\r\n Array.prototype.slice.call(slider.querySelectorAll('.js-slide.active .btn'))\r\n .map(function (e) {\r\n e.setAttribute('tabindex', 0);\r\n return e;\r\n });\r\n\r\n // Hackish code to stop mobile Webkit from firing resize when scrolling because the URL bar shrunk.\r\n // Should only run on mobile browsers supporting CSS specification of scrolling behavior\r\n\r\n var bodyObj = document.querySelectorAll('body')[0];\r\n var htmlObj = document.querySelectorAll('html')[0];\r\n\r\n if (bodyObj.style.webkitOverflowScrolling === '' || 'ontouchstart' in window) {\r\n utils.addClass(bodyObj, 'carousel-fix');\r\n utils.addClass(htmlObj, 'carousel-fix');\r\n }\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Event handler for before.lory.slide.\r\n * After the new slide is loaded, set tabindex on all CTA in other slides to -1.\r\n */\r\n afterSlide = function (e) {\r\n slider.querySelectorAll('.slidenav-dot button.current')[0].classList.remove('current');\r\n slider.querySelector('.slidenav-dot button[data-slide=\"' + ( e.detail.currentSlide - 1 ) + '\"]').classList.add('current');\r\n\r\n currSlide = e.detail.currentSlide - 1;\r\n\r\n Array.prototype.slice.call(slider.querySelectorAll('.js-slide .btn'))\r\n .map(function (e) {\r\n e.setAttribute('tabindex', '-1');\r\n return e;\r\n })\r\n .filter(function (e) {\r\n return slider.querySelector('.js-slide.active').contains(e);\r\n })\r\n .map(function (e) {\r\n e.setAttribute('tabindex', 0);\r\n });\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Method to call public method next() of the carousel.\r\n */\r\n nextSlide = function () {\r\n carouselInstance.next();\r\n clearTimeout(timer);\r\n timer = null;\r\n timer = setTimeout(nextSlide, SLIDE_INTERVAL);\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Starts the slider animation. Calls #nextSlide to transition to next slide. Used for event listeners to stop/start animations.\r\n */\r\n startAnimation = function () {\r\n var stoppedManually = slider.getAttribute('data-stopped-manually');\r\n if(stoppedManually === \"false\" || !stoppedManually) {\r\n clearTimeout(timer);\r\n timer = null;\r\n timer = setTimeout(nextSlide, SLIDE_INTERVAL);\r\n var controlButton = slider.querySelector('[data-stop], [data-start]');\r\n controlButton.className = 'stop-button';\r\n controlButton.removeAttribute('data-stop');\r\n controlButton.setAttribute('data-stop', 'true');\r\n controlButton.innerHTML = '<span class=\"visuallyhidden\">Stop Animation</span>';\r\n }\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Stops the slider animation. Calls #nextSlide to transition to next slide. Used for event listeners to stop/start animations.\r\n */\r\n suspendAnimation = function () {\r\n clearTimeout(timer);\r\n timer = null;\r\n },\r\n\r\n /**\r\n * @type {function}\r\n * @private\r\n * @description Stops the slider animation. This is used for the pause/play button.\r\n */\r\n stopAnimation = function () {\r\n clearTimeout(timer);\r\n timer = null;\r\n var controlButton = slider.querySelector('[data-stop], [data-start]');\r\n controlButton.className = 'start-button';\r\n controlButton.removeAttribute('data-stop');\r\n controlButton.setAttribute('data-start', 'true');\r\n controlButton.innerHTML = '<span class=\"visuallyhidden\">Start Animation</span>';\r\n };\r\n\r\n var ul = slider.querySelector('.js-frame > ul');\r\n\r\n slider.addEventListener('before.lory.init', beforeInit);\r\n slider.addEventListener('after.lory.init', afterInit);\r\n slider.addEventListener('after.lory.slide', afterSlide);\r\n slider.addEventListener('on.lory.resize', function () {\r\n var winWidth;\r\n if (window.orientation === (90 || 270)) {\r\n winWidth = screen.height;\r\n } else {\r\n winWidth = screen.width;\r\n }\r\n var transformValue = winWidth * -(currSlide+1);\r\n\r\n if(winWidth == window.innerWidth) {\r\n ul.style.WebkitTransform = 'translate3d('+transformValue+'px,0,0)';\r\n }\r\n });\r\n /*\r\n NOTE: Not sure why but this will fix the swipe\r\n from not working on an iOS device.\r\n */\r\n slider.addEventListener('touchstart', function () {});\r\n\r\n carouselInstance = lory(slider, {\r\n classNameFrame: 'js-frame',\r\n classNameSlideContainer: 'js-slides',\r\n classNamePrevCtrl: 'js-prev',\r\n classNameNextCtrl: 'js-next',\r\n infinite: 1,\r\n slideSpeed: SLIDE_SPEED\r\n });\r\n\r\n // Following snippet is sourced from: https://git.io/vaxHd\r\n // Suspend the animation if the mouse enters the carousel\r\n // or if an element of the carousel (that is not the current\r\n // slide) receives focus.\r\n // (Re-)start animation when the mouse leaves or the focus\r\n // is removed.\r\n slider.addEventListener('mouseenter', suspendAnimation);\r\n slider.addEventListener('mouseleave', startAnimation);\r\n\r\n slider.addEventListener('focusin', function(event) {\r\n if (!utils.hasClass(event.target, 'js-slide')) {\r\n suspendAnimation();\r\n }\r\n });\r\n slider.addEventListener('focusout', function(event) {\r\n if (!utils.hasClass(event.target, 'js-slide')) {\r\n startAnimation();\r\n }\r\n });\r\n\r\n timer = setTimeout(nextSlide, SLIDE_INTERVAL);\r\n\r\n window.carouselTimer = timer;\r\n }\r\n }\r\n\r\n module.exports = {\r\n /**\r\n * @function\r\n * @name init\r\n * @description Init method for carousel module\r\n */\r\n init: function(){\r\n var carousel = doc.querySelector('.js-slider');\r\n\r\n if(carousel){\r\n if(!carousel.classList.contains('scEnabledChrome')){\r\n Array.prototype.slice.call(document.querySelectorAll('.js-slider')).forEach(function (element) {\r\n new Carousel(element);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n}());\r\n", ";(function () {\r\n\r\n 'use strict';\r\n\r\n // required modules\r\n var utils = require('../utils/utils');\r\n var validate = require('../utils/form-validation');\r\n var awesomplete = require('../../node_modules/awesomplete/awesomplete');\r\n var Handlebars = require('handlebars.runtime');\r\n var templates = require('templates')(Handlebars);\r\n\r\n // DOM elements\r\n var zip = document.getElementById('zip');\r\n var _pageForm = document.querySelector('#contractor-form');\r\n var _formSelect = document.querySelector('#contractor-form select');\r\n var _applianceType = document.querySelector('#appliance-value');\r\n var _contractorHolder = document.querySelector('#find-contractor-search-result');\r\n var _spinnerHolder = document.querySelector('#find-contractor-results-wrapper');\r\n var _adContainer = document.querySelectorAll('.ads');\r\n\r\n // parameters\r\n var url;\r\n\r\n function _bindStateSelection() {\r\n _pageForm.addEventListener('submit', function(e) {\r\n e.preventDefault();\r\n if(validate.zip(zip) && validate.validateAllRequiredFields(_pageForm)){\r\n if(_applianceType !== null){\r\n _getContractors();\r\n }else{\r\n _pageForm.submit();\r\n }\r\n }else{\r\n if(_formSelect){\r\n if(!validate.validateRequiredField(_formSelect)){\r\n validate.addFormError(_formSelect.parentElement, 'This field is required');\r\n }\r\n }\r\n if(!validate.zip(zip)){\r\n validate.addFormError(zip.parentElement, 'Invalid Zip Code');\r\n }\r\n }\r\n });\r\n }\r\n\r\n function _getContractorUrl(zipValue, applianceValue){\r\n var _contractorUrl;\r\n\r\n if(zipValue.length > 0 && applianceValue.length > 0){\r\n validate.removeFormError(zip.parentElement);\r\n _contractorUrl = url + '?zipCode=' + zipValue +'&appliance='+ applianceValue +'&no-cache='+ new Date().getTime();\r\n }\r\n return _contractorUrl;\r\n }\r\n\r\n function _getContractors() {\r\n var contractorUrl;\r\n\r\n var applianceValue = _applianceType === null ? _formSelect.value : _applianceType.value;\r\n var zipValue = zip.value;\r\n\r\n contractorUrl = _getContractorUrl(zipValue, applianceValue);\r\n\r\n utils.addClass(_spinnerHolder, 'waiting');\r\n\r\n utils.getJSON(contractorUrl, function(data) {\r\n var contractorTemplate = templates['find_a_contractor_results'];\r\n\r\n utils.removeClass(_spinnerHolder, 'waiting');\r\n\r\n if(!data.Data.Success && (!data.Data.Contractors || data.Data.Contractors.length === 0)){\r\n _contractorHolder.innerHTML = '<h4>' + data.Data.Message + '</h4>';\r\n return;\r\n }else{\r\n _contractorHolder.innerHTML = '';\r\n var newContractors = contractorTemplate(data.Data);\r\n var newContractorsDOM = utils.stringToDom(newContractors);\r\n for (var j = 0; j < newContractorsDOM.length; j++) {\r\n _contractorHolder.appendChild(newContractorsDOM[j]);\r\n }\r\n for (var k = 0; k < _adContainer.length; k++) {\r\n utils.addClass(_adContainer[k], 'hidden');\r\n }\r\n }\r\n\r\n }, function(statusText, response) {\r\n window.console.log('statusText: '+statusText);\r\n window.console.log('response: '+response);\r\n });\r\n }\r\n\r\n function _formSelectHandler () {\r\n if(_formSelect.value.length > 0){\r\n validate.removeFormError(_formSelect.parentElement);\r\n }\r\n }\r\n\r\n module.exports = {\r\n init: function(jsonURL){\r\n if (zip) {\r\n document.getElementById('zip').addEventListener('input', function(){\r\n return utils.maxLengthCheck(this);\r\n });\r\n awesomplete = new Awesomplete(zip, {\r\n minChars: 1,\r\n maxItems: 5\r\n });\r\n }\r\n\r\n if(_formSelect){\r\n _formSelect.addEventListener('change', _formSelectHandler);\r\n }\r\n\r\n if (!_pageForm || _pageForm.length === 0) {\r\n return;\r\n }\r\n\r\n url = jsonURL;\r\n\r\n _bindStateSelection();\r\n\r\n }\r\n };\r\n\r\n})();", ";(function () {\r\n\r\n \"use strict\";\r\n var doc = window.document;\r\n var primary = doc.querySelectorAll('.primary-nav > li');\r\n var toggleNav = doc.querySelector('.toggle-nav');\r\n\r\n function _bindNavigation() {\r\n doc.addEventListener('keydown', _checkButton);\r\n\r\n if (primary) {\r\n for(var i = 0; i < primary.length; i++) {\r\n if(window.innerWidth > 960) {\r\n primary[i].addEventListener('mouseover', _addClass);\r\n primary[i].addEventListener('mouseout', _removeClass);\r\n }\r\n primary[i].addEventListener('click', _navClick);\r\n primary[i].addEventListener('focus', _isFocused);\r\n }\r\n }\r\n\r\n if (toggleNav) {\r\n toggleNav.addEventListener('click', _toggle);\r\n }\r\n }\r\n\r\n function _isFocused (e) {\r\n for(var i = 0; i < primary.length; i++) {\r\n primary[i].classList.remove('isSelected');\r\n if(e.target === primary[i]){\r\n primary[i].classList.add('isSelected');\r\n }\r\n }\r\n }\r\n\r\n function _navClick(e) {\r\n if(window.innerWidth < 960) {\r\n e.target.parentNode.classList.toggle('isSelected');\r\n }\r\n }\r\n\r\n function _checkButton(e) { \r\n if(e.keyCode === 13) {\r\n e.target.childNodes[0].click();\r\n }\r\n if(e.keyCode === 9) {\r\n if (primary) {\r\n for(var i = 0; i < primary.length; i++) {\r\n if(document.activeElement === primary[i]) {\r\n getSiblings(primary[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function getSiblings(elem) {\r\n var siblings = [];\r\n var sibling = elem.parentNode.firstChild;\r\n for ( ; sibling; sibling = sibling.nextSibling ) {\r\n if ( sibling.nodeType === 1 && sibling !== elem ) {\r\n siblings.push( sibling );\r\n if(sibling.classList.contains('isSelected')) {\r\n sibling.classList.remove('isSelected');\r\n }\r\n }\r\n }\r\n return siblings;\r\n }\r\n\r\n\r\n function _toggle(e) {\r\n e.preventDefault();\r\n e.target.classList.toggle('isSelected');\r\n }\r\n\r\n function _addClass(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n e.target.parentNode.classList.add('isSelected');\r\n e.target.parentNode.focus();\r\n getSiblings(e.target.parentNode);\r\n }\r\n\r\n function _removeClass(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n e.target.parentNode.blur();\r\n e.target.parentNode.classList.remove('isSelected');\r\n }\r\n\r\n module.exports = {\r\n init: function(){\r\n _bindNavigation();\r\n }\r\n };\r\n}());", ";(function () {\r\n\r\n 'use strict';\r\n\r\n // required modules\r\n var utils = require('../utils/utils');\r\n var Handlebars = require('handlebars.runtime');\r\n var templates = require('templates')(Handlebars);\r\n\r\n // DOM elements\r\n var _rebateMenu = document.querySelectorAll('#rebate-regions');\r\n var _appliancesMenu = document.querySelectorAll('#rebate-appliance');\r\n var _appliancesHidden = document.querySelectorAll('#rebates-list-appliance-value');\r\n var _commercialOrResidential = document.querySelector('#rebates-commercial-value');\r\n var _rebateHolder = document.querySelectorAll('#rebate-holder');\r\n\r\n // parameters\r\n var url; // temporary until service is set up\r\n\r\n function _bindStateSelection() {\r\n _rebateMenu[0].addEventListener('change', function() {\r\n _getRebates();\r\n });\r\n if(_appliancesMenu.length > 0){\r\n _appliancesMenu[0].addEventListener('change', function() {\r\n _getRebates();\r\n });\r\n }\r\n }\r\n\r\n function _getRebateUrl(regionValue, applianceValue, commercialValue){\r\n var _rebateUrl;\r\n\r\n if(regionValue.length > 0 && applianceValue.length === 0){\r\n _rebateUrl = url + '?region=' + regionValue;\r\n }else if(regionValue.length === 0 && applianceValue.length > 0){\r\n _rebateUrl = url + '?appliance='+ applianceValue;\r\n }else if(regionValue.length > 0 && applianceValue.length > 0){\r\n _rebateUrl = url + '?region=' + regionValue +'&appliance='+ applianceValue;\r\n }\r\n\r\n if(commercialValue.length > 0) {\r\n if (regionValue.length === 0 && applianceValue.length === 0) {\r\n _rebateUrl = url + '?commercial=' + commercialValue;\r\n } else {\r\n _rebateUrl = _rebateUrl + '&commercial=' + commercialValue;\r\n }\r\n }\r\n\r\n _rebateUrl = _rebateUrl + '&no-cache='+ new Date().getTime();\r\n\r\n return _rebateUrl;\r\n }\r\n\r\n function _getRebates() {\r\n var rebateUrl; \r\n var regionValue = _rebateMenu[0].options[_rebateMenu[0].selectedIndex].value;\r\n var applianceValue = (_appliancesMenu[0] !== undefined) ? _appliancesMenu[0].options[_appliancesMenu[0].selectedIndex].value : _appliancesHidden[0].value;\r\n var commercialValue = _commercialOrResidential.value;\r\n\r\n if(_appliancesMenu.length > 0){\r\n if(regionValue.length === 0 && applianceValue.length === 0){\r\n _rebateHolder[0].innerHTML = '';\r\n return;\r\n }\r\n }else{\r\n if(regionValue.length === 0){\r\n _rebateHolder[0].innerHTML = '';\r\n return;\r\n }\r\n }\r\n rebateUrl = _getRebateUrl(regionValue, applianceValue, commercialValue);\r\n \r\n utils.getJSON(rebateUrl, function(data) {\r\n var standardTemplate = templates['standard_rebate'];\r\n var premiumTemplate = templates['premium_rebate'];\r\n var customTemplate = templates['custom_rebate'];\r\n\r\n var errMsg = (_appliancesMenu.length === 0) ? 'Please choose a different region' : 'Please choose a different region or appliance';\r\n\r\n if(data.standard.length === 0 && data.premium.length === 0 && data.custom.length === 0){\r\n _rebateHolder[0].innerHTML = '<div class=\"rebate-error\"><h4>No rebates found</h4><p>'+errMsg+'</p></div>';\r\n }else{\r\n _rebateHolder[0].innerHTML = customTemplate(data) + premiumTemplate(data) + standardTemplate(data);\r\n }\r\n \r\n }, function(statusText, response) {\r\n console.log('statusText: '+statusText);\r\n console.log('response: '+response);\r\n });\r\n }\r\n\r\n module.exports = {\r\n init: function(jsonURL){\r\n if (_rebateMenu.length === 0) {\r\n return;\r\n }\r\n // jsonURL = '/Assets/WashGas/generated-src/js/getrebates.json';\r\n url = jsonURL;\r\n\r\n _bindStateSelection();\r\n }\r\n };\r\n\r\n})();", ";(function () {\r\n\r\n \"use strict\";\r\n function _toggleSelected(e, windowSize) {\r\n e.preventDefault();\r\n\r\n if(windowSize) {\r\n e.target\r\n .parentNode\r\n .parentNode\r\n .nextElementSibling\r\n .classList\r\n .toggle('isSelected');\r\n } else {\r\n var search = window.document.querySelector('.search-icon');\r\n search.parentNode.classList.toggle('isSelected');\r\n }\r\n }\r\n\r\n function _onSubmit(e, clicked) {\r\n var current = e.target;\r\n var itemClicked = clicked ? current.previousElementSibling : current;\r\n\r\n var searchUrl = window.document.getElementById('searchurl').value;\r\n\r\n if(itemClicked.value !== '') {\r\n window.location = searchUrl + '#q=' + itemClicked.value;\r\n }\r\n }\r\n\r\n module.exports = {\r\n init: function () {\r\n var searchIcon = window.document.querySelector('.search-icon');\r\n var searchBox = window.document.querySelectorAll('.searchBox button');\r\n var searchInput = window.document.querySelectorAll('.searchBox--input');\r\n var windowWidth = window.innerWidth < 960;\r\n\r\n if(!searchIcon) {\r\n return;\r\n }\r\n \r\n searchIcon.addEventListener('click', function(e) {\r\n _toggleSelected(e, windowWidth);\r\n });\r\n\r\n searchIcon.addEventListener('keydown', function(e) {\r\n if(e.keyCode == 13) {\r\n _toggleSelected(e, windowWidth);\r\n }\r\n });\r\n\r\n if(searchBox) {\r\n if(windowWidth) {\r\n searchBox[1].addEventListener('click', function(e) {\r\n _onSubmit(e, true);\r\n });\r\n\r\n searchInput[1].addEventListener('keydown', function (e) {\r\n if (e.keyCode == 13) {\r\n _onSubmit(e, false);\r\n }\r\n });\r\n } else {\r\n searchBox[0].addEventListener('click', function(e) {\r\n _onSubmit(e, true);\r\n });\r\n searchInput[0].addEventListener('keydown', function (e) {\r\n if (e.keyCode == 13) {\r\n _onSubmit(e, false);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n}());\r\n", ";(function () {\r\n \"use strict\";\r\n\r\n function _sharebuttons() {\r\n var ua = new window.gigya.socialize.UserAction();\r\n ua.setLinkBack(window.washgassocial.url);\r\n ua.setTitle(window.washgassocial.title);\r\n ua.setDescription(window.washgassocial.description);\r\n\r\n var params = {\r\n userAction: ua,\r\n shareButtons: [\r\n {\r\n provider: 'email',\r\n tooltip:'Email this',\r\n iconImgUp: '/Assets/WashGas/images/email-icon.gif',\r\n iconImgOver: '/Assets/WashGas/images/email-icon-hover.gif',\r\n iconOnly: 'true',\r\n },\r\n {\r\n provider: 'twitter',\r\n iconImgUp: '/Assets/WashGas/images/twitter-icon.gif',\r\n iconImgOver: '/Assets/WashGas/images/twitter-icon-hover.gif',\r\n iconOnly: 'true'\r\n },\r\n {\r\n provider: 'facebook',\r\n iconImgUp: '/Assets/WashGas/images/facebook-icon.gif',\r\n iconImgOver: '/Assets/WashGas/images/facebook-icon-hover.gif',\r\n iconOnly: 'true'\r\n },\r\n {\r\n provider: 'linkedin',\r\n iconImgUp: '/Assets/WashGas/images/linkedin-icon.gif',\r\n iconImgOver: '/Assets/WashGas/images/linkedin-icon-hover.gif',\r\n iconOnly: 'true'\r\n }\r\n ],\r\n containerID: 'sharebuttons',\r\n cid:'',\r\n showCounts: 'none',\r\n noButtonBorders: 'true'\r\n };\r\n window.gigya.socialize.showShareBarUI(params);\r\n }\r\n\r\n module.exports = {\r\n init: function () {\r\n var doc = window.document;\r\n var sharebuttons = doc.getElementById(\"sharebuttons\");\r\n if(sharebuttons) {\r\n _sharebuttons();\r\n }\r\n }\r\n };\r\n\r\n}());", ";(function () {\r\n\r\n \"use strict\";\r\n\r\n function _shiftFocus(e) {\r\n e.preventDefault();\r\n var link = e.target.getAttribute('href');\r\n var tgt = window.document.querySelector(link);\r\n tgt.focus();\r\n }\r\n\r\n module.exports = {\r\n init: function () {\r\n var doc = window.document;\r\n var skip = doc.querySelector(\"#skip-navigation\");\r\n\r\n if (skip) {\r\n skip.addEventListener('click', _shiftFocus);\r\n }\r\n }\r\n };\r\n\r\n}());\r\n", "/**\r\nAuthor: Razorfish.\r\n\r\nExample of use:\r\n---------------\r\n\r\nvar tabs = require('[path/to/tabs.js]');\r\ntabs.init();\r\n\r\nMarkup:\r\n-------\r\n\r\n<ul class=\"tabs\" role=\"tablist\" data-tabs>\r\n <li class=\"tabs-title\"><a href=\"#\" aria-selected=\"true\">The Basics</a></li>\r\n <li class=\"tabs-title\"><a href=\"#\">Find A Contractor</a></li>\r\n <li class=\"tabs-title\"><a href=\"#\">Available Rebates</a></li>\r\n</ul>\r\n<div class=\"tabs-content\" data-tabs-content>\r\n <div class=\"tabs-panel\">\r\n <p>The Basics - Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus.</p>\r\n </div>\r\n <div class=\"tabs-panel\"\">\r\n <p>Find A Contractor - Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus.</p>\r\n </div>\r\n <div class=\"tabs-panel\"\">\r\n <p>Available Rebates - Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus.</p>\r\n </div>\r\n</div> \r\n*/\r\n;(function(){\r\n\t\r\n\t'use strict';\r\n\r\n\tvar utils = require('../utils/utils');\r\n\r\n\tfunction Tabs(tabsCount){\r\n\t\tvar self = this;\r\n\r\n\t\tthis.panels = [];\r\n this.tabs = document.querySelectorAll( '[data-tabs]' )[tabsCount];\r\n this.tabsContent = document.querySelectorAll( '[data-tabs-content]' )[tabsCount];\r\n this.tabs.setAttribute('data-tabs', 'WG-Tabs-'+tabsCount);\r\n this.tabsContent.setAttribute('data-tabsContent', 'WG-Tabs-'+tabsCount);\r\n\t\tthis.tabsTitle = this.tabs.querySelectorAll( '.tabs-title' ); \r\n\t\tthis.tabsPanel = this.tabsContent.querySelectorAll( '.tabs-panel' ); \r\n\t\tthis.keepScroll = false;\r\n\r\n\t\tthis.hashSelect = function (hash) {\r\n\t\t\tvar index = 0;\r\n\r\n\t\t\tthis.panels.some( function (elem) {\r\n var tmp = elem.panelID.split('_').join('-');\r\n\r\n\t\t\t\tif( hash.substr(1) == tmp ){\r\n\t\t\t\t\tindex = elem.index;\r\n\r\n self.setTabAnchor();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn index;\r\n };\r\n\r\n this.onhashchangeHandler = function () {\r\n self.hashLoad();\r\n };\r\n\r\n this.setTabAnchor = function(){\r\n var tabAnchor = self.tabs.previousElementSibling;\r\n this.hashValue = tabAnchor;\r\n tabAnchor.setAttribute('id', window.location.hash.substr(1));\r\n };\r\n\r\n this.updateHashValue = function(hashValue){\r\n hashValue = hashValue.split('_').join('-');\r\n\r\n window.location.hash = hashValue;\r\n };\r\n\r\n this.hashLoad = function(){\r\n \tif(window.location.hash !== ''){\r\n\t\t\t\tself.resetPanels();\r\n\t\t\t\tself.panels[this.hashSelect(window.location.hash)].select();\r\n\t\t\t}else{\r\n\t\t\t\tself.resetPanels();\r\n\t\t\t\tself.panels[0].select();\r\n\t\t\t}\r\n };\r\n\r\n\t\tthis.resetPanels = function () {\r\n this.panels.forEach( function (elem) {\r\n elem.unselect();\r\n });\r\n };\r\n\r\n\t\tthis.makeTabsPanel = function(titleElement, panelElement, index){\r\n\t\t\tvar tabsPanel = new TabsPanel( titleElement, panelElement, this, index );\r\n this.panels.push( tabsPanel );\r\n\t\t};\r\n\r\n\t\tif(this.tabsTitle.length != this.tabsPanel.length){\r\n\t\t\tconsole.warn(\"The number of tabs title and tabs panel do not match. Are you missing a title or panel?\");\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < this.tabsTitle.length; i++) {\r\n\t\t\tthis.makeTabsPanel(this.tabsTitle[i], this.tabsPanel[i], i);\r\n\t\t}\r\n\t\t\r\n\t\tthis.hashLoad();\r\n\r\n window.addEventListener('hashchange', this.onhashchangeHandler);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfunction TabsPanel(titleEl, panelEl, tabsPanelObj, index){\r\n\t\tvar self = this;\r\n\r\n\t\tthis.titleEl = titleEl;\r\n\t\tthis.linkEl = titleEl.childNodes[0];\r\n this.index = index;\r\n this.panelEl = panelEl;\r\n this.tabsPanelObj = tabsPanelObj;\r\n this.isSelected = false;\r\n\r\n this.triggerTabEvent = function () {\r\n if (self.panelEl.querySelectorAll('.accordion')){\r\n utils.triggerEvent(document, 'tabEvent');\r\n }\r\n };\r\n\r\n\t\tthis.createPanelID = function(){\r\n\t\t\tvar str = this.linkEl.innerHTML;\r\n\t\t\tstr = str.toLowerCase().split(' ').join('_');\r\n\t\t\t\r\n\t\t\treturn str;\t\t\r\n\t\t};\r\n\r\n\t\tthis.setupAccessibility = function(){\r\n self.linkEl.setAttribute( 'role', 'tab' );\r\n self.linkEl.setAttribute( 'aria-selected', 'false' );\r\n self.linkEl.setAttribute( 'href', '#'+this.panelID );\r\n self.linkEl.setAttribute( 'aria-controls', this.panelID );\r\n self.linkEl.setAttribute( 'tabindex', '-1' );\r\n self.linkEl.setAttribute( 'aria-selected', 'false' ); // dynamic html attribself\r\n\r\n self.panelEl.setAttribute( 'id', this.panelID );\r\n self.panelEl.setAttribute( 'aria-labelledby', this.panelID );\r\n self.panelEl.setAttribute( 'role', 'tabpanel' );\r\n self.panelEl.setAttribute( 'tabindex', '-1' );\r\n self.panelEl.setAttribute( 'aria-hidden', 'true' ); // dynamic html attribute\r\n\r\n var accordion = self.panelEl.querySelectorAll('.accordion');\r\n\r\n if(accordion.length > 0){\r\n for (var i = 0; i < accordion.length; i++) {\r\n accordion[i].setAttribute('data-in-tab', '');\r\n }\r\n }\r\n };\r\n\r\n this.select = function() {\r\n self.isSelected = true;\r\n\r\n utils.addClass(self.titleEl, 'is-active');\r\n self.linkEl.setAttribute( 'aria-selected', 'true' );\r\n self.linkEl.setAttribute( 'tabindex', '0' );\r\n\r\n utils.addClass(self.panelEl, 'is-active');\r\n self.panelEl.setAttribute( 'aria-hidden', 'false' );\r\n self.panelEl.setAttribute( 'tabindex', '0' );\r\n\r\n this.triggerTabEvent();\r\n };\r\n\r\n this.unselect = function() {\r\n self.isSelected = false;\r\n\r\n utils.removeClass(self.titleEl, 'is-active');\r\n self.linkEl.setAttribute( 'aria-selected', 'false');\r\n self.linkEl.setAttribute( 'tabindex', '-1' );\r\n\r\n utils.removeClass(self.panelEl, 'is-active'); \r\n self.panelEl.setAttribute( 'aria-hidden', 'true' );\r\n self.panelEl.setAttribute( 'tabindex', '-1' );\r\n };\r\n\r\n this.keydown = function(event){\r\n var keypress = utils.keyPressed(event);\r\n \r\n if(keypress == 'ARROW_DOWN' || keypress == 'ARROW_RIGHT'){\r\n if(this.parentNode.nextElementSibling !== null){\r\n this.parentNode.nextElementSibling.childNodes[0].focus();\r\n this.parentNode.nextElementSibling.childNodes[0].click();\r\n }\r\n }\r\n if(keypress == 'ARROW_UP' || keypress == 'ARROW_LEFT'){\r\n if(this.parentNode.previousElementSibling !== null){\r\n this.parentNode.previousElementSibling.childNodes[0].focus();\r\n this.parentNode.previousElementSibling.childNodes[0].click();\r\n }\r\n }\r\n if(keypress == 'SHIFT_TAB'){\r\n if(this.parentNode.previousElementSibling !== null){\r\n this.parentNode.previousElementSibling.childNodes[0].focus();\r\n }\r\n }\r\n if(keypress == 'TAB'){\r\n if(this.parentNode.nextElementSibling !== null){\r\n this.parentNode.nextElementSibling.childNodes[0].focus();\r\n }\r\n }\r\n if(keypress == 'SPACE'){\r\n this.click(); \r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n };\r\n\r\n this.panelID = this.createPanelID();\r\n this.createPanelID();\r\n this.setupAccessibility();\r\n\r\n this.linkEl.addEventListener( 'click', function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if(!utils.hasClass(this.parentNode, 'is-active')){\r\n self.tabsPanelObj.updateHashValue(this.getAttribute('href'));\r\n self.tabsPanelObj.resetPanels(); // close all panels\r\n self.select(); // then open desired panel\r\n this.focus();\r\n }\r\n });\r\n\r\n this.linkEl.addEventListener('keydown', this.keydown);\r\n\r\n return this;\r\n\t}\r\n\tmodule.exports = {\r\n module_name: 'Tabs',\r\n\r\n\t\tinit: function(){\r\n\t\t\tvar tabEl = document.querySelectorAll('[data-tabs]');\r\n \r\n if(tabEl.length > 0){\r\n for (var i = 0; i < tabEl.length; i++) {\r\n new Tabs(i);\r\n }\r\n }\r\n\t\t}\r\n\t};\r\n})();", "(function() {\r\n\t'use strict';\r\n\r\n\tvar utils = require('./utils/utils');\r\n\tvar navigation = require('./Renderings/navigation');\r\n\tvar searchbox = require('./Renderings/searchbox');\r\n\tvar carousel = require('./Renderings/carousel');\r\n\tvar skipnav = require('./Renderings/skipnav');\r\n\tvar homepage = require('./Layouts/homepage');\r\n\tvar accordion = require('./Renderings/accordion');\r\n\tvar tabs = require('./Renderings/tabs');\r\n\tvar rebates = require('./Renderings/rebates');\r\n\tvar sharebuttons = require('./Renderings/sharebuttons');\r\n\tvar articlegrid = require('./Renderings/articlegrid');\r\n\tvar disconnectForm = require('./Layouts/disconnect-form');\r\n\r\n\tfunction init() {\r\n\t\tif (typeof Document !== 'undefined') {\r\n\t\t\tif (document.readyState !== \"loading\") {\r\n\t\t\t\thomepage.init();\r\n\t\t\t\tutils.init();\r\n\t\t\t\tnavigation.init();\r\n\t\t\t\tsearchbox.init();\r\n\t\t\t\tskipnav.init();\r\n\t\t\t\taccordion.init({\r\n\t\t\t\t\theading: '.accordion-panel__heading',\r\n\t\t\t\t\tcontent: '.accordion-panel__content'\r\n\t\t\t\t});\r\n\t\t\t\ttabs.init();\r\n\t\t\t\tcarousel.init();\r\n\t\t\t\tsharebuttons.init();\r\n\t\t\t\trebates.init('/webapi/rebates/getrebates');\r\n\t\t\t\tarticlegrid.init('/webapi/mediacenter/loadmore');\r\n\t\t\t\tdisconnectForm.init();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", homepage.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", utils.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", navigation.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", searchbox.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", skipnav.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", carousel.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", accordion.init({\r\n\t\t\t\t\theading: '.accordion-panel__heading',\r\n\t\t\t\t\tcontent: '.accordion-panel__content'\r\n\t\t\t\t}));\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", tabs.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", sharebuttons.init);\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", rebates.init('/webapi/rebates/getrebates'));\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", articlegrid.init('/webapi/mediacenter/loadmore'));\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", disconnectForm.init);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinit();\r\n})();\r\n", ";(function(){\r\n 'use strict';\r\n\r\n var utils = require('./utils');\r\n\r\n function _createErrorField (elName, errMsg) {\r\n var el = document.createElement(elName);\r\n el.innerHTML = errMsg;\r\n utils.addClass(el, 'error-msg');\r\n\r\n return el;\r\n }\r\n\r\n module.exports = {\r\n /* \r\n Checks if the error field is present, and creates and appends a \r\n <span> tag to the element being passed in, usually a form-group \r\n or a radio or checkbox div.\r\n @param {Object, String}\r\n -------------------------------------*/\r\n addFormError: function (el, errMsg) {\r\n utils.addClass(el, 'error');\r\n\r\n var error = _createErrorField('span', errMsg);\r\n\r\n if(el.querySelector('.error-msg') === null){\r\n el.appendChild(error);\r\n }\r\n },\r\n /* \r\n Checks if the error field is present and removes it\r\n from the DOM.\r\n @param {Object}\r\n -------------------------------------*/\r\n removeFormError: function (el) {\r\n utils.removeClass(el, 'error');\r\n\r\n var errorTag = el.querySelector('.error-msg');\r\n\r\n if(el.querySelector('.error-msg') !== null){\r\n errorTag.parentNode.removeChild(errorTag);\r\n }\r\n },\r\n /* \r\n Checks radio button to make sure they are not empty.\r\n Returns either an integer or boolean.\r\n @param {Object} The radio button object array\r\n @return {Boolean}\r\n -------------------------------------*/\r\n validateRadioBtns: function(radioBtns) {\r\n var isValid = false;\r\n\r\n for (var i = 0; i < radioBtns.length; i++) {\r\n if(radioBtns[i].checked === true){\r\n isValid = parseInt(i);\r\n }\r\n }\r\n return isValid;\r\n },\r\n /* \r\n Checks the form for all required fields and validates\r\n that they are not empty.\r\n @param {Object} The form element\r\n @return {Boolean}\r\n -------------------------------------*/\r\n validateAllRequiredFields: function (formEl) {\r\n for(var i=0;i<formEl.elements.length;i++){\r\n if(formEl[i].getAttribute('type') == 'text' || formEl[i].getAttribute('type') == 'email' || formEl[i].getAttribute('type') == 'date' || formEl[i].getAttribute('type') == 'tel' || formEl[i].tagName == 'SELECT'){\r\n if(formEl[i].hasAttribute('required')){\r\n if(formEl[i].value.length === 0 || formEl[i].value.toLowerCase() === 'n/a'){\r\n return false;\r\n }\r\n }\r\n }\r\n if(formEl[i].getAttribute('type') == 'checkbox'){\r\n if (formEl[i].hasAttribute('required')) {\r\n if (formEl[i].checked !== true) {\r\n return false;\r\n }\r\n }\r\n }\r\n if(formEl[i].getAttribute('type') == 'radio'){\r\n if (formEl[i].hasAttribute('required')) {\r\n var radioGroup = document.querySelectorAll('[name=\"' + formEl[i].getAttribute(\"name\") + '\"]');\r\n if (this.validateRadioBtns(radioGroup) === false) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n },\r\n /* \r\n Checks for a single required element to make sure it's not emptu.\r\n @param {Object} The form element\r\n @return {Boolean}\r\n */\r\n validateRequiredField: function (el) {\r\n if(el.value.length === 0 || el.value.toLowerCase() === 'n/a'){\r\n return false;\r\n }\r\n return true;\r\n },\r\n /* \r\n https://www.informationbuilders.com/support/developers/javascript-validate-date-entry\r\n Checks for the following valid date formats:\r\n MM/DD/YYYY\r\n Also separates date into month, day, and year variables\r\n @param {MM/DD/YYYY}\r\n @return {Object} Returns object with isValid and errorMsg\r\n */\r\n date: function (el) {\r\n var datePat = /^(\\d{2,2})(\\/)(\\d{2,2})\\2(\\d{4}|\\d{4})$/;\r\n\r\n this.isValid = true;\r\n this.errorMsg = '';\r\n\r\n var matchArray = typeof el === 'string' ? el.match(datePat) : el.value.match(datePat); // is the format ok?\r\n\r\n if (matchArray === null) {\r\n this.errorMsg = 'Date must be in MM/DD/YYYY format';\r\n this.isValid = false;\r\n\r\n return this;\r\n }\r\n\r\n var month = matchArray[1]; // parse date into variables\r\n var day = matchArray[3];\r\n var year = matchArray[4];\r\n\r\n if (month < 1 || month > 12) { // check month range\r\n\r\n this.errorMsg = 'Month must be between 1 and 12';\r\n this.isValid = false;\r\n }\r\n if (day < 1 || day > 31) {\r\n this.errorMsg = 'Day must be between 1 and 31';\r\n this.isValid = false;\r\n }\r\n if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {\r\n this.errorMsg = 'Month \"+month+\" doesn\\'t have 31 days!';\r\n this.isValid = false;\r\n }\r\n if (month == 2) { // check for february 29th\r\n var isleap = (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0));\r\n\r\n if (day > 29 || (day === 29 && !isleap)) {\r\n this.errorMsg = 'February ' + year + ' doesn\\'t have ' + day + ' days!';\r\n this.isValid = false;\r\n }\r\n }\r\n return this;\r\n },\r\n /* \r\n Validates an email field.\r\n @param {String}\r\n @return {Boolean}\r\n -------------------------------------*/\r\n email: function (el) {\r\n return /^[\\w.!#$%&’*+\\-/=?\\^`{|}~]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$/i.test(el.value);\r\n },\r\n /* \r\n Validates a zip field and checks to make sure that\r\n it meets the required length and contains numerics only.\r\n @param {Integer}\r\n @return {Boolean}\r\n -------------------------------------*/\r\n zip: function (el) {\r\n return /^\\d{5}(-\\d{4})?$/.test(el.value);\r\n }, \r\n\r\n phone: function (el) {\r\n return /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/.test(el.value);\r\n }\r\n };\r\n})();", "(function() {\r\n 'use strict';\r\n\r\n var queryParams = null;\r\n\r\n /**\r\n * Saves all query parameters to an object, for later retrieval\r\n */\r\n function saveQueryParams() {\r\n //console.log('utils.saveQueryParams');\r\n var match,\r\n pl = /\\+/g, // Regex for replacing addition symbol with a space\r\n search = /([^&=]+)=?([^&]*)/g,\r\n decode = function (s) { return decodeURIComponent(s.replace(pl, \" \")); },\r\n query = window.location.search.substring(1);\r\n\r\n queryParams = {};\r\n while (match == search.exec(query)) {\r\n queryParams[decode(match[1])] = decode(match[2]);\r\n }\r\n }\r\n\r\n /**\r\n * Sets currentBreakpoint variable to correspond to current breakpoint\r\n */\r\n\r\n module.exports = {\r\n\r\n init: function() {\r\n //sets variable to current breakpoint\r\n window.currentBreakpoint = null;\r\n },\r\n\r\n /**\r\n * Search for the value of a search param\r\n * @param {String} \r\n * @return {Boolean or String} Value of the search param or false\r\n * \r\n * Example: ?foo=bar&message=This%20is%20a%20message\r\n *\r\n * utils.getQueryVariable('foo') // return bar\r\n * utils.getQueryVariable('message') // return This is a message\r\n */\r\n getQueryVariable: function(variable) {\r\n try{\r\n var q = decodeURIComponent(location.search.substring(1));\r\n var v = q.split('&');\r\n\r\n for( var i = 0; i < v.length; i++ ){\r\n var p = v[i].split('=');\r\n\r\n if( p[0] == variable ){\r\n if( p[1].indexOf('%20') != -1 ){\r\n return decodeURIComponent(p[1]);\r\n }\r\n else{\r\n return p[1];\r\n }\r\n } else{\r\n return false;\r\n }\r\n }\r\n }\r\n catch (e){\r\n console.log(e);\r\n }\r\n },\r\n\r\n /**\r\n * Get full set of search string parameters\r\n * @return {Object} all search string parameters as name/value pairs\r\n */\r\n getAllQueryParams: function() {\r\n //console.log('utils.getAllQueryParams');\r\n if (queryParams === null) {\r\n saveQueryParams();\r\n }\r\n return queryParams;\r\n },\r\n\r\n /**\r\n * Get value of specified search string parameter\r\n * @param {String} name The name of the desired search string parameter\r\n * @return {String} The value of the desired search string parameter\r\n */\r\n getQueryParam: function(name) {\r\n //console.log('utils.getQueryParam: name = ', name);\r\n if (queryParams === null) {\r\n saveQueryParams();\r\n }\r\n return queryParams[name];\r\n },\r\n\r\n /**\r\n * Get closest DOM element up the tree that contains a class, ID, or data attribute\r\n * @param {Node} elem The base element\r\n * @param {String} selector The class, id, data attribute, or tag to look for\r\n * @return {Node} Null if no match\r\n */\r\n getAncestor: function(elem, selector) {\r\n var firstChar = selector.charAt(0);\r\n\r\n // Get nearest ancestor\r\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n // selector is a class\r\n if ( firstChar === '.' ) {\r\n if ( elem.classList.contains( selector.substr(1) ) ) {\r\n return elem;\r\n }\r\n }\r\n\r\n // selector is an ID\r\n if ( firstChar === '#' ) {\r\n if ( elem.id === selector.substr(1) ) {\r\n return elem;\r\n }\r\n }\r\n\r\n // selector is a data attribute\r\n if ( firstChar === '[' ) {\r\n if ( elem.hasAttribute( selector.substr(1, selector.length - 2) ) ) {\r\n return elem;\r\n }\r\n }\r\n\r\n // selector is a tag\r\n if ( elem.tagName.toLowerCase() === selector ) {\r\n return elem;\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * is element a child of another\r\n * @param {Node} parent The parent element\r\n * @param {Node} child element to test if child\r\n */\r\n isDescendant: function(parent, child) {\r\n var node = child.parentNode;\r\n while (node !== null) {\r\n if (node == parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * Get child elements of a given node\r\n * @param {Node} elem The base element\r\n * @param {Node} skip element to skip, if any\r\n */\r\n getChildren: function(elem, skip) {\r\n var siblings = [];\r\n for ( ; elem; elem = elem.nextSibling )\r\n if ( elem.nodeType == 1 && elem != skip)\r\n siblings.push( elem );\r\n return siblings;\r\n },\r\n\r\n /**\r\n * Get sibling elements of a given node\r\n * @param {Node} elem The base element\r\n */\r\n getSiblings: function (elem) {\r\n return this.getChildren(elem.parentNode.firstChild, elem);\r\n },\r\n\r\n /**\r\n * Add event listeners for more than one event\r\n * @param {Node} elem The element to which we're binding\r\n * @param {String} events names of events to bind, separated by a space\r\n * @param {Function} callback function to call on firing of event\r\n */\r\n addEventListenerMulti: function(elem, events, callback) {\r\n events = events.split(' ');\r\n for (var i = 0, len = events.length; i < len; i++) {\r\n elem.addEventListener(events[i], callback, false);\r\n }\r\n },\r\n\r\n /**\r\n * Remove event listeners for more than one event\r\n * @param {Node} elem The element to which we're binding\r\n * @param {String} events names of events to bind, separated by a space\r\n * @param {Function} callback function to call on firing of event\r\n */\r\n removeEventListenerMulti: function(elem, events, callback) {\r\n events = events.split(' ');\r\n for (var i = 0, len = events.length; i < len; i++) {\r\n elem.removeEventListener(events[i], callback, false);\r\n }\r\n },\r\n\r\n /**\r\n * Is the variable passed an element?\r\n * @param {Node} elem The base element\r\n */\r\n isElement: function(elem){\r\n try {\r\n return (elem && elem.tagName) ? true:false;\r\n }catch(e){\r\n return false;\r\n }\r\n },\r\n\r\n isNumeric: function(evt){\r\n var theEvent = evt || window.event;\r\n var key = theEvent.keyCode || theEvent.which;\r\n key = String.fromCharCode (key);\r\n var regex = /[0-9]/;\r\n if ( !regex.test(key) ) {\r\n theEvent.returnValue = false;\r\n if(theEvent.preventDefault) theEvent.preventDefault();\r\n }\r\n },\r\n\r\n /**\r\n * Takes a raw HTML string and returns DOM elements suitable for appending\r\n * @param str\r\n * @returns {NodeList}\r\n */\r\n stringToDom: function(str){\r\n var div = document.createElement('div');\r\n div.innerHTML = str;\r\n var els = div.childNodes;\r\n var elements = [];\r\n for (var i = 0; i < els.length; i++) {\r\n if (els[i].nodeType === 1) { // Don't include anything other than DOM nodes or the append will not work\r\n elements.push(els[i]);\r\n }\r\n }\r\n return elements;\r\n },\r\n\r\n maxLengthCheck: function(object){\r\n if (object.value.length > object.maxLength){\r\n object.value = object.value.slice(0, object.maxLength);\r\n }\r\n },\r\n\r\n insertAfter: function(newNode, referenceNode) {\r\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\r\n },\r\n\r\n\r\n /**\r\n * Get element's height with margins\r\n * @param {Node} elem The base element\r\n */\r\n outerHeight: function(elem) {\r\n var height = elem.offsetHeight;\r\n var style = getComputedStyle(elem);\r\n\r\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n return height;\r\n },\r\n\r\n\r\n /**\r\n * Get height for elements with display:none\r\n * @param {Node} elem The base element\r\n */\r\n getHeight: function(elem) {\r\n var elemStyle = window.getComputedStyle(elem),\r\n elemDisplay = elemStyle.display,\r\n elemPosition = elemStyle.position,\r\n elemVisibility = elemStyle.visibility,\r\n elemMaxHeight = elemStyle.maxHeight.replace('px', '').replace('%', ''),\r\n\r\n desiredHeight = 0;\r\n\r\n if(elemDisplay !== 'none' && elemMaxHeight !== '0') {\r\n return elem.offsetHeight;\r\n }\r\n\r\n elem.style.position = 'absolute';\r\n elem.style.visibility = 'hidden';\r\n elem.style.display = 'block';\r\n\r\n desiredHeight = elem.offsetHeight;\r\n\r\n elem.style.display = elemDisplay;\r\n elem.style.position = elemPosition;\r\n elem.style.visibility = elemVisibility;\r\n\r\n return desiredHeight;\r\n },\r\n\r\n /**\r\n * Converts string to camelCase\r\n * @param {String} str the string to convert\r\n */\r\n toCamelCase: function(str){\r\n return str.toLowerCase().replace(/(\\-[a-z])/g, function($1){\r\n return $1.toUpperCase().replace('-','');\r\n });\r\n },\r\n\r\n\r\n /**\r\n * animates scrolling to Y position\r\n * @param {Integer} scrollTo representing Y position\r\n */\r\n scrollToPosition: function(scrollTo) {\r\n var self = this;\r\n var startY = self.pageYOffset;\r\n var stopY = Math.abs(scrollTo);\r\n var distance = stopY > startY ? stopY - startY : startY - stopY;\r\n if (distance < 100) {\r\n window.scrollTo(0, stopY); return;\r\n }\r\n var speed = Math.round(distance / 100);\r\n if (speed >= 20) speed = 20;\r\n var step = Math.round(distance / 25);\r\n var leapY = stopY > startY ? startY + step : startY - step;\r\n var timer = 0;\r\n if (stopY > startY) {\r\n for ( var i=startY; i<stopY; i+=step ) {\r\n setTimeout(\"window.scrollTo(0, \"+leapY+\")\", timer * speed);\r\n leapY += step; if (leapY > stopY) leapY = stopY; timer++;\r\n } return;\r\n }\r\n for ( var j=startY; j>stopY; j-=step ) {\r\n setTimeout(\"window.scrollTo(0, \"+leapY+\")\", timer * speed);\r\n leapY -= step; if (leapY < stopY) leapY = stopY; timer++;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * Makes AJAX call, parses JSON\r\n * @param {String} URL of XMLHttpRequest\r\n * @param {String} function to call on success\r\n * @param {String} function to call on error\r\n */\r\n getJSON: function(url, callback, error) {\r\n var request = new XMLHttpRequest();\r\n var response;\r\n request.open('GET', url, true);\r\n\r\n request.onload = function() {\r\n if (request.status >= 200 && request.status < 400) {\r\n // Success!\r\n var data = JSON.parse(request.responseText);\r\n\r\n if (typeof callback === 'function') {\r\n callback(data);\r\n }\r\n\r\n } else {\r\n // We reached our target server, but it returned an error\r\n if (typeof error === 'function') {\r\n error(request.statusText, response);\r\n }\r\n\r\n }\r\n };\r\n\r\n request.onerror = function() {\r\n if (typeof error === 'function') {\r\n error(request.statusText, response);\r\n }\r\n };\r\n\r\n request.send();\r\n\r\n },\r\n\r\n\r\n /**\r\n * loads a script & attaches to DOM\r\n * @param {String} URL of script to load\r\n * @param {String} function to call on success\r\n */\r\n getScript: function(source, callback) {\r\n var script = document.createElement('script');\r\n var prior = document.getElementsByTagName('script')[0];\r\n script.async = 1;\r\n prior.parentNode.insertBefore(script, prior);\r\n script.onload = script.onreadystatechange = function( _, isAbort ) {\r\n if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {\r\n script.onload = script.onreadystatechange = null;\r\n script = undefined;\r\n\r\n if(!isAbort) {\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n }\r\n };\r\n script.src = source;\r\n },\r\n\r\n\r\n /**\r\n * Source: https://plainjs.com/javascript/events/trigger-an-event-11/\r\n * @param el can be any DOM Element or other EventTarget\r\n * @param type Event type (i.e. 'click')\r\n */\r\n triggerEvent: function (el, type){\r\n var e = document.createEvent('HTMLEvents');\r\n\r\n if ('createEvent' in document) {\r\n e.initEvent(type, false, true);\r\n el.dispatchEvent(e);\r\n } else {\r\n e = document.createEventObject();\r\n e.eventType = type;\r\n el.fireEvent('on'+e.eventType, e);\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Fades in element\r\n * @param {Node} elem The base element\r\n * @param {Integer} time (in ms or false) the transition time - default is 2000ms\r\n * @param {String} ease - CSS3 easing function ( ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|\r\n initial|inherit) or false\r\n * @param {String} name of callback function\r\n */\r\n fadeIn: function(elem, time, ease, callback) {\r\n this.animate({\r\n elem: elem,\r\n style: 'opacity',\r\n unit: '',\r\n from: 0,\r\n to: 1,\r\n time: time,\r\n prop: false,\r\n ease: ease,\r\n callback: callback\r\n });\r\n },\r\n\r\n\r\n /**\r\n * Fades out element\r\n * @param {Node} elem The base element\r\n * @param {Integer} time (in ms or false) the transition time - default is 2000ms\r\n * @param {String} ease - CSS3 easing function ( ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|\r\n initial|inherit) or false\r\n * @param {String} name of callback function\r\n */\r\n fadeOut: function(elem, time, ease, callback) {\r\n this.animate({\r\n elem: elem,\r\n style: 'opacity',\r\n unit: '',\r\n from: elem.style.opacity,\r\n to: 0,\r\n time: time,\r\n prop: false,\r\n ease: ease,\r\n callback: callback\r\n });\r\n },\r\n\r\n\r\n\r\n\r\n /**\r\n * Converts string input to title case\r\n * @param {String} str String to convert to Title Case\r\n */\r\n textToTitleCase: function(str) {\r\n return str.replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});\r\n },\r\n\r\n /**\r\n * Set cookie value\r\n * @param name cookie name\r\n * @param value cookie name\r\n * @param days expiration time on days\r\n */\r\n setCookie: function (name, value, days) {\r\n var expires;\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toGMTString();\r\n }\r\n else {\r\n expires = \"\";\r\n }\r\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\r\n\r\n },\r\n /**\r\n *\r\n * @param name\r\n * @returns {*}\r\n */\r\n getCookie: function (name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n },\r\n\r\n isElementInViewport: function(elem,yonly) {\r\n var rect = elem.getBoundingClientRect();\r\n if(yonly) {\r\n return (\r\n rect.top >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)\r\n );\r\n } else {\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n }\r\n },\r\n\r\n htmlEncode: function(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n },\r\n\r\n htmlUnencode: function(value){\r\n return String(value)\r\n .replace(/"/g, '\"')\r\n .replace(/'/g, \"'\")\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>')\r\n .replace(/&/g, '&'); \r\n },\r\n\r\n addClass: function (o, c){\r\n if (!(c instanceof Array)) {\r\n c = c.split(' ');\r\n }\r\n for(var i = 0, len = c.length; i < len; ++i) {\r\n if (c[i] && !new RegExp('(\\\\s+|^)' + c[i] + '(\\\\s+|$)').test(o.className)) {\r\n o.className = o.className.trim() + ' ' + c[i];\r\n }\r\n }\r\n },\r\n \r\n removeClass: function (o, c){\r\n if (!(c instanceof Array)) {\r\n c = c.split(' ');\r\n }\r\n for(var i = 0, len = c.length; i < len; ++i) {\r\n o.className = o.className.replace(new RegExp('(\\\\s+|^)' + c[i] + '(\\\\s+|$)'), ' ').trim();\r\n }\r\n },\r\n\r\n hasClass: function (o, c) {\r\n return new RegExp(' ' + c + ' ').test(' ' + o.className + ' ');\r\n },\r\n\r\n keyPressed: function(event){\r\n\r\n var keyCodes = {\r\n 9: 'TAB',\r\n 13: 'ENTER',\r\n 27: 'ESCAPE',\r\n 32: 'SPACE',\r\n 37: 'ARROW_LEFT',\r\n 38: 'ARROW_UP',\r\n 39: 'ARROW_RIGHT',\r\n 40: 'ARROW_DOWN'\r\n },\r\n key = keyCodes[event.keyCode || event.which] || String.fromCharCode(event.which).toUpperCase();\r\n\r\n if (event.shiftKey) key = 'SHIFT_' + key;\r\n if (event.ctrlKey) key = 'CTRL_' + key;\r\n if (event.altKey) key = 'ALT_' + key;\r\n\r\n return key;\r\n }\r\n\r\n };\r\n})();", "/**!\n\n @license\n handlebars v4.0.11\n\nCopyright (C) 2011-2017 by Yehuda Katz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Handlebars\"] = factory();\n\telse\n\t\troot[\"Handlebars\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireWildcard = __webpack_require__(1)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _handlebarsBase = __webpack_require__(3);\n\n\tvar base = _interopRequireWildcard(_handlebarsBase);\n\n\t// Each of these augment the Handlebars object. No need to setup here.\n\t// (This is done to easily share code between commonjs and browse envs)\n\n\tvar _handlebarsSafeString = __webpack_require__(20);\n\n\tvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\n\tvar _handlebarsException = __webpack_require__(5);\n\n\tvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\n\tvar _handlebarsUtils = __webpack_require__(4);\n\n\tvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\n\tvar _handlebarsRuntime = __webpack_require__(21);\n\n\tvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\n\tvar _handlebarsNoConflict = __webpack_require__(33);\n\n\tvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n\t// For compatibility and usage outside of module systems, make the Handlebars object a namespace\n\tfunction create() {\n\t var hb = new base.HandlebarsEnvironment();\n\n\t Utils.extend(hb, base);\n\t hb.SafeString = _handlebarsSafeString2['default'];\n\t hb.Exception = _handlebarsException2['default'];\n\t hb.Utils = Utils;\n\t hb.escapeExpression = Utils.escapeExpression;\n\n\t hb.VM = runtime;\n\t hb.template = function (spec) {\n\t return runtime.template(spec, hb);\n\t };\n\n\t return hb;\n\t}\n\n\tvar inst = create();\n\tinst.create = create;\n\n\t_handlebarsNoConflict2['default'](inst);\n\n\tinst['default'] = inst;\n\n\texports['default'] = inst;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\texports[\"default\"] = function (obj) {\n\t if (obj && obj.__esModule) {\n\t return obj;\n\t } else {\n\t var newObj = {};\n\n\t if (obj != null) {\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n\t }\n\t }\n\n\t newObj[\"default\"] = obj;\n\t return newObj;\n\t }\n\t};\n\n\texports.__esModule = true;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\texports[\"default\"] = function (obj) {\n\t return obj && obj.__esModule ? obj : {\n\t \"default\": obj\n\t };\n\t};\n\n\texports.__esModule = true;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.HandlebarsEnvironment = HandlebarsEnvironment;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\tvar _helpers = __webpack_require__(9);\n\n\tvar _decorators = __webpack_require__(17);\n\n\tvar _logger = __webpack_require__(19);\n\n\tvar _logger2 = _interopRequireDefault(_logger);\n\n\tvar VERSION = '4.0.11';\n\texports.VERSION = VERSION;\n\tvar COMPILER_REVISION = 7;\n\n\texports.COMPILER_REVISION = COMPILER_REVISION;\n\tvar REVISION_CHANGES = {\n\t 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n\t 2: '== 1.0.0-rc.3',\n\t 3: '== 1.0.0-rc.4',\n\t 4: '== 1.x.x',\n\t 5: '== 2.0.0-alpha.x',\n\t 6: '>= 2.0.0-beta.1',\n\t 7: '>= 4.0.0'\n\t};\n\n\texports.REVISION_CHANGES = REVISION_CHANGES;\n\tvar objectType = '[object Object]';\n\n\tfunction HandlebarsEnvironment(helpers, partials, decorators) {\n\t this.helpers = helpers || {};\n\t this.partials = partials || {};\n\t this.decorators = decorators || {};\n\n\t _helpers.registerDefaultHelpers(this);\n\t _decorators.registerDefaultDecorators(this);\n\t}\n\n\tHandlebarsEnvironment.prototype = {\n\t constructor: HandlebarsEnvironment,\n\n\t logger: _logger2['default'],\n\t log: _logger2['default'].log,\n\n\t registerHelper: function registerHelper(name, fn) {\n\t if (_utils.toString.call(name) === objectType) {\n\t if (fn) {\n\t throw new _exception2['default']('Arg not supported with multiple helpers');\n\t }\n\t _utils.extend(this.helpers, name);\n\t } else {\n\t this.helpers[name] = fn;\n\t }\n\t },\n\t unregisterHelper: function unregisterHelper(name) {\n\t delete this.helpers[name];\n\t },\n\n\t registerPartial: function registerPartial(name, partial) {\n\t if (_utils.toString.call(name) === objectType) {\n\t _utils.extend(this.partials, name);\n\t } else {\n\t if (typeof partial === 'undefined') {\n\t throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n\t }\n\t this.partials[name] = partial;\n\t }\n\t },\n\t unregisterPartial: function unregisterPartial(name) {\n\t delete this.partials[name];\n\t },\n\n\t registerDecorator: function registerDecorator(name, fn) {\n\t if (_utils.toString.call(name) === objectType) {\n\t if (fn) {\n\t throw new _exception2['default']('Arg not supported with multiple decorators');\n\t }\n\t _utils.extend(this.decorators, name);\n\t } else {\n\t this.decorators[name] = fn;\n\t }\n\t },\n\t unregisterDecorator: function unregisterDecorator(name) {\n\t delete this.decorators[name];\n\t }\n\t};\n\n\tvar log = _logger2['default'].log;\n\n\texports.log = log;\n\texports.createFrame = _utils.createFrame;\n\texports.logger = _logger2['default'];\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\texports.extend = extend;\n\texports.indexOf = indexOf;\n\texports.escapeExpression = escapeExpression;\n\texports.isEmpty = isEmpty;\n\texports.createFrame = createFrame;\n\texports.blockParams = blockParams;\n\texports.appendContextPath = appendContextPath;\n\tvar escape = {\n\t '&': '&',\n\t '<': '<',\n\t '>': '>',\n\t '\"': '"',\n\t \"'\": ''',\n\t '`': '`',\n\t '=': '='\n\t};\n\n\tvar badChars = /[&<>\"'`=]/g,\n\t possible = /[&<>\"'`=]/;\n\n\tfunction escapeChar(chr) {\n\t return escape[chr];\n\t}\n\n\tfunction extend(obj /* , ...source */) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t for (var key in arguments[i]) {\n\t if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n\t obj[key] = arguments[i][key];\n\t }\n\t }\n\t }\n\n\t return obj;\n\t}\n\n\tvar toString = Object.prototype.toString;\n\n\texports.toString = toString;\n\t// Sourced from lodash\n\t// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n\t/* eslint-disable func-style */\n\tvar isFunction = function isFunction(value) {\n\t return typeof value === 'function';\n\t};\n\t// fallback for older versions of Chrome and Safari\n\t/* istanbul ignore next */\n\tif (isFunction(/x/)) {\n\t exports.isFunction = isFunction = function (value) {\n\t return typeof value === 'function' && toString.call(value) === '[object Function]';\n\t };\n\t}\n\texports.isFunction = isFunction;\n\n\t/* eslint-enable func-style */\n\n\t/* istanbul ignore next */\n\tvar isArray = Array.isArray || function (value) {\n\t return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n\t};\n\n\texports.isArray = isArray;\n\t// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\n\tfunction indexOf(array, value) {\n\t for (var i = 0, len = array.length; i < len; i++) {\n\t if (array[i] === value) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t}\n\n\tfunction escapeExpression(string) {\n\t if (typeof string !== 'string') {\n\t // don't escape SafeStrings, since they're already safe\n\t if (string && string.toHTML) {\n\t return string.toHTML();\n\t } else if (string == null) {\n\t return '';\n\t } else if (!string) {\n\t return string + '';\n\t }\n\n\t // Force a string conversion as this will be done by the append regardless and\n\t // the regex test will do this transparently behind the scenes, causing issues if\n\t // an object's to string has escaped characters in it.\n\t string = '' + string;\n\t }\n\n\t if (!possible.test(string)) {\n\t return string;\n\t }\n\t return string.replace(badChars, escapeChar);\n\t}\n\n\tfunction isEmpty(value) {\n\t if (!value && value !== 0) {\n\t return true;\n\t } else if (isArray(value) && value.length === 0) {\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t}\n\n\tfunction createFrame(object) {\n\t var frame = extend({}, object);\n\t frame._parent = object;\n\t return frame;\n\t}\n\n\tfunction blockParams(params, ids) {\n\t params.path = ids;\n\t return params;\n\t}\n\n\tfunction appendContextPath(contextPath, id) {\n\t return (contextPath ? contextPath + '.' : '') + id;\n\t}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$defineProperty = __webpack_require__(6)['default'];\n\n\texports.__esModule = true;\n\n\tvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\n\tfunction Exception(message, node) {\n\t var loc = node && node.loc,\n\t line = undefined,\n\t column = undefined;\n\t if (loc) {\n\t line = loc.start.line;\n\t column = loc.start.column;\n\n\t message += ' - ' + line + ':' + column;\n\t }\n\n\t var tmp = Error.prototype.constructor.call(this, message);\n\n\t // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n\t for (var idx = 0; idx < errorProps.length; idx++) {\n\t this[errorProps[idx]] = tmp[errorProps[idx]];\n\t }\n\n\t /* istanbul ignore else */\n\t if (Error.captureStackTrace) {\n\t Error.captureStackTrace(this, Exception);\n\t }\n\n\t try {\n\t if (loc) {\n\t this.lineNumber = line;\n\n\t // Work around issue under safari where we can't directly set the column value\n\t /* istanbul ignore next */\n\t if (_Object$defineProperty) {\n\t Object.defineProperty(this, 'column', {\n\t value: column,\n\t enumerable: true\n\t });\n\t } else {\n\t this.column = column;\n\t }\n\t }\n\t } catch (nop) {\n\t /* Ignore if the browser is very particular */\n\t }\n\t}\n\n\tException.prototype = new Error();\n\n\texports['default'] = Exception;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(7), __esModule: true };\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(8);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.registerDefaultHelpers = registerDefaultHelpers;\n\n\tvar _helpersBlockHelperMissing = __webpack_require__(10);\n\n\tvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\n\tvar _helpersEach = __webpack_require__(11);\n\n\tvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\n\tvar _helpersHelperMissing = __webpack_require__(12);\n\n\tvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\n\tvar _helpersIf = __webpack_require__(13);\n\n\tvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\n\tvar _helpersLog = __webpack_require__(14);\n\n\tvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\n\tvar _helpersLookup = __webpack_require__(15);\n\n\tvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\n\tvar _helpersWith = __webpack_require__(16);\n\n\tvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\n\tfunction registerDefaultHelpers(instance) {\n\t _helpersBlockHelperMissing2['default'](instance);\n\t _helpersEach2['default'](instance);\n\t _helpersHelperMissing2['default'](instance);\n\t _helpersIf2['default'](instance);\n\t _helpersLog2['default'](instance);\n\t _helpersLookup2['default'](instance);\n\t _helpersWith2['default'](instance);\n\t}\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('blockHelperMissing', function (context, options) {\n\t var inverse = options.inverse,\n\t fn = options.fn;\n\n\t if (context === true) {\n\t return fn(this);\n\t } else if (context === false || context == null) {\n\t return inverse(this);\n\t } else if (_utils.isArray(context)) {\n\t if (context.length > 0) {\n\t if (options.ids) {\n\t options.ids = [options.name];\n\t }\n\n\t return instance.helpers.each(context, options);\n\t } else {\n\t return inverse(this);\n\t }\n\t } else {\n\t if (options.data && options.ids) {\n\t var data = _utils.createFrame(options.data);\n\t data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n\t options = { data: data };\n\t }\n\n\t return fn(context, options);\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('each', function (context, options) {\n\t if (!options) {\n\t throw new _exception2['default']('Must pass iterator to #each');\n\t }\n\n\t var fn = options.fn,\n\t inverse = options.inverse,\n\t i = 0,\n\t ret = '',\n\t data = undefined,\n\t contextPath = undefined;\n\n\t if (options.data && options.ids) {\n\t contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n\t }\n\n\t if (_utils.isFunction(context)) {\n\t context = context.call(this);\n\t }\n\n\t if (options.data) {\n\t data = _utils.createFrame(options.data);\n\t }\n\n\t function execIteration(field, index, last) {\n\t if (data) {\n\t data.key = field;\n\t data.index = index;\n\t data.first = index === 0;\n\t data.last = !!last;\n\n\t if (contextPath) {\n\t data.contextPath = contextPath + field;\n\t }\n\t }\n\n\t ret = ret + fn(context[field], {\n\t data: data,\n\t blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n\t });\n\t }\n\n\t if (context && typeof context === 'object') {\n\t if (_utils.isArray(context)) {\n\t for (var j = context.length; i < j; i++) {\n\t if (i in context) {\n\t execIteration(i, i, i === context.length - 1);\n\t }\n\t }\n\t } else {\n\t var priorKey = undefined;\n\n\t for (var key in context) {\n\t if (context.hasOwnProperty(key)) {\n\t // We're running the iterations one step out of sync so we can detect\n\t // the last iteration without have to scan the object twice and create\n\t // an itermediate keys array.\n\t if (priorKey !== undefined) {\n\t execIteration(priorKey, i - 1);\n\t }\n\t priorKey = key;\n\t i++;\n\t }\n\t }\n\t if (priorKey !== undefined) {\n\t execIteration(priorKey, i - 1, true);\n\t }\n\t }\n\t }\n\n\t if (i === 0) {\n\t ret = inverse(this);\n\t }\n\n\t return ret;\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('helperMissing', function () /* [args, ]options */{\n\t if (arguments.length === 1) {\n\t // A missing field in a {{foo}} construct.\n\t return undefined;\n\t } else {\n\t // Someone is actually trying to call something, blow up.\n\t throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('if', function (conditional, options) {\n\t if (_utils.isFunction(conditional)) {\n\t conditional = conditional.call(this);\n\t }\n\n\t // Default behavior is to render the positive path if the value is truthy and not empty.\n\t // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n\t // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n\t if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n\t return options.inverse(this);\n\t } else {\n\t return options.fn(this);\n\t }\n\t });\n\n\t instance.registerHelper('unless', function (conditional, options) {\n\t return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('log', function () /* message, options */{\n\t var args = [undefined],\n\t options = arguments[arguments.length - 1];\n\t for (var i = 0; i < arguments.length - 1; i++) {\n\t args.push(arguments[i]);\n\t }\n\n\t var level = 1;\n\t if (options.hash.level != null) {\n\t level = options.hash.level;\n\t } else if (options.data && options.data.level != null) {\n\t level = options.data.level;\n\t }\n\t args[0] = level;\n\n\t instance.log.apply(instance, args);\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('lookup', function (obj, field) {\n\t return obj && obj[field];\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('with', function (context, options) {\n\t if (_utils.isFunction(context)) {\n\t context = context.call(this);\n\t }\n\n\t var fn = options.fn;\n\n\t if (!_utils.isEmpty(context)) {\n\t var data = options.data;\n\t if (options.data && options.ids) {\n\t data = _utils.createFrame(options.data);\n\t data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n\t }\n\n\t return fn(context, {\n\t data: data,\n\t blockParams: _utils.blockParams([context], [data && data.contextPath])\n\t });\n\t } else {\n\t return options.inverse(this);\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.registerDefaultDecorators = registerDefaultDecorators;\n\n\tvar _decoratorsInline = __webpack_require__(18);\n\n\tvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\n\tfunction registerDefaultDecorators(instance) {\n\t _decoratorsInline2['default'](instance);\n\t}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerDecorator('inline', function (fn, props, container, options) {\n\t var ret = fn;\n\t if (!props.partials) {\n\t props.partials = {};\n\t ret = function (context, options) {\n\t // Create a new partials stack frame prior to exec.\n\t var original = container.partials;\n\t container.partials = _utils.extend({}, original, props.partials);\n\t var ret = fn(context, options);\n\t container.partials = original;\n\t return ret;\n\t };\n\t }\n\n\t props.partials[options.args[0]] = options.fn;\n\n\t return ret;\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar logger = {\n\t methodMap: ['debug', 'info', 'warn', 'error'],\n\t level: 'info',\n\n\t // Maps a given level value to the `methodMap` indexes above.\n\t lookupLevel: function lookupLevel(level) {\n\t if (typeof level === 'string') {\n\t var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n\t if (levelMap >= 0) {\n\t level = levelMap;\n\t } else {\n\t level = parseInt(level, 10);\n\t }\n\t }\n\n\t return level;\n\t },\n\n\t // Can be overridden in the host environment\n\t log: function log(level) {\n\t level = logger.lookupLevel(level);\n\n\t if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n\t var method = logger.methodMap[level];\n\t if (!console[method]) {\n\t // eslint-disable-line no-console\n\t method = 'log';\n\t }\n\n\t for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t message[_key - 1] = arguments[_key];\n\t }\n\n\t console[method].apply(console, message); // eslint-disable-line no-console\n\t }\n\t }\n\t};\n\n\texports['default'] = logger;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\n\t// Build out our basic SafeString type\n\t'use strict';\n\n\texports.__esModule = true;\n\tfunction SafeString(string) {\n\t this.string = string;\n\t}\n\n\tSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n\t return '' + this.string;\n\t};\n\n\texports['default'] = SafeString;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$seal = __webpack_require__(22)['default'];\n\n\tvar _interopRequireWildcard = __webpack_require__(1)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.checkRevision = checkRevision;\n\texports.template = template;\n\texports.wrapProgram = wrapProgram;\n\texports.resolvePartial = resolvePartial;\n\texports.invokePartial = invokePartial;\n\texports.noop = noop;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar Utils = _interopRequireWildcard(_utils);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\tvar _base = __webpack_require__(3);\n\n\tfunction checkRevision(compilerInfo) {\n\t var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n\t currentRevision = _base.COMPILER_REVISION;\n\n\t if (compilerRevision !== currentRevision) {\n\t if (compilerRevision < currentRevision) {\n\t var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n\t compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n\t throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n\t } else {\n\t // Use the embedded version info since the runtime doesn't know about this revision yet\n\t throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n\t }\n\t }\n\t}\n\n\tfunction template(templateSpec, env) {\n\t /* istanbul ignore next */\n\t if (!env) {\n\t throw new _exception2['default']('No environment passed to template');\n\t }\n\t if (!templateSpec || !templateSpec.main) {\n\t throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n\t }\n\n\t templateSpec.main.decorator = templateSpec.main_d;\n\n\t // Note: Using env.VM references rather than local var references throughout this section to allow\n\t // for external users to override these as psuedo-supported APIs.\n\t env.VM.checkRevision(templateSpec.compiler);\n\n\t function invokePartialWrapper(partial, context, options) {\n\t if (options.hash) {\n\t context = Utils.extend({}, context, options.hash);\n\t if (options.ids) {\n\t options.ids[0] = true;\n\t }\n\t }\n\n\t partial = env.VM.resolvePartial.call(this, partial, context, options);\n\t var result = env.VM.invokePartial.call(this, partial, context, options);\n\n\t if (result == null && env.compile) {\n\t options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n\t result = options.partials[options.name](context, options);\n\t }\n\t if (result != null) {\n\t if (options.indent) {\n\t var lines = result.split('\\n');\n\t for (var i = 0, l = lines.length; i < l; i++) {\n\t if (!lines[i] && i + 1 === l) {\n\t break;\n\t }\n\n\t lines[i] = options.indent + lines[i];\n\t }\n\t result = lines.join('\\n');\n\t }\n\t return result;\n\t } else {\n\t throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n\t }\n\t }\n\n\t // Just add water\n\t var container = {\n\t strict: function strict(obj, name) {\n\t if (!(name in obj)) {\n\t throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n\t }\n\t return obj[name];\n\t },\n\t lookup: function lookup(depths, name) {\n\t var len = depths.length;\n\t for (var i = 0; i < len; i++) {\n\t if (depths[i] && depths[i][name] != null) {\n\t return depths[i][name];\n\t }\n\t }\n\t },\n\t lambda: function lambda(current, context) {\n\t return typeof current === 'function' ? current.call(context) : current;\n\t },\n\n\t escapeExpression: Utils.escapeExpression,\n\t invokePartial: invokePartialWrapper,\n\n\t fn: function fn(i) {\n\t var ret = templateSpec[i];\n\t ret.decorator = templateSpec[i + '_d'];\n\t return ret;\n\t },\n\n\t programs: [],\n\t program: function program(i, data, declaredBlockParams, blockParams, depths) {\n\t var programWrapper = this.programs[i],\n\t fn = this.fn(i);\n\t if (data || depths || blockParams || declaredBlockParams) {\n\t programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n\t } else if (!programWrapper) {\n\t programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n\t }\n\t return programWrapper;\n\t },\n\n\t data: function data(value, depth) {\n\t while (value && depth--) {\n\t value = value._parent;\n\t }\n\t return value;\n\t },\n\t merge: function merge(param, common) {\n\t var obj = param || common;\n\n\t if (param && common && param !== common) {\n\t obj = Utils.extend({}, common, param);\n\t }\n\n\t return obj;\n\t },\n\t // An empty object to use as replacement for null-contexts\n\t nullContext: _Object$seal({}),\n\n\t noop: env.VM.noop,\n\t compilerInfo: templateSpec.compiler\n\t };\n\n\t function ret(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t var data = options.data;\n\n\t ret._setup(options);\n\t if (!options.partial && templateSpec.useData) {\n\t data = initData(context, data);\n\t }\n\t var depths = undefined,\n\t blockParams = templateSpec.useBlockParams ? [] : undefined;\n\t if (templateSpec.useDepths) {\n\t if (options.depths) {\n\t depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n\t } else {\n\t depths = [context];\n\t }\n\t }\n\n\t function main(context /*, options*/) {\n\t return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n\t }\n\t main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n\t return main(context, options);\n\t }\n\t ret.isTop = true;\n\n\t ret._setup = function (options) {\n\t if (!options.partial) {\n\t container.helpers = container.merge(options.helpers, env.helpers);\n\n\t if (templateSpec.usePartial) {\n\t container.partials = container.merge(options.partials, env.partials);\n\t }\n\t if (templateSpec.usePartial || templateSpec.useDecorators) {\n\t container.decorators = container.merge(options.decorators, env.decorators);\n\t }\n\t } else {\n\t container.helpers = options.helpers;\n\t container.partials = options.partials;\n\t container.decorators = options.decorators;\n\t }\n\t };\n\n\t ret._child = function (i, data, blockParams, depths) {\n\t if (templateSpec.useBlockParams && !blockParams) {\n\t throw new _exception2['default']('must pass block params');\n\t }\n\t if (templateSpec.useDepths && !depths) {\n\t throw new _exception2['default']('must pass parent depths');\n\t }\n\n\t return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n\t };\n\t return ret;\n\t}\n\n\tfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n\t function prog(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t var currentDepths = depths;\n\t if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n\t currentDepths = [context].concat(depths);\n\t }\n\n\t return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n\t }\n\n\t prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n\t prog.program = i;\n\t prog.depth = depths ? depths.length : 0;\n\t prog.blockParams = declaredBlockParams || 0;\n\t return prog;\n\t}\n\n\tfunction resolvePartial(partial, context, options) {\n\t if (!partial) {\n\t if (options.name === '@partial-block') {\n\t partial = options.data['partial-block'];\n\t } else {\n\t partial = options.partials[options.name];\n\t }\n\t } else if (!partial.call && !options.name) {\n\t // This is a dynamic partial that returned a string\n\t options.name = partial;\n\t partial = options.partials[partial];\n\t }\n\t return partial;\n\t}\n\n\tfunction invokePartial(partial, context, options) {\n\t // Use the current closure context to save the partial-block if this partial\n\t var currentPartialBlock = options.data && options.data['partial-block'];\n\t options.partial = true;\n\t if (options.ids) {\n\t options.data.contextPath = options.ids[0] || options.data.contextPath;\n\t }\n\n\t var partialBlock = undefined;\n\t if (options.fn && options.fn !== noop) {\n\t (function () {\n\t options.data = _base.createFrame(options.data);\n\t // Wrapper function to get access to currentPartialBlock from the closure\n\t var fn = options.fn;\n\t partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t // Restore the partial-block from the closure for the execution of the block\n\t // i.e. the part inside the block of the partial call.\n\t options.data = _base.createFrame(options.data);\n\t options.data['partial-block'] = currentPartialBlock;\n\t return fn(context, options);\n\t };\n\t if (fn.partials) {\n\t options.partials = Utils.extend({}, options.partials, fn.partials);\n\t }\n\t })();\n\t }\n\n\t if (partial === undefined && partialBlock) {\n\t partial = partialBlock;\n\t }\n\n\t if (partial === undefined) {\n\t throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n\t } else if (partial instanceof Function) {\n\t return partial(context, options);\n\t }\n\t}\n\n\tfunction noop() {\n\t return '';\n\t}\n\n\tfunction initData(context, data) {\n\t if (!data || !('root' in data)) {\n\t data = data ? _base.createFrame(data) : {};\n\t data.root = context;\n\t }\n\t return data;\n\t}\n\n\tfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n\t if (fn.decorator) {\n\t var props = {};\n\t prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n\t Utils.extend(prog, props);\n\t }\n\t return prog;\n\t}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(23), __esModule: true };\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(24);\n\tmodule.exports = __webpack_require__(29).Object.seal;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.17 Object.seal(O)\n\tvar isObject = __webpack_require__(25);\n\n\t__webpack_require__(26)('seal', function($seal){\n\t return function seal(it){\n\t return $seal && isObject(it) ? $seal(it) : it;\n\t };\n\t});\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(27)\n\t , core = __webpack_require__(29)\n\t , fails = __webpack_require__(32);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(28)\n\t , core = __webpack_require__(29)\n\t , ctx = __webpack_require__(30)\n\t , PROTOTYPE = 'prototype';\n\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(31);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/* global window */\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (Handlebars) {\n\t /* istanbul ignore next */\n\t var root = typeof global !== 'undefined' ? global : window,\n\t $Handlebars = root.Handlebars;\n\t /* istanbul ignore next */\n\t Handlebars.noConflict = function () {\n\t if (root.Handlebars === Handlebars) {\n\t root.Handlebars = $Handlebars;\n\t }\n\t return Handlebars;\n\t };\n\t};\n\n\tmodule.exports = exports['default'];\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ })\n/******/ ])\n});\n;", "module.exports = function(Handlebars) {\n\nthis[\"Handlebars\"] = this[\"Handlebars\"] || {};\nthis[\"Handlebars\"][\"templates\"] = this[\"Handlebars\"][\"templates\"] || {};\n\nthis[\"Handlebars\"][\"templates\"][\"article_grid_item\"] = Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.Image : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.Category : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <li class=\\\"article-grid--item\\\">\\n <a href=\\\"\"\n + alias4(((helper = (helper = helpers.URL || (depth0 != null ? depth0.URL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"URL\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n <img src=\\\"\"\n + alias4(((helper = (helper = helpers.Image || (depth0 != null ? depth0.Image : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Image\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" alt=\\\"\\\" />\\n <div class=\\\"article-grid--item--copy\\\">\\n <h4 class=\\\"article-grid--item--category\\\"><i>\"\n + alias4(((helper = (helper = helpers.Category || (depth0 != null ? depth0.Category : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Category\",\"hash\":{},\"data\":data}) : helper)))\n + \"</i></h4>\\n <h3>\"\n + alias4(((helper = (helper = helpers.Title || (depth0 != null ? depth0.Title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Title\",\"hash\":{},\"data\":data}) : helper)))\n + \"</h3>\\n <p>\"\n + alias4(((helper = (helper = helpers.Description || (depth0 != null ? depth0.Description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Description\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p>\\n </div>\\n </a>\\n </li>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <li class=\\\"article-grid--item\\\">\\n <a href=\\\"\"\n + alias4(((helper = (helper = helpers.URL || (depth0 != null ? depth0.URL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"URL\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n <img src=\\\"\"\n + alias4(((helper = (helper = helpers.Image || (depth0 != null ? depth0.Image : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Image\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" alt=\\\"\\\" />\\n <div class=\\\"article-grid--item--copy no-category\\\">\\n <h3>\"\n + alias4(((helper = (helper = helpers.Title || (depth0 != null ? depth0.Title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Title\",\"hash\":{},\"data\":data}) : helper)))\n + \"</h3>\\n <p>\"\n + alias4(((helper = (helper = helpers.Description || (depth0 != null ? depth0.Description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Description\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p>\\n </div>\\n </a>\\n </li>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <li class=\\\"article-grid--item text-only\\\">\\n <a href=\\\"\"\n + alias4(((helper = (helper = helpers.URL || (depth0 != null ? depth0.URL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"URL\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n <div class=\\\"article-grid--item--copy\\\">\\n <h4 class=\\\"article-grid--item--category\\\"><i>\"\n + alias4(((helper = (helper = helpers.Category || (depth0 != null ? depth0.Category : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Category\",\"hash\":{},\"data\":data}) : helper)))\n + \"</i></h4>\\n <h3>\"\n + alias4(((helper = (helper = helpers.Title || (depth0 != null ? depth0.Title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Title\",\"hash\":{},\"data\":data}) : helper)))\n + \"</h3>\\n <p>\"\n + alias4(((helper = (helper = helpers.Description || (depth0 != null ? depth0.Description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Description\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p>\\n </div>\\n </a>\\n </li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.stories : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\n\nthis[\"Handlebars\"][\"templates\"][\"custom_rebate\"] = Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <div class=\\\"custom-rebate\\\">\\n <p>\"\n + ((stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</p>\\n <a href=\\\"\"\n + alias4(((helper = (helper = helpers.customLink || (depth0 != null ? depth0.customLink : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"customLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\">\"\n + alias4(((helper = (helper = helpers.customLinkTitle || (depth0 != null ? depth0.customLinkTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"customLinkTitle\",\"hash\":{},\"data\":data}) : helper)))\n + \"<span class=\\\"fa fa-long-arrow-right-after\\\"></span></a>\\n </div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.custom : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\n\nthis[\"Handlebars\"][\"templates\"][\"find_a_contractor_results\"] = Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <div class=\\\"find-contractor-result @contractorType\\\">\\n <div class=\\\"media-left\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.Imageurl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \" </div>\\n\\n <div class=\\\"media-body\\\">\\n <div class=\\\"phone-cta\\\">\\n <a href=\\\"tel:\"\n + alias4(((helper = (helper = helpers.Phone || (depth0 != null ? depth0.Phone : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Phone\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.Phone || (depth0 != null ? depth0.Phone : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Phone\",\"hash\":{},\"data\":data}) : helper)))\n + \"</a>\\n <br>\\n <a href=\\\"\"\n + alias4(((helper = (helper = helpers.Website || (depth0 != null ? depth0.Website : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Website\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\">Visit Website<span class=\\\"fa fa-external-link\\\"></span></a>\\n </div>\\n </div>\\n </div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <img src=\\\"\"\n + alias4(((helper = (helper = helpers.Imageurl || (depth0 != null ? depth0.Imageurl : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Imageurl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" alt=\\\"\"\n + alias4(((helper = (helper = helpers.Name || (depth0 != null ? depth0.Name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" />\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \" <h3>\"\n + container.escapeExpression(((helper = (helper = helpers.Name || (depth0 != null ? depth0.Name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"Name\",\"hash\":{},\"data\":data}) : helper)))\n + \"</h3>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.Contractors : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\n\nthis[\"Handlebars\"][\"templates\"][\"premium_rebate\"] = Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<div class=\\\"premium-rebate\\\">\\n <div class=\\\"media-left\\\">\\n <img src=\\\"\"\n + alias4(((helper = (helper = helpers.sponsorImageSrc || (depth0 != null ? depth0.sponsorImageSrc : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sponsorImageSrc\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" alt=\\\"\"\n + alias4(((helper = (helper = helpers.sponsorImageAlt || (depth0 != null ? depth0.sponsorImageAlt : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sponsorImageAlt\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" />\\n </div>\\n <div class=\\\"media-body\\\">\\n <h3>\"\n + alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"</h3>\\n <p>\"\n + ((stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</p>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.applyOnlineLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfEquipmentLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \" </div>\\n</div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \" <a href=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.applyOnlineLink || (depth0 != null ? depth0.applyOnlineLink : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"applyOnlineLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\" >\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.applyOnlineLinkCopy : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \" <span class=\\\"fa fa-external-link\\\"></span></a>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \" \"\n + container.escapeExpression(((helper = (helper = helpers.applyOnlineLinkCopy || (depth0 != null ? depth0.applyOnlineLinkCopy : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"applyOnlineLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" APPLY ONLINE\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \" <p><a href=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.pdfEquipmentLink || (depth0 != null ? depth0.pdfEquipmentLink : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"pdfEquipmentLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\" >\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfEquipmentLinkCopy : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \" <span class=\\\"fa fa-download\\\"></span></a></p>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \" \"\n + container.escapeExpression(((helper = (helper = helpers.pdfEquipmentLinkCopy || (depth0 != null ? depth0.pdfEquipmentLinkCopy : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"pdfEquipmentLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \" EQUIPMENT ELIGIBILITY\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <p><a href=\\\"\"\n + alias4(((helper = (helper = helpers.pdfLink || (depth0 != null ? depth0.pdfLink : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pdfLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.pdfLinkCopy || (depth0 != null ? depth0.pdfLinkCopy : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pdfLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\">\"\n + alias4(((helper = (helper = helpers.pdfLinkCopy || (depth0 != null ? depth0.pdfLinkCopy : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pdfLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"<span class=\\\"fa fa-download\\\"></span></a></p>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.premium : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\n\nthis[\"Handlebars\"][\"templates\"][\"standard_rebate\"] = Handlebars.template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <div class=\\\"standard-rebate\\\">\\n\t\t<div class=\\\"price\\\">$\"\n + alias4(((helper = (helper = helpers.amount || (depth0 != null ? depth0.amount : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"amount\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t\t<div class=\\\"item\\\">\"\n + alias4(((helper = (helper = helpers.headline || (depth0 != null ? depth0.headline : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"headline\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n <div class=\\\"download-link\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.applyOnlineLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfEquipmentLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \" </div>\\n\t</div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \" <a href=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.applyOnlineLink || (depth0 != null ? depth0.applyOnlineLink : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"applyOnlineLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\" >\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.applyOnlineLinkCopy : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \" <span class=\\\"fa fa-external-link\\\"></span></a>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t\t\"\n + container.escapeExpression(((helper = (helper = helpers.applyOnlineLinkCopy || (depth0 != null ? depth0.applyOnlineLinkCopy : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"applyOnlineLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" APPLY ONLINE\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \" <a href=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.pdfEquipmentLink || (depth0 != null ? depth0.pdfEquipmentLink : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"pdfEquipmentLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\" >\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.pdfEquipmentLinkCopy : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t<span class=\\\"fa fa-download\\\"></span></a>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t\t\"\n + container.escapeExpression(((helper = (helper = helpers.pdfEquipmentLinkCopy || (depth0 != null ? depth0.pdfEquipmentLinkCopy : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"pdfEquipmentLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t\tEQUIPMENT ELIGIBILITY\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \" <a href=\\\"\"\n + alias4(((helper = (helper = helpers.pdfLink || (depth0 != null ? depth0.pdfLink : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pdfLink\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" target=\\\"_blank\\\" class=\\\"cta\\\">\"\n + alias4(((helper = (helper = helpers.pdfLinkCopy || (depth0 != null ? depth0.pdfLinkCopy : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"pdfLinkCopy\",\"hash\":{},\"data\":data}) : helper)))\n + \"<span class=\\\"fa fa-download\\\"></span></a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.standard : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\n\nreturn this[\"Handlebars\"][\"templates\"];\n\n};" ] }