Welcome to mirror list, hosted at ThFree Co, Russian Federation.

plugin.js.map « js « assets - github.com/xiaoheiAh/hugo-theme-pure.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9096ef82e8fbe8884674ae0a89270ff2fc39b585 (plain)
1
{"version":3,"sources":["baiduTemplate.js","geopattern.js","ie10-viewport-bug-workaround.js","jquery.okayNav.js","jquery.share.min.js","jquery.slimscroll.min.js","keepinview.js","bootstrap/collapse.js","bootstrap/modal.js","bootstrap/scrollspy.js","bootstrap/tab.js","bootstrap/tooltip.js","bootstrap/transition.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxNA;ACAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtdA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"plugin.js","sourcesContent":["/**\r\n * baiduTemplate简单好用的Javascript模板引擎 1.0.6 版本\r\n * http://baidufe.github.com/BaiduTemplate\r\n * 开源协议:BSD License\r\n * 浏览器环境占用命名空间 baidu.template ,nodejs环境直接安装 npm install baidutemplate\r\n * @param str{String} dom结点ID,或者模板string\r\n * @param data{Object} 需要渲染的json对象,可以为空。当data为{}时,仍然返回html。\r\n * @return 如果无data,直接返回编译后的函数;如果有data,返回html。\r\n * @author wangxiao \r\n * @email 1988wangxiao@gmail.com\r\n*/\r\n\r\n;(function(window){\r\n\r\n    //取得浏览器环境的baidu命名空间,非浏览器环境符合commonjs规范exports出去\r\n    //修正在nodejs环境下,采用baidu.template变量名\r\n    var baidu = typeof module === 'undefined' ? (window.baidu = window.baidu || {}) : module.exports;\r\n\r\n    //模板函数(放置于baidu.template命名空间下)\r\n    baidu.template = function(str, data){\r\n\r\n        //检查是否有该id的元素存在,如果有元素则获取元素的innerHTML/value,否则认为字符串为模板\r\n        var fn = (function(){\r\n\r\n            //判断如果没有document,则为非浏览器环境\r\n            if(!window.document){\r\n                return bt._compile(str);\r\n            };\r\n\r\n            //HTML5规定ID可以由任何不包含空格字符的字符串组成\r\n            var element = document.getElementById(str);\r\n            if (element) {\r\n                    \r\n                //取到对应id的dom,缓存其编译后的HTML模板函数\r\n                if (bt.cache[str]) {\r\n                    return bt.cache[str];\r\n                };\r\n\r\n                //textarea或input则取value,其它情况取innerHTML\r\n                var html = /^(textarea|input)$/i.test(element.nodeName) ? element.value : element.innerHTML;\r\n                return bt._compile(html);\r\n\r\n            }else{\r\n\r\n                //是模板字符串,则生成一个函数\r\n                //如果直接传入字符串作为模板,则可能变化过多,因此不考虑缓存\r\n                return bt._compile(str);\r\n            };\r\n\r\n        })();\r\n\r\n        //有数据则返回HTML字符串,没有数据则返回函数 支持data={}的情况\r\n        var result = bt._isObject(data) ? fn( data ) : fn;\r\n        fn = null;\r\n\r\n        return result;\r\n    };\r\n\r\n    //取得命名空间 baidu.template\r\n    var bt = baidu.template;\r\n\r\n    //标记当前版本\r\n    bt.versions = bt.versions || [];\r\n    bt.versions.push('1.0.6');\r\n\r\n    //缓存  将对应id模板生成的函数缓存下来。\r\n    bt.cache = {};\r\n    \r\n    //自定义分隔符,可以含有正则中的字符,可以是HTML注释开头 <! !>\r\n    bt.LEFT_DELIMITER = bt.LEFT_DELIMITER||'{%';\r\n    bt.RIGHT_DELIMITER = bt.RIGHT_DELIMITER||'%}';\r\n\r\n    //自定义默认是否转义,默认为默认自动转义\r\n    bt.ESCAPE = true;\r\n\r\n    //HTML转义\r\n    bt._encodeHTML = function (source) {\r\n        return String(source)\r\n            .replace(/&/g,'&amp;')\r\n            .replace(/</g,'&lt;')\r\n            .replace(/>/g,'&gt;')\r\n            .replace(/\\\\/g,'&#92;')\r\n            .replace(/\"/g,'&quot;')\r\n            .replace(/'/g,'&#39;');\r\n    };\r\n\r\n    //转义影响正则的字符\r\n    bt._encodeReg = function (source) {\r\n        return String(source).replace(/([.*+?^=!:${}()|[\\]/\\\\])/g,'\\\\$1');\r\n    };\r\n\r\n    //转义UI UI变量使用在HTML页面标签onclick等事件函数参数中\r\n    bt._encodeEventHTML = function (source) {\r\n        return String(source)\r\n            .replace(/&/g,'&amp;')\r\n            .replace(/</g,'&lt;')\r\n            .replace(/>/g,'&gt;')\r\n            .replace(/\"/g,'&quot;')\r\n            .replace(/'/g,'&#39;')\r\n            .replace(/\\\\\\\\/g,'\\\\')\r\n            .replace(/\\\\\\//g,'\\/')\r\n            .replace(/\\\\n/g,'\\n')\r\n            .replace(/\\\\r/g,'\\r');\r\n    };\r\n\r\n    //将字符串拼接生成函数,即编译过程(compile)\r\n    bt._compile = function(str){\r\n        var funBody = \"var _template_fun_array=[];\\nvar fn=(function(__data__){\\nvar _template_varName='';\\nfor(name in __data__){\\n_template_varName+=('var '+name+'=__data__[\\\"'+name+'\\\"];');\\n};\\neval(_template_varName);\\n_template_fun_array.push('\"+bt._analysisStr(str)+\"');\\n_template_varName=null;\\n})(_template_object);\\nfn = null;\\nreturn _template_fun_array.join('');\\n\";\r\n        return new Function(\"_template_object\",funBody);\r\n    };\r\n\r\n    //判断是否是Object类型\r\n    bt._isObject = function (source) {\r\n        return 'function' === typeof source || !!(source && 'object' === typeof source);\r\n    };\r\n\r\n    //解析模板字符串\r\n    bt._analysisStr = function(str){\r\n\r\n        //取得分隔符\r\n        var _left_ = bt.LEFT_DELIMITER;\r\n        var _right_ = bt.RIGHT_DELIMITER;\r\n\r\n        //对分隔符进行转义,支持正则中的元字符,可以是HTML注释 <!  !>\r\n        var _left = bt._encodeReg(_left_);\r\n        var _right = bt._encodeReg(_right_);\r\n\r\n        str = String(str)\r\n            \r\n            //去掉分隔符中js注释\r\n            .replace(new RegExp(\"(\"+_left+\"[^\"+_right+\"]*)//.*\\n\",\"g\"), \"$1\")\r\n\r\n            //去掉注释内容  <%* 这里可以任意的注释 *%>\r\n            //默认支持HTML注释,将HTML注释匹配掉的原因是用户有可能用 <! !>来做分割符\r\n            .replace(new RegExp(\"<!--.*?-->\", \"g\"),\"\")\r\n            .replace(new RegExp(_left+\"\\\\*.*?\\\\*\"+_right, \"g\"),\"\")\r\n\r\n            //把所有换行去掉  \\r回车符 \\t制表符 \\n换行符\r\n            .replace(new RegExp(\"[\\\\r\\\\t\\\\n]\",\"g\"), \"\")\r\n\r\n            //用来处理非分隔符内部的内容中含有 斜杠 \\ 单引号 ‘ ,处理办法为HTML转义\r\n            .replace(new RegExp(_left+\"(?:(?!\"+_right+\")[\\\\s\\\\S])*\"+_right+\"|((?:(?!\"+_left+\")[\\\\s\\\\S])+)\",\"g\"),function (item, $1) {\r\n                var str = '';\r\n                if($1){\r\n\r\n                    //将 斜杠 单引 HTML转义\r\n                    str = $1.replace(/\\\\/g,\"&#92;\").replace(/'/g,'&#39;');\r\n                    while(/<[^<]*?&#39;[^<]*?>/g.test(str)){\r\n\r\n                        //将标签内的单引号转义为\\r  结合最后一步,替换为\\'\r\n                        str = str.replace(/(<[^<]*?)&#39;([^<]*?>)/g,'$1\\r$2')\r\n                    };\r\n                }else{\r\n                    str = item;\r\n                }\r\n                return str ;\r\n            });\r\n\r\n\r\n        str = str \r\n            //定义变量,如果没有分号,需要容错  <%var val='test'%>\r\n            .replace(new RegExp(\"(\"+_left+\"[\\\\s]*?var[\\\\s]*?.*?[\\\\s]*?[^;])[\\\\s]*?\"+_right,\"g\"),\"$1;\"+_right_)\r\n\r\n            //对变量后面的分号做容错(包括转义模式 如<%:h=value%>)  <%=value;%> 排除掉函数的情况 <%fun1();%> 排除定义变量情况  <%var val='test';%>\r\n            .replace(new RegExp(\"(\"+_left+\":?[hvu]?[\\\\s]*?=[\\\\s]*?[^;|\"+_right+\"]*?);[\\\\s]*?\"+_right,\"g\"),\"$1\"+_right_)\r\n\r\n            //按照 <% 分割为一个个数组,再用 \\t 和在一起,相当于将 <% 替换为 \\t\r\n            //将模板按照<%分为一段一段的,再在每段的结尾加入 \\t,即用 \\t 将每个模板片段前面分隔开\r\n            .split(_left_).join(\"\\t\");\r\n\r\n        //支持用户配置默认是否自动转义\r\n        if(bt.ESCAPE){\r\n            str = str\r\n\r\n                //找到 \\t=任意一个字符%> 替换为 ‘,任意字符,'\r\n                //即替换简单变量  \\t=data%> 替换为 ',data,'\r\n                //默认HTML转义  也支持HTML转义写法<%:h=value%>  \r\n                .replace(new RegExp(\"\\\\t=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'\");\r\n        }else{\r\n            str = str\r\n                \r\n                //默认不转义HTML转义\r\n                .replace(new RegExp(\"\\\\t=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':$1,'\");\r\n        };\r\n\r\n        str = str\r\n\r\n            //支持HTML转义写法<%:h=value%>  \r\n            .replace(new RegExp(\"\\\\t:h=(.*?)\"+_right,\"g\"),\"',typeof($1) === 'undefined'?'':baidu.template._encodeHTML($1),'\")\r\n\r\n            //支持不转义写法 <%:=value%>和<%-value%>\r\n            .replace(new RegExp(\"\\\\t(?::=|-)(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':$1,'\")\r\n\r\n            //支持url转义 <%:u=value%>\r\n            .replace(new RegExp(\"\\\\t:u=(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':encodeURIComponent($1),'\")\r\n\r\n            //支持UI 变量使用在HTML页面标签onclick等事件函数参数中  <%:v=value%>\r\n            .replace(new RegExp(\"\\\\t:v=(.*?)\"+_right,\"g\"),\"',typeof($1)==='undefined'?'':baidu.template._encodeEventHTML($1),'\")\r\n\r\n            //将字符串按照 \\t 分成为数组,在用'); 将其合并,即替换掉结尾的 \\t 为 ');\r\n            //在if,for等语句前面加上 '); ,形成 ');if  ');for  的形式\r\n            .split(\"\\t\").join(\"');\")\r\n\r\n            //将 %> 替换为_template_fun_array.push('\r\n            //即去掉结尾符,生成函数中的push方法\r\n            //如:if(list.length=5){%><h2>',list[4],'</h2>');}\r\n            //会被替换为 if(list.length=5){_template_fun_array.push('<h2>',list[4],'</h2>');}\r\n            .split(_right_).join(\"_template_fun_array.push('\")\r\n\r\n            //将 \\r 替换为 \\\r\n            .split(\"\\r\").join(\"\\\\'\");\r\n\r\n        return str;\r\n    };\r\n\r\n})(window);\r\n","!function(t){if(\"object\"==typeof exports)module.exports=t();else if(\"function\"==typeof define&&define.amd)define(t);else{var r;\"undefined\"!=typeof window?r=window:\"undefined\"!=typeof global?r=global:\"undefined\"!=typeof self&&(r=self),r.GeoPattern=t()}}(function(){return function t(r,s,e){function i(o,a){if(!s[o]){if(!r[o]){var h=\"function\"==typeof require&&require;if(!a&&h)return h(o,!0);if(n)return n(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var l=s[o]={exports:{}};r[o][0].call(l.exports,function(t){var s=r[o][1][t];return i(s?s:t)},l,l.exports,t,r,s,e)}return s[o].exports}for(var n=\"function\"==typeof require&&require,o=0;o<e.length;o++)i(e[o]);return i}({1:[function(t,r){r.exports=t(\"./lib/\")},{\"./lib/\":3}],2:[function(t,r){\"use strict\";function s(t){var r=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;t=t.replace(r,function(t,r,s,e){return r+r+s+s+e+e});var s=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(t);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16)}:null}function e(t){return\"#\"+[\"r\",\"g\",\"b\"].map(function(r){return(\"0\"+t[r].toString(16)).slice(-2)}).join(\"\")}function i(t){var r=t.r,s=t.g,e=t.b;r/=255,s/=255,e/=255;var i,n,o=Math.max(r,s,e),a=Math.min(r,s,e),h=(o+a)/2;if(o===a)i=n=0;else{var l=o-a;switch(n=h>.5?l/(2-o-a):l/(o+a),o){case r:i=(s-e)/l+(e>s?6:0);break;case s:i=(e-r)/l+2;break;case e:i=(r-s)/l+4}i/=6}return{h:i,s:n,l:h}}function n(t){function r(t,r,s){return 0>s&&(s+=1),s>1&&(s-=1),1/6>s?t+6*(r-t)*s:.5>s?r:2/3>s?t+(r-t)*(2/3-s)*6:t}var s,e,i,n=t.h,o=t.s,a=t.l;if(0===o)s=e=i=a;else{var h=.5>a?a*(1+o):a+o-a*o,l=2*a-h;s=r(l,h,n+1/3),e=r(l,h,n),i=r(l,h,n-1/3)}return{r:Math.round(255*s),g:Math.round(255*e),b:Math.round(255*i)}}r.exports={hex2rgb:s,rgb2hex:e,rgb2hsl:i,hsl2rgb:n,rgb2rgbString:function(t){return\"rgb(\"+[t.r,t.g,t.b].join(\",\")+\")\"}}},{}],3:[function(t,r){!function(s){\"use strict\";function e(t){return function(r,s){return\"object\"==typeof r&&(s=r,r=null),(null===r||void 0===r)&&(r=(new Date).toString()),s||(s={}),t.call(this,r,s)}}var i=t(\"./pattern\"),n=r.exports={generate:e(function(t,r){return new i(t,r)})};s&&(s.fn.geopattern=e(function(t,r){return this.each(function(){var e=s(this).attr(\"data-title-sha\");e&&(r=s.extend({hash:e},r));var i=n.generate(t,r);s(this).css(\"background-image\",i.toDataUrl())})}))}(\"undefined\"!=typeof jQuery?jQuery:null)},{\"./pattern\":4}],4:[function(t,r){(function(s){\"use strict\";function e(t,r,s){return parseInt(t.substr(r,s||1),16)}function i(t,r,s,e,i){var n=parseFloat(t),o=s-r,a=i-e;return(n-r)*a/o+e}function n(t){return t%2===0?C:j}function o(t){return i(t,0,15,M,W)}function a(t){var r=t,s=r/2,e=Math.sin(60*Math.PI/180)*r;return[0,e,s,0,s+r,0,2*r,e,s+r,2*e,s,2*e,0,e].join(\",\")}function h(t,r){var s=.66*r;return[[0,0,t/2,r-s,t/2,r,0,s,0,0],[t/2,r-s,t,0,t,s,t/2,r,t/2,r-s]].map(function(t){return t.join(\",\")})}function l(t){return[[t,0,t,3*t],[0,t,3*t,t]]}function c(t){var r=t,s=.33*r;return[s,0,r-s,0,r,s,r,r-s,r-s,r,s,r,0,r-s,0,s,s,0].join(\",\")}function f(t,r){var s=t/2;return[s,0,t,r,0,r,s,0].join(\",\")}function u(t,r){return[t/2,0,t,r/2,t/2,r,0,r/2].join(\",\")}function p(t){return[0,0,t,t,0,t,0,0].join(\",\")}function g(t,r,s,e,i){var a=p(e),h=o(i[0]),l=n(i[0]),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":h,fill:l};t.polyline(a,c).transform({translate:[r+e,s],scale:[-1,1]}),t.polyline(a,c).transform({translate:[r+e,s+2*e],scale:[1,-1]}),h=o(i[1]),l=n(i[1]),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":h,fill:l},t.polyline(a,c).transform({translate:[r+e,s+2*e],scale:[-1,-1]}),t.polyline(a,c).transform({translate:[r+e,s],scale:[1,1]})}function v(t,r,s,e,i){var a=o(i),h=n(i),l=p(e),c={stroke:S,\"stroke-opacity\":A,\"fill-opacity\":a,fill:h};t.polyline(l,c).transform({translate:[r,s+e],scale:[1,-1]}),t.polyline(l,c).transform({translate:[r+2*e,s+e],scale:[-1,-1]}),t.polyline(l,c).transform({translate:[r,s+e],scale:[1,1]}),t.polyline(l,c).transform({translate:[r+2*e,s+e],scale:[-1,1]})}function y(t,r){var s=t/2;return[0,0,r,s,0,t,0,0].join(\",\")}var d=t(\"extend\"),b=t(\"./color\"),m=t(\"./sha1\"),k=t(\"./svg\"),x={baseColor:\"#933c3c\"},w=[\"octogons\",\"overlappingCircles\",\"plusSigns\",\"xes\",\"sineWaves\",\"hexagons\",\"overlappingRings\",\"plaid\",\"triangles\",\"squares\",\"concentricCircles\",\"diamonds\",\"tessellation\",\"nestedSquares\",\"mosaicSquares\",\"chevrons\"],j=\"#222\",C=\"#ddd\",S=\"#000\",A=.02,M=.02,W=.15,H=r.exports=function(t,r){return this.opts=d({},x,r),this.hash=r.hash||m(t),this.svg=new k,this.generateBackground(),this.generatePattern(),this};H.prototype.toSvg=function(){return this.svg.toString()},H.prototype.toString=function(){return this.toSvg()},H.prototype.toBase64=function(){var t,r=this.toSvg();return t=\"undefined\"!=typeof window&&\"function\"==typeof window.btoa?window.btoa(r):new s(r).toString(\"base64\")},H.prototype.toDataUri=function(){return\"data:image/svg+xml;base64,\"+this.toBase64()},H.prototype.toDataUrl=function(){return'url(\"'+this.toDataUri()+'\")'},H.prototype.generateBackground=function(){var t,r,s,n;this.opts.color?s=b.hex2rgb(this.opts.color):(r=i(e(this.hash,14,3),0,4095,0,359),n=e(this.hash,17),t=b.rgb2hsl(b.hex2rgb(this.opts.baseColor)),t.h=(360*t.h-r+360)%360/360,t.s=n%2===0?Math.min(1,(100*t.s+n)/100):Math.max(0,(100*t.s-n)/100),s=b.hsl2rgb(t)),this.color=b.rgb2hex(s),this.svg.rect(0,0,\"100%\",\"100%\",{fill:b.rgb2rgbString(s)})},H.prototype.generatePattern=function(){var t=this.opts.generator;if(t){if(w.indexOf(t)<0)throw new Error(\"The generator \"+t+\" does not exist.\")}else t=w[e(this.hash,20)];return this[\"geo\"+t.slice(0,1).toUpperCase()+t.slice(1)]()},H.prototype.geoHexagons=function(){var t,r,s,h,l,c,f,u,p=e(this.hash,0),g=i(p,0,15,8,60),v=g*Math.sqrt(3),y=2*g,d=a(g);for(this.svg.setWidth(3*y+3*g),this.svg.setHeight(6*v),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),t=f%2===0?u*v:u*v+v/2,h=o(c),r=n(c),l={fill:r,\"fill-opacity\":h,stroke:S,\"stroke-opacity\":A},this.svg.polyline(d,l).transform({translate:[f*g*1.5-y/2,t-v/2]}),0===f&&this.svg.polyline(d,l).transform({translate:[6*g*1.5-y/2,t-v/2]}),0===u&&(t=f%2===0?6*v:6*v+v/2,this.svg.polyline(d,l).transform({translate:[f*g*1.5-y/2,t-v/2]})),0===f&&0===u&&this.svg.polyline(d,l).transform({translate:[6*g*1.5-y/2,5*v+v/2]}),s++},H.prototype.geoSineWaves=function(){var t,r,s,a,h,l,c,f=Math.floor(i(e(this.hash,0),0,15,100,400)),u=Math.floor(i(e(this.hash,1),0,15,30,100)),p=Math.floor(i(e(this.hash,2),0,15,3,30));for(this.svg.setWidth(f),this.svg.setHeight(36*p),r=0;36>r;r++)l=e(this.hash,r),s=o(l),t=n(l),c=f/4*.7,h={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":\"\"+p+\"px\"},a=\"M0 \"+u+\" C \"+c+\" 0, \"+(f/2-c)+\" 0, \"+f/2+\" \"+u+\" S \"+(f-c)+\" \"+2*u+\", \"+f+\" \"+u+\" S \"+(1.5*f-c)+\" 0, \"+1.5*f+\", \"+u,this.svg.path(a,h).transform({translate:[-f/4,p*r-1.5*u]}),this.svg.path(a,h).transform({translate:[-f/4,p*r-1.5*u+36*p]})},H.prototype.geoChevrons=function(){var t,r,s,a,l,c,f,u=i(e(this.hash,0),0,15,30,80),p=i(e(this.hash,0),0,15,30,80),g=h(u,p);for(this.svg.setWidth(6*u),this.svg.setHeight(6*p*.66),r=0,f=0;6>f;f++)for(c=0;6>c;c++)l=e(this.hash,r),s=o(l),t=n(l),a={stroke:S,\"stroke-opacity\":A,fill:t,\"fill-opacity\":s,\"stroke-width\":1},this.svg.group(a).transform({translate:[c*u,f*p*.66-p/2]}).polyline(g).end(),0===f&&this.svg.group(a).transform({translate:[c*u,6*p*.66-p/2]}).polyline(g).end(),r+=1},H.prototype.geoPlusSigns=function(){var t,r,s,a,h,c,f,u,p=i(e(this.hash,0),0,15,10,25),g=3*p,v=l(p);for(this.svg.setWidth(12*p),this.svg.setHeight(12*p),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),a=o(c),r=n(c),t=u%2===0?0:1,h={fill:r,stroke:S,\"stroke-opacity\":A,\"fill-opacity\":a},this.svg.group(h).transform({translate:[f*g-f*p+t*p-p,u*g-u*p-g/2]}).rect(v).end(),0===f&&this.svg.group(h).transform({translate:[4*g-f*p+t*p-p,u*g-u*p-g/2]}).rect(v).end(),0===u&&this.svg.group(h).transform({translate:[f*g-f*p+t*p-p,4*g-u*p-g/2]}).rect(v).end(),0===f&&0===u&&this.svg.group(h).transform({translate:[4*g-f*p+t*p-p,4*g-u*p-g/2]}).rect(v).end(),s++},H.prototype.geoXes=function(){var t,r,s,a,h,c,f,u,p=i(e(this.hash,0),0,15,10,25),g=l(p),v=3*p*.943;for(this.svg.setWidth(3*v),this.svg.setHeight(3*v),s=0,u=0;6>u;u++)for(f=0;6>f;f++)c=e(this.hash,s),a=o(c),t=f%2===0?u*v-.5*v:u*v-.5*v+v/4,r=n(c),h={fill:r,opacity:a},this.svg.group(h).transform({translate:[f*v/2-v/2,t-u*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===f&&this.svg.group(h).transform({translate:[6*v/2-v/2,t-u*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===u&&(t=f%2===0?6*v-v/2:6*v-v/2+v/4,this.svg.group(h).transform({translate:[f*v/2-v/2,t-6*v/2],rotate:[45,v/2,v/2]}).rect(g).end()),5===u&&this.svg.group(h).transform({translate:[f*v/2-v/2,t-11*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),0===f&&0===u&&this.svg.group(h).transform({translate:[6*v/2-v/2,t-6*v/2],rotate:[45,v/2,v/2]}).rect(g).end(),s++},H.prototype.geoOverlappingCircles=function(){var t,r,s,a,h,l,c,f=e(this.hash,0),u=i(f,0,15,25,200),p=u/2;for(this.svg.setWidth(6*p),this.svg.setHeight(6*p),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:t,opacity:s},this.svg.circle(l*p,c*p,p,a),0===l&&this.svg.circle(6*p,c*p,p,a),0===c&&this.svg.circle(l*p,6*p,p,a),0===l&&0===c&&this.svg.circle(6*p,6*p,p,a),r++},H.prototype.geoOctogons=function(){var t,r,s,a,h,l,f=i(e(this.hash,0),0,15,10,60),u=c(f);for(this.svg.setWidth(6*f),this.svg.setHeight(6*f),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.polyline(u,{fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A}).transform({translate:[h*f,l*f]}),r+=1},H.prototype.geoSquares=function(){var t,r,s,a,h,l,c=i(e(this.hash,0),0,15,10,60);for(this.svg.setWidth(6*c),this.svg.setHeight(6*c),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.rect(h*c,l*c,c,c,{fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A}),r+=1},H.prototype.geoConcentricCircles=function(){var t,r,s,a,h,l,c=e(this.hash,0),f=i(c,0,15,10,60),u=f/5;for(this.svg.setWidth(6*(f+u)),this.svg.setHeight(6*(f+u)),r=0,l=0;6>l;l++)for(h=0;6>h;h++)a=e(this.hash,r),s=o(a),t=n(a),this.svg.circle(h*f+h*u+(f+u)/2,l*f+l*u+(f+u)/2,f/2,{fill:\"none\",stroke:t,opacity:s,\"stroke-width\":u+\"px\"}),a=e(this.hash,39-r),s=o(a),t=n(a),this.svg.circle(h*f+h*u+(f+u)/2,l*f+l*u+(f+u)/2,f/4,{fill:t,\"fill-opacity\":s}),r+=1},H.prototype.geoOverlappingRings=function(){var t,r,s,a,h,l,c,f=e(this.hash,0),u=i(f,0,15,10,60),p=u/4;for(this.svg.setWidth(6*u),this.svg.setHeight(6*u),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":p+\"px\"},this.svg.circle(l*u,c*u,u-p/2,a),0===l&&this.svg.circle(6*u,c*u,u-p/2,a),0===c&&this.svg.circle(l*u,6*u,u-p/2,a),0===l&&0===c&&this.svg.circle(6*u,6*u,u-p/2,a),r+=1},H.prototype.geoTriangles=function(){var t,r,s,a,h,l,c,u,p=e(this.hash,0),g=i(p,0,15,15,80),v=g/2*Math.sqrt(3),y=f(g,v);for(this.svg.setWidth(3*g),this.svg.setHeight(6*v),r=0,u=0;6>u;u++)for(c=0;6>c;c++)l=e(this.hash,r),s=o(l),t=n(l),h={fill:t,\"fill-opacity\":s,stroke:S,\"stroke-opacity\":A},a=u%2===0?c%2===0?180:0:c%2!==0?180:0,this.svg.polyline(y,h).transform({translate:[c*g*.5-g/2,v*u],rotate:[a,g/2,v/2]}),0===c&&this.svg.polyline(y,h).transform({translate:[6*g*.5-g/2,v*u],rotate:[a,g/2,v/2]}),r+=1},H.prototype.geoDiamonds=function(){var t,r,s,a,h,l,c,f,p=i(e(this.hash,0),0,15,10,50),g=i(e(this.hash,1),0,15,10,50),v=u(p,g);for(this.svg.setWidth(6*p),this.svg.setHeight(3*g),s=0,f=0;6>f;f++)for(c=0;6>c;c++)l=e(this.hash,s),a=o(l),r=n(l),h={fill:r,\"fill-opacity\":a,stroke:S,\"stroke-opacity\":A},t=f%2===0?0:p/2,this.svg.polyline(v,h).transform({translate:[c*p-p/2+t,g/2*f-g/2]}),0===c&&this.svg.polyline(v,h).transform({translate:[6*p-p/2+t,g/2*f-g/2]}),0===f&&this.svg.polyline(v,h).transform({translate:[c*p-p/2+t,g/2*6-g/2]}),0===c&&0===f&&this.svg.polyline(v,h).transform({translate:[6*p-p/2+t,g/2*6-g/2]}),s+=1},H.prototype.geoNestedSquares=function(){var t,r,s,a,h,l,c,f=i(e(this.hash,0),0,15,4,12),u=7*f;for(this.svg.setWidth(6*(u+f)+6*f),this.svg.setHeight(6*(u+f)+6*f),r=0,c=0;6>c;c++)for(l=0;6>l;l++)h=e(this.hash,r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":f+\"px\"},this.svg.rect(l*u+l*f*2+f/2,c*u+c*f*2+f/2,u,u,a),h=e(this.hash,39-r),s=o(h),t=n(h),a={fill:\"none\",stroke:t,opacity:s,\"stroke-width\":f+\"px\"},this.svg.rect(l*u+l*f*2+f/2+2*f,c*u+c*f*2+f/2+2*f,3*f,3*f,a),r+=1},H.prototype.geoMosaicSquares=function(){var t,r,s,n=i(e(this.hash,0),0,15,15,50);for(this.svg.setWidth(8*n),this.svg.setHeight(8*n),t=0,s=0;4>s;s++)for(r=0;4>r;r++)r%2===0?s%2===0?v(this.svg,r*n*2,s*n*2,n,e(this.hash,t)):g(this.svg,r*n*2,s*n*2,n,[e(this.hash,t),e(this.hash,t+1)]):s%2===0?g(this.svg,r*n*2,s*n*2,n,[e(this.hash,t),e(this.hash,t+1)]):v(this.svg,r*n*2,s*n*2,n,e(this.hash,t)),t+=1},H.prototype.geoPlaid=function(){var t,r,s,i,a,h,l,c=0,f=0;for(r=0;36>r;)i=e(this.hash,r),c+=i+5,l=e(this.hash,r+1),s=o(l),t=n(l),a=l+5,this.svg.rect(0,c,\"100%\",a,{opacity:s,fill:t}),c+=a,r+=2;for(r=0;36>r;)i=e(this.hash,r),f+=i+5,l=e(this.hash,r+1),s=o(l),t=n(l),h=l+5,this.svg.rect(f,0,h,\"100%\",{opacity:s,fill:t}),f+=h,r+=2;this.svg.setWidth(f),this.svg.setHeight(c)},H.prototype.geoTessellation=function(){var t,r,s,a,h,l=i(e(this.hash,0),0,15,5,40),c=l*Math.sqrt(3),f=2*l,u=l/2*Math.sqrt(3),p=y(l,u),g=3*l+2*u,v=2*c+2*l;for(this.svg.setWidth(g),this.svg.setHeight(v),r=0;20>r;r++)switch(h=e(this.hash,r),s=o(h),t=n(h),a={stroke:S,\"stroke-opacity\":A,fill:t,\"fill-opacity\":s,\"stroke-width\":1},r){case 0:this.svg.rect(-l/2,-l/2,l,l,a),this.svg.rect(g-l/2,-l/2,l,l,a),this.svg.rect(-l/2,v-l/2,l,l,a),this.svg.rect(g-l/2,v-l/2,l,l,a);break;case 1:this.svg.rect(f/2+u,c/2,l,l,a);break;case 2:this.svg.rect(-l/2,v/2-l/2,l,l,a),this.svg.rect(g-l/2,v/2-l/2,l,l,a);break;case 3:this.svg.rect(f/2+u,1.5*c+l,l,l,a);break;case 4:this.svg.polyline(p,a).transform({translate:[l/2,-l/2],rotate:[0,l/2,u/2]}),this.svg.polyline(p,a).transform({translate:[l/2,v- -l/2],rotate:[0,l/2,u/2],scale:[1,-1]});break;case 5:this.svg.polyline(p,a).transform({translate:[g-l/2,-l/2],rotate:[0,l/2,u/2],scale:[-1,1]}),this.svg.polyline(p,a).transform({translate:[g-l/2,v+l/2],rotate:[0,l/2,u/2],scale:[-1,-1]});break;case 6:this.svg.polyline(p,a).transform({translate:[g/2+l/2,c/2]});break;case 7:this.svg.polyline(p,a).transform({translate:[g-g/2-l/2,c/2],scale:[-1,1]});break;case 8:this.svg.polyline(p,a).transform({translate:[g/2+l/2,v-c/2],scale:[1,-1]});break;case 9:this.svg.polyline(p,a).transform({translate:[g-g/2-l/2,v-c/2],scale:[-1,-1]});break;case 10:this.svg.polyline(p,a).transform({translate:[l/2,v/2-l/2]});break;case 11:this.svg.polyline(p,a).transform({translate:[g-l/2,v/2-l/2],scale:[-1,1]});break;case 12:this.svg.rect(0,0,l,l,a).transform({translate:[l/2,l/2],rotate:[-30,0,0]});break;case 13:this.svg.rect(0,0,l,l,a).transform({scale:[-1,1],translate:[-g+l/2,l/2],rotate:[-30,0,0]});break;case 14:this.svg.rect(0,0,l,l,a).transform({translate:[l/2,v/2-l/2-l],rotate:[30,0,l]});break;case 15:this.svg.rect(0,0,l,l,a).transform({scale:[-1,1],translate:[-g+l/2,v/2-l/2-l],rotate:[30,0,l]});break;case 16:this.svg.rect(0,0,l,l,a).transform({scale:[1,-1],translate:[l/2,-v+v/2-l/2-l],rotate:[30,0,l]});break;case 17:this.svg.rect(0,0,l,l,a).transform({scale:[-1,-1],translate:[-g+l/2,-v+v/2-l/2-l],rotate:[30,0,l]});break;case 18:this.svg.rect(0,0,l,l,a).transform({scale:[1,-1],translate:[l/2,-v+l/2],rotate:[-30,0,0]});break;case 19:this.svg.rect(0,0,l,l,a).transform({scale:[-1,-1],translate:[-g+l/2,-v+l/2],rotate:[-30,0,0]})}}}).call(this,t(\"buffer\").Buffer)},{\"./color\":2,\"./sha1\":5,\"./svg\":6,buffer:8,extend:9}],5:[function(t,r){\"use strict\";function s(){function t(){for(var t=16;80>t;t++){var r=f[t-3]^f[t-8]^f[t-14]^f[t-16];f[t]=r<<1|r>>>31}var s,e,i=o,n=a,p=h,g=l,v=c;for(t=0;80>t;t++){20>t?(s=g^n&(p^g),e=1518500249):40>t?(s=n^p^g,e=1859775393):60>t?(s=n&p|g&(n|p),e=2400959708):(s=n^p^g,e=3395469782);var y=(i<<5|i>>>27)+s+v+e+(0|f[t]);v=g,g=p,p=n<<30|n>>>2,n=i,i=y}for(o=o+i|0,a=a+n|0,h=h+p|0,l=l+g|0,c=c+v|0,u=0,t=0;16>t;t++)f[t]=0}function r(r){f[u]|=(255&r)<<p,p?p-=8:(u++,p=24),16===u&&t()}function s(t){var s=t.length;g+=8*s;for(var e=0;s>e;e++)r(t.charCodeAt(e))}function e(t){if(\"string\"==typeof t)return s(t);var e=t.length;g+=8*e;for(var i=0;e>i;i++)r(t[i])}function i(t){for(var r=\"\",s=28;s>=0;s-=4)r+=(t>>s&15).toString(16);return r}function n(){r(128),(u>14||14===u&&24>p)&&t(),u=14,p=24,r(0),r(0),r(g>0xffffffffff?g/1099511627776:0),r(g>4294967295?g/4294967296:0);for(var s=24;s>=0;s-=8)r(g>>s);return i(o)+i(a)+i(h)+i(l)+i(c)}var o=1732584193,a=4023233417,h=2562383102,l=271733878,c=3285377520,f=new Uint32Array(80),u=0,p=24,g=0;return{update:e,digest:n}}r.exports=function(t){if(void 0===t)return s();var r=s();return r.update(t),r.digest()}},{}],6:[function(t,r){\"use strict\";function s(){return this.width=100,this.height=100,this.svg=new i(\"svg\"),this.context=[],this.setAttributes(this.svg,{xmlns:\"http://www.w3.org/2000/svg\",width:this.width,height:this.height}),this}var e=t(\"extend\"),i=t(\"./xml\");r.exports=s,s.prototype.currentContext=function(){return this.context[this.context.length-1]||this.svg},s.prototype.end=function(){return this.context.pop(),this},s.prototype.currentNode=function(){var t=this.currentContext();return t.lastChild||t},s.prototype.transform=function(t){return this.currentNode().setAttribute(\"transform\",Object.keys(t).map(function(r){return r+\"(\"+t[r].join(\",\")+\")\"}).join(\" \")),this},s.prototype.setAttributes=function(t,r){Object.keys(r).forEach(function(s){t.setAttribute(s,r[s])})},s.prototype.setWidth=function(t){this.svg.setAttribute(\"width\",Math.floor(t))},s.prototype.setHeight=function(t){this.svg.setAttribute(\"height\",Math.floor(t))},s.prototype.toString=function(){return this.svg.toString()},s.prototype.rect=function(t,r,s,n,o){var a=this;if(Array.isArray(t))return t.forEach(function(t){a.rect.apply(a,t.concat(o))}),this;var h=new i(\"rect\");return this.currentContext().appendChild(h),this.setAttributes(h,e({x:t,y:r,width:s,height:n},o)),this},s.prototype.circle=function(t,r,s,n){var o=new i(\"circle\");return this.currentContext().appendChild(o),this.setAttributes(o,e({cx:t,cy:r,r:s},n)),this},s.prototype.path=function(t,r){var s=new i(\"path\");return this.currentContext().appendChild(s),this.setAttributes(s,e({d:t},r)),this},s.prototype.polyline=function(t,r){var s=this;if(Array.isArray(t))return t.forEach(function(t){s.polyline(t,r)}),this;var n=new i(\"polyline\");return this.currentContext().appendChild(n),this.setAttributes(n,e({points:t},r)),this},s.prototype.group=function(t){var r=new i(\"g\");return this.currentContext().appendChild(r),this.context.push(r),this.setAttributes(r,e({},t)),this}},{\"./xml\":7,extend:9}],7:[function(t,r){\"use strict\";var s=r.exports=function(t){return this instanceof s?(this.tagName=t,this.attributes=Object.create(null),this.children=[],this.lastChild=null,this):new s(t)};s.prototype.appendChild=function(t){return this.children.push(t),this.lastChild=t,this},s.prototype.setAttribute=function(t,r){return this.attributes[t]=r,this},s.prototype.toString=function(){var t=this;return[\"<\",t.tagName,Object.keys(t.attributes).map(function(r){return[\" \",r,'=\"',t.attributes[r],'\"'].join(\"\")}).join(\"\"),\">\",t.children.map(function(t){return t.toString()}).join(\"\"),\"</\",t.tagName,\">\"].join(\"\")}},{}],8:[function(){},{}],9:[function(t,r){function s(t){if(!t||\"[object Object]\"!==i.call(t)||t.nodeType||t.setInterval)return!1;var r=e.call(t,\"constructor\"),s=e.call(t.constructor.prototype,\"isPrototypeOf\");if(t.constructor&&!r&&!s)return!1;var n;for(n in t);return void 0===n||e.call(t,n)}var e=Object.prototype.hasOwnProperty,i=Object.prototype.toString;r.exports=function n(){var t,r,e,i,o,a,h=arguments[0]||{},l=1,c=arguments.length,f=!1;for(\"boolean\"==typeof h&&(f=h,h=arguments[1]||{},l=2),\"object\"!=typeof h&&\"function\"!=typeof h&&(h={});c>l;l++)if(null!=(t=arguments[l]))for(r in t)e=h[r],i=t[r],h!==i&&(f&&i&&(s(i)||(o=Array.isArray(i)))?(o?(o=!1,a=e&&Array.isArray(e)?e:[]):a=e&&s(e)?e:{},h[r]=n(f,a,i)):void 0!==i&&(h[r]=i));return h}},{}]},{},[1])(1)});","/*!\r\n * IE10 viewport hack for Surface/desktop Windows 8 bug\r\n * Copyright 2014-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n */\r\n\r\n// See the Getting Started docs for more information:\r\n// http://getbootstrap.com/getting-started/#support-ie10-width\r\n\r\n(function () {\r\n  'use strict';\r\n\r\n  if (navigator.userAgent.match(/IEMobile\\/10\\.0/)) {\r\n    var msViewportStyle = document.createElement('style')\r\n    msViewportStyle.appendChild(\r\n      document.createTextNode(\r\n        '@-ms-viewport{width:auto!important}'\r\n      )\r\n    )\r\n    document.querySelector('head').appendChild(msViewportStyle)\r\n  }\r\n\r\n})();\r\n","/*!\r\n * jquery.okayNav.js 2.0.4 (https://github.com/VPenkov/okayNav)\r\n * Author: Vergil Penkov (http://vergilpenkov.com/)\r\n * MIT license: https://opensource.org/licenses/MIT\r\n */\r\n\r\n;\r\n(function(factory) {\r\n    if (typeof define === 'function' && define.amd) {\r\n        define(['jquery'], factory); // AMD\r\n    } else if (typeof module === 'object' && module.exports) {\r\n        module.exports = function(root, jQuery) { // Node/CommonJS\r\n            if (jQuery === undefined) {\r\n                if (typeof window !== 'undefined') {\r\n                    jQuery = require('jquery');\r\n                } else {\r\n                    jQuery = require('jquery')(root);\r\n                }\r\n            }\r\n            factory(jQuery);\r\n            return jQuery;\r\n        };\r\n    } else {\r\n        factory(jQuery); // Browser globals\r\n    }\r\n}(function($) {\r\n    // Defaults\r\n\r\n    var okayNav = 'okayNav',\r\n        defaults = {\r\n            parent: '', // will call nav's parent() by default\r\n            toggle_icon_class: 'okayNav__menu-toggle',\r\n            toggle_icon_content: '<span /><span /><span />',\r\n            align_right: true, // If false, the menu and the kebab icon will be on the left\r\n            swipe_enabled: true, // If true, you'll be able to swipe left/right to open the navigation\r\n            threshold: 50, // Nav will auto open/close if swiped >= this many percent\r\n            resize_delay: 10, // When resizing the window, okayNav can throttle its recalculations if enabled. Setting this to 50-250 will improve performance but make okayNav less accurate.\r\n            beforeOpen: function() {}, // Will trigger before the nav gets opened\r\n            afterOpen: function() {}, // Will trigger after the nav gets opened\r\n            beforeClose: function() {}, // Will trigger before the nav gets closed\r\n            afterClose: function() {}, // Will trigger after the nav gets closed\r\n            itemHidden: function() {},\r\n            itemDisplayed: function() {}\r\n        };\r\n\r\n    // Begin\r\n    function Plugin(element, options) {\r\n        var self = this;\r\n        this.options = $.extend({}, defaults, options);\r\n\r\n        self.navigation = $(element);\r\n        self.document = $(document);\r\n        self.window = $(window);\r\n\r\n        this.options.parent == '' ? this.options.parent = self.navigation.parent() : '';\r\n\r\n        self.nav_open = false; // Store the state of the hidden nav\r\n        self.parent_full_width = 0;\r\n\r\n        // Swipe stuff\r\n        self.radCoef = 180 / Math.PI;\r\n        self.sTouch = {\r\n            x: 0,\r\n            y: 0\r\n        };\r\n        self.cTouch = {\r\n            x: 0,\r\n            y: 0\r\n        };\r\n        self.sTime = 0;\r\n        self.nav_position = 0;\r\n        self.percent_open = 0;\r\n        self.nav_moving = false;\r\n\r\n\r\n        self.init();\r\n    }\r\n\r\n    $.extend(Plugin.prototype, {\r\n\r\n        init: function() {\r\n            var self = this;\r\n\r\n            $('body').addClass('okayNav-loaded');\r\n\r\n            // Add classes\r\n            self.navigation\r\n                .addClass('okayNav loaded')\r\n                .children('ul').addClass('okayNav__nav--visible');\r\n\r\n            // Append elements\r\n            if (self.options.align_right) {\r\n                self.navigation\r\n                    .append('<ul class=\"okayNav__nav--invisible transition-enabled nav-right\" />')\r\n                    .append('<a href=\"#\" class=\"' + self.options.toggle_icon_class + ' okay-invisible\">' + self.options.toggle_icon_content + '</a>')\r\n            } else {\r\n                self.navigation\r\n                    .prepend('<ul class=\"okayNav__nav--invisible transition-enabled nav-left\" />')\r\n                    .prepend('<a href=\"#\" class=\"' + self.options.toggle_icon_class + ' okay-invisible\">' + self.options.toggle_icon_content + '</a>')\r\n            }\r\n\r\n            // Cache new elements for further use\r\n            self.nav_visible = self.navigation.children('.okayNav__nav--visible');\r\n            self.nav_invisible = self.navigation.children('.okayNav__nav--invisible');\r\n            self.toggle_icon = self.navigation.children('.' + self.options.toggle_icon_class);\r\n\r\n            self.toggle_icon_width = self.toggle_icon.outerWidth(true);\r\n            self.default_width = self.getChildrenWidth(self.navigation);\r\n            self.parent_full_width = $(self.options.parent).outerWidth(true);\r\n            self.last_visible_child_width = 0; // We'll define this later\r\n\r\n            // Events are up once everything is set\r\n            self.initEvents();\r\n\r\n            // Trim white spaces between visible nav elements\r\n            self.nav_visible.contents().filter(function() {\r\n                return this.nodeType = Node.TEXT_NODE && /\\S/.test(this.nodeValue) === false;\r\n            }).remove();\r\n\r\n            if (self.options.swipe_enabled == true) self.initSwipeEvents();\r\n        },\r\n\r\n        initEvents: function() {\r\n            var self = this;\r\n            // Toggle hidden nav when hamburger icon is clicked and\r\n            // Collapse hidden nav on click outside the header\r\n            self.document.on('click.okayNav', function(e) {\r\n                var _target = $(e.target);\r\n\r\n                if (self.nav_open === true && _target.closest('.okayNav').length == 0)\r\n                    self.closeInvisibleNav();\r\n\r\n                if (e.target === self.toggle_icon.get(0)) {\r\n                    e.preventDefault();\r\n                    self.toggleInvisibleNav();\r\n                }\r\n            });\r\n\r\n            var optimizeResize = self._debounce(function() {\r\n                self.recalcNav()\r\n            }, self.options.resize_delay);\r\n            self.window.on('load.okayNav resize.okayNav', optimizeResize);\r\n        },\r\n\r\n        initSwipeEvents: function() {\r\n            var self = this;\r\n            self.document\r\n                .on('touchstart.okayNav', function(e) {\r\n                    self.nav_invisible.removeClass('transition-enabled');\r\n\r\n                    //Trigger only on touch with one finger\r\n                    if (e.originalEvent.touches.length == 1) {\r\n                        var touch = e.originalEvent.touches[0];\r\n                        if (\r\n                            ((touch.pageX < 25 && self.options.align_right == false) ||\r\n                                (touch.pageX > ($(self.options.parent).outerWidth(true) - 25) &&\r\n                                    self.options.align_right == true)) ||\r\n                            self.nav_open === true) {\r\n\r\n                            self.sTouch.x = self.cTouch.x = touch.pageX;\r\n                            self.sTouch.y = self.cTouch.y = touch.pageY;\r\n                            self.sTime = Date.now();\r\n                        }\r\n\r\n                    }\r\n                })\r\n                .on('touchmove.okayNav', function(e) {\r\n                    var touch = e.originalEvent.touches[0];\r\n                    self._triggerMove(touch.pageX, touch.pageY);\r\n                    self.nav_moving = true;\r\n                })\r\n                .on('touchend.okayNav', function(e) {\r\n                    self.sTouch = {\r\n                        x: 0,\r\n                        y: 0\r\n                    };\r\n                    self.cTouch = {\r\n                        x: 0,\r\n                        y: 0\r\n                    };\r\n                    self.sTime = 0;\r\n\r\n                    //Close menu if not swiped enough\r\n                    if (self.percent_open > (100 - self.options.threshold)) {\r\n                        self.nav_position = 0;\r\n                        self.closeInvisibleNav();\r\n\r\n                    } else if (self.nav_moving == true) {\r\n                        self.nav_position = self.nav_invisible.width();\r\n                        self.openInvisibleNav();\r\n                    }\r\n\r\n                    self.nav_moving = false;\r\n\r\n                    self.nav_invisible.addClass('transition-enabled');\r\n                });\r\n        },\r\n\r\n        _getDirection: function(dx) {\r\n            if (this.options.align_right) {\r\n                return (dx > 0) ? -1 : 1;\r\n            } else {\r\n                return (dx < 0) ? -1 : 1;\r\n            }\r\n        },\r\n\r\n        _triggerMove: function(x, y) {\r\n            var self = this;\r\n\r\n            self.cTouch.x = x;\r\n            self.cTouch.y = y;\r\n\r\n            var currentTime = Date.now();\r\n            var dx = (self.cTouch.x - self.sTouch.x);\r\n            var dy = (self.cTouch.y - self.sTouch.y);\r\n\r\n            var opposing = dy * dy;\r\n            var distance = Math.sqrt(dx * dx + opposing);\r\n            //Length of the opposing side of the 90deg triagle\r\n            var dOpposing = Math.sqrt(opposing);\r\n\r\n            var angle = Math.asin(Math.sin(dOpposing / distance)) * self.radCoef;\r\n            var speed = distance / (currentTime - self.sTime);\r\n\r\n            //Set new start position\r\n            self.sTouch.x = x;\r\n            self.sTouch.y = y;\r\n\r\n            //Remove false swipes\r\n            if (angle < 20) {\r\n                var dir = self._getDirection(dx);\r\n\r\n                var newPos = self.nav_position + dir * distance;\r\n                var menuWidth = self.nav_invisible.width();\r\n                var overflow = 0;\r\n\r\n\r\n                if (newPos < 0) {\r\n                    overflow = -newPos;\r\n                } else if (newPos > menuWidth) {\r\n                    overflow = menuWidth - newPos;\r\n                }\r\n\r\n                var size = menuWidth - (self.nav_position + dir * distance + overflow);\r\n                var threshold = (size / menuWidth) * 100;\r\n\r\n                //Set new position and threshold\r\n                self.nav_position += dir * distance + overflow;\r\n                self.percent_open = threshold;\r\n\r\n                // self.nav_invisible.css('transform', 'translateX(' + (self.options.align_right ? 1 : -1) * threshold + '%)');\r\n            }\r\n\r\n        },\r\n\r\n        /*\r\n         * A few methods to allow working with elements\r\n         */\r\n        getParent: function() {\r\n            return this.options.parent;\r\n        },\r\n\r\n        getVisibleNav: function() { // Visible navigation\r\n            return this.nav_visible;\r\n        },\r\n\r\n        getInvisibleNav: function() { // Hidden behind the kebab icon\r\n            return this.nav_invisible;\r\n        },\r\n\r\n        getNavToggleIcon: function() { // Kebab icon\r\n            return this.toggle_icon;\r\n        },\r\n\r\n        /*\r\n         * Operations\r\n         */\r\n        _debounce: function(func, wait, immediate) {\r\n            var timeout;\r\n            return function() {\r\n                var context = this,\r\n                    args = arguments;\r\n                var later = function() {\r\n                    timeout = null;\r\n                    if (!immediate) func.apply(context, args);\r\n                };\r\n                var callNow = immediate && !timeout;\r\n                clearTimeout(timeout);\r\n                timeout = setTimeout(later, wait);\r\n                if (callNow) func.apply(context, args);\r\n            };\r\n        },\r\n\r\n        openInvisibleNav: function() {\r\n            var self = this;\r\n\r\n            !self.options.enable_swipe ? self.options.beforeOpen.call() : '';\r\n\r\n            self.toggle_icon.addClass('icon--active');\r\n            self.nav_invisible.addClass('nav-open');\r\n            self.nav_open = true;\r\n            // self.nav_invisible.css({\r\n            //     '-webkit-transform': 'translateX(0%)',\r\n            //     'transform': 'translateX(0%)'\r\n            // });\r\n\r\n            self.options.afterOpen.call();\r\n        },\r\n\r\n        closeInvisibleNav: function() {\r\n            var self = this;\r\n            !self.options.enable_swipe ? self.options.beforeClose.call() : '';\r\n\r\n            self.toggle_icon.removeClass('icon--active');\r\n            self.nav_invisible.removeClass('nav-open');\r\n\r\n            // if (self.options.align_right) {\r\n            //     self.nav_invisible.css({\r\n            //         '-webkit-transform': 'translateX(100%)',\r\n            //         'transform': 'translateX(100%)'\r\n            //     });\r\n            // } else {\r\n            //     self.nav_invisible.css({\r\n            //         '-webkit-transform': 'translateX(-100%)',\r\n            //         'transform': 'translateX(-100%)'\r\n            //     });\r\n            // }\r\n            self.nav_open = false;\r\n\r\n            self.options.afterClose.call();\r\n        },\r\n\r\n        toggleInvisibleNav: function() {\r\n            var self = this;\r\n            if (!self.nav_open) {\r\n                self.openInvisibleNav();\r\n            } else {\r\n                self.closeInvisibleNav();\r\n            }\r\n        },\r\n\r\n\r\n        /*\r\n         * Math stuff\r\n         */\r\n        getChildrenWidth: function(el) {\r\n            var children_width = 0;\r\n            var children = $(el).children();\r\n            for (var i = 0; i < children.length; i++) {\r\n                children_width += $(children[i]).outerWidth(true);\r\n            };\r\n\r\n            return children_width;\r\n        },\r\n\r\n        getVisibleItemCount: function() {\r\n            return $('li', this.nav_visible).length;\r\n        },\r\n        getHiddenItemCount: function() {\r\n            return $('li', this.nav_invisible).length;\r\n        },\r\n\r\n        recalcNav: function() {\r\n            var self = this;\r\n            var wrapper_width = $(self.options.parent).outerWidth(true),\r\n                space_taken = self.getChildrenWidth(self.options.parent),\r\n                nav_full_width = self.navigation.outerWidth(true),\r\n                visible_nav_items = self.getVisibleItemCount(),\r\n                collapse_width = self.nav_visible.outerWidth(true) + self.toggle_icon_width,\r\n                expand_width = space_taken + self.last_visible_child_width + self.toggle_icon_width,\r\n                expandAll_width = space_taken - nav_full_width + self.default_width;\r\n\r\n            if (wrapper_width > expandAll_width) {\r\n                self._expandAllItems();\r\n                self.toggle_icon.addClass('okay-invisible');\r\n                return;\r\n            }\r\n\r\n            if (visible_nav_items > 0 &&\r\n                nav_full_width <= collapse_width &&\r\n                wrapper_width <= expand_width) {\r\n                self._collapseNavItem();\r\n            }\r\n\r\n            if (wrapper_width > expand_width + self.toggle_icon_width + 15) {\r\n                self._expandNavItem();\r\n            }\r\n\r\n\r\n            // Hide the kebab icon if no items are hidden\r\n            self.getHiddenItemCount() == 0 ?\r\n                self.toggle_icon.addClass('okay-invisible') :\r\n                self.toggle_icon.removeClass('okay-invisible');\r\n        },\r\n\r\n        _collapseNavItem: function() {\r\n            var self = this;\r\n            var $last_child = $('li:last-child', self.nav_visible);\r\n            self.last_visible_child_width = $last_child.outerWidth(true);\r\n            self.document.trigger('okayNav:collapseItem', $last_child);\r\n            $last_child.detach().prependTo(self.nav_invisible);\r\n            self.options.itemHidden.call();\r\n            // All nav items are visible by default\r\n            // so we only need recursion when collapsing\r\n\r\n            self.recalcNav();\r\n        },\r\n\r\n        _expandNavItem: function() {\r\n            var self = this;\r\n            var $first = $('li:first-child', self.nav_invisible);\r\n            self.document.trigger('okayNav:expandItem', $first);\r\n            $first.detach().appendTo(self.nav_visible);\r\n            self.options.itemDisplayed.call();\r\n        },\r\n\r\n        _expandAllItems: function() {\r\n            var self = this;\r\n            $('li', self.nav_invisible).detach().appendTo(self.nav_visible);\r\n            self.options.itemDisplayed.call();\r\n        },\r\n\r\n        _collapseAllItems: function() {\r\n            var self = this;\r\n            $('li', self.nav_visible).detach().appendTo(self.nav_invisible);\r\n            self.options.itemHidden.call();\r\n        },\r\n\r\n        destroy: function() {\r\n            var self = this;\r\n            $('li', self.nav_invisible).appendTo(self.nav_visible);\r\n            self.nav_invisible.remove();\r\n            self.nav_visible.removeClass('okayNav__nav--visible');\r\n            self.toggle_icon.remove();\r\n\r\n            self.document.unbind('.okayNav');\r\n            self.window.unbind('.okayNav');\r\n        }\r\n\r\n    });\r\n\r\n    // Plugin wrapper\r\n    $.fn[okayNav] = function(options) {\r\n        var args = arguments;\r\n\r\n        if (options === undefined || typeof options === 'object') {\r\n            return this.each(function() {\r\n                if (!$.data(this, 'plugin_' + okayNav)) {\r\n                    $.data(this, 'plugin_' + okayNav, new Plugin(this, options));\r\n                }\r\n            });\r\n\r\n        } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {\r\n\r\n            var returns;\r\n            this.each(function() {\r\n                var instance = $.data(this, 'plugin_' + okayNav);\r\n                if (instance instanceof Plugin && typeof instance[options] === 'function') {\r\n                    returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));\r\n                }\r\n\r\n                if (options === 'destroy') {\r\n                    $.data(this, 'plugin_' + okayNav, null);\r\n                }\r\n            });\r\n\r\n            return returns !== undefined ? returns : this;\r\n        }\r\n    };\r\n}));\r\n","!function(r){\"use strict\";function t(t,e,n,o){function i(r,t){return r-=o,t-=o,!(0>r||r>=u||0>t||t>=u)&&a.isDark(r,t)}var a=r(n,e);a.addData(t),a.make(),o=o||0;var u=a.getModuleCount(),f=a.getModuleCount()+2*o,c=function(r,t,e,n){var o=this.isDark,i=1/f;this.isDark=function(a,u){var f=u*i,c=a*i,s=f+i,l=c+i;return o(a,u)&&(r>s||f>e||t>l||c>n)}};this.text=t,this.level=e,this.version=n,this.moduleCount=f,this.isDark=i,this.addBlank=c}function e(r,e,n,o,i){n=Math.max(1,n||1),o=Math.min(40,o||40);for(var a=n;o>=a;a+=1)try{return new t(r,e,a,i)}catch(r){}}function n(r,t,e){var n=e.size,o=\"bold \"+e.mSize*n+\"px \"+e.fontname,i=p(\"<canvas/>\")[0].getContext(\"2d\");i.font=o;var a=i.measureText(e.label).width,u=e.mSize,f=a/n,c=(1-f)*e.mPosX,s=(1-u)*e.mPosY,l=c+f,h=s+u,d=.01;1===e.mode?r.addBlank(0,s-d,n,h+d):r.addBlank(c-d,s-d,l+d,h+d),t.fillStyle=e.fontcolor,t.font=o,t.fillText(e.label,c*n,s*n+.75*e.mSize*n)}function o(r,t,e){var n=e.size,o=e.image.naturalWidth||1,i=e.image.naturalHeight||1,a=e.mSize,u=a*o/i,f=(1-u)*e.mPosX,c=(1-a)*e.mPosY,s=f+u,l=c+a,h=.01;3===e.mode?r.addBlank(0,c-h,n,l+h):r.addBlank(f-h,c-h,s+h,l+h),t.drawImage(e.image,f*n,c*n,u*n,a*n)}function i(r,t,e){p(e.background).is(\"img\")?t.drawImage(e.background,0,0,e.size,e.size):e.background&&(t.fillStyle=e.background,t.fillRect(e.left,e.top,e.size,e.size));var i=e.mode;1===i||2===i?n(r,t,e):(3===i||4===i)&&o(r,t,e)}function a(r,t,e,n,o,i,a,u){r.isDark(a,u)&&t.rect(n,o,i,i)}function u(r,t,e,n,o,i,a,u,f,c){a?r.moveTo(t+i,e):r.moveTo(t,e),u?(r.lineTo(n-i,e),r.arcTo(n,e,n,o,i)):r.lineTo(n,e),f?(r.lineTo(n,o-i),r.arcTo(n,o,t,o,i)):r.lineTo(n,o),c?(r.lineTo(t+i,o),r.arcTo(t,o,t,e,i)):r.lineTo(t,o),a?(r.lineTo(t,e+i),r.arcTo(t,e,n,e,i)):r.lineTo(t,e)}function f(r,t,e,n,o,i,a,u,f,c){a&&(r.moveTo(t+i,e),r.lineTo(t,e),r.lineTo(t,e+i),r.arcTo(t,e,t+i,e,i)),u&&(r.moveTo(n-i,e),r.lineTo(n,e),r.lineTo(n,e+i),r.arcTo(n,e,n-i,e,i)),f&&(r.moveTo(n-i,o),r.lineTo(n,o),r.lineTo(n,o-i),r.arcTo(n,o,n-i,o,i)),c&&(r.moveTo(t+i,o),r.lineTo(t,o),r.lineTo(t,o-i),r.arcTo(t,o,t+i,o,i))}function c(r,t,e,n,o,i,a,c){var s=r.isDark,l=n+i,h=o+i,d=e.radius*i,g=a-1,v=a+1,p=c-1,w=c+1,m=s(a,c),T=s(g,p),y=s(g,c),E=s(g,w),A=s(a,w),B=s(v,w),k=s(v,c),b=s(v,p),C=s(a,p);m?u(t,n,o,l,h,d,!y&&!C,!y&&!A,!k&&!A,!k&&!C):f(t,n,o,l,h,d,y&&C&&T,y&&A&&E,k&&A&&B,k&&C&&b)}function s(r,t,e){var n,o,i=r.moduleCount,u=e.size/i,f=a;for(m&&e.radius>0&&e.radius<=.5&&(f=c),t.beginPath(),n=0;i>n;n+=1)for(o=0;i>o;o+=1){var s=e.left+o*u,l=e.top+n*u,h=u;f(r,t,e,s,l,h,n,o)}if(p(e.fill).is(\"img\")){t.strokeStyle=\"rgba(0,0,0,0.5)\",t.lineWidth=2,t.stroke();var d=t.globalCompositeOperation;t.globalCompositeOperation=\"destination-out\",t.fill(),t.globalCompositeOperation=d,t.clip(),t.drawImage(e.fill,0,0,e.size,e.size),t.restore()}else t.fillStyle=e.fill,t.fill()}function l(r,t){var n=e(t.text,t.ecLevel,t.minVersion,t.maxVersion,t.quiet);if(!n)return null;var o=p(r).data(\"qrcode\",n),a=o[0].getContext(\"2d\");return i(n,a,t),s(n,a,t),o}function h(r){var t=p(\"<canvas/>\").attr(\"width\",r.size).attr(\"height\",r.size);return l(t,r)}function d(r){return p(\"<img/>\").attr(\"src\",h(r)[0].toDataURL(\"image/png\"))}function g(r){var t=e(r.text,r.ecLevel,r.minVersion,r.maxVersion,r.quiet);if(!t)return null;var n,o,i=r.size,a=r.background,u=Math.floor,f=t.moduleCount,c=u(i/f),s=u(.5*(i-c*f)),l={position:\"relative\",left:0,top:0,padding:0,margin:0,width:i,height:i},h={position:\"absolute\",padding:0,margin:0,width:c,height:c,\"background-color\":r.fill},d=p(\"<div/>\").data(\"qrcode\",t).css(l);for(a&&d.css(\"background-color\",a),n=0;f>n;n+=1)for(o=0;f>o;o+=1)t.isDark(n,o)&&p(\"<div/>\").css(h).css({left:s+o*c,top:s+n*c}).appendTo(d);return d}function v(r){return w&&\"canvas\"===r.render?h(r):w&&\"image\"===r.render?d(r):g(r)}var p=jQuery,w=function(){var r=document.createElement(\"canvas\");return Boolean(r.getContext&&r.getContext(\"2d\"))}(),m=\"[object Opera]\"!==Object.prototype.toString.call(window.opera),T={render:\"canvas\",minVersion:1,maxVersion:40,ecLevel:\"L\",left:0,top:0,size:200,fill:\"#000\",background:null,text:\"no text\",radius:0,quiet:0,mode:0,mSize:.1,mPosX:.5,mPosY:.5,label:\"no label\",fontname:\"sans\",fontcolor:\"#000\",image:null};p.fn.qrcode=function(r){var t=p.extend({},T,r);return this.each(function(){\"canvas\"===this.nodeName.toLowerCase()?l(this,t):p(this).append(v(t))})}}(function(){var r=function(){function r(t,e){if(\"undefined\"==typeof t.length)throw new Error(t.length+\"/\"+e);var n=function(){for(var r=0;r<t.length&&0==t[r];)r+=1;for(var n=new Array(t.length-r+e),o=0;o<t.length-r;o+=1)n[o]=t[o+r];return n}(),o={};return o.getAt=function(r){return n[r]},o.getLength=function(){return n.length},o.multiply=function(t){for(var e=new Array(o.getLength()+t.getLength()-1),n=0;n<o.getLength();n+=1)for(var i=0;i<t.getLength();i+=1)e[n+i]^=a.gexp(a.glog(o.getAt(n))+a.glog(t.getAt(i)));return r(e,0)},o.mod=function(t){if(o.getLength()-t.getLength()<0)return o;for(var e=a.glog(o.getAt(0))-a.glog(t.getAt(0)),n=new Array(o.getLength()),i=0;i<o.getLength();i+=1)n[i]=o.getAt(i);for(var i=0;i<t.getLength();i+=1)n[i]^=a.gexp(a.glog(t.getAt(i))+e);return r(n,0).mod(t)},o}var t=function(t,e){var o=236,a=17,s=t,l=n[e],h=null,d=0,v=null,p=new Array,w={},m=function(r,t){d=4*s+17,h=function(r){for(var t=new Array(r),e=0;r>e;e+=1){t[e]=new Array(r);for(var n=0;r>n;n+=1)t[e][n]=null}return t}(d),T(0,0),T(d-7,0),T(0,d-7),A(),E(),k(r,t),s>=7&&B(r),null==v&&(v=M(s,l,p)),b(v,t)},T=function(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||r+e>=d))for(var n=-1;7>=n;n+=1)-1>=t+n||t+n>=d||(e>=0&&6>=e&&(0==n||6==n)||n>=0&&6>=n&&(0==e||6==e)||e>=2&&4>=e&&n>=2&&4>=n?h[r+e][t+n]=!0:h[r+e][t+n]=!1)},y=function(){for(var r=0,t=0,e=0;8>e;e+=1){m(!0,e);var n=i.getLostPoint(w);(0==e||r>n)&&(r=n,t=e)}return t},E=function(){for(var r=8;d-8>r;r+=1)null==h[r][6]&&(h[r][6]=r%2==0);for(var t=8;d-8>t;t+=1)null==h[6][t]&&(h[6][t]=t%2==0)},A=function(){for(var r=i.getPatternPosition(s),t=0;t<r.length;t+=1)for(var e=0;e<r.length;e+=1){var n=r[t],o=r[e];if(null==h[n][o])for(var a=-2;2>=a;a+=1)for(var u=-2;2>=u;u+=1)-2==a||2==a||-2==u||2==u||0==a&&0==u?h[n+a][o+u]=!0:h[n+a][o+u]=!1}},B=function(r){for(var t=i.getBCHTypeNumber(s),e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);h[Math.floor(e/3)][e%3+d-8-3]=n}for(var e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);h[e%3+d-8-3][Math.floor(e/3)]=n}},k=function(r,t){for(var e=l<<3|t,n=i.getBCHTypeInfo(e),o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);6>o?h[o][8]=a:8>o?h[o+1][8]=a:h[d-15+o][8]=a}for(var o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);8>o?h[8][d-o-1]=a:9>o?h[8][15-o-1+1]=a:h[8][15-o-1]=a}h[d-8][8]=!r},b=function(r,t){for(var e=-1,n=d-1,o=7,a=0,u=i.getMaskFunction(t),f=d-1;f>0;f-=2)for(6==f&&(f-=1);;){for(var c=0;2>c;c+=1)if(null==h[n][f-c]){var s=!1;a<r.length&&(s=1==(r[a]>>>o&1));var l=u(n,f-c);l&&(s=!s),h[n][f-c]=s,o-=1,-1==o&&(a+=1,o=7)}if(n+=e,0>n||n>=d){n-=e,e=-e;break}}},C=function(t,e){for(var n=0,o=0,a=0,u=new Array(e.length),f=new Array(e.length),c=0;c<e.length;c+=1){var s=e[c].dataCount,l=e[c].totalCount-s;o=Math.max(o,s),a=Math.max(a,l),u[c]=new Array(s);for(var h=0;h<u[c].length;h+=1)u[c][h]=255&t.getBuffer()[h+n];n+=s;var d=i.getErrorCorrectPolynomial(l),g=r(u[c],d.getLength()-1),v=g.mod(d);f[c]=new Array(d.getLength()-1);for(var h=0;h<f[c].length;h+=1){var p=h+v.getLength()-f[c].length;f[c][h]=p>=0?v.getAt(p):0}}for(var w=0,h=0;h<e.length;h+=1)w+=e[h].totalCount;for(var m=new Array(w),T=0,h=0;o>h;h+=1)for(var c=0;c<e.length;c+=1)h<u[c].length&&(m[T]=u[c][h],T+=1);for(var h=0;a>h;h+=1)for(var c=0;c<e.length;c+=1)h<f[c].length&&(m[T]=f[c][h],T+=1);return m},M=function(r,t,e){for(var n=u.getRSBlocks(r,t),c=f(),s=0;s<e.length;s+=1){var l=e[s];c.put(l.getMode(),4),c.put(l.getLength(),i.getLengthInBits(l.getMode(),r)),l.write(c)}for(var h=0,s=0;s<n.length;s+=1)h+=n[s].dataCount;if(c.getLengthInBits()>8*h)throw new Error(\"code length overflow. (\"+c.getLengthInBits()+\">\"+8*h+\")\");for(c.getLengthInBits()+4<=8*h&&c.put(0,4);c.getLengthInBits()%8!=0;)c.putBit(!1);for(;!(c.getLengthInBits()>=8*h)&&(c.put(o,8),!(c.getLengthInBits()>=8*h));)c.put(a,8);return C(c,n)};return w.addData=function(r){var t=c(r);p.push(t),v=null},w.isDark=function(r,t){if(0>r||r>=d||0>t||t>=d)throw new Error(r+\",\"+t);return h[r][t]},w.getModuleCount=function(){return d},w.make=function(){m(!1,y())},w.createTableTag=function(r,t){r=r||2,t=\"undefined\"==typeof t?4*r:t;var e=\"\";e+='<table style=\"',e+=\" border-width: 0px; border-style: none;\",e+=\" border-collapse: collapse;\",e+=\" padding: 0px; margin: \"+t+\"px;\",e+='\">',e+=\"<tbody>\";for(var n=0;n<w.getModuleCount();n+=1){e+=\"<tr>\";for(var o=0;o<w.getModuleCount();o+=1)e+='<td style=\"',e+=\" border-width: 0px; border-style: none;\",e+=\" border-collapse: collapse;\",e+=\" padding: 0px; margin: 0px;\",e+=\" width: \"+r+\"px;\",e+=\" height: \"+r+\"px;\",e+=\" background-color: \",e+=w.isDark(n,o)?\"#000000\":\"#ffffff\",e+=\";\",e+='\"/>';e+=\"</tr>\"}return e+=\"</tbody>\",e+=\"</table>\"},w.createImgTag=function(r,t){r=r||2,t=\"undefined\"==typeof t?4*r:t;var e=w.getModuleCount()*r+2*t,n=t,o=e-t;return g(e,e,function(t,e){if(t>=n&&o>t&&e>=n&&o>e){var i=Math.floor((t-n)/r),a=Math.floor((e-n)/r);return w.isDark(a,i)?0:1}return 1})},w};t.stringToBytes=function(r){for(var t=new Array,e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t.push(255&n)}return t},t.createStringToBytes=function(r,t){var e=function(){for(var e=h(r),n=function(){var r=e.read();if(-1==r)throw new Error;return r},o=0,i={};;){var a=e.read();if(-1==a)break;var u=n(),f=n(),c=n(),s=String.fromCharCode(a<<8|u),l=f<<8|c;i[s]=l,o+=1}if(o!=t)throw new Error(o+\" != \"+t);return i}(),n=\"?\".charCodeAt(0);return function(r){for(var t=new Array,o=0;o<r.length;o+=1){var i=r.charCodeAt(o);if(128>i)t.push(i);else{var a=e[r.charAt(o)];\"number\"==typeof a?(255&a)==a?t.push(a):(t.push(a>>>8),t.push(255&a)):t.push(n)}}return t}};var e={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},o={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,u=21522,f={},c=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t};return f.getBCHTypeInfo=function(r){for(var t=r<<10;c(t)-c(n)>=0;)t^=n<<c(t)-c(n);return(r<<10|t)^u},f.getBCHTypeNumber=function(r){for(var t=r<<12;c(t)-c(i)>=0;)t^=i<<c(t)-c(i);return r<<12|t},f.getPatternPosition=function(r){return t[r-1]},f.getMaskFunction=function(r){switch(r){case o.PATTERN000:return function(r,t){return(r+t)%2==0};case o.PATTERN001:return function(r,t){return r%2==0};case o.PATTERN010:return function(r,t){return t%3==0};case o.PATTERN011:return function(r,t){return(r+t)%3==0};case o.PATTERN100:return function(r,t){return(Math.floor(r/2)+Math.floor(t/3))%2==0};case o.PATTERN101:return function(r,t){return r*t%2+r*t%3==0};case o.PATTERN110:return function(r,t){return(r*t%2+r*t%3)%2==0};case o.PATTERN111:return function(r,t){return(r*t%3+(r+t)%2)%2==0};default:throw new Error(\"bad maskPattern:\"+r)}},f.getErrorCorrectPolynomial=function(t){for(var e=r([1],0),n=0;t>n;n+=1)e=e.multiply(r([1,a.gexp(n)],0));return e},f.getLengthInBits=function(r,t){if(t>=1&&10>t)switch(r){case e.MODE_NUMBER:return 10;case e.MODE_ALPHA_NUM:return 9;case e.MODE_8BIT_BYTE:return 8;case e.MODE_KANJI:return 8;default:throw new Error(\"mode:\"+r)}else if(27>t)switch(r){case e.MODE_NUMBER:return 12;case e.MODE_ALPHA_NUM:return 11;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 10;default:throw new Error(\"mode:\"+r)}else{if(!(41>t))throw new Error(\"type:\"+t);switch(r){case e.MODE_NUMBER:return 14;case e.MODE_ALPHA_NUM:return 13;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 12;default:throw new Error(\"mode:\"+r)}}},f.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;t>n;n+=1)for(var o=0;t>o;o+=1){for(var i=0,a=r.isDark(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||n+u>=t))for(var f=-1;1>=f;f+=1)0>o+f||o+f>=t||(0!=u||0!=f)&&a==r.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(var n=0;t-1>n;n+=1)for(var o=0;t-1>o;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),(0==c||4==c)&&(e+=3)}for(var n=0;t>n;n+=1)for(var o=0;t-6>o;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(var o=0;t>o;o+=1)for(var n=0;t-6>n;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);for(var s=0,o=0;t>o;o+=1)for(var n=0;t>n;n+=1)r.isDark(n,o)&&(s+=1);var l=Math.abs(100*s/t/t-50)/5;return e+=10*l},f}(),a=function(){for(var r=new Array(256),t=new Array(256),e=0;8>e;e+=1)r[e]=1<<e;for(var e=8;256>e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(var e=0;255>e;e+=1)t[r[e]]=e;var n={};return n.glog=function(r){if(1>r)throw new Error(\"glog(\"+r+\")\");return t[r]},n.gexp=function(t){for(;0>t;)t+=255;for(;t>=256;)t-=255;return r[t]},n}(),u=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={},o=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}};return e.getRSBlocks=function(r,e){var n=o(r,e);if(\"undefined\"==typeof n)throw new Error(\"bad rs block @ typeNumber:\"+r+\"/errorCorrectLevel:\"+e);for(var i=n.length/3,a=new Array,u=0;i>u;u+=1)for(var f=n[3*u+0],c=n[3*u+1],s=n[3*u+2],l=0;f>l;l+=1)a.push(t(c,s));return a},e}(),f=function(){var r=new Array,t=0,e={};return e.getBuffer=function(){return r},e.getAt=function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},e.put=function(r,t){for(var n=0;t>n;n+=1)e.putBit(1==(r>>>t-n-1&1))},e.getLengthInBits=function(){return t},e.putBit=function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1},e},c=function(r){var n=e.MODE_8BIT_BYTE,o=t.stringToBytes(r),i={};return i.getMode=function(){return n},i.getLength=function(r){return o.length},i.write=function(r){for(var t=0;t<o.length;t+=1)r.put(o[t],8)},i},s=function(){var r=new Array,t={};return t.writeByte=function(t){r.push(255&t)},t.writeShort=function(r){t.writeByte(r),t.writeByte(r>>>8)},t.writeBytes=function(r,e,n){e=e||0,n=n||r.length;for(var o=0;n>o;o+=1)t.writeByte(r[o+e])},t.writeString=function(r){for(var e=0;e<r.length;e+=1)t.writeByte(r.charCodeAt(e))},t.toByteArray=function(){return r},t.toString=function(){var t=\"\";t+=\"[\";for(var e=0;e<r.length;e+=1)e>0&&(t+=\",\"),t+=r[e];return t+=\"]\"},t},l=function(){var r=0,t=0,e=0,n=\"\",o={},i=function(r){n+=String.fromCharCode(a(63&r))},a=function(r){if(0>r);else{if(26>r)return 65+r;if(52>r)return 97+(r-26);if(62>r)return 48+(r-52);if(62==r)return 43;if(63==r)return 47}throw new Error(\"n:\"+r)};return o.writeByte=function(n){for(r=r<<8|255&n,t+=8,e+=1;t>=6;)i(r>>>t-6),t-=6},o.flush=function(){if(t>0&&(i(r<<6-t),r=0,t=0),e%3!=0)for(var o=3-e%3,a=0;o>a;a+=1)n+=\"=\"},o.toString=function(){return n},o},h=function(r){var t=r,e=0,n=0,o=0,i={};i.read=function(){for(;8>o;){if(e>=t.length){if(0==o)return-1;throw new Error(\"unexpected end of file./\"+o)}var r=t.charAt(e);if(e+=1,\"=\"==r)return o=0,-1;r.match(/^\\s$/)||(n=n<<6|a(r.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i};var a=function(r){if(r>=65&&90>=r)return r-65;if(r>=97&&122>=r)return r-97+26;if(r>=48&&57>=r)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw new Error(\"c:\"+r)};return i},d=function(r,t){var e=r,n=t,o=new Array(r*t),i={};i.setPixel=function(r,t,n){o[t*e+r]=n},i.write=function(r){r.writeString(\"GIF87a\"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(\",\"),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=2,o=u(t);r.writeByte(t);for(var i=0;o.length-i>255;)r.writeByte(255),r.writeBytes(o,i,255),i+=255;r.writeByte(o.length-i),r.writeBytes(o,i,o.length-i),r.writeByte(0),r.writeString(\";\")};var a=function(r){var t=r,e=0,n=0,o={};return o.write=function(r,o){if(r>>>o!=0)throw new Error(\"length over\");for(;e+o>=8;)t.writeByte(255&(r<<e|n)),o-=8-e,r>>>=8-e,n=0,e=0;n|=r<<e,e+=o},o.flush=function(){e>0&&t.writeByte(n)},o},u=function(r){for(var t=1<<r,e=(1<<r)+1,n=r+1,i=f(),u=0;t>u;u+=1)i.add(String.fromCharCode(u));i.add(String.fromCharCode(t)),i.add(String.fromCharCode(e));var c=s(),l=a(c);l.write(t,n);var h=0,d=String.fromCharCode(o[h]);for(h+=1;h<o.length;){var g=String.fromCharCode(o[h]);h+=1,i.contains(d+g)?d+=g:(l.write(i.indexOf(d),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(d+g)),d=g)}return l.write(i.indexOf(d),n),l.write(e,n),l.flush(),c.toByteArray()},f=function(){var r={},t=0,e={};return e.add=function(n){if(e.contains(n))throw new Error(\"dup key:\"+n);r[n]=t,t+=1},e.size=function(){return t},e.indexOf=function(t){return r[t]},e.contains=function(t){return\"undefined\"!=typeof r[t]},e};return i},g=function(r,t,e,n){for(var o=d(r,t),i=0;t>i;i+=1)for(var a=0;r>a;a+=1)o.setPixel(a,i,e(a,i));var u=s();o.write(u);for(var f=l(),c=u.toByteArray(),h=0;h<c.length;h+=1)f.writeByte(c[h]);f.flush();var g=\"\";return g+=\"<img\",g+=' src=\"',g+=\"data:image/gif;base64,\",g+=f,g+='\"',g+=' width=\"',g+=r,g+='\"',g+=' height=\"',g+=t,g+='\"',n&&(g+=' alt=\"',g+=n,g+='\"'),g+=\"/>\"};return t}();return function(r){\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports&&(module.exports=r())}(function(){return r}),!function(r){r.stringToBytes=function(r){function t(r){for(var t=[],e=0;e<r.length;e++){var n=r.charCodeAt(e);128>n?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}return t(r)}}(r),r}()),function(r){r.fn.share=function(t){function e(t,e){var n=o(e);\"prepend\"==e.mode?n.reverse():n,n.length&&r.each(n,function(n,o){var a=i(o,e),u=e.initialized?t.find(\".icon-\"+o):r('<a class=\"icon icon-'+o+'\"></a>');return!u.length||(u.prop(\"aria-label\",\"分享到 \"+h[o]),u.prop(\"href\",a),\"wechat\"===o?u.prop(\"tabindex\",-1):u.prop(\"target\",\"_blank\"),void(e.initialized||(\"prepend\"==e.mode?t.prepend(u):t.append(u))))})}function n(r,t){var e=r.find(\"a.icon-wechat\");e.length&&(e.append('<div class=\"wechat-qrcode\"><h4>'+t.wechatQrcodeTitle+'</h4><div class=\"qrcode\"></div><div class=\"help\">'+t.wechatQrcodeHelper+\"</div></div>\"),e.find(\".qrcode\").qrcode({render:\"image\",size:t.wechatQrcodeSize,text:t.url}),e.offset().top<100&&e.find(\".wechat-qrcode\").addClass(\"bottom\"))}function o(t){0===t.mobileSites.length&&t.sites.length&&(t.mobileSites=t.sites);var e=(u()?t.mobileSites:t.sites.length?t.sites:[]).slice(0),n=t.disabled;return\"string\"==typeof e&&(e=e.split(/\\s*,\\s*/)),\"string\"==typeof n&&(n=n.split(/\\s*,\\s*/)),a()&&n.push(\"wechat\"),n.length&&r.each(n,function(t,n){var o=r.inArray(n,e);o!==-1&&e.splice(o,1)}),e}function i(r,t){var e=l[r];t.summary=t.description;for(var n in t)if(t.hasOwnProperty(n)){var o=r+n.replace(/^[a-z]/,function(r){return r.toUpperCase()}),i=encodeURIComponent(void 0===t[o]?t[n]:t[o]);e=e.replace(new RegExp(\"{{\"+n.toUpperCase()+\"}}\",\"g\"),i)}return e}function a(){return/MicroMessenger/i.test(navigator.userAgent)}function u(){return r(window).width()<=768}var f=r(document.head),c={url:location.href,site_url:location.origin,source:f.find(\"[name=site], [name=Site]\").attr(\"content\")||document.title,title:f.find(\"[name=title], [name=Title]\").attr(\"content\")||document.title,description:f.find(\"[name=description], [name=Description]\").attr(\"content\")||\"\",image:r(\"img:first\").prop(\"src\")||\"\",imageSelector:void 0,weiboKey:\"\",wechatQrcodeTitle:\"微信扫一扫:分享\",wechatQrcodeHelper:\"<p>微信里点“发现”,扫一下</p><p>二维码便可将本文分享至朋友圈。</p>\",wechatQrcodeSize:100,mobileSites:[],sites:[\"weibo\",\"qq\",\"wechat\",\"tencent\",\"douban\",\"qzone\",\"linkedin\",\"diandian\",\"facebook\",\"twitter\",\"google\"],disabled:[],initialized:!1},s=r.extend({},c,t),l={qzone:\"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}\",qq:\"http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}\",tencent:\"http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}\",weibo:\"http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}\",wechat:\"javascript:;\",douban:\"http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11\",diandian:\"http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link\",linkedin:\"http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin\",facebook:\"https://www.facebook.com/sharer/sharer.php?u={{URL}}&title={{TITLE}}&description={{DESCRIPTION}}&caption={{SUBHEAD}}&link={{URL}}&picture={{IMAGE}}\",twitter:\"https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{SITE_URL}}\",google:\"https://plus.google.com/share?url={{URL}}\"},h={qzone:\"QQ空间\",qq:\"QQ\",tencent:\"腾讯微博\",weibo:\"微博\",wechat:\"微信\",douban:\"豆瓣\",diandian:\"点点\",linkedin:\"LinkedIn\",facebook:\"Facebook\",twitter:\"Twitter\",google:\"Google\"};this.each(function(){if(r(this).data(\"initialized\"))return!0;var t=r.extend({},s,r(this).data());t.imageSelector&&(t.image=r(t.imageSelector).map(function(){return r(this).prop(\"src\")}).get().join(\"||\"));var o=r(this).addClass(\"share-component social-share\");e(o,t),n(o,t),r(this).data(\"initialized\",!0)})},r(function(){r(\".share-component,.social-share\").share()})}(jQuery);","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\r\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\r\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\r\n *\r\n * Version: 1.3.8\r\n *\r\n */\r\n(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:\"auto\",height:\"250px\",size:\"7px\",color:\"#000\",position:\"right\",distance:\"1px\",start:\"top\",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:\"#333\",railOpacity:.2,railDraggable:!0,railClass:\"slimScrollRail\",barClass:\"slimScrollBar\",wrapperClass:\"slimScrollDiv\",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:\"7px\",railBorderRadius:\"7px\"},f);this.each(function(){function v(d){if(r){d=d||window.event;\r\nvar c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest(\".\"+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css(\"top\"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0<d?Math.ceil(g):Math.floor(g),c.css({top:g+\"px\"}));l=parseInt(c.css(\"top\"))/(b.outerHeight()-c.outerHeight());g=\r\nl*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+\"px\"}));b.scrollTop(g);b.trigger(\"slimscrolling\",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+\"px\"});var a=u==b.outerHeight()?\"none\":\"block\";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger(\"slimscroll\",0==~~l?\"top\":\"bottom\")):k=!1;C=l;u>=b.outerHeight()?k=!0:(c.stop(!0,\r\n!0).fadeIn(\"fast\"),a.railVisible&&m.stop(!0,!0).fadeIn(\"fast\"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut(\"slow\"),m.fadeOut(\"slow\"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings(\".\"+a.barClass),m=b.siblings(\".\"+a.railClass);x();if(e.isPlainObject(f)){if(\"height\"in f&&\"auto\"==f.height){b.parent().css(\"height\",\"auto\");b.css(\"height\",\"auto\");var h=b.parent().parent().height();b.parent().css(\"height\",\r\nh);b.css(\"height\",h)}else\"height\"in f&&(h=f.height,b.parent().css(\"height\",h),b.css(\"height\",h));if(\"scrollTo\"in f)q=parseInt(a.scrollTo);else if(\"scrollBy\"in f)q+=parseInt(a.scrollBy);else if(\"destroy\"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&\"destroy\"in f)){a.height=\"auto\"==a.height?b.parent().height():a.height;q=e(\"<div></div>\").addClass(a.wrapperClass).css({position:\"relative\",overflow:\"hidden\",width:a.width,height:a.height});b.css({overflow:\"hidden\",\r\nwidth:a.width,height:a.height});var m=e(\"<div></div>\").addClass(a.railClass).css({width:a.size,height:\"100%\",position:\"absolute\",top:0,display:a.alwaysVisible&&a.railVisible?\"block\":\"none\",\"border-radius\":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e(\"<div></div>\").addClass(a.barClass).css({background:a.color,width:a.size,position:\"absolute\",top:0,opacity:a.opacity,display:a.alwaysVisible?\"block\":\"none\",\"border-radius\":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,\r\nWebkitBorderRadius:a.borderRadius,zIndex:99}),h=\"right\"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);p();a.railDraggable&&c.bind(\"mousedown\",function(a){var b=e(document);z=!0;t=parseFloat(c.css(\"top\"));pageY=a.pageY;b.bind(\"mousemove.slimscroll\",function(a){currTop=t+a.pageY-pageY;c.css(\"top\",currTop);n(0,c.position().top,!1)});b.bind(\"mouseup.slimscroll\",function(a){z=!1;p();b.unbind(\".slimscroll\")});return!1}).bind(\"selectstart.slimscroll\",\r\nfunction(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind(\"touchstart\",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind(\"touchmove\",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});\r\nx();\"bottom\"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):\"top\"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener(\"DOMMouseScroll\",v,!1),this.addEventListener(\"mousewheel\",v,!1)):document.attachEvent(\"onmousewheel\",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);","/*! ###########################################################################\r\n\r\n Source: https://github.com/dutchcelt/Keep-in-View\r\n\r\n Copyright (C) 2011 - 2013,  Lunatech Labs B.V., C. Egor Kloos. All rights reserved.\r\n GNU General Public License, version 3 (GPL-3.0)\r\n\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program.  If not, see http://www.opensource.org/licenses/gpl-3.0.html\r\n\r\n ########################################################################### */\r\n\r\n// Uses AMD or browser globals to create a jQuery plugin.\r\n\r\n(function(factory) {\r\n\r\n  if (typeof define === 'function' && define.amd) {\r\n    // AMD. Register as an anonymous module.\r\n    define(['jquery'], factory);\r\n  } else {\r\n    // Browser globals\r\n    factory(jQuery);\r\n  }\r\n\r\n}(function($) {\r\n\r\n  $.fn.keepInView = function(settings) {\r\n\r\n    return this.each(function(index, stickyElem) {\r\n\r\n      var $elem;\r\n      var $parent;\r\n\r\n      var defaults = {\r\n\r\n        // Position will be fixed regardless of scroll position when set to true\r\n        fixed: false,\r\n\r\n        // Vertical offset that applies to both top and bottom;\r\n        edgeOffset: 0,\r\n\r\n        // Override z-index if you can't or don't want to set this with CSS\r\n        zindex: $(stickyElem).css('zIndex'),\r\n\r\n        // Override all scripted positions with your own custom CSS classname\r\n        // The set classname will be triggered when element scrolls out of view\r\n        // The Script will add a suffix of '-top' or '-bottom'\r\n        customClass: false,\r\n\r\n        //  Only trigger this script on scrolling out at the 'top', 'bottom' the default is 'both'.\r\n        trigger: 'both',\r\n\r\n        // Scrollable box\r\n        scrollable: false,\r\n\r\n        //  Set the height and width (user can override these if necessary)\r\n        h: $(stickyElem).height(),\r\n        w: $(stickyElem).width(),\r\n\r\n        //  If a pageload scrolls to a hash you can use this to offset anchors if the 'sticky' element is covering the anchored content\r\n        //  Beware that if the anchor itself contains content that it will also move up the page.\r\n        //  This feature is best used with the clone feature below.\r\n        offsetAnchor: false, // boolean.\r\n\r\n        //  Clone the sticky element and prepend to its parent.\r\n        //  Beware that the original item is not removed from the page so make sure that the cloned element will cover it.\r\n        //  The cloned item can be styled via the classname \"KIV-cloned\"\r\n        cloned: false // boolean.\r\n\r\n      };\r\n\r\n      var options = $.extend({}, defaults, settings);\r\n\r\n      if (options.cloned) {\r\n        $parent = $(stickyElem).parents().eq(0);\r\n        $elem = $(stickyElem).clone().prependTo($parent).hide().addClass(\"KIV-cloned\");\r\n        $(stickyElem).addClass(\"KIV-original\")\r\n      } else {\r\n        $elem = $(stickyElem);\r\n      }\r\n\r\n      var offset = $(stickyElem).offset(),\r\n        position = $(stickyElem).css('position'),\r\n        leftPosition = $(stickyElem).css('left'),\r\n        marginOffset = (leftPosition === \"auto\") ? parseInt($(stickyElem).css('marginLeft'), 10) : 0,\r\n        cssObject = (function() {\r\n          return {\r\n            position: 'fixed',\r\n            left: leftPosition - marginOffset + 'px',\r\n            width: (options.scrollable) ? options.w - 15 : options.w,\r\n            height: (options.scrollable) ? ($(window).height() - offset.top) + \"px\" : options.h,\r\n            zIndex: options.zindex\r\n          }\r\n        })(),\r\n        prepCSS = function(cssSettings) {\r\n          $elem.css($.extend({}, cssObject, cssSettings));\r\n        },\r\n        fixCSS = function(t) {\r\n          $elem.css({ top: t + 'px' });\r\n          if (options.offsetAnchor) {\r\n            $(stickyElem).css({ visibility: \"hidden\" });\r\n            $elem.slideDown(\"normal\");\r\n          }\r\n        }\r\n\r\n      if (options.offsetAnchor) {\r\n\r\n        // It is possible that there a lot of anchors!\r\n        // Using an array instead of a loop by 'shifting' the array\r\n        // This speeds up the iterations and setTimeout prevents the browser from locking up.\r\n\r\n        // put all the dom elements collected by jQuery in to an array\r\n        var $anchors = $(\"a[name]\");\r\n        var anchorArray = $.makeArray($anchors);\r\n\r\n        var arrayShifter = function() {\r\n\r\n          var start = +new Date();\r\n\r\n          do {\r\n\r\n            var anchor = anchorArray.shift();\r\n            //  Invoke lazyLoad method with the current item\r\n            if (anchorArray[0] !== void 0) {\r\n              $(anchor).css({ position: \"relative\", display: \"block\", top: \"-\" + $elem.outerHeight() + \"px\" });\r\n            }\r\n\r\n          } while (anchorArray[0] !== void 0 && (+new Date() - start < 50)); // increase to 100ms if needed.\r\n\r\n          if (anchorArray[0] !== void 0) {\r\n            setTimeout(arrayShifter, 0);\r\n          }\r\n\r\n        };\r\n        arrayShifter();\r\n      }\r\n\r\n\r\n      var setElem = function(opts) {\r\n\r\n        //  Making sure that $elem doesn't fire if it is taller than the window (like a sidebar)\r\n        //  To prevent elastic scrolling fireing set the body in css to 'overflow: hidden'.\r\n        //  Then wrap your content in a div with 'overflow: auto'.\r\n\r\n        if ($elem.height() > $(window).height() && !options.scrollable) {\r\n          return false;\r\n        }\r\n\r\n        if (options.clearStyle) {\r\n          $elem.removeAttr(\"style\");\r\n        }\r\n        var scrolledOutAt = \"\";\r\n        var windowHeight = $(window).height();\r\n        var outerHeight = $elem.outerHeight();\r\n        $parent = $(stickyElem).parents().eq(0);\r\n        if (windowHeight < parseInt(offset.top + outerHeight - Math.abs($(window).scrollTop()) + options.edgeOffset, 10) && !options.fixed) {\r\n          scrolledOutAt = \"bottom\";\r\n        }\r\n\r\n        if (($(window).scrollTop()) > offset.top - options.edgeOffset && !options.fixed) {\r\n          scrolledOutAt = \"top\";\r\n        }\r\n\r\n        // if (!options.customClass) {\r\n\r\n\r\n        if (options.scrollable) {\r\n          prepCSS({ height: (windowHeight - offset.top) + \"px\", overflow: \"auto\" });\r\n        } else {\r\n          prepCSS();\r\n\r\n        }\r\n\r\n        if (scrolledOutAt === \"bottom\" && (options.trigger === 'both' || options.trigger === 'bottom')) {\r\n          if (options.scrollable) {\r\n            prepCSS({ height: windowHeight + \"px\", top: (windowHeight - outerHeight - options.edgeOffset) + \"px\", overflow: \"auto\" });\r\n          } else {\r\n            fixCSS((windowHeight - outerHeight - options.edgeOffset));\r\n          }\r\n\r\n        } else if (scrolledOutAt === \"top\" && (options.trigger === 'both' || options.trigger === 'top')) {\r\n          if (options.scrollable) {\r\n            prepCSS({ height: windowHeight + \"px\", top: options.edgeOffset + \"px\", overflow: \"auto\" });\r\n          } else {\r\n            fixCSS(options.edgeOffset);\r\n          }\r\n\r\n        } else if (options.fixed) {\r\n          $elem.css({ top: options.edgeOffset, left: offset.left, height: \"auto\" });\r\n        } else {\r\n          if (options.scrollable) {\r\n            $elem.css({ position: position, top: offset.top + \"px\", height: (windowHeight - offset.top + $(window).scrollTop()) + \"px\" });\r\n          } else {\r\n            if (options.offsetAnchor) {\r\n              $(stickyElem).css({ visibility: \"visible\" });\r\n              $elem.hide();\r\n            } else {\r\n              $elem.removeAttr('style');\r\n            }\r\n          }\r\n        }\r\n\r\n        // } else \r\n        if (options.customClass) {\r\n          // console.log(scrolledOutAt);\r\n          if (options.trigger === 'both') {\r\n            if (scrolledOutAt === \"bottom\" || scrolledOutAt === \"top\") {\r\n              $elem.addClass(options.customClass + \"-\" + scrolledOutAt);\r\n            } else if (!scrolledOutAt) {\r\n              $elem.removeClass(options.customClass + \"-top\").removeClass(options.customClass + \"-bottom\");\r\n            }\r\n          } else if (scrolledOutAt === options.trigger) {\r\n            $elem.addClass(options.customClass + \"-\" + options.trigger);\r\n          } else if (!scrolledOutAt) {\r\n            $elem.removeClass(options.customClass + \"-\" + options.trigger);\r\n          }\r\n        }\r\n\r\n        if (options.parentClass) {\r\n          if (options.trigger === 'both') {\r\n          \tvar elemClass = options.customClass + \"-\";\r\n            if ($parent.find('[class*=\"'+elemClass+'\"]')) {\r\n              $parent.addClass(options.parentClass);\r\n            } else {\r\n              $parent.removeClass(options.parentClass);\r\n            }\r\n          } else if (scrolledOutAt === options.trigger) {\r\n          \tvar elemClass = options.customClass + \"-\" + options.trigger;\r\n            if ($parent.find('[class*=\"'+elemClass+'\"]')) {\r\n              $parent.addClass(options.parentClass);\r\n            } else {\r\n              $parent.removeClass(options.parentClass);\r\n            }\r\n          } else if (!scrolledOutAt) {\r\n            $parent.removeClass(options.parentClass);\r\n          }\r\n        }\r\n        // end if\r\n      }\r\n\r\n      var staySticky = function() {\r\n        options.w = $elem.width();\r\n        options.h = $elem.height();\r\n        offset = $elem.offset();\r\n        options.clearStyle = true;\r\n        requestAnimationFrame(setElem);\r\n      }\r\n      var setElemRequest = function() {\r\n        options.clearStyle = false;\r\n        requestAnimationFrame(setElem);\r\n      }\r\n\r\n      var killSticky = function() {\r\n        $elem.removeAttr('style').off(\".sticky\");\r\n        $(window).off('.sticky', staySticky).off('.sticky', setElemRequest);\r\n      }\r\n\r\n      $elem.on('update.sticky', staySticky);\r\n      $elem.on('unstick.sticky', killSticky);\r\n      $(window).on('resize.sticky', $elem, staySticky).on('scroll.sticky', $elem, setElemRequest).trigger('scroll');\r\n\r\n    });\r\n  };\r\n\r\n}));\r\n","/* ========================================================================\r\n * Bootstrap: collapse.js v3.3.7\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n/* jshint latedef: false */\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // COLLAPSE PUBLIC CLASS DEFINITION\r\n  // ================================\r\n\r\n  var Collapse = function (element, options) {\r\n    this.$element      = $(element)\r\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\r\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\r\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\r\n    this.transitioning = null\r\n\r\n    if (this.options.parent) {\r\n      this.$parent = this.getParent()\r\n    } else {\r\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\r\n    }\r\n\r\n    if (this.options.toggle) this.toggle()\r\n  }\r\n\r\n  Collapse.VERSION  = '3.3.7'\r\n\r\n  Collapse.TRANSITION_DURATION = 350\r\n\r\n  Collapse.DEFAULTS = {\r\n    toggle: true\r\n  }\r\n\r\n  Collapse.prototype.dimension = function () {\r\n    var hasWidth = this.$element.hasClass('width')\r\n    return hasWidth ? 'width' : 'height'\r\n  }\r\n\r\n  Collapse.prototype.show = function () {\r\n    if (this.transitioning || this.$element.hasClass('in')) return\r\n\r\n    var activesData\r\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\r\n\r\n    if (actives && actives.length) {\r\n      activesData = actives.data('bs.collapse')\r\n      if (activesData && activesData.transitioning) return\r\n    }\r\n\r\n    var startEvent = $.Event('show.bs.collapse')\r\n    this.$element.trigger(startEvent)\r\n    if (startEvent.isDefaultPrevented()) return\r\n\r\n    if (actives && actives.length) {\r\n      Plugin.call(actives, 'hide')\r\n      activesData || actives.data('bs.collapse', null)\r\n    }\r\n\r\n    var dimension = this.dimension()\r\n\r\n    this.$element\r\n      .removeClass('collapse')\r\n      .addClass('collapsing')[dimension](0)\r\n      .attr('aria-expanded', true)\r\n\r\n    this.$trigger\r\n      .removeClass('collapsed')\r\n      .attr('aria-expanded', true)\r\n\r\n    this.transitioning = 1\r\n\r\n    var complete = function () {\r\n      this.$element\r\n        .removeClass('collapsing')\r\n        .addClass('collapse in')[dimension]('')\r\n      this.transitioning = 0\r\n      this.$element\r\n        .trigger('shown.bs.collapse')\r\n    }\r\n\r\n    if (!$.support.transition) return complete.call(this)\r\n\r\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n\r\n    this.$element\r\n      .one('bsTransitionEnd', $.proxy(complete, this))\r\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\r\n  }\r\n\r\n  Collapse.prototype.hide = function () {\r\n    if (this.transitioning || !this.$element.hasClass('in')) return\r\n\r\n    var startEvent = $.Event('hide.bs.collapse')\r\n    this.$element.trigger(startEvent)\r\n    if (startEvent.isDefaultPrevented()) return\r\n\r\n    var dimension = this.dimension()\r\n\r\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\r\n\r\n    this.$element\r\n      .addClass('collapsing')\r\n      .removeClass('collapse in')\r\n      .attr('aria-expanded', false)\r\n\r\n    this.$trigger\r\n      .addClass('collapsed')\r\n      .attr('aria-expanded', false)\r\n\r\n    this.transitioning = 1\r\n\r\n    var complete = function () {\r\n      this.transitioning = 0\r\n      this.$element\r\n        .removeClass('collapsing')\r\n        .addClass('collapse')\r\n        .trigger('hidden.bs.collapse')\r\n    }\r\n\r\n    if (!$.support.transition) return complete.call(this)\r\n\r\n    this.$element\r\n      [dimension](0)\r\n      .one('bsTransitionEnd', $.proxy(complete, this))\r\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\r\n  }\r\n\r\n  Collapse.prototype.toggle = function () {\r\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n  }\r\n\r\n  Collapse.prototype.getParent = function () {\r\n    return $(this.options.parent)\r\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\r\n      .each($.proxy(function (i, element) {\r\n        var $element = $(element)\r\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\r\n      }, this))\r\n      .end()\r\n  }\r\n\r\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\r\n    var isOpen = $element.hasClass('in')\r\n\r\n    $element.attr('aria-expanded', isOpen)\r\n    $trigger\r\n      .toggleClass('collapsed', !isOpen)\r\n      .attr('aria-expanded', isOpen)\r\n  }\r\n\r\n  function getTargetFromTrigger($trigger) {\r\n    var href\r\n    var target = $trigger.attr('data-target')\r\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\r\n\r\n    return $(target)\r\n  }\r\n\r\n\r\n  // COLLAPSE PLUGIN DEFINITION\r\n  // ==========================\r\n\r\n  function Plugin(option) {\r\n    return this.each(function () {\r\n      var $this   = $(this)\r\n      var data    = $this.data('bs.collapse')\r\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\r\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n      if (typeof option == 'string') data[option]()\r\n    })\r\n  }\r\n\r\n  var old = $.fn.collapse\r\n\r\n  $.fn.collapse             = Plugin\r\n  $.fn.collapse.Constructor = Collapse\r\n\r\n\r\n  // COLLAPSE NO CONFLICT\r\n  // ====================\r\n\r\n  $.fn.collapse.noConflict = function () {\r\n    $.fn.collapse = old\r\n    return this\r\n  }\r\n\r\n\r\n  // COLLAPSE DATA-API\r\n  // =================\r\n\r\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\r\n    var $this   = $(this)\r\n\r\n    if (!$this.attr('data-target')) e.preventDefault()\r\n\r\n    var $target = getTargetFromTrigger($this)\r\n    var data    = $target.data('bs.collapse')\r\n    var option  = data ? 'toggle' : $this.data()\r\n\r\n    Plugin.call($target, option)\r\n  })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: modal.js v3.3.7\r\n * http://getbootstrap.com/javascript/#modals\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // MODAL CLASS DEFINITION\r\n  // ======================\r\n\r\n  var Modal = function (element, options) {\r\n    this.options             = options\r\n    this.$body               = $(document.body)\r\n    this.$element            = $(element)\r\n    this.$dialog             = this.$element.find('.modal-dialog')\r\n    this.$backdrop           = null\r\n    this.isShown             = null\r\n    this.originalBodyPad     = null\r\n    this.scrollbarWidth      = 0\r\n    this.ignoreBackdropClick = false\r\n\r\n    if (this.options.remote) {\r\n      this.$element\r\n        .find('.modal-content')\r\n        .load(this.options.remote, $.proxy(function () {\r\n          this.$element.trigger('loaded.bs.modal')\r\n        }, this))\r\n    }\r\n  }\r\n\r\n  Modal.VERSION  = '3.3.7'\r\n\r\n  Modal.TRANSITION_DURATION = 300\r\n  Modal.BACKDROP_TRANSITION_DURATION = 150\r\n\r\n  Modal.DEFAULTS = {\r\n    backdrop: true,\r\n    keyboard: true,\r\n    show: true\r\n  }\r\n\r\n  Modal.prototype.toggle = function (_relatedTarget) {\r\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\r\n  }\r\n\r\n  Modal.prototype.show = function (_relatedTarget) {\r\n    var that = this\r\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n    this.$element.trigger(e)\r\n\r\n    if (this.isShown || e.isDefaultPrevented()) return\r\n\r\n    this.isShown = true\r\n\r\n    this.checkScrollbar()\r\n    this.setScrollbar()\r\n    this.$body.addClass('modal-open')\r\n\r\n    this.escape()\r\n    this.resize()\r\n\r\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\r\n\r\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\r\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\r\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\r\n      })\r\n    })\r\n\r\n    this.backdrop(function () {\r\n      var transition = $.support.transition && that.$element.hasClass('fade')\r\n\r\n      if (!that.$element.parent().length) {\r\n        that.$element.appendTo(that.$body) // don't move modals dom position\r\n      }\r\n\r\n      that.$element\r\n        .show()\r\n        .scrollTop(0)\r\n\r\n      that.adjustDialog()\r\n\r\n      if (transition) {\r\n        that.$element[0].offsetWidth // force reflow\r\n      }\r\n\r\n      that.$element.addClass('in')\r\n\r\n      that.enforceFocus()\r\n\r\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n      transition ?\r\n        that.$dialog // wait for modal to slide in\r\n          .one('bsTransitionEnd', function () {\r\n            that.$element.trigger('focus').trigger(e)\r\n          })\r\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n        that.$element.trigger('focus').trigger(e)\r\n    })\r\n  }\r\n\r\n  Modal.prototype.hide = function (e) {\r\n    if (e) e.preventDefault()\r\n\r\n    e = $.Event('hide.bs.modal')\r\n\r\n    this.$element.trigger(e)\r\n\r\n    if (!this.isShown || e.isDefaultPrevented()) return\r\n\r\n    this.isShown = false\r\n\r\n    this.escape()\r\n    this.resize()\r\n\r\n    $(document).off('focusin.bs.modal')\r\n\r\n    this.$element\r\n      .removeClass('in')\r\n      .off('click.dismiss.bs.modal')\r\n      .off('mouseup.dismiss.bs.modal')\r\n\r\n    this.$dialog.off('mousedown.dismiss.bs.modal')\r\n\r\n    $.support.transition && this.$element.hasClass('fade') ?\r\n      this.$element\r\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\r\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n      this.hideModal()\r\n  }\r\n\r\n  Modal.prototype.enforceFocus = function () {\r\n    $(document)\r\n      .off('focusin.bs.modal') // guard against infinite focus loop\r\n      .on('focusin.bs.modal', $.proxy(function (e) {\r\n        if (document !== e.target &&\r\n            this.$element[0] !== e.target &&\r\n            !this.$element.has(e.target).length) {\r\n          this.$element.trigger('focus')\r\n        }\r\n      }, this))\r\n  }\r\n\r\n  Modal.prototype.escape = function () {\r\n    if (this.isShown && this.options.keyboard) {\r\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\r\n        e.which == 27 && this.hide()\r\n      }, this))\r\n    } else if (!this.isShown) {\r\n      this.$element.off('keydown.dismiss.bs.modal')\r\n    }\r\n  }\r\n\r\n  Modal.prototype.resize = function () {\r\n    if (this.isShown) {\r\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\r\n    } else {\r\n      $(window).off('resize.bs.modal')\r\n    }\r\n  }\r\n\r\n  Modal.prototype.hideModal = function () {\r\n    var that = this\r\n    this.$element.hide()\r\n    this.backdrop(function () {\r\n      that.$body.removeClass('modal-open')\r\n      that.resetAdjustments()\r\n      that.resetScrollbar()\r\n      that.$element.trigger('hidden.bs.modal')\r\n    })\r\n  }\r\n\r\n  Modal.prototype.removeBackdrop = function () {\r\n    this.$backdrop && this.$backdrop.remove()\r\n    this.$backdrop = null\r\n  }\r\n\r\n  Modal.prototype.backdrop = function (callback) {\r\n    var that = this\r\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n\r\n    if (this.isShown && this.options.backdrop) {\r\n      var doAnimate = $.support.transition && animate\r\n\r\n      this.$backdrop = $(document.createElement('div'))\r\n        .addClass('modal-backdrop ' + animate)\r\n        .appendTo(this.$body)\r\n\r\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\r\n        if (this.ignoreBackdropClick) {\r\n          this.ignoreBackdropClick = false\r\n          return\r\n        }\r\n        if (e.target !== e.currentTarget) return\r\n        this.options.backdrop == 'static'\r\n          ? this.$element[0].focus()\r\n          : this.hide()\r\n      }, this))\r\n\r\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n\r\n      this.$backdrop.addClass('in')\r\n\r\n      if (!callback) return\r\n\r\n      doAnimate ?\r\n        this.$backdrop\r\n          .one('bsTransitionEnd', callback)\r\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n        callback()\r\n\r\n    } else if (!this.isShown && this.$backdrop) {\r\n      this.$backdrop.removeClass('in')\r\n\r\n      var callbackRemove = function () {\r\n        that.removeBackdrop()\r\n        callback && callback()\r\n      }\r\n      $.support.transition && this.$element.hasClass('fade') ?\r\n        this.$backdrop\r\n          .one('bsTransitionEnd', callbackRemove)\r\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n        callbackRemove()\r\n\r\n    } else if (callback) {\r\n      callback()\r\n    }\r\n  }\r\n\r\n  // these following methods are used to handle overflowing modals\r\n\r\n  Modal.prototype.handleUpdate = function () {\r\n    this.adjustDialog()\r\n  }\r\n\r\n  Modal.prototype.adjustDialog = function () {\r\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\r\n\r\n    this.$element.css({\r\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\r\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\r\n    })\r\n  }\r\n\r\n  Modal.prototype.resetAdjustments = function () {\r\n    this.$element.css({\r\n      paddingLeft: '',\r\n      paddingRight: ''\r\n    })\r\n  }\r\n\r\n  Modal.prototype.checkScrollbar = function () {\r\n    var fullWindowWidth = window.innerWidth\r\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\r\n      var documentElementRect = document.documentElement.getBoundingClientRect()\r\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\r\n    }\r\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\r\n    this.scrollbarWidth = this.measureScrollbar()\r\n  }\r\n\r\n  Modal.prototype.setScrollbar = function () {\r\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\r\n    this.originalBodyPad = document.body.style.paddingRight || ''\r\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\r\n  }\r\n\r\n  Modal.prototype.resetScrollbar = function () {\r\n    this.$body.css('padding-right', this.originalBodyPad)\r\n  }\r\n\r\n  Modal.prototype.measureScrollbar = function () { // thx walsh\r\n    var scrollDiv = document.createElement('div')\r\n    scrollDiv.className = 'modal-scrollbar-measure'\r\n    this.$body.append(scrollDiv)\r\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\r\n    this.$body[0].removeChild(scrollDiv)\r\n    return scrollbarWidth\r\n  }\r\n\r\n\r\n  // MODAL PLUGIN DEFINITION\r\n  // =======================\r\n\r\n  function Plugin(option, _relatedTarget) {\r\n    return this.each(function () {\r\n      var $this   = $(this)\r\n      var data    = $this.data('bs.modal')\r\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\r\n      if (typeof option == 'string') data[option](_relatedTarget)\r\n      else if (options.show) data.show(_relatedTarget)\r\n    })\r\n  }\r\n\r\n  var old = $.fn.modal\r\n\r\n  $.fn.modal             = Plugin\r\n  $.fn.modal.Constructor = Modal\r\n\r\n\r\n  // MODAL NO CONFLICT\r\n  // =================\r\n\r\n  $.fn.modal.noConflict = function () {\r\n    $.fn.modal = old\r\n    return this\r\n  }\r\n\r\n\r\n  // MODAL DATA-API\r\n  // ==============\r\n\r\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\r\n    var $this   = $(this)\r\n    var href    = $this.attr('href')\r\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\r\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\r\n\r\n    if ($this.is('a')) e.preventDefault()\r\n\r\n    $target.one('show.bs.modal', function (showEvent) {\r\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\r\n      $target.one('hidden.bs.modal', function () {\r\n        $this.is(':visible') && $this.trigger('focus')\r\n      })\r\n    })\r\n    Plugin.call($target, option, this)\r\n  })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: scrollspy.js v3.3.7\r\n * http://getbootstrap.com/javascript/#scrollspy\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // SCROLLSPY CLASS DEFINITION\r\n  // ==========================\r\n\r\n  function ScrollSpy(element, options) {\r\n    this.$body          = $(document.body)\r\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\r\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\r\n    this.selector       = (this.options.target || '') + ' .nav li > a'\r\n    this.offsets        = []\r\n    this.targets        = []\r\n    this.activeTarget   = null\r\n    this.scrollHeight   = 0\r\n\r\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\r\n    this.refresh()\r\n    this.process()\r\n  }\r\n\r\n  ScrollSpy.VERSION  = '3.3.7'\r\n\r\n  ScrollSpy.DEFAULTS = {\r\n    offset: 10\r\n  }\r\n\r\n  ScrollSpy.prototype.getScrollHeight = function () {\r\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\r\n  }\r\n\r\n  ScrollSpy.prototype.refresh = function () {\r\n    var that          = this\r\n    var offsetMethod  = 'offset'\r\n    var offsetBase    = 0\r\n\r\n    this.offsets      = []\r\n    this.targets      = []\r\n    this.scrollHeight = this.getScrollHeight()\r\n\r\n    if (!$.isWindow(this.$scrollElement[0])) {\r\n      offsetMethod = 'position'\r\n      offsetBase   = this.$scrollElement.scrollTop()\r\n    }\r\n\r\n    this.$body\r\n      .find(this.selector)\r\n      .map(function () {\r\n        var $el   = $(this)\r\n        var href  = $el.data('target') || $el.attr('href')\r\n        var $href = /^#./.test(href) && $(href)\r\n\r\n        return ($href\r\n          && $href.length\r\n          && $href.is(':visible')\r\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\r\n      })\r\n      .sort(function (a, b) { return a[0] - b[0] })\r\n      .each(function () {\r\n        that.offsets.push(this[0])\r\n        that.targets.push(this[1])\r\n      })\r\n  }\r\n\r\n  ScrollSpy.prototype.process = function () {\r\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\r\n    var scrollHeight = this.getScrollHeight()\r\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\r\n    var offsets      = this.offsets\r\n    var targets      = this.targets\r\n    var activeTarget = this.activeTarget\r\n    var i\r\n\r\n    if (this.scrollHeight != scrollHeight) {\r\n      this.refresh()\r\n    }\r\n\r\n    if (scrollTop >= maxScroll) {\r\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\r\n    }\r\n\r\n    if (activeTarget && scrollTop < offsets[0]) {\r\n      this.activeTarget = null\r\n      return this.clear()\r\n    }\r\n\r\n    for (i = offsets.length; i--;) {\r\n      activeTarget != targets[i]\r\n        && scrollTop >= offsets[i]\r\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\r\n        && this.activate(targets[i])\r\n    }\r\n  }\r\n\r\n  ScrollSpy.prototype.activate = function (target) {\r\n    this.activeTarget = target\r\n\r\n    this.clear()\r\n\r\n    var selector = this.selector +\r\n      '[data-target=\"' + target + '\"],' +\r\n      this.selector + '[href=\"' + target + '\"]'\r\n\r\n    var active = $(selector)\r\n      .parents('li')\r\n      .addClass('active')\r\n\r\n    if (active.parent('.dropdown-menu').length) {\r\n      active = active\r\n        .closest('li.dropdown')\r\n        .addClass('active')\r\n    }\r\n\r\n    active.trigger('activate.bs.scrollspy')\r\n  }\r\n\r\n  ScrollSpy.prototype.clear = function () {\r\n    $(this.selector)\r\n      .parentsUntil(this.options.target, '.active')\r\n      .removeClass('active')\r\n  }\r\n\r\n\r\n  // SCROLLSPY PLUGIN DEFINITION\r\n  // ===========================\r\n\r\n  function Plugin(option) {\r\n    return this.each(function () {\r\n      var $this   = $(this)\r\n      var data    = $this.data('bs.scrollspy')\r\n      var options = typeof option == 'object' && option\r\n\r\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\r\n      if (typeof option == 'string') data[option]()\r\n    })\r\n  }\r\n\r\n  var old = $.fn.scrollspy\r\n\r\n  $.fn.scrollspy             = Plugin\r\n  $.fn.scrollspy.Constructor = ScrollSpy\r\n\r\n\r\n  // SCROLLSPY NO CONFLICT\r\n  // =====================\r\n\r\n  $.fn.scrollspy.noConflict = function () {\r\n    $.fn.scrollspy = old\r\n    return this\r\n  }\r\n\r\n\r\n  // SCROLLSPY DATA-API\r\n  // ==================\r\n\r\n  $(window).on('load.bs.scrollspy.data-api', function () {\r\n    $('[data-spy=\"scroll\"]').each(function () {\r\n      var $spy = $(this)\r\n      Plugin.call($spy, $spy.data())\r\n    })\r\n  })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: tab.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // TAB CLASS DEFINITION\r\n  // ====================\r\n\r\n  var Tab = function (element) {\r\n    // jscs:disable requireDollarBeforejQueryAssignment\r\n    this.element = $(element)\r\n    // jscs:enable requireDollarBeforejQueryAssignment\r\n  }\r\n\r\n  Tab.VERSION = '3.3.7'\r\n\r\n  Tab.TRANSITION_DURATION = 150\r\n\r\n  Tab.prototype.show = function () {\r\n    var $this    = this.element\r\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\r\n    var selector = $this.data('target')\r\n\r\n    if (!selector) {\r\n      selector = $this.attr('href')\r\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n    }\r\n\r\n    if ($this.parent('li').hasClass('active')) return\r\n\r\n    var $previous = $ul.find('.active:last a')\r\n    var hideEvent = $.Event('hide.bs.tab', {\r\n      relatedTarget: $this[0]\r\n    })\r\n    var showEvent = $.Event('show.bs.tab', {\r\n      relatedTarget: $previous[0]\r\n    })\r\n\r\n    $previous.trigger(hideEvent)\r\n    $this.trigger(showEvent)\r\n\r\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\r\n\r\n    var $target = $(selector)\r\n\r\n    this.activate($this.closest('li'), $ul)\r\n    this.activate($target, $target.parent(), function () {\r\n      $previous.trigger({\r\n        type: 'hidden.bs.tab',\r\n        relatedTarget: $this[0]\r\n      })\r\n      $this.trigger({\r\n        type: 'shown.bs.tab',\r\n        relatedTarget: $previous[0]\r\n      })\r\n    })\r\n  }\r\n\r\n  Tab.prototype.activate = function (element, container, callback) {\r\n    var $active    = container.find('> .active')\r\n    var transition = callback\r\n      && $.support.transition\r\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\r\n\r\n    function next() {\r\n      $active\r\n        .removeClass('active')\r\n        .find('> .dropdown-menu > .active')\r\n          .removeClass('active')\r\n        .end()\r\n        .find('[data-toggle=\"tab\"]')\r\n          .attr('aria-expanded', false)\r\n\r\n      element\r\n        .addClass('active')\r\n        .find('[data-toggle=\"tab\"]')\r\n          .attr('aria-expanded', true)\r\n\r\n      if (transition) {\r\n        element[0].offsetWidth // reflow for transition\r\n        element.addClass('in')\r\n      } else {\r\n        element.removeClass('fade')\r\n      }\r\n\r\n      if (element.parent('.dropdown-menu').length) {\r\n        element\r\n          .closest('li.dropdown')\r\n            .addClass('active')\r\n          .end()\r\n          .find('[data-toggle=\"tab\"]')\r\n            .attr('aria-expanded', true)\r\n      }\r\n\r\n      callback && callback()\r\n    }\r\n\r\n    $active.length && transition ?\r\n      $active\r\n        .one('bsTransitionEnd', next)\r\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\r\n      next()\r\n\r\n    $active.removeClass('in')\r\n  }\r\n\r\n\r\n  // TAB PLUGIN DEFINITION\r\n  // =====================\r\n\r\n  function Plugin(option) {\r\n    return this.each(function () {\r\n      var $this = $(this)\r\n      var data  = $this.data('bs.tab')\r\n\r\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n      if (typeof option == 'string') data[option]()\r\n    })\r\n  }\r\n\r\n  var old = $.fn.tab\r\n\r\n  $.fn.tab             = Plugin\r\n  $.fn.tab.Constructor = Tab\r\n\r\n\r\n  // TAB NO CONFLICT\r\n  // ===============\r\n\r\n  $.fn.tab.noConflict = function () {\r\n    $.fn.tab = old\r\n    return this\r\n  }\r\n\r\n\r\n  // TAB DATA-API\r\n  // ============\r\n\r\n  var clickHandler = function (e) {\r\n    e.preventDefault()\r\n    Plugin.call($(this), 'show')\r\n  }\r\n\r\n  $(document)\r\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\r\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // TOOLTIP PUBLIC CLASS DEFINITION\r\n  // ===============================\r\n\r\n  var Tooltip = function (element, options) {\r\n    this.type       = null\r\n    this.options    = null\r\n    this.enabled    = null\r\n    this.timeout    = null\r\n    this.hoverState = null\r\n    this.$element   = null\r\n    this.inState    = null\r\n\r\n    this.init('tooltip', element, options)\r\n  }\r\n\r\n  Tooltip.VERSION  = '3.3.7'\r\n\r\n  Tooltip.TRANSITION_DURATION = 150\r\n\r\n  Tooltip.DEFAULTS = {\r\n    animation: true,\r\n    placement: 'top',\r\n    selector: false,\r\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\r\n    trigger: 'hover focus',\r\n    title: '',\r\n    delay: 0,\r\n    html: false,\r\n    container: false,\r\n    viewport: {\r\n      selector: 'body',\r\n      padding: 0\r\n    }\r\n  }\r\n\r\n  Tooltip.prototype.init = function (type, element, options) {\r\n    this.enabled   = true\r\n    this.type      = type\r\n    this.$element  = $(element)\r\n    this.options   = this.getOptions(options)\r\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\r\n    this.inState   = { click: false, hover: false, focus: false }\r\n\r\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\r\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\r\n    }\r\n\r\n    var triggers = this.options.trigger.split(' ')\r\n\r\n    for (var i = triggers.length; i--;) {\r\n      var trigger = triggers[i]\r\n\r\n      if (trigger == 'click') {\r\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\r\n      } else if (trigger != 'manual') {\r\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\r\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\r\n\r\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\r\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\r\n      }\r\n    }\r\n\r\n    this.options.selector ?\r\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\r\n      this.fixTitle()\r\n  }\r\n\r\n  Tooltip.prototype.getDefaults = function () {\r\n    return Tooltip.DEFAULTS\r\n  }\r\n\r\n  Tooltip.prototype.getOptions = function (options) {\r\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\r\n\r\n    if (options.delay && typeof options.delay == 'number') {\r\n      options.delay = {\r\n        show: options.delay,\r\n        hide: options.delay\r\n      }\r\n    }\r\n\r\n    return options\r\n  }\r\n\r\n  Tooltip.prototype.getDelegateOptions = function () {\r\n    var options  = {}\r\n    var defaults = this.getDefaults()\r\n\r\n    this._options && $.each(this._options, function (key, value) {\r\n      if (defaults[key] != value) options[key] = value\r\n    })\r\n\r\n    return options\r\n  }\r\n\r\n  Tooltip.prototype.enter = function (obj) {\r\n    var self = obj instanceof this.constructor ?\r\n      obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n    if (!self) {\r\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n      $(obj.currentTarget).data('bs.' + this.type, self)\r\n    }\r\n\r\n    if (obj instanceof $.Event) {\r\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\r\n    }\r\n\r\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\r\n      self.hoverState = 'in'\r\n      return\r\n    }\r\n\r\n    clearTimeout(self.timeout)\r\n\r\n    self.hoverState = 'in'\r\n\r\n    if (!self.options.delay || !self.options.delay.show) return self.show()\r\n\r\n    self.timeout = setTimeout(function () {\r\n      if (self.hoverState == 'in') self.show()\r\n    }, self.options.delay.show)\r\n  }\r\n\r\n  Tooltip.prototype.isInStateTrue = function () {\r\n    for (var key in this.inState) {\r\n      if (this.inState[key]) return true\r\n    }\r\n\r\n    return false\r\n  }\r\n\r\n  Tooltip.prototype.leave = function (obj) {\r\n    var self = obj instanceof this.constructor ?\r\n      obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n    if (!self) {\r\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n      $(obj.currentTarget).data('bs.' + this.type, self)\r\n    }\r\n\r\n    if (obj instanceof $.Event) {\r\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\r\n    }\r\n\r\n    if (self.isInStateTrue()) return\r\n\r\n    clearTimeout(self.timeout)\r\n\r\n    self.hoverState = 'out'\r\n\r\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\r\n\r\n    self.timeout = setTimeout(function () {\r\n      if (self.hoverState == 'out') self.hide()\r\n    }, self.options.delay.hide)\r\n  }\r\n\r\n  Tooltip.prototype.show = function () {\r\n    var e = $.Event('show.bs.' + this.type)\r\n\r\n    if (this.hasContent() && this.enabled) {\r\n      this.$element.trigger(e)\r\n\r\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\r\n      if (e.isDefaultPrevented() || !inDom) return\r\n      var that = this\r\n\r\n      var $tip = this.tip()\r\n\r\n      var tipId = this.getUID(this.type)\r\n\r\n      this.setContent()\r\n      $tip.attr('id', tipId)\r\n      this.$element.attr('aria-describedby', tipId)\r\n\r\n      if (this.options.animation) $tip.addClass('fade')\r\n\r\n      var placement = typeof this.options.placement == 'function' ?\r\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\r\n        this.options.placement\r\n\r\n      var autoToken = /\\s?auto?\\s?/i\r\n      var autoPlace = autoToken.test(placement)\r\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\r\n\r\n      $tip\r\n        .detach()\r\n        .css({ top: 0, left: 0, display: 'block' })\r\n        .addClass(placement)\r\n        .data('bs.' + this.type, this)\r\n\r\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\r\n      this.$element.trigger('inserted.bs.' + this.type)\r\n\r\n      var pos          = this.getPosition()\r\n      var actualWidth  = $tip[0].offsetWidth\r\n      var actualHeight = $tip[0].offsetHeight\r\n\r\n      if (autoPlace) {\r\n        var orgPlacement = placement\r\n        var viewportDim = this.getPosition(this.$viewport)\r\n\r\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\r\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\r\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\r\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\r\n                    placement\r\n\r\n        $tip\r\n          .removeClass(orgPlacement)\r\n          .addClass(placement)\r\n      }\r\n\r\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\r\n\r\n      this.applyPlacement(calculatedOffset, placement)\r\n\r\n      var complete = function () {\r\n        var prevHoverState = that.hoverState\r\n        that.$element.trigger('shown.bs.' + that.type)\r\n        that.hoverState = null\r\n\r\n        if (prevHoverState == 'out') that.leave(that)\r\n      }\r\n\r\n      $.support.transition && this.$tip.hasClass('fade') ?\r\n        $tip\r\n          .one('bsTransitionEnd', complete)\r\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n        complete()\r\n    }\r\n  }\r\n\r\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\r\n    var $tip   = this.tip()\r\n    var width  = $tip[0].offsetWidth\r\n    var height = $tip[0].offsetHeight\r\n\r\n    // manually read margins because getBoundingClientRect includes difference\r\n    var marginTop = parseInt($tip.css('margin-top'), 10)\r\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\r\n\r\n    // we must check for NaN for ie 8/9\r\n    if (isNaN(marginTop))  marginTop  = 0\r\n    if (isNaN(marginLeft)) marginLeft = 0\r\n\r\n    offset.top  += marginTop\r\n    offset.left += marginLeft\r\n\r\n    // $.fn.offset doesn't round pixel values\r\n    // so we use setOffset directly with our own function B-0\r\n    $.offset.setOffset($tip[0], $.extend({\r\n      using: function (props) {\r\n        $tip.css({\r\n          top: Math.round(props.top),\r\n          left: Math.round(props.left)\r\n        })\r\n      }\r\n    }, offset), 0)\r\n\r\n    $tip.addClass('in')\r\n\r\n    // check to see if placing tip in new offset caused the tip to resize itself\r\n    var actualWidth  = $tip[0].offsetWidth\r\n    var actualHeight = $tip[0].offsetHeight\r\n\r\n    if (placement == 'top' && actualHeight != height) {\r\n      offset.top = offset.top + height - actualHeight\r\n    }\r\n\r\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\r\n\r\n    if (delta.left) offset.left += delta.left\r\n    else offset.top += delta.top\r\n\r\n    var isVertical          = /top|bottom/.test(placement)\r\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\r\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\r\n\r\n    $tip.offset(offset)\r\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\r\n  }\r\n\r\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\r\n    this.arrow()\r\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\r\n      .css(isVertical ? 'top' : 'left', '')\r\n  }\r\n\r\n  Tooltip.prototype.setContent = function () {\r\n    var $tip  = this.tip()\r\n    var title = this.getTitle()\r\n\r\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\r\n    $tip.removeClass('fade in top bottom left right')\r\n  }\r\n\r\n  Tooltip.prototype.hide = function (callback) {\r\n    var that = this\r\n    var $tip = $(this.$tip)\r\n    var e    = $.Event('hide.bs.' + this.type)\r\n\r\n    function complete() {\r\n      if (that.hoverState != 'in') $tip.detach()\r\n      if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\r\n        that.$element\r\n          .removeAttr('aria-describedby')\r\n          .trigger('hidden.bs.' + that.type)\r\n      }\r\n      callback && callback()\r\n    }\r\n\r\n    this.$element.trigger(e)\r\n\r\n    if (e.isDefaultPrevented()) return\r\n\r\n    $tip.removeClass('in')\r\n\r\n    $.support.transition && $tip.hasClass('fade') ?\r\n      $tip\r\n        .one('bsTransitionEnd', complete)\r\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n      complete()\r\n\r\n    this.hoverState = null\r\n\r\n    return this\r\n  }\r\n\r\n  Tooltip.prototype.fixTitle = function () {\r\n    var $e = this.$element\r\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\r\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\r\n    }\r\n  }\r\n\r\n  Tooltip.prototype.hasContent = function () {\r\n    return this.getTitle()\r\n  }\r\n\r\n  Tooltip.prototype.getPosition = function ($element) {\r\n    $element   = $element || this.$element\r\n\r\n    var el     = $element[0]\r\n    var isBody = el.tagName == 'BODY'\r\n\r\n    var elRect    = el.getBoundingClientRect()\r\n    if (elRect.width == null) {\r\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\r\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\r\n    }\r\n    var isSvg = window.SVGElement && el instanceof window.SVGElement\r\n    // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\r\n    // See https://github.com/twbs/bootstrap/issues/20280\r\n    var elOffset  = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\r\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\r\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\r\n\r\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\r\n  }\r\n\r\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\r\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\r\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\r\n\r\n  }\r\n\r\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\r\n    var delta = { top: 0, left: 0 }\r\n    if (!this.$viewport) return delta\r\n\r\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\r\n    var viewportDimensions = this.getPosition(this.$viewport)\r\n\r\n    if (/right|left/.test(placement)) {\r\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\r\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\r\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\r\n        delta.top = viewportDimensions.top - topEdgeOffset\r\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\r\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\r\n      }\r\n    } else {\r\n      var leftEdgeOffset  = pos.left - viewportPadding\r\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\r\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\r\n        delta.left = viewportDimensions.left - leftEdgeOffset\r\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\r\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\r\n      }\r\n    }\r\n\r\n    return delta\r\n  }\r\n\r\n  Tooltip.prototype.getTitle = function () {\r\n    var title\r\n    var $e = this.$element\r\n    var o  = this.options\r\n\r\n    title = $e.attr('data-original-title')\r\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\r\n\r\n    return title\r\n  }\r\n\r\n  Tooltip.prototype.getUID = function (prefix) {\r\n    do prefix += ~~(Math.random() * 1000000)\r\n    while (document.getElementById(prefix))\r\n    return prefix\r\n  }\r\n\r\n  Tooltip.prototype.tip = function () {\r\n    if (!this.$tip) {\r\n      this.$tip = $(this.options.template)\r\n      if (this.$tip.length != 1) {\r\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\r\n      }\r\n    }\r\n    return this.$tip\r\n  }\r\n\r\n  Tooltip.prototype.arrow = function () {\r\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\r\n  }\r\n\r\n  Tooltip.prototype.enable = function () {\r\n    this.enabled = true\r\n  }\r\n\r\n  Tooltip.prototype.disable = function () {\r\n    this.enabled = false\r\n  }\r\n\r\n  Tooltip.prototype.toggleEnabled = function () {\r\n    this.enabled = !this.enabled\r\n  }\r\n\r\n  Tooltip.prototype.toggle = function (e) {\r\n    var self = this\r\n    if (e) {\r\n      self = $(e.currentTarget).data('bs.' + this.type)\r\n      if (!self) {\r\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\r\n        $(e.currentTarget).data('bs.' + this.type, self)\r\n      }\r\n    }\r\n\r\n    if (e) {\r\n      self.inState.click = !self.inState.click\r\n      if (self.isInStateTrue()) self.enter(self)\r\n      else self.leave(self)\r\n    } else {\r\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\r\n    }\r\n  }\r\n\r\n  Tooltip.prototype.destroy = function () {\r\n    var that = this\r\n    clearTimeout(this.timeout)\r\n    this.hide(function () {\r\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\r\n      if (that.$tip) {\r\n        that.$tip.detach()\r\n      }\r\n      that.$tip = null\r\n      that.$arrow = null\r\n      that.$viewport = null\r\n      that.$element = null\r\n    })\r\n  }\r\n\r\n\r\n  // TOOLTIP PLUGIN DEFINITION\r\n  // =========================\r\n\r\n  function Plugin(option) {\r\n    return this.each(function () {\r\n      var $this   = $(this)\r\n      var data    = $this.data('bs.tooltip')\r\n      var options = typeof option == 'object' && option\r\n\r\n      if (!data && /destroy|hide/.test(option)) return\r\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\r\n      if (typeof option == 'string') data[option]()\r\n    })\r\n  }\r\n\r\n  var old = $.fn.tooltip\r\n\r\n  $.fn.tooltip             = Plugin\r\n  $.fn.tooltip.Constructor = Tooltip\r\n\r\n\r\n  // TOOLTIP NO CONFLICT\r\n  // ===================\r\n\r\n  $.fn.tooltip.noConflict = function () {\r\n    $.fn.tooltip = old\r\n    return this\r\n  }\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: transition.js v3.3.7\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n  'use strict';\r\n\r\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n  // ============================================================\r\n\r\n  function transitionEnd() {\r\n    var el = document.createElement('bootstrap')\r\n\r\n    var transEndEventNames = {\r\n      WebkitTransition : 'webkitTransitionEnd',\r\n      MozTransition    : 'transitionend',\r\n      OTransition      : 'oTransitionEnd otransitionend',\r\n      transition       : 'transitionend'\r\n    }\r\n\r\n    for (var name in transEndEventNames) {\r\n      if (el.style[name] !== undefined) {\r\n        return { end: transEndEventNames[name] }\r\n      }\r\n    }\r\n\r\n    return false // explicit for ie8 (  ._.)\r\n  }\r\n\r\n  // http://blog.alexmaccaw.com/css-transitions\r\n  $.fn.emulateTransitionEnd = function (duration) {\r\n    var called = false\r\n    var $el = this\r\n    $(this).one('bsTransitionEnd', function () { called = true })\r\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n    setTimeout(callback, duration)\r\n    return this\r\n  }\r\n\r\n  $(function () {\r\n    $.support.transition = transitionEnd()\r\n\r\n    if (!$.support.transition) return\r\n\r\n    $.event.special.bsTransitionEnd = {\r\n      bindType: $.support.transition.end,\r\n      delegateType: $.support.transition.end,\r\n      handle: function (e) {\r\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n      }\r\n    }\r\n  })\r\n\r\n}(jQuery);\r\n"]}