;(function(name,global,callback){global[name]=callback;})("onDomReady",this,(function(win){'use strict';if(document.readyState==null&&document.addEventListener){document.addEventListener("DOMContentLoaded",function DOMContentLoaded(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);document.readyState="complete";},false);document.readyState="loading";} var doc=win.document,docElem=doc.documentElement,LOAD="load",FALSE=false,ONLOAD="on"+LOAD,COMPLETE="complete",READYSTATE="readyState",ATTACHEVENT="attachEvent",DETACHEVENT="detachEvent",ADDEVENTLISTENER="addEventListener",DOMCONTENTLOADED="DOMContentLoaded",ONREADYSTATECHANGE="onreadystatechange",REMOVEEVENTLISTENER="removeEventListener",w3c=ADDEVENTLISTENER in doc,top=FALSE,isReady=FALSE,callbacks=[];function ready(fn){if(!isReady){if(!doc.body){return defer(ready);} isReady=true;while(fn=callbacks.shift()){defer(fn);}}} function completed(event){if(w3c||event.type===LOAD||doc[READYSTATE]===COMPLETE){detach();ready();}} function detach(){if(w3c){doc[REMOVEEVENTLISTENER](DOMCONTENTLOADED,completed,FALSE);win[REMOVEEVENTLISTENER](LOAD,completed,FALSE);}else{doc[DETACHEVENT](ONREADYSTATECHANGE,completed);win[DETACHEVENT](ONLOAD,completed);}} function defer(fn,wait){setTimeout(fn,+wait>=0?wait:1);} if(doc[READYSTATE]===COMPLETE){defer(ready);}else if(w3c){doc[ADDEVENTLISTENER](DOMCONTENTLOADED,completed,FALSE);win[ADDEVENTLISTENER](LOAD,completed,FALSE);}else{doc[ATTACHEVENT](ONREADYSTATECHANGE,completed);win[ATTACHEVENT](ONLOAD,completed);try{top=win.frameElement==null&&docElem;}catch(e){} if(top&&top.doScroll){(function doScrollCheck(){if(!isReady){try{top.doScroll("left");}catch(e){return defer(doScrollCheck,50);} detach();ready();}})();}} function onDomReady(fn){isReady?defer(fn):callbacks.push(fn);} onDomReady.version="1.4.0";onDomReady.isReady=function(){return isReady;};return onDomReady;})(this));if(!document.querySelectorAll){document.querySelectorAll=function(selectors){var style=document.createElement('style'),elements=[],element;document.documentElement.firstChild.appendChild(style);document._qsa=[];style.styleSheet.cssText=selectors+'{x-qsa:expression(document._qsa && document._qsa.push(this))}';window.scrollBy(0,0);style.parentNode.removeChild(style);while(document._qsa.length){element=document._qsa.shift();element.style.removeAttribute('x-qsa');elements.push(element);} document._qsa=null;return elements;};} if(!document.querySelector){document.querySelector=function(selectors){var elements=document.querySelectorAll(selectors);return(elements.length)?elements[0]:null;};} if(!document.getElementsByClassName){document.getElementsByClassName=function(classNames){classNames=String(classNames).replace(/^|\s+/g,'.');return document.querySelectorAll(classNames);};} if(!Object.keys){Object.keys=function(o){if(o!==Object(o)){throw TypeError('Object.keys called on non-object');} var ret=[],p;for(p in o){if(Object.prototype.hasOwnProperty.call(o,p)){ret.push(p);}} return ret;};} (function(global){var B64_ALPHABET="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";global.atob=global.atob||function(input){input=String(input);var position=0,output=[],buffer=0,bits=0,n;input=input.replace(/\s/g,'');if((input.length%4)===0){input=input.replace(/=+$/,'');} if((input.length%4)===1){throw Error("InvalidCharacterError");} if(/[^+/0-9A-Za-z]/.test(input)){throw Error("InvalidCharacterError");} while(position>16)&0xFF));output.push(String.fromCharCode((buffer>>8)&0xFF));output.push(String.fromCharCode(buffer&0xFF));bits=0;buffer=0;} position+=1;} if(bits===12){buffer=buffer>>4;output.push(String.fromCharCode(buffer&0xFF));}else if(bits===18){buffer=buffer>>2;output.push(String.fromCharCode((buffer>>8)&0xFF));output.push(String.fromCharCode(buffer&0xFF));} return output.join('');};global.btoa=global.btoa||function(input){input=String(input);var position=0,out=[],o1,o2,o3,e1,e2,e3,e4;if(/[^\x00-\xFF]/.test(input)){throw Error("InvalidCharacterError");} while(position>2;e2=((o1&0x3)<<4)|(o2>>4);e3=((o2&0xf)<<2)|(o3>>6);e4=o3&0x3f;if(position===input.length+ 2){e3=64;e4=64;} else if(position===input.length+ 1){e4=64;} out.push(B64_ALPHABET.charAt(e1),B64_ALPHABET.charAt(e2),B64_ALPHABET.charAt(e3),B64_ALPHABET.charAt(e4));} return out.join('');};}(this));if(!Object.prototype.hasOwnProperty){Object.prototype.hasOwnProperty=function(prop){var proto=this.__proto__||this.constructor.prototype;return(prop in this)&&(!(prop in proto)||proto[prop]!==this[prop]);}} if(!window.requestAnimationFrame){if(window.webkitRequestAnimationFrame){(function(global){global.requestAnimationFrame=function(callback){return webkitRequestAnimationFrame(function(){callback(global.performance.now());});};global.cancelAnimationFrame=webkitCancelAnimationFrame;}(this));}else if(window.mozRequestAnimationFrame){(function(global){global.requestAnimationFrame=function(callback){return mozRequestAnimationFrame(function(){callback(global.performance.now());});};global.cancelAnimationFrame=mozCancelAnimationFrame;}(this));}else{(function(global){global.requestAnimationFrame=function(callback){return global.setTimeout(callback,1000/60);} global.cancelAnimationFrame=global.clearTimeout;})(this);}} (function(global,factory){global.augment=factory();}(this,function(){var Factory=function(){};var slice=Array.prototype.slice;var augment=function(base,body){var uber=Factory.prototype=typeof base==="function"?base.prototype:base;var prototype=new Factory(),properties=body.apply(prototype,slice.call(arguments,2).concat(uber));if(typeof properties==="object")for(var key in properties)prototype[key]=properties[key];if(!prototype.hasOwnProperty("constructor"))return prototype;var constructor=prototype.constructor;constructor.prototype=prototype;return constructor;};augment.defclass=function(prototype){var constructor=prototype.constructor;constructor.prototype=prototype;return constructor;};augment.extend=function(base,body){return augment(base,function(uber){this.uber=uber;return body;});};return augment;}));(function(register,global,undefined){var SVG_NS='http://www.w3.org/2000/svg';var NODE_TYPE_COMMENT=8;var document=global.document;var version='2.5.2';var generatorComment='\n'+'Created with Holder.js '+ version+'.\n'+'Learn more at http://holderjs.com\n'+'(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n';var Holder={version:version,addTheme:function(name,theme){name!=null&&theme!=null&&(App.settings.themes[name]=theme);delete App.vars.cache.themeKeys;return this;},addImage:function(src,el){var node=document.querySelectorAll(el);if(node.length){for(var i=0,l=node.length;i1){var offsetX=0;var offsetY=0;var maxLineWidth=scene.width*App.setup.lineWrapRatio;var lineIndex=0;line=new Shape.Group('line'+ lineIndex);for(var i=0;i=maxLineWidth||newline===true){finalizeLine(holderTextGroup,line,offsetX,holderTextGroup.properties.leading);offsetX=0;offsetY+=holderTextGroup.properties.leading;lineIndex+=1;line=new Shape.Group('line'+ lineIndex);line.y=offsetY;} if(newline===true){continue;} textNode.moveTo(offsetX,0);offsetX+=tpdata.spaceWidth+ word.width;line.add(textNode);} finalizeLine(holderTextGroup,line,offsetX,holderTextGroup.properties.leading);for(var lineKey in holderTextGroup.children){line=holderTextGroup.children[lineKey];line.moveTo((holderTextGroup.width- line.width)/ 2, null,null);} holderTextGroup.moveTo((scene.width- holderTextGroup.width)/ 2, (scene.height- holderTextGroup.height)/ 2, null);if((scene.height- holderTextGroup.height)/ 2 < 0) { holderTextGroup.moveTo(null,0,null);}}else{textNode=new Shape.Text(scene.text);line=new Shape.Group('line0');line.add(textNode);holderTextGroup.add(line);holderTextGroup.moveTo((scene.width- tpdata.boundingBox.width)/ 2, (scene.height- tpdata.boundingBox.height)/ 2, null);} return sceneGraph;} function textSize(width,height,fontSize){var stageWidth=parseInt(width,10);var stageHeight=parseInt(height,10);var bigSide=Math.max(stageWidth,stageHeight);var smallSide=Math.min(stageWidth,stageHeight);var newHeight=0.8*Math.min(smallSide,bigSide*App.defaults.scale);return Math.round(Math.max(fontSize,newHeight));} function updateResizableElements(element){var images;if(element==null||element.nodeType==null){images=App.vars.resizableImages;}else{images=[element];} for(var i=0,l=images.length;i1){stagingTextNode.nodeValue='';for(var i=0;i','application/xml');for(var i=stylesheets.length- 1;i>=0;i--){var csspi=xml.createProcessingInstruction('xml-stylesheet','href="'+ stylesheets[i]+'" rel="stylesheet"');xml.insertBefore(csspi,xml.firstChild);} var xmlpi=xml.createProcessingInstruction('xml','version="1.0" encoding="UTF-8" standalone="yes"');xml.insertBefore(xmlpi,xml.firstChild);xml.removeChild(xml.documentElement);svgCSS=serializer.serializeToString(xml);} var svgText=serializer.serializeToString(svg);svgText=svgText.replace(/\&(\#[0-9]{2,}\;)/g,'&$1');return svgCSS+ svgText;} function extend(a,b){var c={};for(var x in a){if(a.hasOwnProperty(x)){c[x]=a[x];}} if(b!=null){for(var y in b){if(b.hasOwnProperty(y)){c[y]=b[y];}}} return c;} function cssProps(props){var ret=[];for(var p in props){if(props.hasOwnProperty(p)){ret.push(p+':'+ props[p]);}} return ret.join(';');} function debounce(fn){if(!App.vars.debounceTimer)fn.call(this);if(App.vars.debounceTimer)global.clearTimeout(App.vars.debounceTimer);App.vars.debounceTimer=global.setTimeout(function(){App.vars.debounceTimer=null;fn.call(this);},App.setup.debounce);} function resizeEvent(){debounce(function(){updateResizableElements(null);});} function getNodeArray(val){var retval=null;if(typeof(val)=='string'){retval=document.querySelectorAll(val);}else if(global.NodeList&&val instanceof global.NodeList){retval=val;}else if(global.Node&&val instanceof global.Node){retval=[val];}else if(global.HTMLCollection&&val instanceof global.HTMLCollection){retval=val;}else if(val instanceof Array){retval=val;}else if(val===null){retval=[];} return retval;} function imageExists(src,callback){var image=new Image();image.onerror=function(){callback.call(this,false);};image.onload=function(){callback.call(this,true);};image.src=src;} function encodeHtmlEntity(str){var buf=[];var charCode=0;for(var i=str.length- 1;i>=0;i--){charCode=str.charCodeAt(i);if(charCode>128){buf.unshift(['&#',charCode,';'].join(''));}else{buf.unshift(str[i]);}} return buf.join('');} function decodeHtmlEntity(str){return str.replace(/&#(\d+);/g,function(match,dec){return String.fromCharCode(dec);});} var SceneGraph=function(sceneProperties){var nodeCount=1;function merge(parent,child){for(var prop in child){parent[prop]=child[prop];} return parent;} var SceneNode=augment.defclass({constructor:function(name){nodeCount++;this.parent=null;this.children={};this.id=nodeCount;this.name='n'+ nodeCount;if(name!=null){this.name=name;} this.x=0;this.y=0;this.z=0;this.width=0;this.height=0;},resize:function(width,height){if(width!=null){this.width=width;} if(height!=null){this.height=height;}},moveTo:function(x,y,z){this.x=x!=null?x:this.x;this.y=y!=null?y:this.y;this.z=z!=null?z:this.z;},add:function(child){var name=child.name;if(this.children[name]==null){this.children[name]=child;child.parent=this;}else{throw'SceneGraph: child with that name already exists: '+ name;}}});var RootNode=augment(SceneNode,function(uber){this.constructor=function(){uber.constructor.call(this,'root');this.properties=sceneProperties;};});var Shape=augment(SceneNode,function(uber){function constructor(name,props){uber.constructor.call(this,name);this.properties={fill:'#000'};if(props!=null){merge(this.properties,props);}else if(name!=null&&typeof name!=='string'){throw'SceneGraph: invalid node name';}} this.Group=augment.extend(this,{constructor:constructor,type:'group'});this.Rect=augment.extend(this,{constructor:constructor,type:'rect'});this.Text=augment.extend(this,{constructor:function(text){constructor.call(this);this.properties.text=text;},type:'text'});});var root=new RootNode();this.Shape=Shape;this.root=root;return this;};for(var flag in App.flags){if(!App.flags.hasOwnProperty(flag))continue;App.flags[flag].match=function(val){return val.match(this.regex);};} App.setup={renderer:'html',debounce:100,ratio:1,supportsCanvas:false,supportsSVG:false,lineWrapRatio:0.9,renderers:['html','canvas','svg']};App.dpr=function(val){return val*App.setup.ratio;};App.vars={preempted:false,resizableImages:[],invisibleImages:{},invisibleId:0,visibilityCheckStarted:false,debounceTimer:null,cache:{}};(function(){var devicePixelRatio=1,backingStoreRatio=1;var canvas=newEl('canvas');var ctx=null;if(canvas.getContext){if(canvas.toDataURL('image/png').indexOf('data:image/png')!=-1){App.setup.renderer='canvas';ctx=canvas.getContext('2d');App.setup.supportsCanvas=true;}} if(App.setup.supportsCanvas){devicePixelRatio=global.devicePixelRatio||1;backingStoreRatio=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;} App.setup.ratio=devicePixelRatio/backingStoreRatio;if(!!document.createElementNS&&!!document.createElementNS(SVG_NS,'svg').createSVGRect){App.setup.renderer='svg';App.setup.supportsSVG=true;}})();startVisibilityCheck();register(Holder,'Holder',global);if(global.onDomReady){global.onDomReady(function(){if(!App.vars.preempted){Holder.run();} if(global.addEventListener){global.addEventListener('resize',resizeEvent,false);global.addEventListener('orientationchange',resizeEvent,false);}else{global.attachEvent('onresize',resizeEvent);} if(typeof global.Turbolinks=='object'){global.document.addEventListener('page:change',function(){Holder.run();});}});}})(function(fn,name,global){var isAMD=(typeof define==='function'&&define.amd);var isNode=(typeof exports==='object');var isWeb=!isNode;if(isAMD){define(fn);}else{global[name]=fn;}},this);