text: require=function t(e,i,s){function n(o,a){if(!i[o]){if(!e[o]){var h="function"==typeof require&&require;if(!a&&h)return h(o,!0);if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=i[o]={exports:{}};e[o][0].call(u.exports,function(t){var i=e[o][1][t];return n(i?i:t)},u,u.exports,t,e,i,s)}return i[o].exports}for(var r="function"==typeof require&&require,o=0;o<s.length;o++)n(s[o]);return n}({1:[function(t,e){var i=t("phaser-unofficial"),s=t("./colors");Ball=function(t,e,n,r,o){i.Sprite.call(this,t,n,r,"ball");var a=this;this.game=t,this.game.physics.arcade.enable(a),this.inputEnabled=!0,this.z=10,this.dest=o.destination,this.colorIndex=o.colorIndex||s.randomColorIndex(this.game,this.game.theme),this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0),this.speed=o.speed||Ball.defaultSpeed,this.alive=!0,this.anchor.set(.5,.5),this.checkWorldBounds=!0,this.body.bounce.setTo(1,1),this.returned=!1,this.request=e,this.pongScale=o.scale||this.game.rnd.integerInRange(30,40)/100,this.scale.x=this.pongScale,this.scale.y=this.pongScale,this.alpha=1,o.miss&&(this.alpha=.4),o.error&&(this.scale.x=.5,this.scale.y=.5,this.isError=!0,this.tint=s.hexStringToInt(s.themes[this.game.theme].red),this.state="fadeOut"),this.minAlpha=Ball.minAlpha,this.maxAlpha=Ball.maxAlpha,this.body.velocity=this.game.physics.arcade.velocityFromAngle(this.game.physics.arcade.angleToXY(this.body,this.dest.x,this.dest.y)*(180/Math.PI),this.speed),this.currentVelocity={x:this.body.velocity.x,y:this.body.velocity.y},this.glow=this._createGlow(),this.addChild(this.glow),this.events.onInputOver.add(this._inputOver,this),this.events.onInputOut.add(this._inputOut,this)},Ball.prototype=Object.create(i.Sprite.prototype),Ball.prototype.constructor=Ball,Ball.defaultSpeed=250,Ball.minGlowAlpha=.2,Ball.maxGlowAlpha=.6,Ball.maxYVelocity=100,Ball.prototype.update=function(){if(this.isOutOfBounds()&&(this.alive=!1),this._updateGlow(),this.game.pongPaused)return void this.body.velocity.set(0);if(this.body.velocity.x=this.currentVelocity.x*this.game.speed,this.body.velocity.y=this.currentVelocity.y*this.game.speed,this.isError){switch(this.state){case"fadeIn":this.alpha+=.07,this.alpha>1&&(this.alpha=1,this.state="fadeOut");break;case"fadeOut":this.alpha-=.07,this.alpha<.3&&(this.alpha=.3,this.state="fadeIn")}this.tint=s.hexStringToInt(s.themes[this.game.theme].red)}else this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0);i.Sprite.prototype.update.call(this)},Ball.prototype.isOutOfBounds=function(){return this.x<0||this.x>this.game.world.bounds.width||this.y<0||this.y>this.game.world.bounds.height},Ball.prototype.collideWithPaddle=function(t){var e=this;this.returned=!0,this.body.collideWorldBounds=!1,this.body.velocity.x=-this.speed,this.body.velocity.y=this.y<t.y?-5*(t.y-this.y):this.y>t.y?5*(this.y-t.y):0,this.body.velocity.y<-Ball.maxYVelocity&&(this.body.velocity.y=-Ball.maxYVelocity),this.body.velocity.y>Ball.maxYVelocity&&(this.body.velocity.y=Ball.maxYVelocity),e.currentVelocity={x:this.body.velocity.x,y:this.body.velocity.y}},Ball.prototype._createGlow=function(){var t=this.game.add.sprite(0,0,"ball");return t.tint=self.tint,t.blendMode=s.themes[this.game.theme].blendMode,t.scale.x=this.scale.x+1.4,t.scale.y=this.scale.y+1.4,t.z=20,t.anchor=new i.Point(.5,.5),t.alpha=this.game.rnd.integerInRange(2,6)/10*s.themes[this.game.theme].glowIntensity,t.state=this.game.rnd.pick(["fadeIn","fadeOut"]),t},Ball.prototype._updateGlow=function(){var t=this.glow.alpha/s.themes[this.game.theme].glowIntensity;switch(this.glow.state){case"fadeIn":t+=.005,t>Ball.maxGlowAlpha&&(this.glow.state="fadeOut");break;case"fadeOut":t-=.005,t<Ball.minGlowAlpha&&(this.glow.state="fadeIn");break;case"highlightIn":this.glow.alpha+=.05,this.glow.alpha>.9&&(this.glow.alpha=.9);break;case"highlightOut":this.glow.alpha-=.05,this.glow.alpha<.2&&(this.glow.state="fadeIn")}this.glow.tint=this.tint,this.glow.alpha=t*s.themes[this.game.theme].glowIntensity,this.glow.blendMode=s.themes[this.game.theme].blendMode},Ball.prototype._inputOver=function(){this.glow.state="highlightIn"},Ball.prototype._inputOut=function(){this.glow.state="highlightOut"},e.exports=Ball},{"./colors":2,"phaser-unofficial":11}],2:[function(t,e){var i=(t("underscore"),t("phaser-unofficial"));e.exports={themes:{Bogey:{background:"#232c31",paddle:"#eeeeee",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#32cd32",yellow:"#daa520",red:"#dc143c",colors:["#ffffff","#ffa500","#faebd7","#00ffff","#ff7f50","#ffc0cb","#faa520","#f0e68c","#778899","#3cb371","#808000"]},"Solarized Dark":{background:"#002b36",paddle:"#fdf6e3",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#859900",yellow:"#b58900",red:"#dc322f",colors:["#839496","#93a1a1","#eee8d5","#fdf6e3","#b58900","#cb4b16","#dc322f","#d33682","#6c71c4","#268bd2","#2aa198","#859900"]},"Solarized Light":{background:"#fdf6e3",paddle:"#002b36",blendMode:i.blendModes.NORMAL,glowIntensity:.5,green:"#859900",yellow:"#b58900",red:"#dc322f",colors:["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#b58900","#cb4b16","#dc322f","#d33682","#6c71c4","#268bd2","#2aa198","#859900"]},"Tomorrow Night":{background:"#1d1f21",paddle:"#c5c8c6",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#b5bd68",yellow:"#f0c674",red:"#cc6666",colors:["#c5c8c6","#969896","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb"]},"Tomorrow Night Eighties":{background:"#2d2d2d",paddle:"#cccccc",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#99cc99",yellow:"#ffcc66",red:"#f2777a",colors:["#cccccc","#999999","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc"]},"Tomorrow Night Blue":{background:"#002451",paddle:"#ffffff",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#d1f1a9",yellow:"#ffeead",red:"#ff9da4",colors:["#ffffff","#7285b7","#ff9da4","#ffc58f","#ffeead","#d1f1a9","#99ffff","#bbdaff","#ebbbff"]},Tomorrow:{background:"#ffffff",paddle:"#4d4d4c",blendMode:i.blendModes.NORMAL,glowIntensity:.4,green:"#718c00",yellow:"#eab700",red:"#c82829",colors:["#4d4d4c","#8e908c","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8"]},Monokai:{background:"#272822",paddle:"#f9f8f5",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#a6e22e",yellow:"#fdf5a9",red:"#f92672",colors:["#ffffff","#FF3D73","#66d9ef","#a6e22e","#fd971f","#fdf5a9","#f9f5c2","#fe7259"]},"Base16 Dark":{background:"#151515",paddle:"#f5f5f5",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#90a959",yellow:"#f4bf75",red:"#ac4142",colors:["#f5f5f5","#e0e0e0","#d0d0d0","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5546"]},"Base16 Light":{background:"#f5f5f5",paddle:"#151515",blendMode:i.blendModes.NORMAL,glowIntensity:.4,green:"#90a959",yellow:"#f4bf75",red:"#ac4142",colors:["#202020","#ac4142","#303030","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5546"]},Greenscreen:{background:"#001100",paddle:"#00ff00",blendMode:i.blendModes.ADD,glowIntensity:1,green:"#00dd00",yellow:"#00bb00",red:"#009900",colors:["#007700","#009900","#00bb00","#005500","#00dd00","#00ff00"]}},randomColorIndex:function(t,e){return t.rnd.integerInRange(0,this.themes[e].colors.length-1)},getColor:function(t,e,i,s){return i>this.themes[e].colors.length-1&&(i=0),s?this.hexStringToInt(this.themes[e].colors[i]):this.themes[e].colors[i]},hexStringToInt:function(t){return parseInt(t.slice(1),16)}}},{"phaser-unofficial":11,underscore:15}],3:[function(t,e){var i=t("phaser-unofficial");Explosion=function(t,e,s,n,r){this.game=t;var o;o=r?30:this.game.rnd.integerInRange(10,20),i.Particles.Arcade.Emitter.call(this,t,e,s,o),this.alive=!0,this.makeParticles("ball"),this.minParticleScale=.02,this.maxParticleScale=.1,this.minParticleSpeed.setTo(-100,-250),this.maxParticleSpeed.setTo(-200,250),this.tint=n,r&&(this.minParticleScale=.05,this.maxParticleScale=.2),this.minParticleAlpha=.1,this.maxParticleAlpha=.5,this.gravity=150,this.bounce.setTo(.5,.5),this.aliveTime=0,this.start(!0,1e3,0,o)},Explosion.prototype=Object.create(i.Particles.Arcade.Emitter.prototype),Explosion.prototype.constructor=Explosion,Explosion.lifetime=2e3,Explosion.prototype.update=function(){this.aliveTime+=this.game.time.elapsed,this.aliveTime>Explosion.lifetime&&(this.alive=!1),this._updateParticles(),i.Particles.Arcade.Emitter.prototype.update.call(this)},Explosion.prototype._updateParticles=function(){var t=this;this.forEach(function(e){e.tint=t.tint,e.alpha=e.lifespan/t.lifespan})},e.exports=Explosion},{"phaser-unofficial":11}],4:[function(t,e){var i=t("phaser-unofficial"),s=t("./colors");Ip=function(t,e,n,r,o){i.Text.call(this,t,e,n,r,{font:"13px Roboto",fill:"#ffffff"}),this.ip=r,this.alive=!0,this.alpha=0,this.colorIndex=o,this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0),this.anchor.set(0,.5),this.x=-this.width,this.state="entering"},Ip.prototype=Object.create(i.Text.prototype),Ip.prototype.constructor=Ip,Ip.prototype.update=function(){if(!this.game.pongPaused){switch(this.state){case"entering":this.alpha+=.05,this.alpha>1&&(this.alpha=1),this.x+=5,this.x>5&&(this.x=5,this.state="waiting",this.waitTime=0);break;case"waiting":this.waitTime+=this.game.time.elapsed,this.waitTime>2e3&&(this.state="leaving");break;case"leaving":this.x-=7,this.x<-this.width&&(this.alive=!1)}this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0),i.Text.prototype.update.call(this)}},e.exports=Ip},{"./colors":2,"phaser-unofficial":11}],5:[function(t,e){var i=t("phaser-unofficial"),s=t("./colors");Paddle=function(t,e,n,r){i.Sprite.call(this,t,e,n,"paddle"),this.game=t,this.game.physics.arcade.enable(this),this.scale.x=.4,this.scale.y=7,this.anchor.setTo(.5,.5),this.body.bounce.setTo(1,1),this.body.immovable=!0,this.body.collideWorldBounds=!0,this.alpha=Paddle.defaultAlpha,this.tint=s.themes[this.game.theme].paddle,this.isGhost=r||!1,this.alive=!0},Paddle.prototype=Object.create(i.Sprite.prototype),Paddle.prototype.constructor=Paddle,Paddle.defaultAlpha=.6,Paddle.prototype.update=function(){if(this.game.pongPaused&&this.body.velocity.set(0),this.closestBall&&!this.isGhost){var t=0;t=this.y>this.closestBall.dest.y?this.y-this.closestBall.dest.y:this.closestBall.dest.y-this.y,30>t?this.body.velocity.set(0):this.game.physics.arcade.moveToXY(this,Math.round(this.x),Math.round(this.closestBall.dest.y),100,1e3*this.closestBall.arrival)}return this.tint=s.hexStringToInt(s.themes[this.game.theme].paddle),this.isGhost?(this.game.pongPaused&&(this.alpha=0),this.alpha-=.1,void(this.alpha<0&&(this.alpha=0,this.alive=!1))):(this.alpha-=.05,this.alpha<.6&&(this.alpha=.6),this._keyboard(),void i.Sprite.prototype.update.call(this))},Paddle.prototype._keyboard=function(){if(!this.game.pongPaused&&this.game.playMode){var t=0;this.game.downKey.isDown&&(t=300),this.game.upKey.isDown&&(t=-300),this.body.velocity.y=t}},e.exports=Paddle},{"./colors":2,"phaser-unofficial":11}],6:[function(t,e){var i=t("jquery"),s=t("underscore"),n=t("phaser-unofficial"),r=t("store"),o=t("./paddle"),a=t("./wall"),h=t("./ball"),l=t("./explosion"),u=t("./ip"),c=t("./uri"),d=t("./status"),p=t("./shake"),f=t("./colors");Pong=function(t){var e=this;this.bogey=t,t.registerKey("t","Change theme",this._changeTheme,this),t.registerKey("p","Play mode",this._togglePlayMode,this),window.WebFontConfig={active:function(){e.start()},google:{families:["Roboto:400","Source Code Pro:200"]}},i.getScript("//ajax.googleapis.com/ajax/libs/webfont/1.5.3/webfont.js")},Pong.minSpeed=.2,Pong.maxSpeed=2,Pong.defaultSpeed=1,Pong.defaulttheme="Bogey",Pong.sectionSize=20,Pong.padding=15,Pong.prototype.start=function(){var t=this,e=n.AUTO;"canvas"===this.bogey.params.renderer&&(e=n.CANVAS),"webgl"===this.bogey.params.renderer&&(e=n.WEBGL),this.game=new n.Game(i(this.bogey.container).width()+40,i(this.bogey.container).height()+40,e,this.bogey.container,{preload:function(){t._preload()},create:function(){t._create()},update:function(){t._update()}}),this.game.pongPaused=!1,this.game.theme=r.get("theme")||Pong.defaulttheme,this.bogey.setMessageColor(f.themes[this.game.theme].paddle),this.bogey.setMessageFont("Roboto"),this.game.speed=1,this.stats=!1,this.requests=[]},Pong.prototype.request=function(t){this.requests&&this.requests.push(t)},Pong.prototype.pause=function(){this.game.pongPaused=!0},Pong.prototype.unpause=function(){this.game.pongPaused=!1},Pong.prototype.speedUp=function(){this._setSpeed(this.game.speed+.1)},Pong.prototype.slowDown=function(){this._setSpeed(this.game.speed-.1)},Pong.prototype.defaultSpeed=function(){this._setSpeed(Pong.defaultSpeed)},Pong.prototype._setSpeed=function(t){this.game.speed=t,this.game.speed<Pong.minSpeed&&(this.game.speed=Pong.minSpeed),this.game.speed>Pong.maxSpeed&&(this.game.speed=Pong.maxSpeed),this._displayMessage("Speed "+this.game.speed.toFixed(1))},Pong.prototype._preload=function(){var t="iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQjZGMTZBODBEN0UxMUU0OUI5N0QwOUZDOTBDOUZDQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQjZGMTZBOTBEN0UxMUU0OUI5N0QwOUZDOTBDOUZDQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2NTBFOTdGMEQ3NTExRTQ5Qjk3RDA5RkM5MEM5RkNCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2NTBFOTgwMEQ3NTExRTQ5Qjk3RDA5RkM5MEM5RkNCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9WZWeAAAABxJREFUeNpiPHnyJAMpgImBRDCqYVTD0NEAEGAAZnMCe8DzChYAAAAASUVORK5CYII=";this.game.load.spritesheet("paddle","data:image/png;base64,"+t,16,16,1);var e="iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjUwRTk3RDBENzUxMUU0OUI5N0QwOUZDOTBDOUZDQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NjUwRTk3RTBENzUxMUU0OUI5N0QwOUZDOTBDOUZDQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2NTBFOTdCMEQ3NTExRTQ5Qjk3RDA5RkM5MEM5RkNCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2NTBFOTdDMEQ3NTExRTQ5Qjk3RDA5RkM5MEM5RkNCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+nQ7ShgAAAZ5JREFUeNrElz9rwlAUxdNLv4OdKgrZpJObQwVHwSHQDyC4dnBsoVOXbh26FvwGHQSXQsDFIZCpuAmKm36A7j0XTuShSRNjknfgN0jiO8fn+3PvVRAETka5oAPaoAUaoMZne7ABSxCCBVhlGfQ6wztd4IEBqCe8c0vu+XkLpuALzPMGaIIRGIIb5zxp0EfwACbgE6zPCdADY9B3LpMGfwJ34B34xy9IzJd0qt8KMDfV55iDtAD6y1+40IpWm2P3kgI0Oe1lmJshxvQ6CTAqeNr/+ztGxwG6XO1VaUjPQwAvx1a7dHd4UQA3bnVWIPV0hcdr3UIA9exIyas+dVcILxZbaglvNVtqiHGl2lBNHMsSFhO2tBdWMra0EZZRtrQU1nC2FAoLyK0Fc/VcCKvXqYUA6rmKtqFWr7sKzXf0PFzHc1avVWkSlevmQaSl86wC8xm9TkqyNUvnMndFSI91UlWsdftrSSFCju2nNSa6On8LakzMaY9tTJI6I59H9E/O1sxc7blas2hNPIPvDM1p3CFzcXPqGFtU+SijPf8TYACibVZ1AVW1hgAAAABJRU5ErkJggg==";this.game.load.spritesheet("ball","data:image/png;base64,"+e,32,32,1)},Pong.prototype._create=function(){this.game.camera.width=i(window).width(),this.game.camera.height=i(window).height(),this.game.world.bounds.width=i(window).width(),this.game.world.bounds.height=i(window).height();var t=this.game.plugins.add(p);this.game.plugins.screenShake=t,this.game.physics.startSystem(n.Physics.ARCADE);var e=n.Color.hexToColor(f.themes[this.game.theme].background);this.startBackgroundColor=e,this.backgroundColor=e,this.ballGroup=this.game.add.group(),this.ballGroup.enableBody=!0,this.explosionGroup=this.game.add.group(),this.paddleGhostGroup=this.game.add.group(),this.paddle=new o(this.game,this.game.world.bounds.width-500,this.game.world.centerY),this.game.world.add(this.paddle),this.wall=new a(this.game,this.paddle.x-3,0),this.game.world.add(this.wall),this.ipGroup=this.game.add.group(),this.uriGroup=this.game.add.group(),this.statusGroup=this.game.add.group(),this.leftSections=this._createSections(0),this.rightSections=this._createSections(this.paddle.x),this._setKeys()},Pong.prototype._createSections=function(t){for(var e=(this.game.world.bounds.height-2*Pong.padding)/Pong.sectionSize,i=[],s=Pong.padding,n=0;e>n;n++)i.push({index:n,x:t,y:s,time:0}),s+=Pong.sectionSize;return i},Pong.prototype._setKeys=function(){this.game.downKey=this.game.input.keyboard.addKey(n.Keyboard.DOWN),this.game.upKey=this.game.input.keyboard.addKey(n.Keyboard.UP)},Pong.prototype._update=function(){if(!this.game.pongPaused)for(;this.requests.length;)this._addRequest(this.requests.pop());this._updateBackground(),this._updateBalls(),this._removeDeadObjects()},Pong.prototype._togglePlayMode=function(){var t=this;t.game.playMode=!t.game.playMode,t._displayMessage("Play mode "+(t.game.playMode?"enabled":"disabled"))},Pong.prototype._changeTheme=function(){var t=this,e=s.keys(f.themes),i=e.indexOf(t.game.theme),o=i<e.length-1?i+1:0;t.game.theme=e[o];var a=n.Color.hexToColor(f.themes[t.game.theme].background);t.backgroundColor=a,t.startBackgroundColor=a,r.set("theme",t.game.theme),t.bogey.setMessageColor(f.themes[t.game.theme].paddle),t._displayMessage(t.game.theme)},Pong.prototype._displayMessage=function(t){var e=this;e.bogey.flashMessage(t)},Pong.prototype._addRequest=function(t){var e,i=this,n=s.shuffle(this.leftSections);n.forEach(function(i){i.ip&&i.ip.alive&&i.ip.ip===t.parsed.ip[0]&&(e=i,i.ip.state="entering")}),e||(e=this._getOldestSection(n),e.colorIndex=null),e.request=t,e.time=this.game.time.now;var r,o=s.shuffle(this.rightSections);o.forEach(function(e){e.request&&e.request.parsed.ip[0]===t.parsed.ip[0]&&(r=e)}),r||(r=this._getOldestSection(o)),r.request=t,r.time=i.game.time.now,this.rightSections[r.index]=r;var a=new h(this.game,t,0,e.y,{destination:r,colorIndex:e.colorIndex,speed:e.speed,scale:e.scale,miss:"4"===t.parsed.statusCode[0].toString().slice(0,1),error:"5"===t.parsed.statusCode[0].toString().slice(0,1)});if(i.ballGroup.add(a),e.colorIndex=a.colorIndex,e.speed=a.speed,e.pongScale=a.pongScale,this.leftSections[e.index]=e,!e.ip||e.ip.ip!==t.parsed.ip[0]){var l=new u(this.game,0,e.y,t.parsed.ip[0],a.colorIndex);this.ipGroup.add(l),e.ip=l}},Pong.prototype._getOldestSection=function(t){return t.sort(function(t,e){return t.time-e.time}),t[0]},Pong.prototype._updateBackground=function(){this.game.stage.backgroundColor=f.hexStringToInt(f.themes[this.game.theme].background)},Pong.prototype._updateBalls=function(){var t,e=this;e.ballGroup.forEach(function(i){if("undefined"==typeof i||!i.alive)return void e.ballGroup.remove(i);if(!e.game.pongPaused&&i.returned!==!0){var s=i.request.parsed.statusCode[0];if("4"===s.slice(0,1)&&i.x>e.paddle.x){if(!i.statusShown){var n=new d(e.game,e.paddle.x-15,i.dest.y,s);e.statusGroup.add(n),i.statusShown=!0}i.uriShown||e._addUri(i,e.paddle)}"4"!==s.slice(0,1)&&(i.arrival=e.game.physics.arcade.distanceToXY(i,i.dest.x,i.dest.y)/i.speed,(!t||i.arrival<t.arrival)&&(t=i),e._checkForCollisions(i))}}),this.paddle.closestBall=t},Pong.prototype._checkForCollisions=function(t){var e=this;e.game.physics.arcade.collide(t,e.paddle,function(t){e._handleCollision(t,e.paddle)},null,this),e.game.playMode||e.game.physics.arcade.collide(t,e.wall,function(t){var i=new o(e.game,e.paddle.x,t.y,!0);e.paddleGhostGroup.add(i),e._handleCollision(t,i)},null,this)},Pong.prototype._handleCollision=function(t,e){if(t.collideWithPaddle(e),e.alpha=1,"5"===t.request.parsed.statusCode[0].toString().slice(0,1)){this.ballGroup.remove(t);var i=new l(this.game,e.x-2,t.y,f.hexStringToInt(f.themes[this.game.theme].red),!0);this.explosionGroup.add(i),this.game.plugins.screenShake.start(30)}var i=new l(this.game,e.x-2,t.y,t.tint,!1);this.explosionGroup.add(i),this._addUri(t,e);var s=new d(this.game,this.paddle.x-15,t.y,t.request.parsed.statusCode[0]);this.statusGroup.add(s)},Pong.prototype._addUri=function(t,e){t.dest.uri&&t.dest.uri.alive&&(t.dest.uri.state="leaving");var i=new c(this.game,e.x+10,t.dest.y,t.request.parsed.uri[0],t.colorIndex);this.uriGroup.add(i),t.dest.uri=i,t.uriShown=!0},Pong.prototype._removeDeadObjects=function(){var t=this;this.paddleGhostGroup.forEach(function(e){"undefined"!=typeof e&&e.alive||t.paddleGhostGroup.remove(e)}),this.explosionGroup.forEach(function(e){"undefined"!=typeof e&&e.alive||t.explosionGroup.remove(e)}),this.ipGroup.forEach(function(e){"undefined"!=typeof e&&e.alive||t.ipGroup.remove(e)}),this.uriGroup.forEach(function(e){"undefined"!=typeof e&&e.alive||t.uriGroup.remove(e)}),this.statusGroup.forEach(function(e){"undefined"!=typeof e&&e.alive||t.statusGroup.remove(e)})},e.exports=Pong},{"./ball":1,"./colors":2,"./explosion":3,"./ip":4,"./paddle":5,"./shake":7,"./status":8,"./uri":9,"./wall":10,jquery:14,"phaser-unofficial":11,store:13,underscore:15}],7:[function(t,e){var i=t("phaser-unofficial");ScreenShake=function(t,e){i.Plugin.call(this,t,e),this.screenShakes=0,this.shakedAt=0},ScreenShake.prototype=Object.create(i.Plugin.prototype),ScreenShake.prototype.constructor=ScreenShake,ScreenShake.prototype.start=function(t){this.game.time.now-this.shakedAt<200||(this.shakedAt=this.game.time.now,this.screenShakes=t,window.navigator&&window.navigator.vibrate&&navigator.vibrate(10*t))},ScreenShake.prototype.postUpdate=function(){if(this.screenShakes>0){this.screenShakes--;var t=.5*this.screenShakes;this.screenShakes%2?this.game.camera.y+=t:this.game.camera.y-=t,this.game.camera.displayObject.position.y=-this.game.camera.view.y}},e.exports=ScreenShake},{"phaser-unofficial":11}],8:[function(t,e){var i=t("phaser-unofficial"),s=t("./colors");Status=function(t,e,n,r){var o="#ffffff";this.game=t,"2"===r.slice(0,1)||"3"===r.slice(0,1)?o=s.themes[this.game.theme].green:"4"===r.slice(0,1)?o=s.themes[this.game.theme].yellow:"5"===r.slice(0,1)&&(o=s.themes[this.game.theme].red),i.Text.call(this,t,e,n,r,{font:"12px Source Code Pro",fill:o}),this.alive=!0,this.alpha=0,this.state="fadeIn"},Status.prototype=Object.create(i.Text.prototype),Status.prototype.constructor=Status,Status.prototype.update=function(){if(!this.game.pongPaused){switch(this.state){case"fadeIn":this.alpha+=.05,this.x-=.5,this.alpha>1&&(this.alpha=1,this.state="fadeOut",this.waitTime=0);break;case"fadeOut":this.alpha-=.02,this.x-=.5,this.alpha<=0&&(this.alive=!1)}i.Text.prototype.update.call(this)}},e.exports=Status},{"./colors":2,"phaser-unofficial":11}],9:[function(t,e){var i=t("phaser-unofficial"),s=t("./colors");Uri=function(t,e,n,r,o){i.Text.call(this,t,e,n,r,{font:"13px Roboto",fill:"#ffffff"}),this.alive=!0,this.alpha=0,this.colorIndex=o,this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0),this.anchor.set(0,.5),this.state="entering"},Uri.prototype=Object.create(i.Text.prototype),Uri.prototype.constructor=Uri,Uri.prototype.update=function(){if(!this.game.pongPaused){switch(this.state){case"entering":this.alpha+=.05,this.alpha>1&&(this.alpha=1,this.state="waiting",this.waitTime=0);break;case"waiting":this.waitTime+=this.game.time.elapsed,this.waitTime>2e3&&(this.state="leaving");break;case"leaving":this.x+=10,this.alpha-=.03,this.alpha<0&&(this.alpha=0),this.x>this.game.world.bounds.width&&(this.alive=!1)}this.tint=s.getColor(this.game,this.game.theme,this.colorIndex,!0),i.Text.prototype.update.call(this)}},e.exports=Uri},{"./colors":2,"phaser-unofficial":11}],10:[function(t,e){var i=t("phaser-unofficial");Wall=function(t,e,s){i.Sprite.call(this,t,e,s,"paddle"),this.game.physics.arcade.enable(this),this.width=200,this.height=this.game.world.bounds.height,this.blendMode=i.blendModes.ADD,this.body.bounce.setTo(1,1),this.body.immovable=!0,this.alpha=0},Wall.prototype=Object.create(i.Sprite.prototype),Wall.prototype.constructor=Wall,e.exports=Wall},{"phaser-unofficial":11}],11:[function(t,e,i){var s=t("./pixi");(function(){var t=this,n=n||{VERSION:"2.0.4",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(s.InteractionManager=function(){},n.Utils={parseDimension:function(t,e){var i=0,s=0;return"string"==typeof t?"%"===t.substr(-1)?(i=parseInt(t,10)/100,s=0===e?window.innerWidth*i:window.innerHeight*i):s=parseInt(t,10):s=t,s},shuffle:function(t){for(var e=t.length-1;e>0;e--){var i=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[i],t[i]=s}return t},pad:function(t,e,i,s){if("undefined"==typeof e)var e=0;if("undefined"==typeof i)var i=" ";if("undefined"==typeof s)var s=3;var n=0;if(e+1>=t.length)switch(s){case 1:t=new Array(e+1-t.length).join(i)+t;break;case 3:var r=Math.ceil((n=e-t.length)/2),o=n-r;t=new Array(o+1).join(i)+t+new Array(r+1).join(i);break;default:t+=new Array(e+1-t.length).join(i)}return t},isPlainObject:function(t){if("object"!=typeof t||t.nodeType||t===t.window)return!1;try{if(t.constructor&&!{}.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}return!0},extend:function(){var t,e,i,s,r,o,a=arguments[0]||{},h=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[1]||{},h=2),l===h&&(a=this,--h);l>h;h++)if(null!=(t=arguments[h]))for(e in t)i=a[e],s=t[e],a!==s&&(u&&s&&(n.Utils.isPlainObject(s)||(r=Array.isArray(s)))?(r?(r=!1,o=i&&Array.isArray(i)?i:[]):o=i&&n.Utils.isPlainObject(i)?i:{},a[e]=n.Utils.extend(u,o,s)):void 0!==s&&(a[e]=s));return a}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var r=n.concat(t.call(arguments));s.apply(this instanceof i?this:e,r)}var s=this,n=t.call(arguments,1);if("function"!=typeof s)throw new TypeError;return i.prototype=function r(t){return t&&(r.prototype=t),this instanceof r?void 0:new r}(s.prototype),i}}()),Array.isArray||(Array.isArray=function(t){return"[object Array]"==Object.prototype.toString.call(t)}),Array.prototype.forEach||(Array.prototype.forEach=function(t){"use strict";if(void 0===this||null===this)throw new TypeError;var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError;for(var s=arguments.length>=2?arguments[1]:void 0,n=0;i>n;n++)n in e&&t.call(s,e[n],n,e)}),"function"!=typeof window.Uint32Array){var r=function(t){var e=new Array;window[t]=function(t){if("number"==typeof t){Array.call(this,t),this.length=t;for(var e=0;e<this.length;e++)this[e]=0}else{Array.call(this,t.length),this.length=t.length;for(var e=0;e<this.length;e++)this[e]=t[e]}},window[t].prototype=e,window[t].constructor=window[t]};r("Uint32Array"),r("Int16Array")}window.console||(window.console={},window.console.log=window.console.assert=function(){},window.console.warn=window.console.assert=function(){}),n.Circle=function(t,e,i){t=t||0,e=e||0,i=i||0,this.x=t,this.y=e,this._diameter=i,this._radius=i>0?.5*i:0},n.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(t,e,i){return this.x=t,this.y=e,this._diameter=i,this._radius=.5*i,this},copyFrom:function(t){return this.setTo(t.x,t.y,t.diameter)},copyTo:function(t){return t.x=this.x,t.y=this.y,t.diameter=this._diameter,t},distance:function(t,e){return"undefined"==typeof e&&(e=!1),e?n.Math.distanceRounded(this.x,this.y,t.x,t.y):n.Math.distance(this.x,this.y,t.x,t.y)},clone:function(t){return"undefined"==typeof t?t=new n.Circle(this.x,this.y,this.diameter):t.setTo(this.x,this.y,this.diameter),t},contains:function(t,e){return n.Circle.contains(this,t,e)},circumferencePoint:function(t,e,i){return n.Circle.circumferencePoint(this,t,e,i)},offset:function(t,e){return this.x+=t,this.y+=e,this},offsetPoint:function(t){return this.offset(t.x,t.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},n.Circle.prototype.constructor=n.Circle,Object.defineProperty(n.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(t){t>0&&(this._diameter=t,this._radius=.5*t)}}),Object.defineProperty(n.Circle.prototype,"radius",{get:function(){return this._radius},set:function(t){t>0&&(this._radius=t,this._diameter=2*t)}}),Object.defineProperty(n.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(t){t>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-t}}),Object.defineProperty(n.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(t){t<this.x?(this._radius=0,this._diameter=0):this.radius=t-this.x}}),Object.defineProperty(n.Circle.prototype,"top",{get:function(){return this.y-this._radius},set:function(t){t>this.y?(this._radius=0,this._diameter=0):this.radius=this.y-t}}),Object.defineProperty(n.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(t){t<this.y?(this._radius=0,this._diameter=0):this.radius=t-this.y}}),Object.defineProperty(n.Circle.prototype,"area",{get:function(){return this._radius>0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(n.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(t){t===!0&&this.setTo(0,0,0)}}),n.Circle.contains=function(t,e,i){if(t.radius>0&&e>=t.left&&e<=t.right&&i>=t.top&&i<=t.bottom){var s=(t.x-e)*(t.x-e),n=(t.y-i)*(t.y-i);return s+n<=t.radius*t.radius}return!1},n.Circle.equals=function(t,e){return t.x==e.x&&t.y==e.y&&t.diameter==e.diameter},n.Circle.intersects=function(t,e){return n.Math.distance(t.x,t.y,e.x,e.y)<=t.radius+e.radius},n.Circle.circumferencePoint=function(t,e,i,s){return"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=new n.Point),i===!0&&(e=n.Math.degToRad(e)),s.x=t.x+t.radius*Math.cos(e),s.y=t.y+t.radius*Math.sin(e),s},n.Circle.intersectsRectangle=function(t,e){var i=Math.abs(t.x-e.x-e.halfWidth),s=e.halfWidth+t.radius;if(i>s)return!1;var n=Math.abs(t.y-e.y-e.halfHeight),r=e.halfHeight+t.radius;if(n>r)return!1;if(i<=e.halfWidth||n<=e.halfHeight)return!0;var o=i-e.halfWidth,a=n-e.halfHeight,h=o*o,l=a*a,u=t.radius*t.radius;return u>=h+l},s.Circle=n.Circle,n.Point=function(t,e){t=t||0,e=e||0,this.x=t,this.y=e},n.Point.prototype={copyFrom:function(t){return this.setTo(t.x,t.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(t,e){return this.x=t||0,this.y=e||(0!==e?this.x:0),this},set:function(t,e){return this.x=t||0,this.y=e||(0!==e?this.x:0),this},add:function(t,e){return this.x+=t,this.y+=e,this},subtract:function(t,e){return this.x-=t,this.y-=e,this},multiply:function(t,e){return this.x*=t,this.y*=e,this},divide:function(t,e){return this.x/=t,this.y/=e,this},clampX:function(t,e){return this.x=n.Math.clamp(this.x,t,e),this},clampY:function(t,e){return this.y=n.Math.clamp(this.y,t,e),this},clamp:function(t,e){return this.x=n.Math.clamp(this.x,t,e),this.y=n.Math.clamp(this.y,t,e),this
  },clone:function(t){return"undefined"==typeof t?t=new n.Point(this.x,this.y):t.setTo(this.x,this.y),t},copyTo:function(t){return t.x=this.x,t.y=this.y,t},distance:function(t,e){return n.Point.distance(this,t,e)},equals:function(t){return t.x===this.x&&t.y===this.y},angle:function(t){return Math.atan2(this.x*t.y-this.y*t.x,this.x*t.x+this.y*t.y)},angleSq:function(t){return this.subtract(t).angle(t.subtract(this))},rotate:function(t,e,i,s,r){return n.Point.rotate(this,t,e,i,s,r)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(t){return this.normalize().multiply(t,t)},normalize:function(){if(!this.isZero()){var t=this.getMagnitude();this.x/=t,this.y/=t}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},n.Point.prototype.constructor=n.Point,n.Point.add=function(t,e,i){return"undefined"==typeof i&&(i=new n.Point),i.x=t.x+e.x,i.y=t.y+e.y,i},n.Point.subtract=function(t,e,i){return"undefined"==typeof i&&(i=new n.Point),i.x=t.x-e.x,i.y=t.y-e.y,i},n.Point.multiply=function(t,e,i){return"undefined"==typeof i&&(i=new n.Point),i.x=t.x*e.x,i.y=t.y*e.y,i},n.Point.divide=function(t,e,i){return"undefined"==typeof i&&(i=new n.Point),i.x=t.x/e.x,i.y=t.y/e.y,i},n.Point.equals=function(t,e){return t.x===e.x&&t.y===e.y},n.Point.angle=function(t,e){return Math.atan2(t.x*e.y-t.y*e.x,t.x*e.x+t.y*e.y)},n.Point.angleSq=function(t,e){return t.subtract(e).angle(e.subtract(t))},n.Point.negative=function(t,e){return"undefined"==typeof e&&(e=new n.Point),e.setTo(-t.x,-t.y)},n.Point.multiplyAdd=function(t,e,i,s){return"undefined"==typeof s&&(s=new n.Point),s.setTo(t.x+e.x*i,t.y+e.y*i)},n.Point.interpolate=function(t,e,i,s){return"undefined"==typeof s&&(s=new n.Point),s.setTo(t.x+(e.x-t.x)*i,t.y+(e.y-t.y)*i)},n.Point.perp=function(t,e){return"undefined"==typeof e&&(e=new n.Point),e.setTo(-t.y,t.x)},n.Point.rperp=function(t,e){return"undefined"==typeof e&&(e=new n.Point),e.setTo(t.y,-t.x)},n.Point.distance=function(t,e,i){return"undefined"==typeof i&&(i=!1),i?n.Math.distanceRounded(t.x,t.y,e.x,e.y):n.Math.distance(t.x,t.y,e.x,e.y)},n.Point.project=function(t,e,i){"undefined"==typeof i&&(i=new n.Point);var s=t.dot(e)/e.getMagnitudeSq();return 0!==s&&i.setTo(s*e.x,s*e.y),i},n.Point.projectUnit=function(t,e,i){"undefined"==typeof i&&(i=new n.Point);var s=t.dot(e);return 0!==s&&i.setTo(s*e.x,s*e.y),i},n.Point.normalRightHand=function(t,e){return"undefined"==typeof e&&(e=new n.Point),e.setTo(-1*t.y,t.x)},n.Point.normalize=function(t,e){"undefined"==typeof e&&(e=new n.Point);var i=t.getMagnitude();return 0!==i&&e.setTo(t.x/i,t.y/i),e},n.Point.rotate=function(t,e,i,s,r,o){return r=r||!1,o=o||null,r&&(s=n.Math.degToRad(s)),null===o&&(o=Math.sqrt((e-t.x)*(e-t.x)+(i-t.y)*(i-t.y))),t.setTo(e+o*Math.cos(s),i+o*Math.sin(s))},n.Point.centroid=function(t,e){if("undefined"==typeof e&&(e=new n.Point),"[object Array]"!==Object.prototype.toString.call(t))throw new Error("Phaser.Point. Parameter 'points' must be an array");var i=t.length;if(1>i)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===i)return e.copyFrom(t[0]),e;for(var s=0;i>s;s++)n.Point.add(e,t[s],e);return e.divide(i,i),e},s.Point=n.Point,n.Rectangle=function(t,e,i,s){t=t||0,e=e||0,i=i||0,s=s||0,this.x=t,this.y=e,this.width=i,this.height=s},n.Rectangle.prototype={offset:function(t,e){return this.x+=t,this.y+=e,this},offsetPoint:function(t){return this.offset(t.x,t.y)},setTo:function(t,e,i,s){return this.x=t,this.y=e,this.width=i,this.height=s,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(t){return this.setTo(t.x,t.y,t.width,t.height)},copyTo:function(t){return t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t},inflate:function(t,e){return n.Rectangle.inflate(this,t,e)},size:function(t){return n.Rectangle.size(this,t)},clone:function(t){return n.Rectangle.clone(this,t)},contains:function(t,e){return n.Rectangle.contains(this,t,e)},containsRect:function(t){return n.Rectangle.containsRect(this,t)},equals:function(t){return n.Rectangle.equals(this,t)},intersection:function(t,e){return n.Rectangle.intersection(this,t,e)},intersects:function(t,e){return n.Rectangle.intersects(this,t,e)},intersectsRaw:function(t,e,i,s,r){return n.Rectangle.intersectsRaw(this,t,e,i,s,r)},union:function(t,e){return n.Rectangle.union(this,t,e)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(n.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(n.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(n.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(t){this.height=t<=this.y?0:this.y-t}}),Object.defineProperty(n.Rectangle.prototype,"bottomRight",{get:function(){return new n.Point(this.right,this.bottom)},set:function(t){this.right=t.x,this.bottom=t.y}}),Object.defineProperty(n.Rectangle.prototype,"left",{get:function(){return this.x},set:function(t){this.width=t>=this.right?0:this.right-t,this.x=t}}),Object.defineProperty(n.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(t){this.width=t<=this.x?0:this.x+t}}),Object.defineProperty(n.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(n.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(n.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(t){this.x=t-this.halfWidth}}),Object.defineProperty(n.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(t){this.y=t-this.halfHeight}}),Object.defineProperty(n.Rectangle.prototype,"top",{get:function(){return this.y},set:function(t){t>=this.bottom?(this.height=0,this.y=t):this.height=this.bottom-t}}),Object.defineProperty(n.Rectangle.prototype,"topLeft",{get:function(){return new n.Point(this.x,this.y)},set:function(t){this.x=t.x,this.y=t.y}}),Object.defineProperty(n.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(t){t===!0&&this.setTo(0,0,0,0)}}),n.Rectangle.prototype.constructor=n.Rectangle,n.Rectangle.inflate=function(t,e,i){return t.x-=e,t.width+=2*e,t.y-=i,t.height+=2*i,t},n.Rectangle.inflatePoint=function(t,e){return n.Rectangle.inflate(t,e.x,e.y)},n.Rectangle.size=function(t,e){return"undefined"==typeof e?e=new n.Point(t.width,t.height):e.setTo(t.width,t.height),e},n.Rectangle.clone=function(t,e){return"undefined"==typeof e?e=new n.Rectangle(t.x,t.y,t.width,t.height):e.setTo(t.x,t.y,t.width,t.height),e},n.Rectangle.contains=function(t,e,i){return t.width<=0||t.height<=0?!1:e>=t.x&&e<=t.right&&i>=t.y&&i<=t.bottom},n.Rectangle.containsRaw=function(t,e,i,s,n,r){return n>=t&&t+i>=n&&r>=e&&e+s>=r},n.Rectangle.containsPoint=function(t,e){return n.Rectangle.contains(t,e.x,e.y)},n.Rectangle.containsRect=function(t,e){return t.volume>e.volume?!1:t.x>=e.x&&t.y>=e.y&&t.right<=e.right&&t.bottom<=e.bottom},n.Rectangle.equals=function(t,e){return t.x==e.x&&t.y==e.y&&t.width==e.width&&t.height==e.height},n.Rectangle.intersection=function(t,e,i){return"undefined"==typeof i&&(i=new n.Rectangle),n.Rectangle.intersects(t,e)&&(i.x=Math.max(t.x,e.x),i.y=Math.max(t.y,e.y),i.width=Math.min(t.right,e.right)-i.x,i.height=Math.min(t.bottom,e.bottom)-i.y),i},n.Rectangle.intersects=function(t,e){return t.width<=0||t.height<=0||e.width<=0||e.height<=0?!1:!(t.right<e.x||t.bottom<e.y||t.x>e.right||t.y>e.bottom)},n.Rectangle.intersectsRaw=function(t,e,i,s,n,r){return"undefined"==typeof r&&(r=0),!(e>t.right+r||i<t.left-r||s>t.bottom+r||n<t.top-r)},n.Rectangle.union=function(t,e,i){return"undefined"==typeof i&&(i=new n.Rectangle),i.setTo(Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.right,e.right)-Math.min(t.left,e.left),Math.max(t.bottom,e.bottom)-Math.min(t.top,e.top))},s.Rectangle=n.Rectangle,s.EmptyRectangle=new n.Rectangle(0,0,0,0),n.Line=function(t,e,i,s){t=t||0,e=e||0,i=i||0,s=s||0,this.start=new n.Point(t,e),this.end=new n.Point(i,s)},n.Line.prototype={setTo:function(t,e,i,s){return this.start.setTo(t,e),this.end.setTo(i,s),this},fromSprite:function(t,e,i){return"undefined"==typeof i&&(i=!1),i?this.setTo(t.center.x,t.center.y,e.center.x,e.center.y):this.setTo(t.x,t.y,e.x,e.y)},intersects:function(t,e,i){return n.Line.intersectsPoints(this.start,this.end,t.start,t.end,e,i)},pointOnLine:function(t,e){return(t-this.start.x)*(this.end.y-this.end.y)===(this.end.x-this.start.x)*(e-this.end.y)},pointOnSegment:function(t,e){var i=Math.min(this.start.x,this.end.x),s=Math.max(this.start.x,this.end.x),n=Math.min(this.start.y,this.end.y),r=Math.max(this.start.y,this.end.y);return this.pointOnLine(t,e)&&t>=i&&s>=t&&e>=n&&r>=e},coordinatesOnLine:function(t,e){"undefined"==typeof t&&(t=1),"undefined"==typeof e&&(e=[]);var i=Math.round(this.start.x),s=Math.round(this.start.y),n=Math.round(this.end.x),r=Math.round(this.end.y),o=Math.abs(n-i),a=Math.abs(r-s),h=n>i?1:-1,l=r>s?1:-1,u=o-a;e.push([i,s]);for(var c=1;i!=n||s!=r;){var d=u<<1;d>-a&&(u-=a,i+=h),o>d&&(u+=o,s+=l),c%t===0&&e.push([i,s]),c++}return e}},Object.defineProperty(n.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(n.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(n.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(n.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(n.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(n.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(n.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(n.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(n.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(n.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(n.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(n.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),n.Line.intersectsPoints=function(t,e,i,s,r,o){"undefined"==typeof r&&(r=!0),"undefined"==typeof o&&(o=new n.Point);var a=e.y-t.y,h=s.y-i.y,l=t.x-e.x,u=i.x-s.x,c=e.x*t.y-t.x*e.y,d=s.x*i.y-i.x*s.y,p=a*u-h*l;if(0===p)return null;if(o.x=(l*d-u*c)/p,o.y=(h*c-a*d)/p,r){if(Math.pow(o.x-e.x+(o.y-e.y),2)>Math.pow(t.x-e.x+(t.y-e.y),2))return null;if(Math.pow(o.x-t.x+(o.y-t.y),2)>Math.pow(t.x-e.x+(t.y-e.y),2))return null;if(Math.pow(o.x-s.x+(o.y-s.y),2)>Math.pow(i.x-s.x+(i.y-s.y),2))return null;if(Math.pow(o.x-i.x+(o.y-i.y),2)>Math.pow(i.x-s.x+(i.y-s.y),2))return null}return o},n.Line.intersects=function(t,e,i,s){return n.Line.intersectsPoints(t.start,t.end,e.start,e.end,i,s)},n.Ellipse=function(t,e,i,s){this.type=n.ELLIPSE,t=t||0,e=e||0,i=i||0,s=s||0,this.x=t,this.y=e,this.width=i,this.height=s},n.Ellipse.prototype={setTo:function(t,e,i,s){return this.x=t,this.y=e,this.width=i,this.height=s,this},copyFrom:function(t){return this.setTo(t.x,t.y,t.width,t.height)},copyTo:function(t){return t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t},clone:function(t){return"undefined"==typeof t?t=new n.Ellipse(this.x,this.y,this.width,this.height):t.setTo(this.x,this.y,this.width,this.height),t},contains:function(t,e){return n.Ellipse.contains(this,t,e)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},n.Ellipse.prototype.constructor=n.Ellipse,Object.defineProperty(n.Ellipse.prototype,"left",{get:function(){return this.x},set:function(t){this.x=t}}),Object.defineProperty(n.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(t){this.width=t<this.x?0:this.x+t}}),Object.defineProperty(n.Ellipse.prototype,"top",{get:function(){return this.y},set:function(t){this.y=t}}),Object.defineProperty(n.Ellipse.prototype,"bottom",{get:function(){return this.y+this.height},set:function(t){this.height=t<this.y?0:this.y+t}}),Object.defineProperty(n.Ellipse.prototype,"empty",{get:function(){return 0===this.width||0===this.height},set:function(t){t===!0&&this.setTo(0,0,0,0)}}),n.Ellipse.contains=function(t,e,i){if(t.width<=0||t.height<=0)return!1;var s=(e-t.x)/t.width-.5,n=(i-t.y)/t.height-.5;return s*=s,n*=n,.25>s+n},n.Ellipse.prototype.getBounds=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},s.Ellipse=n.Ellipse,n.Polygon=function(t){if(this.type=n.POLYGON,t instanceof Array||(t=Array.prototype.slice.call(arguments)),"number"==typeof t[0]){for(var e=[],i=0,s=t.length;s>i;i+=2)e.push(new n.Point(t[i],t[i+1]));t=e}this.points=t},n.Polygon.prototype={clone:function(){for(var t=[],e=0;e<this.points.length;e++)t.push(this.points[e].clone());return new n.Polygon(t)},contains:function(t,e){for(var i=!1,s=0,n=this.points.length-1;s<this.points.length;n=s++){var r=this.points[s].x,o=this.points[s].y,a=this.points[n].x,h=this.points[n].y,l=o>e!=h>e&&(a-r)*(e-o)/(h-o)+r>t;l&&(i=!i)}return i}},n.Polygon.prototype.constructor=n.Polygon,s.Polygon=n.Polygon,n.Camera=function(t,e,i,s,r,o){this.game=t,this.world=t.world,this.id=0,this.view=new n.Rectangle(i,s,r,o),this.screenView=new n.Rectangle(i,s,r,o),this.bounds=new n.Rectangle(i,s,r,o),this.deadzone=null,this.visible=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this.displayObject=null,this.scale=null},n.Camera.FOLLOW_LOCKON=0,n.Camera.FOLLOW_PLATFORMER=1,n.Camera.FOLLOW_TOPDOWN=2,n.Camera.FOLLOW_TOPDOWN_TIGHT=3,n.Camera.prototype={follow:function(t,e){"undefined"==typeof e&&(e=n.Camera.FOLLOW_LOCKON),this.target=t;var i;switch(e){case n.Camera.FOLLOW_PLATFORMER:var s=this.width/8,r=this.height/3;this.deadzone=new n.Rectangle((this.width-s)/2,(this.height-r)/2-.25*r,s,r);break;case n.Camera.FOLLOW_TOPDOWN:i=Math.max(this.width,this.height)/4,this.deadzone=new n.Rectangle((this.width-i)/2,(this.height-i)/2,i,i);break;case n.Camera.FOLLOW_TOPDOWN_TIGHT:i=Math.max(this.width,this.height)/8,this.deadzone=new n.Rectangle((this.width-i)/2,(this.height-i)/2,i,i);break;case n.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(t){this.setPosition(Math.round(t.x-this.view.halfWidth),Math.round(t.y-this.view.halfHeight))},focusOnXY:function(t,e){this.setPosition(Math.round(t-this.view.halfWidth),Math.round(e-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this.deadzone?(this._edge=this.target.x-this.deadzone.x,this.view.x>this._edge&&(this.view.x=this._edge),this._edge=this.target.x+this.target.width-this.deadzone.x-this.deadzone.width,this.view.x<this._edge&&(this.view.x=this._edge),this._edge=this.target.y-this.deadzone.y,this.view.y>this._edge&&(this.view.y=this._edge),this._edge=this.target.y+this.target.height-this.deadzone.y-this.deadzone.height,this.view.y<this._edge&&(this.view.y=this._edge)):this.focusOnXY(this.target.x,this.target.y)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height),this.view.floor()},setPosition:function(t,e){this.view.x=t,this.view.y=e,this.bounds&&this.checkBounds()},setSize:function(t,e){this.view.width=t,this.view.height=e},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},n.Camera.prototype.constructor=n.Camera,Object.defineProperty(n.Camera.prototype,"x",{get:function(){return this.view.x},set:function(t){this.view.x=t,this.bounds&&this.checkBounds()}}),Object.defineProperty(n.Camera.prototype,"y",{get:function(){return this.view.y},set:function(t){this.view.y=t,this.bounds&&this.checkBounds()}}),Object.defineProperty(n.Camera.prototype,"width",{get:function(){return this.view.width},set:function(t){this.view.width=t}}),Object.defineProperty(n.Camera.prototype,"height",{get:function(){return this.view.height},set:function(t){this.view.height=t}}),n.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},n.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},n.State.prototype.constructor=n.State,n.StateManager=function(t,e){this.game=t,this.states={},this._pendingState=null,"undefined"!=typeof e&&null!==e&&(this._pendingState=e),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},n.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&("string"==typeof this._pendingState?this.start(this._pendingState,!1,!1):this.add("default",this._pendingState,!0))},add:function(t,e,i){"undefined"==typeof i&&(i=!1);var s;return e instanceof n.State?s=e:"object"==typeof e?(s=e,s.game=this.game):"function"==typeof e&&(s=new e(this.game)),this.states[t]=s,i&&(this.game.isBooted?this.start(t):this._pendingState=t),s},remove:function(t){this.current===t&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[t]},start:function(t,e,i){"undefined"==typeof e&&(e=!0),"undefined"==typeof i&&(i=!1),this.checkState(t)&&(this._pendingState=t,this._clearWorld=e,this._clearCache=i,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(t,e){"undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=!1),this._pendingState=this.current,this._clearWorld=t,this._clearCache=e,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&(this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy())),this.setCurrentState(this._pendingState),this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()?this.loadComplete():this.game.load.start()):this.loadComplete(),this.current===this._pendingState&&(this._pendingState=null))},checkState:function(t){if(this.states[t]){var e=!1;return this.states[t].preload&&(e=!0),this.states[t].create&&(e=!0),this.states[t].update&&(e=!0),this.states[t].render&&(e=!0),e===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+t),!1},link:function(t){this.states[t].game=this.game,this.states[t].add=this.game.add,this.states[t].make=this.game.make,this.states[t].camera=this.game.camera,this.states[t].cache=this.game.cache,this.states[t].input=this.game.input,this.states[t].load=this.game.load,this.states[t].math=this.game.math,this.states[t].sound=this.game.sound,this.states[t].scale=this.game.scale,this.states[t].state=this,this.states[t].stage=this.game.stage,this.states[t].time=this.game.time,this.states[t].tweens=this.game.tweens,this.states[t].world=this.game.world,this.states[t].particles=this.game.particles,this.states[t].rnd=this.game.rnd,this.states[t].physics=this.game.physics},setCurrentState:function(t){this.callbackContext=this.states[t],this.link(t),this.onInitCallback=this.states[t].init||this.dummy,this.onPreloadCallback=this.states[t].preload||null,this.onLoadRenderCallback=this.states[t].loadRender||null,this.onLoadUpdateCallback=this.states[t].loadUpdate||null,this.onCreateCallback=this.states[t].create||null,this.onUpdateCallback=this.states[t].update||null,this.onPreRenderCallback=this.states[t].preRender||null,this.onRenderCallback=this.states[t].render||null,this.onPausedCallback=this.states[t].paused||null,this.onResumedCallback=this.states[t].resumed||null,this.onPauseUpdateCallback=this.states[t].pauseUpdate||null,this.onShutDownCallback=this.states[t].shutdown||this.dummy,this.current=t,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),this._args=[]},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===n.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===n.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},n.StateManager.prototype.constructor=n.StateManager,n.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},n.LinkedList.prototype={add:function(t){return 0===this.total&&null===this.first&&null===this.last?(this.first=t,this.last=t,this.next=t,t.prev=this,this.total++,t):(this.last.next=t,t.prev=this.last,this.last=t,this.total++,t)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(t){return 1===this.total?(this.reset(),void(t.next=t.prev=null)):(t===this.first?this.first=this.first.next:t===this.last&&(this.last=this.last.prev),t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.next=t.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(t){if(this.first&&this.last){var e=this.first;do e&&e[t]&&e[t].call(e),e=e.next;while(e!=this.last.next)}}},n.LinkedList.prototype.constructor=n.LinkedList,n.ArrayList=function(){this.total=0,this.position=0,this.list=[]},n.ArrayList.prototype={add:function(t){return this.exists(t)||(this.list.push(t),this.total++),t},getIndex:function(t){return this.list.indexOf(t)},exists:function(t){return this.list.indexOf(t)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(t){var e=this.list.indexOf(t);return e>-1?(this.list.splice(e,1),this.total--,t):void 0},callAll:function(t){for(var e=Array.prototype.splice.call(arguments,1),i=this.list.length;i--;)this.list[i]&&this.list[i][t]&&this.list[i][t].apply(this.list[i],e)}},Object.defineProperty(n.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(n.ArrayList.prototype,"next",{get:function(){return this.position<this.total?(this.position++,this.list[this.position]):null}}),n.ArrayList.prototype.constructor=n.ArrayList,n.Signal=function(){this._bindings=[],this._prevParams=null;var t=this;this.dispatch=function(){n.Signal.prototype.dispatch.apply(t,arguments)}},n.Signal.prototype={memorize:!1,_shouldPropagate:!0,active:!0,validateListener:function(t,e){if("function"!=typeof t)throw new Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",e))},_registerListener:function(t,e,i,s){var r,o=this._indexOfListener(t,i);if(-1!==o){if(r=this._bindings[o],r.isOnce()!==e)throw new Error("You cannot add"+(e?"":"Once")+"() then add"+(e?"Once":"")+"() the same listener without removing the relationship first.")}else r=new n.SignalBinding(this,t,e,i,s),this._addBinding(r);return this.memorize&&this._prevParams&&r.execute(this._prevParams),r},_addBinding:function(t){var e=this._bindings.length;do--e;while(this._bindings[e]&&t._priority<=this._bindings[e]._priority);this._bindings.splice(e+1,0,t)},_indexOfListener:function(t,e){for(var i,s=this._bindings.length;s--;)if(i=this._bindings[s],i._listener===t&&i.context===e)return s;return-1},has:function(t,e){return-1!==this._indexOfListener(t,e)},add:function(t,e,i){return this.validateListener(t,"add"),this._registerListener(t,!1,e,i)},addOnce:function(t,e,i){return this.validateListener(t,"addOnce"),this._registerListener(t,!0,e,i)},remove:function(t,e){this.validateListener(t,"remove");var i=this._indexOfListener(t,e);return-1!==i&&(this._bindings[i]._destroy(),this._bindings.splice(i,1)),t},removeAll:function(){for(var t=this._bindings.length;t--;)this._bindings[t]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active){var t,e=Array.prototype.slice.call(arguments),i=this._bindings.length;if(this.memorize&&(this._prevParams=e),i){t=this._bindings.slice(),this._shouldPropagate=!0;do i--;while(t[i]&&this._shouldPropagate&&t[i].execute(e)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},n.Signal.prototype.constructor=n.Signal,n.SignalBinding=function(t,e,i,s,n){this._listener=e,this._isOnce=i,this.context=s,this._signal=t,this._priority=n||0},n.SignalBinding.prototype={active:!0,params:null,execute:function(t){var e,i;return this.active&&this._listener&&(i=this.params?this.params.concat(t):t,e=this._listener.apply(this.context,i),this._isOnce&&this.detach()),e},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},n.SignalBinding.prototype.constructor=n.SignalBinding,n.Filter=function(t,e,i){this.game=t,this.type=n.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms={time:{type:"1f",value:0},resolution:{type:"2f",value:{x:256,y:256}},mouse:{type:"2f",value:{x:0,y:0}}},this.fragmentSrc=i||[]},n.Filter.prototype={init:function(){},setResolution:function(t,e){this.uniforms.resolution.value.x=t,this.uniforms.resolution.value.y=e},update:function(t){"undefined"!=typeof t&&(t.x>0&&(this.uniforms.mouse.x=t.x.toFixed(2)),t.y>0&&(this.uniforms.mouse.y=t.y.toFixed(2))),this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},n.Filter.prototype.constructor=n.Filter,Object.defineProperty(n.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(t){this.uniforms.resolution.value.x=t}}),Object.defineProperty(n.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(t){this.uniforms.resolution.value.y=t}}),n.Plugin=function(t,e){"undefined"==typeof e&&(e=null),this.game=t,this.parent=e,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},n.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},n.Plugin.prototype.constructor=n.Plugin,n.PluginManager=function(t){this.game=t,this.plugins=[],this._len=0,this._i=0},n.PluginManager.prototype={add:function(t){var e=!1;return"function"==typeof t?t=new t(this.game,this._parent):(t.game=this.game,t.parent=this),"function"==typeof t.preUpdate&&(t.hasPreUpdate=!0,e=!0),"function"==typeof t.update&&(t.hasUpdate=!0,e=!0),"function"==typeof t.postUpdate&&(t.hasPostUpdate=!0,e=!0),"function"==typeof t.render&&(t.hasRender=!0,e=!0),"function"==typeof t.postRender&&(t.hasPostRender=!0,e=!0),e?((t.hasPreUpdate||t.hasUpdate||t.hasPostUpdate)&&(t.active=!0),(t.hasRender||t.hasPostRender)&&(t.visible=!0),this._len=this.plugins.push(t),"function"==typeof t.init&&t.init(),t):null},remove:function(t){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===t)return t.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()
  },update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},n.PluginManager.prototype.constructor=n.PluginManager,n.Stage=function(t,e,i){this.game=t,this.offset=new n.Point,s.Stage.call(this,0,!1),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.checkOffsetInterval=2500,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._nextOffsetCheck=0,this._backgroundColor=0,t.config?this.parseConfig(t.config):(this.game.canvas=n.Canvas.create(e,i),this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%")},n.Stage.prototype=Object.create(s.Stage.prototype),n.Stage.prototype.constructor=n.Stage,n.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var t=this.children.length,e=0;t>e;e++)this.children[e].preUpdate()},n.Stage.prototype.update=function(){for(var t=this.children.length;t--;)this.children[t].update()},n.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var t=this.children.length;t--;)this.children[t]!==this.game.world.camera.target&&this.children[t].postUpdate()}else{this.game.world.camera.update();for(var t=this.children.length;t--;)this.children[t].postUpdate()}this.checkOffsetInterval!==!1&&this.game.time.now>this._nextOffsetCheck&&(n.Canvas.getOffset(this.game.canvas,this.offset),this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},n.Stage.prototype.parseConfig=function(t){this.game.canvas=t.canvasID?n.Canvas.create(this.game.width,this.game.height,t.canvasID):n.Canvas.create(this.game.width,this.game.height),t.canvasStyle?this.game.canvas.stlye=t.canvasStyle:this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",t.checkOffsetInterval&&(this.checkOffsetInterval=t.checkOffsetInterval),t.disableVisibilityChange&&(this.disableVisibilityChange=t.disableVisibilityChange),t.fullScreenScaleMode&&(this.fullScreenScaleMode=t.fullScreenScaleMode),t.scaleMode&&(this.scaleMode=t.scaleMode),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)},n.Stage.prototype.boot=function(){n.Canvas.getOffset(this.game.canvas,this.offset),this.bounds=new n.Rectangle(this.offset.x,this.offset.y,this.game.width,this.game.height);var t=this;this._onChange=function(e){return t.visibilityChange(e)},n.Canvas.setUserSelect(this.game.canvas,"none"),n.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},n.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange},n.Stage.prototype.visibilityChange=function(t){return this.disableVisibilityChange?void 0:"pagehide"===t.type||"blur"===t.type||"pageshow"===t.type||"focus"===t.type?void("pagehide"===t.type||"blur"===t.type?this.game.focusLoss(t):("pageshow"===t.type||"focus"===t.type)&&this.game.focusGain(t)):void(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(t):this.game.gameResumed(t))},n.Stage.prototype.setBackgroundColor=function(t){this._backgroundColor=t||0,this.backgroundColorSplit=s.hex2rgb(this.backgroundColor);var e=this._backgroundColor.toString(16);e="000000".substr(0,6-e.length)+e,this.backgroundColorString="#"+e},Object.defineProperty(n.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(t){this._backgroundColor=t,this.game.transparent===!1&&("string"==typeof t&&(t=n.Color.hexToRGB(t)),this.setBackgroundColor(t))}}),Object.defineProperty(n.Stage.prototype,"smoothed",{get:function(){return!s.scaleModes.LINEAR},set:function(t){s.scaleModes.LINEAR=t?0:1}}),n.Group=function(t,e,i,r,o,a){"undefined"==typeof r&&(r=!1),"undefined"==typeof o&&(o=!1),"undefined"==typeof a&&(a=n.Physics.ARCADE),this.game=t,"undefined"==typeof e&&(e=t.world),this.name=i||"group",s.DisplayObjectContainer.call(this),r?this.game.stage.addChild(this):e&&e.addChild(this),this.z=0,this.type=n.GROUP,this.alive=!0,this.exists=!0,this.classType=n.Sprite,this.scale=new n.Point(1,1),this.cursor=null,this.cameraOffset=new n.Point,this.enableBody=o,this.enableBodyDebug=!1,this.physicsBodyType=a,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},n.Group.prototype=Object.create(s.DisplayObjectContainer.prototype),n.Group.prototype.constructor=n.Group,n.Group.RETURN_NONE=0,n.Group.RETURN_TOTAL=1,n.Group.RETURN_CHILD=2,n.Group.SORT_ASCENDING=-1,n.Group.SORT_DESCENDING=1,n.Group.prototype.add=function(t){return t.parent!==this&&(this.enableBody&&this.game.physics.enable(t,this.physicsBodyType),this.addChild(t),t.z=this.children.length,t.events&&t.events.onAddedToGroup.dispatch(t,this),null===this.cursor&&(this.cursor=t)),t},n.Group.prototype.addAt=function(t,e){return t.parent!==this&&(this.enableBody&&this.game.physics.enable(t,this.physicsBodyType),this.addChildAt(t,e),this.updateZ(),t.events&&t.events.onAddedToGroup.dispatch(t,this),null===this.cursor&&(this.cursor=t)),t},n.Group.prototype.getAt=function(t){return 0>t||t>=this.children.length?-1:this.getChildAt(t)},n.Group.prototype.create=function(t,e,i,s,n){"undefined"==typeof n&&(n=!0);var r=new this.classType(this.game,t,e,i,s);return this.enableBody&&this.game.physics.enable(r,this.physicsBodyType),r.exists=n,r.visible=n,r.alive=n,this.addChild(r),r.z=this.children.length,r.events&&r.events.onAddedToGroup.dispatch(r,this),null===this.cursor&&(this.cursor=r),r},n.Group.prototype.createMultiple=function(t,e,i,s){"undefined"==typeof s&&(s=!1);for(var n=0;t>n;n++)this.create(0,0,e,i,s)},n.Group.prototype.updateZ=function(){for(var t=this.children.length;t--;)this.children[t].z=t},n.Group.prototype.resetCursor=function(t){return"undefined"==typeof t&&(t=0),t>this.children.length-1&&(t=0),this.cursor?(this._cache[8]=t,this.cursor=this.children[this._cache[8]],this.cursor):void 0},n.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},n.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},n.Group.prototype.swap=function(t,e){var i=this.swapChildren(t,e);return i&&this.updateZ(),i},n.Group.prototype.bringToTop=function(t){return t.parent===this&&this.getIndex(t)<this.children.length&&(this.remove(t),this.add(t)),t},n.Group.prototype.sendToBack=function(t){return t.parent===this&&this.getIndex(t)>0&&(this.remove(t),this.addAt(t,0)),t},n.Group.prototype.moveUp=function(t){if(t.parent===this&&this.getIndex(t)<this.children.length-1){var e=this.getIndex(t),i=this.getAt(e+1);i&&this.swap(t,i)}return t},n.Group.prototype.moveDown=function(t){if(t.parent===this&&this.getIndex(t)>0){var e=this.getIndex(t),i=this.getAt(e-1);i&&this.swap(t,i)}return t},n.Group.prototype.xy=function(t,e,i){return 0>t||t>this.children.length?-1:(this.getChildAt(t).x=e,void(this.getChildAt(t).y=i))},n.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},n.Group.prototype.getIndex=function(t){return this.children.indexOf(t)},n.Group.prototype.replace=function(t,e){var i=this.getIndex(t);if(-1!==i){void 0!==e.parent&&(e.events.onRemovedFromGroup.dispatch(e,this),e.parent.removeChild(e),e.parent instanceof n.Group&&e.parent.updateZ());var s=t;return this.remove(s),this.addAt(e,i),s}},n.Group.prototype.setProperty=function(t,e,i,s){s=s||0;var n=e.length;1===n&&t.hasOwnProperty(e[0])?0===s?t[e[0]]=i:1==s?t[e[0]]+=i:2==s?t[e[0]]-=i:3==s?t[e[0]]*=i:4==s&&(t[e[0]]/=i):2===n&&t.hasOwnProperty(e[0])&&t[e[0]].hasOwnProperty(e[1])?0===s?t[e[0]][e[1]]=i:1==s?t[e[0]][e[1]]+=i:2==s?t[e[0]][e[1]]-=i:3==s?t[e[0]][e[1]]*=i:4==s&&(t[e[0]][e[1]]/=i):3===n&&t.hasOwnProperty(e[0])&&t[e[0]].hasOwnProperty(e[1])&&t[e[0]][e[1]].hasOwnProperty(e[2])?0===s?t[e[0]][e[1]][e[2]]=i:1==s?t[e[0]][e[1]][e[2]]+=i:2==s?t[e[0]][e[1]][e[2]]-=i:3==s?t[e[0]][e[1]][e[2]]*=i:4==s&&(t[e[0]][e[1]][e[2]]/=i):4===n&&t.hasOwnProperty(e[0])&&t[e[0]].hasOwnProperty(e[1])&&t[e[0]][e[1]].hasOwnProperty(e[2])&&t[e[0]][e[1]][e[2]].hasOwnProperty(e[3])&&(0===s?t[e[0]][e[1]][e[2]][e[3]]=i:1==s?t[e[0]][e[1]][e[2]][e[3]]+=i:2==s?t[e[0]][e[1]][e[2]][e[3]]-=i:3==s?t[e[0]][e[1]][e[2]][e[3]]*=i:4==s&&(t[e[0]][e[1]][e[2]][e[3]]/=i))},n.Group.prototype.set=function(t,e,i,s,n,r){e=e.split("."),"undefined"==typeof s&&(s=!1),"undefined"==typeof n&&(n=!1),(s===!1||s&&t.alive)&&(n===!1||n&&t.visible)&&this.setProperty(t,e,i,r)},n.Group.prototype.setAll=function(t,e,i,s,n){t=t.split("."),"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=!1),n=n||0;for(var r=0,o=this.children.length;o>r;r++)(!i||i&&this.children[r].alive)&&(!s||s&&this.children[r].visible)&&this.setProperty(this.children[r],t,e,n)},n.Group.prototype.setAllChildren=function(t,e,i,s,r){"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=!1),r=r||0;for(var o=0,a=this.children.length;a>o;o++)(!i||i&&this.children[o].alive)&&(!s||s&&this.children[o].visible)&&(this.children[o]instanceof n.Group?this.children[o].setAllChildren(t,e,i,s,r):this.setProperty(this.children[o],t.split("."),e,r))},n.Group.prototype.addAll=function(t,e,i,s){this.setAll(t,e,i,s,1)},n.Group.prototype.subAll=function(t,e,i,s){this.setAll(t,e,i,s,2)},n.Group.prototype.multiplyAll=function(t,e,i,s){this.setAll(t,e,i,s,3)},n.Group.prototype.divideAll=function(t,e,i,s){this.setAll(t,e,i,s,4)},n.Group.prototype.callAllExists=function(t,e){for(var i=Array.prototype.splice.call(arguments,2),s=0,n=this.children.length;n>s;s++)this.children[s].exists===e&&this.children[s][t]&&this.children[s][t].apply(this.children[s],i)},n.Group.prototype.callbackFromArray=function(t,e,i){if(1==i){if(t[e[0]])return t[e[0]]}else if(2==i){if(t[e[0]][e[1]])return t[e[0]][e[1]]}else if(3==i){if(t[e[0]][e[1]][e[2]])return t[e[0]][e[1]][e[2]]}else if(4==i){if(t[e[0]][e[1]][e[2]][e[3]])return t[e[0]][e[1]][e[2]][e[3]]}else if(t[e])return t[e];return!1},n.Group.prototype.callAll=function(t,e){if("undefined"!=typeof t){t=t.split(".");var i=t.length;if("undefined"==typeof e||null===e||""===e)e=null;else if("string"==typeof e){e=e.split(".");var s=e.length}for(var n=Array.prototype.splice.call(arguments,2),r=null,o=null,a=0,h=this.children.length;h>a;a++)r=this.callbackFromArray(this.children[a],t,i),e&&r?(o=this.callbackFromArray(this.children[a],e,s),r&&r.apply(o,n)):r&&r.apply(this.children[a],n)}},n.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var t=this.children.length;t--;)this.children[t].preUpdate();return!0},n.Group.prototype.update=function(){for(var t=this.children.length;t--;)this.children[t].update()},n.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var t=this.children.length;t--;)this.children[t].postUpdate()},n.Group.prototype.forEach=function(t,e,i){"undefined"==typeof i&&(i=!1);var s=Array.prototype.splice.call(arguments,3);s.unshift(null);for(var n=0,r=this.children.length;r>n;n++)(!i||i&&this.children[n].exists)&&(s[0]=this.children[n],t.apply(e,s))},n.Group.prototype.forEachExists=function(t,e){var i=Array.prototype.splice.call(arguments,2);i.unshift(null),this.iterate("exists",!0,n.Group.RETURN_TOTAL,t,e,i)},n.Group.prototype.forEachAlive=function(t,e){var i=Array.prototype.splice.call(arguments,2);i.unshift(null),this.iterate("alive",!0,n.Group.RETURN_TOTAL,t,e,i)},n.Group.prototype.forEachDead=function(t,e){var i=Array.prototype.splice.call(arguments,2);i.unshift(null),this.iterate("alive",!1,n.Group.RETURN_TOTAL,t,e,i)},n.Group.prototype.sort=function(t,e){this.children.length<2||("undefined"==typeof t&&(t="z"),"undefined"==typeof e&&(e=n.Group.SORT_ASCENDING),this._sortProperty=t,this.children.sort(e===n.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},n.Group.prototype.customSort=function(t,e){this.children.length<2||(this.children.sort(t.bind(e)),this.updateZ())},n.Group.prototype.ascendingSortHandler=function(t,e){return t[this._sortProperty]<e[this._sortProperty]?-1:t[this._sortProperty]>e[this._sortProperty]?1:t.z<e.z?-1:1},n.Group.prototype.descendingSortHandler=function(t,e){return t[this._sortProperty]<e[this._sortProperty]?1:t[this._sortProperty]>e[this._sortProperty]?-1:0},n.Group.prototype.iterate=function(t,e,i,s,r,o){if(i===n.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof s&&(s=!1);for(var a=0,h=0,l=this.children.length;l>h;h++)if(this.children[h][t]===e&&(a++,s&&(o[0]=this.children[h],s.apply(r,o)),i===n.Group.RETURN_CHILD))return this.children[h];return i===n.Group.RETURN_TOTAL?a:i===n.Group.RETURN_CHILD?null:void 0},n.Group.prototype.getFirstExists=function(t){return"boolean"!=typeof t&&(t=!0),this.iterate("exists",t,n.Group.RETURN_CHILD)},n.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,n.Group.RETURN_CHILD)},n.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,n.Group.RETURN_CHILD)},n.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},n.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},n.Group.prototype.countLiving=function(){return this.iterate("alive",!0,n.Group.RETURN_TOTAL)},n.Group.prototype.countDead=function(){return this.iterate("alive",!1,n.Group.RETURN_TOTAL)},n.Group.prototype.getRandom=function(t,e){return 0===this.children.length?null:(t=t||0,e=e||this.children.length,this.game.math.getRandom(this.children,t,e))},n.Group.prototype.remove=function(t,e){if("undefined"==typeof e&&(e=!1),0===this.children.length||-1===this.children.indexOf(t))return!1;t.events&&!t.destroyPhase&&t.events.onRemovedFromGroup.dispatch(t,this);var i=this.removeChild(t);return this.updateZ(),this.cursor===t&&this.next(),e&&i&&i.destroy(!0),!0},n.Group.prototype.removeAll=function(t){if("undefined"==typeof t&&(t=!1),0!==this.children.length){do{this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var e=this.removeChild(this.children[0]);t&&e&&e.destroy(!0)}while(this.children.length>0);this.cursor=null}},n.Group.prototype.removeBetween=function(t,e,i){if("undefined"==typeof e&&(e=this.children.length),"undefined"==typeof i&&(i=!1),0!==this.children.length){if(t>e||0>t||e>this.children.length)return!1;for(var s=e;s>=t;){this.children[s].events&&this.children[s].events.onRemovedFromGroup.dispatch(this.children[s],this);var n=this.removeChild(this.children[s]);i&&n&&n.destroy(!0),this.cursor===this.children[s]&&(this.cursor=null),s--}this.updateZ()}},n.Group.prototype.destroy=function(t,e){null!==this.game&&("undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=!1),this.removeAll(t),this.cursor=null,e||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(n.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,n.Group.RETURN_TOTAL)}}),Object.defineProperty(n.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(n.Group.prototype,"angle",{get:function(){return n.Math.radToDeg(this.rotation)},set:function(t){this.rotation=n.Math.degToRad(t)}}),Object.defineProperty(n.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),n.World=function(t){n.Group.call(this,t,null,"__world",!1),this.bounds=new n.Rectangle(0,0,t.width,t.height),this.camera=null},n.World.prototype=Object.create(n.Group.prototype),n.World.prototype.constructor=n.World,n.World.prototype.boot=function(){this.camera=new n.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},n.World.prototype.setBounds=function(t,e,i,s){i<this.game.width&&(i=this.game.width),s<this.game.height&&(s=this.game.height),this.bounds.setTo(t,e,i,s),this.camera.bounds&&this.camera.bounds.setTo(t,e,i,s),this.game.physics.setBoundsToWorld()},n.World.prototype.shutdown=function(){this.destroy(!0,!0)},n.World.prototype.wrap=function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=!1),i?(t.getBounds(),t._currentBounds.right<this.bounds.x?t.x=this.bounds.right:t._currentBounds.x>this.bounds.right&&(t.x=this.bounds.left),t._currentBounds.bottom<this.bounds.top?t.y=this.bounds.bottom:t._currentBounds.top>this.bounds.bottom&&(t.y=this.bounds.top)):(t.x+e<this.bounds.x?t.x=this.bounds.right+e:t.x-e>this.bounds.right&&(t.x=this.bounds.left-e),t.y+e<this.bounds.top?t.y=this.bounds.bottom+e:t.y-e>this.bounds.bottom&&(t.y=this.bounds.top-e))},Object.defineProperty(n.World.prototype,"width",{get:function(){return this.bounds.width},set:function(t){this.bounds.width=t}}),Object.defineProperty(n.World.prototype,"height",{get:function(){return this.bounds.height},set:function(t){this.bounds.height=t}}),Object.defineProperty(n.World.prototype,"centerX",{get:function(){return this.bounds.halfWidth}}),Object.defineProperty(n.World.prototype,"centerY",{get:function(){return this.bounds.halfHeight}}),Object.defineProperty(n.World.prototype,"randomX",{get:function(){return this.bounds.x<0?this.game.rnd.integerInRange(this.bounds.x,this.bounds.width-Math.abs(this.bounds.x)):this.game.rnd.integerInRange(this.bounds.x,this.bounds.width)}}),Object.defineProperty(n.World.prototype,"randomY",{get:function(){return this.bounds.y<0?this.game.rnd.integerInRange(this.bounds.y,this.bounds.height-Math.abs(this.bounds.y)):this.game.rnd.integerInRange(this.bounds.y,this.bounds.height)}}),n.ScaleManager=function(t,e,i){this.game=t,this.width=e,this.height=i,this.minWidth=null,this.maxWidth=null,this.minHeight=null,this.maxHeight=null,this.forceLandscape=!1,this.forcePortrait=!1,this.incorrectOrientation=!1,this.pageAlignHorizontally=!1,this.pageAlignVertically=!1,this.maxIterations=5,this.orientationSprite=null,this.enterLandscape=new n.Signal,this.enterPortrait=new n.Signal,this.enterIncorrectOrientation=new n.Signal,this.leaveIncorrectOrientation=new n.Signal,this.hasResized=new n.Signal,this.fullScreenTarget=this.game.canvas,this.enterFullScreen=new n.Signal,this.leaveFullScreen=new n.Signal,this.orientation=0,window.orientation?this.orientation=window.orientation:window.outerWidth>window.outerHeight&&(this.orientation=90),this.scaleFactor=new n.Point(1,1),this.scaleFactorInversed=new n.Point(1,1),this.margin=new n.Point(0,0),this.aspectRatio=0,this.sourceAspectRatio=e/i,this.event=null,this.scaleMode=n.ScaleManager.NO_SCALE,this.fullScreenScaleMode=n.ScaleManager.NO_SCALE,this._startHeight=0,this._width=0,this._height=0,this._check=null;var s=this;window.addEventListener("orientationchange",function(t){return s.checkOrientation(t)},!1),window.addEventListener("resize",function(t){return s.checkResize(t)},!1),document.addEventListener("webkitfullscreenchange",function(t){return s.fullScreenChange(t)},!1),document.addEventListener("mozfullscreenchange",function(t){return s.fullScreenChange(t)},!1),document.addEventListener("fullscreenchange",function(t){return s.fullScreenChange(t)},!1)},n.ScaleManager.EXACT_FIT=0,n.ScaleManager.NO_SCALE=1,n.ScaleManager.SHOW_ALL=2,n.ScaleManager.prototype={startFullScreen:function(t){!this.isFullScreen&&this.game.device.fullscreen&&("undefined"!=typeof t&&this.game.renderType===n.CANVAS&&(this.game.stage.smoothed=t),this._width=this.width,this._height=this.height,this.game.device.fullscreenKeyboard?this.fullScreenTarget[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.fullScreenTarget[this.game.device.requestFullscreen]())},stopFullScreen:function(){this.fullScreenTarget[this.game.device.cancelFullscreen]()},fullScreenChange:function(t){this.event=t,this.isFullScreen?(this.fullScreenScaleMode===n.ScaleManager.EXACT_FIT?(this.fullScreenTarget.style.width="100%",this.fullScreenTarget.style.height="100%",this.width=window.outerWidth,this.height=window.outerHeight,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.checkResize()):this.fullScreenScaleMode===n.ScaleManager.SHOW_ALL&&(this.setShowAll(),this.refresh()),this.enterFullScreen.dispatch(this.width,this.height)):(this.fullScreenTarget.style.width=this.game.width+"px",this.fullScreenTarget.style.height=this.game.height+"px",this.width=this._width,this.height=this._height,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.leaveFullScreen.dispatch(this.width,this.height))},forceOrientation:function(t,e,i){"undefined"==typeof e&&(e=!1),this.forceLandscape=t,this.forcePortrait=e,"undefined"!=typeof i&&((null===i||this.game.cache.checkImageKey(i)===!1)&&(i="__default"),this.orientationSprite=new n.Image(this.game,this.game.width/2,this.game.height/2,s.TextureCache[i]),this.orientationSprite.anchor.set(.5),this.checkOrientationState(),this.incorrectOrientation?(this.orientationSprite.visible=!0,this.game.world.visible=!1):(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.game.stage.addChild(this.orientationSprite))},checkOrientationState:function(){this.incorrectOrientation?(this.forceLandscape&&window.innerWidth>window.innerHeight||this.forcePortrait&&window.innerHeight>window.innerWidth)&&(this.incorrectOrientation=!1,this.leaveIncorrectOrientation.dispatch(),this.orientationSprite&&(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.scaleMode!==n.ScaleManager.NO_SCALE&&this.refresh()):(this.forceLandscape&&window.innerWidth<window.innerHeight||this.forcePortrait&&window.innerHeight<window.innerWidth)&&(this.incorrectOrientation=!0,this.enterIncorrectOrientation.dispatch(),this.orientationSprite&&this.orientationSprite.visible===!1&&(this.orientationSprite.visible=!0,this.game.world.visible=!1),this.scaleMode!==n.ScaleManager.NO_SCALE&&this.refresh())},checkOrientation:function(t){this.event=t,this.orientation=window.orientation,this.isLandscape?this.enterLandscape.dispatch(this.orientation,!0,!1):this.enterPortrait.dispatch(this.orientation,!1,!0),this.scaleMode!==n.ScaleManager.NO_SCALE&&this.refresh()},checkResize:function(t){this.event=t,this.orientation=window.outerWidth>window.outerHeight?90:0,this.isLandscape?this.enterLandscape.dispatch(this.orientation,!0,!1):this.enterPortrait.dispatch(this.orientation,!1,!0),this.scaleMode!==n.ScaleManager.NO_SCALE&&this.refresh(),this.checkOrientationState()},refresh:function(){if(this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),null===this._check&&this.maxIterations>0){this._iterations=this.maxIterations;var t=this;this._check=window.setInterval(function(){return t.setScreenSize()},10),this.setScreenSize()}},setScreenSize:function(t){"undefined"==typeof t&&(t=!1),this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),this._iterations--,(t||window.innerHeight>this._startHeight||this._iterations<0)&&(document.documentElement.style.minHeight=window.innerHeight+"px",this.incorrectOrientation?this.setMaximum():this.isFullScreen?this.fullScreenScaleMode===n.ScaleManager.EXACT_FIT?this.setExactFit():this.fullScreenScaleMode===n.ScaleManager.SHOW_ALL&&this.setShowAll():this.scaleMode===n.ScaleManager.EXACT_FIT?this.setExactFit():this.scaleMode===n.ScaleManager.SHOW_ALL&&this.setShowAll(),this.setSize(),clearInterval(this._check),this._check=null)},setSize:function(){this.incorrectOrientation||(this.maxWidth&&this.width>this.maxWidth&&(this.width=this.maxWidth),this.maxHeight&&this.height>this.maxHeight&&(this.height=this.maxHeight),this.minWidth&&this.width<this.minWidth&&(this.width=this.minWidth),this.minHeight&&this.height<this.minHeight&&(this.height=this.minHeight)),this.game.canvas.style.width=this.width+"px",this.game.canvas.style.height=this.height+"px",this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.pageAlignHorizontally&&(this.width<window.innerWidth&&!this.incorrectOrientation?(this.margin.x=Math.round((window.innerWidth-this.width)/2),this.game.canvas.style.marginLeft=this.margin.x+"px"):(this.margin.x=0,this.game.canvas.style.marginLeft="0px")),this.pageAlignVertically&&(this.height<window.innerHeight&&!this.incorrectOrientation?(this.margin.y=Math.round((window.innerHeight-this.height)/2),this.game.canvas.style.marginTop=this.margin.y+"px"):(this.margin.y=0,this.game.canvas.style.marginTop="0px")),n.Canvas.getOffset(this.game.canvas,this.game.stage.offset),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.scaleFactorInversed.x=this.width/this.game.width,this.scaleFactorInversed.y=this.height/this.game.height,this.hasResized.dispatch(this.width,this.height),this.checkOrientationState()},setMaximum:function(){this.width=window.innerWidth,this.height=window.innerHeight},setShowAll:function(){var t=Math.min(window.innerHeight/this.game.height,window.innerWidth/this.game.width);this.width=Math.round(this.game.width*t),this.height=Math.round(this.game.height*t)},setExactFit:function(){var t=window.innerWidth,e=window.innerHeight;this.width=this.maxWidth&&t>this.maxWidth?this.maxWidth:t,this.height=this.maxHeight&&e>this.maxHeight?this.maxHeight:e}},n.ScaleManager.prototype.constructor=n.ScaleManager,Object.defineProperty(n.ScaleManager.prototype,"isFullScreen",{get:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement}}),Object.defineProperty(n.ScaleManager.prototype,"isPortrait",{get:function(){return 0===this.orientation||180===this.orientation}}),Object.defineProperty(n.ScaleManager.prototype,"isLandscape",{get:function(){return 90===this.orientation||-90===this.orientation}}),n.Game=function(t,e,i,s,r,o,a,h){this.id=n.GAMES.push(this)-1,this.config=null,this.physicsConfig=h,this.parent="",this.width=800,this.height=600,this.transparent=!1,this.antialias=!0,this.renderer=null,this.renderType=n.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):("undefined"!=typeof t&&(this.width=t),"undefined"!=typeof e&&(this.height=e),"undefined"!=typeof i&&(this.renderer=i,this.renderType=i),"undefined"!=typeof s&&(this.parent=s),"undefined"!=typeof o&&(this.transparent=o),"undefined"!=typeof a&&(this.antialias=a),this.rnd=new n.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new n.StateManager(this,r));var l=this;return this._onBoot=function(){return l.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)),this},n.Game.prototype={parseConfig:function(t){this.config=t,t.width&&(this.width=n.Utils.parseDimension(t.width,0)),t.height&&(this.height=n.Utils.parseDimension(t.height,1)),t.renderer&&(this.renderer=t.renderer,this.renderType=t.renderer),t.parent&&(this.parent=t.parent),t.transparent&&(this.transparent=t.transparent),t.antialias&&(this.antialias=t.antialias),t.physicsConfig&&(this.physicsConfig=t.physicsConfig);var e=[(Date.now()*Math.random()).toString()];t.seed&&(e=t.seed),this.rnd=new n.RandomDataGenerator(e);var i=null;t.state&&(i=t.state),this.state=new n.StateManager(this,i)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new n.Signal,this.onResume=new n.Signal,this.onBlur=new n.Signal,this.onFocus=new n.Signal,this.isBooted=!0,this.device=new n.Device(this),this.math=n.Math,this.stage=new n.Stage(this,this.width,this.height),this.scale=new n.ScaleManager(this,this.width,this.height),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new n.World(this),this.add=new n.GameObjectFactory(this),this.make=new n.GameObjectCreator(this),this.cache=new n.Cache(this),this.load=new n.Loader(this),this.time=new n.Time(this),this.tweens=new n.TweenManager(this),this.input=new n.Input(this),this.sound=new n.SoundManager(this),this.physics=new n.Physics(this,this.physicsConfig),this.particles=new n.Particles(this),this.plugins=new n.PluginManager(this),this.net=new n.Net(this),this.debug=new n.Utils.Debug(this),this.scratch=new n.BitmapData(this,"__root",1024,1024),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.debug.boot(),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new n.RequestAnimationFrame(this,this.config.forceSetTimeOut):new n.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var t=n.VERSION,e="Canvas",i="HTML Audio",s=1;if(this.renderType===n.WEBGL?(e="WebGL",s++):this.renderType==n.HEADLESS&&(e="Headless"),this.device.webAudio&&(i="WebAudio",s++),this.device.chrome){for(var r=["%c %c %c Phaser v"+t+" - "+e+" - "+i+"  %c %c  http://phaser.io  %c %c ♥%c♥%c♥ ","background: #0cf300","background: #00bc17","color: #ffffff; background: #00711f;","background: #00bc17","background: #0cf300","background: #00bc17"],o=0;3>o;o++)r.push(s>o?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,r)}else window.console&&console.log("Phaser v"+t+" - Renderer: "+e+" - Audio: "+i+" - http://phaser.io")},setUpRenderer:function(){if(this.device.trident&&(this.renderType=n.CANVAS),this.renderType===n.HEADLESS||this.renderType===n.CANVAS||this.renderType===n.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===n.AUTO&&(this.renderType=n.CANVAS),this.renderer=new s.CanvasRenderer(this.width,this.height,this.canvas,this.transparent),this.context=this.renderer.context
  }else this.renderType=n.WEBGL,this.renderer=new s.WebGLRenderer(this.width,this.height,this.canvas,this.transparent,this.antialias),this.context=null;this.renderType!==n.HEADLESS&&(this.stage.smoothed=this.antialias,n.Canvas.addToDOM(this.canvas,this.parent,!0),n.Canvas.setTouchAction(this.canvas))},update:function(t){this.time.update(t),this._paused||this.pendingStep?(this.state.pauseUpdate(),this.debug.preUpdate()):(this.stepping&&(this.pendingStep=!0),this.debug.preUpdate(),this.physics.preUpdate(),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.state.update(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!=n.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender())},enableStep:function(){this.stepping=!0,this.pendingStep=!1,this.stepCount=0},disableStep:function(){this.stepping=!1,this.pendingStep=!1},step:function(){this.pendingStep=!1,this.stepCount++},destroy:function(){this.raf.stop(),this.input.destroy(),this.state.destroy(),this.physics.destroy(),this.state=null,this.cache=null,this.input=null,this.load=null,this.sound=null,this.stage=null,this.time=null,this.world=null,this.isBooted=!1},gamePaused:function(t){this._paused||(this._paused=!0,this.time.gamePaused(),this.sound.setMute(),this.onPause.dispatch(t))},gameResumed:function(t){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(t))},focusLoss:function(t){this.onBlur.dispatch(t),this.gamePaused(t)},focusGain:function(t){this.onFocus.dispatch(t),this.gameResumed(t)}},n.Game.prototype.constructor=n.Game,Object.defineProperty(n.Game.prototype,"paused",{get:function(){return this._paused},set:function(t){t===!0?this._paused===!1&&(this._paused=!0,this._codePaused=!0,this.sound.setMute(),this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.unsetMute(),this.time.gameResumed(),this.onResume.dispatch(this))}}),n.Input=function(t){this.game=t,this.hitCanvas=null,this.hitContext=null,this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this.disabled=!1,this.multiInputOverride=n.Input.MOUSE_TOUCH_COMBINE,this.position=null,this.speed=null,this.circle=null,this.scale=null,this.maxPointers=10,this.currentPointers=0,this.tapRate=200,this.doubleTapRate=300,this.holdRate=2e3,this.justPressedRate=200,this.justReleasedRate=200,this.recordPointerHistory=!1,this.recordRate=100,this.recordLimit=100,this.pointer1=null,this.pointer2=null,this.pointer3=null,this.pointer4=null,this.pointer5=null,this.pointer6=null,this.pointer7=null,this.pointer8=null,this.pointer9=null,this.pointer10=null,this.activePointer=null,this.mousePointer=null,this.mouse=null,this.keyboard=null,this.touch=null,this.mspointer=null,this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.interactiveItems=new n.ArrayList,this._localPoint=new n.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},n.Input.MOUSE_OVERRIDES_TOUCH=0,n.Input.TOUCH_OVERRIDES_MOUSE=1,n.Input.MOUSE_TOUCH_COMBINE=2,n.Input.prototype={boot:function(){this.mousePointer=new n.Pointer(this.game,0),this.pointer1=new n.Pointer(this.game,1),this.pointer2=new n.Pointer(this.game,2),this.mouse=new n.Mouse(this.game),this.keyboard=new n.Keyboard(this.game),this.touch=new n.Touch(this.game),this.mspointer=new n.MSPointer(this.game),this.gamepad=new n.Gamepad(this.game),this.onDown=new n.Signal,this.onUp=new n.Signal,this.onTap=new n.Signal,this.onHold=new n.Signal,this.scale=new n.Point(1,1),this.speed=new n.Point,this.position=new n.Point,this._oldPosition=new n.Point,this.circle=new n.Circle(0,0,44),this.activePointer=this.mousePointer,this.currentPointers=0,this.hitCanvas=document.createElement("canvas"),this.hitCanvas.width=1,this.hitCanvas.height=1,this.hitContext=this.hitCanvas.getContext("2d"),this.mouse.start(),this.keyboard.start(),this.touch.start(),this.mspointer.start(),this.mousePointer.active=!0},destroy:function(){this.mouse.stop(),this.keyboard.stop(),this.touch.stop(),this.mspointer.stop(),this.gamepad.stop(),this.moveCallback=null},setMoveCallback:function(t,e){this.moveCallback=t,this.moveCallbackContext=e},addPointer:function(){for(var t=0,e=10;e>0;e--)null===this["pointer"+e]&&(t=e);return 0===t?(console.warn("You can only have 10 Pointer objects"),null):(this["pointer"+t]=new n.Pointer(this.game,t),this["pointer"+t])},update:function(){return this.keyboard.update(),this.pollRate>0&&this._pollCounter<this.pollRate?void this._pollCounter++:(this.speed.x=this.position.x-this._oldPosition.x,this.speed.y=this.position.y-this._oldPosition.y,this._oldPosition.copyFrom(this.position),this.mousePointer.update(),this.gamepad.active&&this.gamepad.update(),this.pointer1.update(),this.pointer2.update(),this.pointer3&&this.pointer3.update(),this.pointer4&&this.pointer4.update(),this.pointer5&&this.pointer5.update(),this.pointer6&&this.pointer6.update(),this.pointer7&&this.pointer7.update(),this.pointer8&&this.pointer8.update(),this.pointer9&&this.pointer9.update(),this.pointer10&&this.pointer10.update(),void(this._pollCounter=0))},reset:function(t){if(this.game.isBooted&&!this.resetLocked){"undefined"==typeof t&&(t=!1),this.keyboard.reset(t),this.mousePointer.reset(),this.gamepad.reset();for(var e=1;10>=e;e++)this["pointer"+e]&&this["pointer"+e].reset();this.currentPointers=0,"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),t&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=new n.Signal,this.onUp=new n.Signal,this.onTap=new n.Signal,this.onHold=new n.Signal),this._pollCounter=0}},resetSpeed:function(t,e){this._oldPosition.setTo(t,e),this.speed.setTo(0,0)},startPointer:function(t){if(this.maxPointers<10&&this.totalActivePointers==this.maxPointers)return null;if(this.pointer1.active===!1)return this.pointer1.start(t);if(this.pointer2.active===!1)return this.pointer2.start(t);for(var e=3;10>=e;e++)if(this["pointer"+e]&&this["pointer"+e].active===!1)return this["pointer"+e].start(t);return null},updatePointer:function(t){if(this.pointer1.active&&this.pointer1.identifier==t.identifier)return this.pointer1.move(t);if(this.pointer2.active&&this.pointer2.identifier==t.identifier)return this.pointer2.move(t);for(var e=3;10>=e;e++)if(this["pointer"+e]&&this["pointer"+e].active&&this["pointer"+e].identifier==t.identifier)return this["pointer"+e].move(t);return null},stopPointer:function(t){if(this.pointer1.active&&this.pointer1.identifier==t.identifier)return this.pointer1.stop(t);if(this.pointer2.active&&this.pointer2.identifier==t.identifier)return this.pointer2.stop(t);for(var e=3;10>=e;e++)if(this["pointer"+e]&&this["pointer"+e].active&&this["pointer"+e].identifier==t.identifier)return this["pointer"+e].stop(t);return null},getPointer:function(t){if(t=t||!1,this.pointer1.active==t)return this.pointer1;if(this.pointer2.active==t)return this.pointer2;for(var e=3;10>=e;e++)if(this["pointer"+e]&&this["pointer"+e].active==t)return this["pointer"+e];return null},getPointerFromIdentifier:function(t){if(this.pointer1.identifier==t)return this.pointer1;if(this.pointer2.identifier==t)return this.pointer2;for(var e=3;10>=e;e++)if(this["pointer"+e]&&this["pointer"+e].identifier==t)return this["pointer"+e];return null},getLocalPosition:function(t,e,i){"undefined"==typeof i&&(i=new n.Point);var s=t.worldTransform,r=1/(s.a*s.d+s.b*-s.c);return i.setTo(s.d*r*e.x+-s.b*r*e.y+(s.ty*s.b-s.tx*s.d)*r,s.a*r*e.y+-s.c*r*e.x+(-s.ty*s.a+s.tx*s.c)*r)},hitTest:function(t,e,i){if(!t.worldVisible)return!1;if(this.getLocalPosition(t,e,this._localPoint),i.copyFrom(this._localPoint),t.hitArea&&t.hitArea.contains)return t.hitArea.contains(this._localPoint.x,this._localPoint.y)?!0:!1;if(t instanceof n.TileSprite){var r=t.width,o=t.height,a=-r*t.anchor.x;if(this._localPoint.x>a&&this._localPoint.x<a+r){var h=-o*t.anchor.y;if(this._localPoint.y>h&&this._localPoint.y<h+o)return!0}}else if(t instanceof s.Sprite){var r=t.texture.frame.width,o=t.texture.frame.height,a=-r*t.anchor.x;if(this._localPoint.x>a&&this._localPoint.x<a+r){var h=-o*t.anchor.y;if(this._localPoint.y>h&&this._localPoint.y<h+o)return!0}}for(var l=0,u=t.children.length;u>l;l++)if(this.hitTest(t.children[l],e,i))return!0;return!1}},n.Input.prototype.constructor=n.Input,Object.defineProperty(n.Input.prototype,"x",{get:function(){return this._x},set:function(t){this._x=Math.floor(t)}}),Object.defineProperty(n.Input.prototype,"y",{get:function(){return this._y},set:function(t){this._y=Math.floor(t)}}),Object.defineProperty(n.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter<this.pollRate}}),Object.defineProperty(n.Input.prototype,"totalInactivePointers",{get:function(){return 10-this.currentPointers}}),Object.defineProperty(n.Input.prototype,"totalActivePointers",{get:function(){this.currentPointers=0;for(var t=1;10>=t;t++)this["pointer"+t]&&this["pointer"+t].active&&this.currentPointers++;return this.currentPointers}}),Object.defineProperty(n.Input.prototype,"worldX",{get:function(){return this.game.camera.view.x+this.x}}),Object.defineProperty(n.Input.prototype,"worldY",{get:function(){return this.game.camera.view.y+this.y}}),n.Key=function(t,e){this.game=t,this.enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=e,this.onDown=new n.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new n.Signal},n.Key.prototype={update:function(){this.enabled&&this.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(t){this.enabled&&(this.event=t,this.isDown||(this.altKey=t.altKey,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.now,this.duration=0,this.repeats=0,this.onDown.dispatch(this)))},processKeyUp:function(t){this.enabled&&(this.event=t,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown,this.onUp.dispatch(this)))},reset:function(t){"undefined"==typeof t&&(t=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown,this.enabled=!0,t&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},justPressed:function(t){return"undefined"==typeof t&&(t=2500),this.isDown&&this.duration<t},justReleased:function(t){return"undefined"==typeof t&&(t=2500),!this.isDown&&this.game.time.now-this.timeUp<t}},n.Key.prototype.constructor=n.Key,n.Keyboard=function(t){this.game=t,this.disabled=!1,this.event=null,this.callbackContext=this,this.onDownCallback=null,this.onUpCallback=null,this._keys=[],this._capture=[],this._onKeyDown=null,this._onKeyUp=null,this._i=0},n.Keyboard.prototype={addCallbacks:function(t,e,i){this.callbackContext=t,this.onDownCallback=e,"undefined"!=typeof i&&(this.onUpCallback=i)},addKey:function(t){return this._keys[t]||(this._keys[t]=new n.Key(this.game,t),this.addKeyCapture(t)),this._keys[t]},removeKey:function(t){this._keys[t]&&(this._keys[t]=null,this.removeKeyCapture(t))},createCursorKeys:function(){return{up:this.addKey(n.Keyboard.UP),down:this.addKey(n.Keyboard.DOWN),left:this.addKey(n.Keyboard.LEFT),right:this.addKey(n.Keyboard.RIGHT)}},start:function(){if(null===this._onKeyDown){var t=this;this._onKeyDown=function(e){return t.processKeyDown(e)},this._onKeyUp=function(e){return t.processKeyUp(e)},window.addEventListener("keydown",this._onKeyDown,!1),window.addEventListener("keyup",this._onKeyUp,!1)}},stop:function(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this._onKeyDown=null,this._onKeyUp=null},destroy:function(){this.stop(),this.clearCaptures(),this._keys.length=0,this._i=0},addKeyCapture:function(t){if("object"==typeof t)for(var e in t)this._capture[t[e]]=!0;else this._capture[t]=!0},removeKeyCapture:function(t){delete this._capture[t]},clearCaptures:function(){this._capture={}},update:function(){for(this._i=this._keys.length;this._i--;)this._keys[this._i]&&this._keys[this._i].update()},processKeyDown:function(t){this.event=t,this.game.input.disabled||this.disabled||(this._capture[t.keyCode]&&t.preventDefault(),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,t),this._keys[t.keyCode]||(this._keys[t.keyCode]=new n.Key(this.game,t.keyCode)),this._keys[t.keyCode].processKeyDown(t))},processKeyUp:function(t){this.event=t,this.game.input.disabled||this.disabled||(this._capture[t.keyCode]&&t.preventDefault(),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,t),this._keys[t.keyCode]||(this._keys[t.keyCode]=new n.Key(this.game,t.keyCode)),this._keys[t.keyCode].processKeyUp(t))},reset:function(t){"undefined"==typeof t&&(t=!0),this.event=null;for(var e=this._keys.length;e--;)this._keys[e]&&this._keys[e].reset(t)},justPressed:function(t,e){return this._keys[t]?this._keys[t].justPressed(e):!1},justReleased:function(t,e){return this._keys[t]?this._keys[t].justReleased(e):!1},isDown:function(t){return this._keys[t]?this._keys[t].isDown:!1}},n.Keyboard.prototype.constructor=n.Keyboard,n.Keyboard.A="A".charCodeAt(0),n.Keyboard.B="B".charCodeAt(0),n.Keyboard.C="C".charCodeAt(0),n.Keyboard.D="D".charCodeAt(0),n.Keyboard.E="E".charCodeAt(0),n.Keyboard.F="F".charCodeAt(0),n.Keyboard.G="G".charCodeAt(0),n.Keyboard.H="H".charCodeAt(0),n.Keyboard.I="I".charCodeAt(0),n.Keyboard.J="J".charCodeAt(0),n.Keyboard.K="K".charCodeAt(0),n.Keyboard.L="L".charCodeAt(0),n.Keyboard.M="M".charCodeAt(0),n.Keyboard.N="N".charCodeAt(0),n.Keyboard.O="O".charCodeAt(0),n.Keyboard.P="P".charCodeAt(0),n.Keyboard.Q="Q".charCodeAt(0),n.Keyboard.R="R".charCodeAt(0),n.Keyboard.S="S".charCodeAt(0),n.Keyboard.T="T".charCodeAt(0),n.Keyboard.U="U".charCodeAt(0),n.Keyboard.V="V".charCodeAt(0),n.Keyboard.W="W".charCodeAt(0),n.Keyboard.X="X".charCodeAt(0),n.Keyboard.Y="Y".charCodeAt(0),n.Keyboard.Z="Z".charCodeAt(0),n.Keyboard.ZERO="0".charCodeAt(0),n.Keyboard.ONE="1".charCodeAt(0),n.Keyboard.TWO="2".charCodeAt(0),n.Keyboard.THREE="3".charCodeAt(0),n.Keyboard.FOUR="4".charCodeAt(0),n.Keyboard.FIVE="5".charCodeAt(0),n.Keyboard.SIX="6".charCodeAt(0),n.Keyboard.SEVEN="7".charCodeAt(0),n.Keyboard.EIGHT="8".charCodeAt(0),n.Keyboard.NINE="9".charCodeAt(0),n.Keyboard.NUMPAD_0=96,n.Keyboard.NUMPAD_1=97,n.Keyboard.NUMPAD_2=98,n.Keyboard.NUMPAD_3=99,n.Keyboard.NUMPAD_4=100,n.Keyboard.NUMPAD_5=101,n.Keyboard.NUMPAD_6=102,n.Keyboard.NUMPAD_7=103,n.Keyboard.NUMPAD_8=104,n.Keyboard.NUMPAD_9=105,n.Keyboard.NUMPAD_MULTIPLY=106,n.Keyboard.NUMPAD_ADD=107,n.Keyboard.NUMPAD_ENTER=108,n.Keyboard.NUMPAD_SUBTRACT=109,n.Keyboard.NUMPAD_DECIMAL=110,n.Keyboard.NUMPAD_DIVIDE=111,n.Keyboard.F1=112,n.Keyboard.F2=113,n.Keyboard.F3=114,n.Keyboard.F4=115,n.Keyboard.F5=116,n.Keyboard.F6=117,n.Keyboard.F7=118,n.Keyboard.F8=119,n.Keyboard.F9=120,n.Keyboard.F10=121,n.Keyboard.F11=122,n.Keyboard.F12=123,n.Keyboard.F13=124,n.Keyboard.F14=125,n.Keyboard.F15=126,n.Keyboard.COLON=186,n.Keyboard.EQUALS=187,n.Keyboard.UNDERSCORE=189,n.Keyboard.QUESTION_MARK=191,n.Keyboard.TILDE=192,n.Keyboard.OPEN_BRACKET=219,n.Keyboard.BACKWARD_SLASH=220,n.Keyboard.CLOSED_BRACKET=221,n.Keyboard.QUOTES=222,n.Keyboard.BACKSPACE=8,n.Keyboard.TAB=9,n.Keyboard.CLEAR=12,n.Keyboard.ENTER=13,n.Keyboard.SHIFT=16,n.Keyboard.CONTROL=17,n.Keyboard.ALT=18,n.Keyboard.CAPS_LOCK=20,n.Keyboard.ESC=27,n.Keyboard.SPACEBAR=32,n.Keyboard.PAGE_UP=33,n.Keyboard.PAGE_DOWN=34,n.Keyboard.END=35,n.Keyboard.HOME=36,n.Keyboard.LEFT=37,n.Keyboard.UP=38,n.Keyboard.RIGHT=39,n.Keyboard.DOWN=40,n.Keyboard.INSERT=45,n.Keyboard.DELETE=46,n.Keyboard.HELP=47,n.Keyboard.NUM_LOCK=144,n.Mouse=function(t){this.game=t,this.callbackContext=this.game,this.mouseDownCallback=null,this.mouseMoveCallback=null,this.mouseUpCallback=null,this.capture=!1,this.button=-1,this.disabled=!1,this.locked=!1,this.pointerLock=new n.Signal,this.event=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null},n.Mouse.NO_BUTTON=-1,n.Mouse.LEFT_BUTTON=0,n.Mouse.MIDDLE_BUTTON=1,n.Mouse.RIGHT_BUTTON=2,n.Mouse.prototype={start:function(){if((!this.game.device.android||this.game.device.chrome!==!1)&&null===this._onMouseDown){var t=this;this._onMouseDown=function(e){return t.onMouseDown(e)},this._onMouseMove=function(e){return t.onMouseMove(e)},this._onMouseUp=function(e){return t.onMouseUp(e)},this.game.canvas.addEventListener("mousedown",this._onMouseDown,!0),this.game.canvas.addEventListener("mousemove",this._onMouseMove,!0),this.game.canvas.addEventListener("mouseup",this._onMouseUp,!0)}},onMouseDown:function(t){this.event=t,this.capture&&t.preventDefault(),this.button=t.button,this.mouseDownCallback&&this.mouseDownCallback.call(this.callbackContext,t),this.game.input.disabled||this.disabled||(t.identifier=0,this.game.input.mousePointer.start(t))},onMouseMove:function(t){this.event=t,this.capture&&t.preventDefault(),this.mouseMoveCallback&&this.mouseMoveCallback.call(this.callbackContext,t),this.game.input.disabled||this.disabled||(t.identifier=0,this.game.input.mousePointer.move(t))},onMouseUp:function(t){this.event=t,this.capture&&t.preventDefault(),this.button=n.Mouse.NO_BUTTON,this.mouseUpCallback&&this.mouseUpCallback.call(this.callbackContext,t),this.game.input.disabled||this.disabled||(t.identifier=0,this.game.input.mousePointer.stop(t))},requestPointerLock:function(){if(this.game.device.pointerLock){var t=this.game.canvas;t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock,t.requestPointerLock();var e=this;this._pointerLockChange=function(t){return e.pointerLockChange(t)},document.addEventListener("pointerlockchange",this._pointerLockChange,!0),document.addEventListener("mozpointerlockchange",this._pointerLockChange,!0),document.addEventListener("webkitpointerlockchange",this._pointerLockChange,!0)}},pointerLockChange:function(t){var e=this.game.canvas;document.pointerLockElement===e||document.mozPointerLockElement===e||document.webkitPointerLockElement===e?(this.locked=!0,this.pointerLock.dispatch(!0,t)):(this.locked=!1,this.pointerLock.dispatch(!1,t))},releasePointerLock:function(){document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock,document.exitPointerLock(),document.removeEventListener("pointerlockchange",this._pointerLockChange,!0),document.removeEventListener("mozpointerlockchange",this._pointerLockChange,!0),document.removeEventListener("webkitpointerlockchange",this._pointerLockChange,!0)},stop:function(){this.game.canvas.removeEventListener("mousedown",this._onMouseDown,!0),this.game.canvas.removeEventListener("mousemove",this._onMouseMove,!0),this.game.canvas.removeEventListener("mouseup",this._onMouseUp,!0)}},n.Mouse.prototype.constructor=n.Mouse,n.MSPointer=function(t){this.game=t,this.callbackContext=this.game,this.disabled=!1,this._onMSPointerDown=null,this._onMSPointerMove=null,this._onMSPointerUp=null},n.MSPointer.prototype={start:function(){if(null===this._onMSPointerDown){var t=this;this.game.device.mspointer===!0&&(this._onMSPointerDown=function(e){return t.onPointerDown(e)},this._onMSPointerMove=function(e){return t.onPointerMove(e)},this._onMSPointerUp=function(e){return t.onPointerUp(e)},this.game.renderer.view.addEventListener("MSPointerDown",this._onMSPointerDown,!1),this.game.renderer.view.addEventListener("MSPointerMove",this._onMSPointerMove,!1),this.game.renderer.view.addEventListener("MSPointerUp",this._onMSPointerUp,!1),this.game.renderer.view.addEventListener("pointerDown",this._onMSPointerDown,!1),this.game.renderer.view.addEventListener("pointerMove",this._onMSPointerMove,!1),this.game.renderer.view.addEventListener("pointerUp",this._onMSPointerUp,!1),this.game.renderer.view.style["-ms-content-zooming"]="none",this.game.renderer.view.style["-ms-touch-action"]="none")}},onPointerDown:function(t){this.game.input.disabled||this.disabled||(t.preventDefault(),t.identifier=t.pointerId,this.game.input.startPointer(t))},onPointerMove:function(t){this.game.input.disabled||this.disabled||(t.preventDefault(),t.identifier=t.pointerId,this.game.input.updatePointer(t))},onPointerUp:function(t){this.game.input.disabled||this.disabled||(t.preventDefault(),t.identifier=t.pointerId,this.game.input.stopPointer(t))},stop:function(){this.game.canvas.removeEventListener("MSPointerDown",this._onMSPointerDown),this.game.canvas.removeEventListener("MSPointerMove",this._onMSPointerMove),this.game.canvas.removeEventListener("MSPointerUp",this._onMSPointerUp),this.game.canvas.removeEventListener("pointerDown",this._onMSPointerDown),this.game.canvas.removeEventListener("pointerMove",this._onMSPointerMove),this.game.canvas.removeEventListener("pointerUp",this._onMSPointerUp)}},n.MSPointer.prototype.constructor=n.MSPointer,n.Pointer=function(t,e){this.game=t,this.id=e,this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.x=-1,this.y=-1,this.isMouse=!1,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.position=new n.Point,this.positionDown=new n.Point,this.positionUp=new n.Point,this.circle=new n.Circle(0,0,44),0===e&&(this.isMouse=!0)},n.Pointer.prototype={start:function(t){return this.identifier=t.identifier,this.target=t.target,"undefined"!=typeof t.button&&(this.button=t.button),this._history=[],this.active=!0,this.withinGame=!0,this.isDown=!0,this.isUp=!1,this.msSinceLastClick=this.game.time.now-this.timeDown,this.timeDown=this.game.time.now,this._holdSent=!1,this.move(t,!0),this.positionDown.setTo(this.x,this.y),(this.game.input.multiInputOverride===n.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===n.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===n.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,t),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,this.isMouse||this.game.input.currentPointers++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==n.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==n.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==n.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.now>=this._nextDrop&&(this._nextDrop=this.game.time.now+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(t,e){if(!this.game.input.pollLocked){if("undefined"==typeof e&&(e=!1),"undefined"!=typeof t.button&&(this.button=t.button),this.clientX=t.clientX,this.clientY=t.clientY,this.pageX=t.pageX,this.pageY=t.pageY,this.screenX=t.screenX,this.screenY=t.screenY,this.x=(this.pageX-this.game.stage.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.stage.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride==n.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==n.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==n.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.game.paused)return this;if(this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y),null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=Number.MAX_SAFE_INTEGER,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var i=this.game.input.interactiveItems.first;do i&&i.validForInput(this._highestInputPriorityID,this._highestRenderOrderID)&&(!e&&i.checkPointerOver(this)||e&&i.checkPointerDown(this))&&(this._highestRenderOrderID=i.sprite._cache[3],this._highestInputPriorityID=i.priorityID,this._highestRenderObject=i),i=this.game.input.interactiveItems.next;while(null!==i)}return null===this._highestRenderObject?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=this._highestRenderObject,this._highestRenderObject._pointerOverHandler(this)):this.targetObject===this._highestRenderObject?this._highestRenderObject.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=this._highestRenderObject,this.targetObject._pointerOverHandler(this)),this}},leave:function(t){this.withinGame=!1,this.move(t,!1)},stop:function(t){return this._stateReset?void t.preventDefault():(this.timeUp=this.game.time.now,(this.game.input.multiInputOverride==n.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==n.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==n.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,t),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime<this.game.input.doubleTapRate?this.game.input.onTap.dispatch(this,!0):this.game.input.onTap.dispatch(this,!1),this.previousTapTime=this.timeUp)),this.id>0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this.targetObject=null,this)},justPressed:function(t){return t=t||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+t>this.game.time.now},justReleased:function(t){return t=t||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+t>this.game.time.now},reset:function(){this.isMouse===!1&&(this.active=!1),this.identifier=null,this.isDown=!1,this.isUp=!0,this.totalTouches=0,this._holdSent=!1,this._history.length=0,this._stateReset=!0,this.targetObject&&this.targetObject._releasedHandler(this),this.targetObject=null}},n.Pointer.prototype.constructor=n.Pointer,Object.defineProperty(n.Pointer.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.now-this.timeDown}}),Object.defineProperty(n.Pointer.prototype,"worldX",{get:function(){return this.game.world.camera.x+this.x}}),Object.defineProperty(n.Pointer.prototype,"worldY",{get:function(){return this.game.world.camera.y+this.y}}),n.Touch=function(t){this.game=t,this.disabled=!1,this.callbackContext=this.game,this.touchStartCallback=null,this.touchMoveCallback=null,this.touchEndCallback=null,this.touchEnterCallback=null,this.touchLeaveCallback=null,this.touchCancelCallback=null,this.preventDefault=!0,this.event=null,this._onTouchStart=null,this._onTouchMove=null,this._onTouchEnd=null,this._onTouchEnter=null,this._onTouchLeave=null,this._onTouchCancel=null,this._onTouchMove=null},n.Touch.prototype={start:function(){if(null===this._onTouchStart){var t=this;this.game.device.touch&&(this._onTouchStart=function(e){return t.onTouchStart(e)},this._onTouchMove=function(e){return t.onTouchMove(e)},this._onTouchEnd=function(e){return t.onTouchEnd(e)},this._onTouchEnter=function(e){return t.onTouchEnter(e)},this._onTouchLeave=function(e){return t.onTouchLeave(e)},this._onTouchCancel=function(e){return t.onTouchCancel(e)},this.game.canvas.addEventListener("touchstart",this._onTouchStart,!1),this.game.canvas.addEventListener("touchmove",this._onTouchMove,!1),this.game.canvas.addEventListener("touchend",this._onTouchEnd,!1),this.game.canvas.addEventListener("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!1))}},consumeDocumentTouches:function(){this._documentTouchMove=function(t){t.preventDefault()},document.addEventListener("touchmove",this._documentTouchMove,!1)},onTouchStart:function(t){if(this.event=t,this.touchStartCallback&&this.touchStartCallback.call(this.callbackContext,t),!this.game.input.disabled&&!this.disabled){this.preventDefault&&t.preventDefault();for(var e=0;e<t.changedTouches.length;e++)this.game.input.startPointer(t.changedTouches[e])}},onTouchCancel:function(t){if(this.event=t,this.touchCancelCallback&&this.touchCancelCallback.call(this.callbackContext,t),!this.game.input.disabled&&!this.disabled){this.preventDefault&&t.preventDefault();for(var e=0;e<t.changedTouches.length;e++)this.game.input.stopPointer(t.changedTouches[e])}},onTouchEnter:function(t){this.event=t,this.touchEnterCallback&&this.touchEnterCallback.call(this.callbackContext,t),this.game.input.disabled||this.disabled||this.preventDefault&&t.preventDefault()},onTouchLeave:function(t){this.event=t,this.touchLeaveCallback&&this.touchLeaveCallback.call(this.callbackContext,t),this.preventDefault&&t.preventDefault()},onTouchMove:function(t){this.event=t,this.touchMoveCallback&&this.touchMoveCallback.call(this.callbackContext,t),this.preventDefault&&t.preventDefault();for(var e=0;e<t.changedTouches.length;e++)this.game.input.updatePointer(t.changedTouches[e])},onTouchEnd:function(t){this.event=t,this.touchEndCallback&&this.touchEndCallback.call(this.callbackContext,t),this.preventDefault&&t.preventDefault();for(var e=0;e<t.changedTouches.length;e++)this.game.input.stopPointer(t.changedTouches[e])},stop:function(){this.game.device.touch&&(this.game.canvas.removeEventListener("touchstart",this._onTouchStart),this.game.canvas.removeEventListener("touchmove",this._onTouchMove),this.game.canvas.removeEventListener("touchend",this._onTouchEnd),this.game.canvas.removeEventListener("touchenter",this._onTouchEnter),this.game.canvas.removeEventListener("touchleave",this._onTouchLeave),this.game.canvas.removeEventListener("touchcancel",this._onTouchCancel))}},n.Touch.prototype.constructor=n.Touch,n.Gamepad=function(t){this.game=t,this._gamepads=[new n.SinglePad(t,this),new n.SinglePad(t,this),new n.SinglePad(t,this),new n.SinglePad(t,this)],this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.disabled=!1,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null},n.Gamepad.prototype={addCallbacks:function(t,e){"undefined"!=typeof e&&(this.onConnectCallback="function"==typeof e.onConnect?e.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof e.onDisconnect?e.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof e.onDown?e.onDown:this.onDownCallback,this.onUpCallback="function"==typeof e.onUp?e.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof e.onAxis?e.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof e.onFloat?e.onFloat:this.onFloatCallback)
  },start:function(){if(!this._active){this._active=!0;var t=this;this._ongamepadconnected=function(e){var i=e.gamepad;t._rawPads.push(i),t._gamepads[i.index].connect(i)},window.addEventListener("gamepadconnected",this._ongamepadconnected,!1),this._ongamepaddisconnected=function(e){var i=e.gamepad;for(var s in t._rawPads)t._rawPads[s].index===i.index&&t._rawPads.splice(s,1);t._gamepads[i.index].disconnect()},window.addEventListener("gamepaddisconnected",this._ongamepaddisconnected,!1)}},update:function(){this._pollGamepads();for(var t=0;t<this._gamepads.length;t++)this._gamepads[t]._connected&&this._gamepads[t].pollStatus()},_pollGamepads:function(){var t=navigator.getGamepads||navigator.webkitGetGamepads&&navigator.webkitGetGamepads()||navigator.webkitGamepads;if(t){this._rawPads=[];for(var e=!1,i=0;i<t.length&&(typeof t[i]!==this._prevRawGamepadTypes[i]&&(e=!0,this._prevRawGamepadTypes[i]=typeof t[i]),t[i]&&this._rawPads.push(t[i]),3!==i);i++);if(e){for(var s,n={rawIndices:{},padIndices:{}},r=0;r<this._gamepads.length;r++)if(s=this._gamepads[r],s.connected)for(var o=0;o<this._rawPads.length;o++)this._rawPads[o].index===s.index&&(n.rawIndices[s.index]=!0,n.padIndices[r]=!0);for(var a=0;a<this._gamepads.length;a++)if(s=this._gamepads[a],!n.padIndices[a]){this._rawPads.length<1&&s.disconnect();for(var h=0;h<this._rawPads.length&&!n.padIndices[a];h++){var l=this._rawPads[h];if(l){if(n.rawIndices[l.index]){s.disconnect();continue}s.connect(l),n.rawIndices[l.index]=!0,n.padIndices[a]=!0}else s.disconnect()}}}}},setDeadZones:function(t){for(var e=0;e<this._gamepads.length;e++)this._gamepads[e].deadZone=t},stop:function(){this._active=!1,window.removeEventListener("gamepadconnected",this._ongamepadconnected),window.removeEventListener("gamepaddisconnected",this._ongamepaddisconnected)},reset:function(){this.update();for(var t=0;t<this._gamepads.length;t++)this._gamepads[t].reset()},justPressed:function(t,e){for(var i=0;i<this._gamepads.length;i++)if(this._gamepads[i].justPressed(t,e)===!0)return!0;return!1},justReleased:function(t,e){for(var i=0;i<this._gamepads.length;i++)if(this._gamepads[i].justReleased(t,e)===!0)return!0;return!1},isDown:function(t){for(var e=0;e<this._gamepads.length;e++)if(this._gamepads[e].isDown(t)===!0)return!0;return!1}},n.Gamepad.prototype.constructor=n.Gamepad,Object.defineProperty(n.Gamepad.prototype,"active",{get:function(){return this._active}}),Object.defineProperty(n.Gamepad.prototype,"supported",{get:function(){return this._gamepadSupportAvailable}}),Object.defineProperty(n.Gamepad.prototype,"padsConnected",{get:function(){return this._rawPads.length}}),Object.defineProperty(n.Gamepad.prototype,"pad1",{get:function(){return this._gamepads[0]}}),Object.defineProperty(n.Gamepad.prototype,"pad2",{get:function(){return this._gamepads[1]}}),Object.defineProperty(n.Gamepad.prototype,"pad3",{get:function(){return this._gamepads[2]}}),Object.defineProperty(n.Gamepad.prototype,"pad4",{get:function(){return this._gamepads[3]}}),n.Gamepad.BUTTON_0=0,n.Gamepad.BUTTON_1=1,n.Gamepad.BUTTON_2=2,n.Gamepad.BUTTON_3=3,n.Gamepad.BUTTON_4=4,n.Gamepad.BUTTON_5=5,n.Gamepad.BUTTON_6=6,n.Gamepad.BUTTON_7=7,n.Gamepad.BUTTON_8=8,n.Gamepad.BUTTON_9=9,n.Gamepad.BUTTON_10=10,n.Gamepad.BUTTON_11=11,n.Gamepad.BUTTON_12=12,n.Gamepad.BUTTON_13=13,n.Gamepad.BUTTON_14=14,n.Gamepad.BUTTON_15=15,n.Gamepad.AXIS_0=0,n.Gamepad.AXIS_1=1,n.Gamepad.AXIS_2=2,n.Gamepad.AXIS_3=3,n.Gamepad.AXIS_4=4,n.Gamepad.AXIS_5=5,n.Gamepad.AXIS_6=6,n.Gamepad.AXIS_7=7,n.Gamepad.AXIS_8=8,n.Gamepad.AXIS_9=9,n.Gamepad.XBOX360_A=0,n.Gamepad.XBOX360_B=1,n.Gamepad.XBOX360_X=2,n.Gamepad.XBOX360_Y=3,n.Gamepad.XBOX360_LEFT_BUMPER=4,n.Gamepad.XBOX360_RIGHT_BUMPER=5,n.Gamepad.XBOX360_LEFT_TRIGGER=6,n.Gamepad.XBOX360_RIGHT_TRIGGER=7,n.Gamepad.XBOX360_BACK=8,n.Gamepad.XBOX360_START=9,n.Gamepad.XBOX360_STICK_LEFT_BUTTON=10,n.Gamepad.XBOX360_STICK_RIGHT_BUTTON=11,n.Gamepad.XBOX360_DPAD_LEFT=14,n.Gamepad.XBOX360_DPAD_RIGHT=15,n.Gamepad.XBOX360_DPAD_UP=12,n.Gamepad.XBOX360_DPAD_DOWN=13,n.Gamepad.XBOX360_STICK_LEFT_X=0,n.Gamepad.XBOX360_STICK_LEFT_Y=1,n.Gamepad.XBOX360_STICK_RIGHT_X=2,n.Gamepad.XBOX360_STICK_RIGHT_Y=3,n.SinglePad=function(t,e){this.game=t,this._padParent=e,this._index=null,this._rawPad=null,this._connected=!1,this._prevTimestamp=null,this._rawButtons=[],this._buttons=[],this._axes=[],this._hotkeys=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this.deadZone=.26},n.SinglePad.prototype={addCallbacks:function(t,e){"undefined"!=typeof e&&(this.onConnectCallback="function"==typeof e.onConnect?e.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof e.onDisconnect?e.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof e.onDown?e.onDown:this.onDownCallback,this.onUpCallback="function"==typeof e.onUp?e.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof e.onAxis?e.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof e.onFloat?e.onFloat:this.onFloatCallback)},addButton:function(t){return this._hotkeys[t]=new n.GamepadButton(this.game,t),this._hotkeys[t]},pollStatus:function(){if(!this._rawPad.timestamp||this._rawPad.timestamp!=this._prevTimestamp){for(var t=0;t<this._rawPad.buttons.length;t+=1){var e=this._rawPad.buttons[t];this._rawButtons[t]!==e&&(1===e?this.processButtonDown(t,e):0===e?this.processButtonUp(t,e):this.processButtonFloat(t,e),this._rawButtons[t]=e)}for(var i=this._rawPad.axes,s=0;s<i.length;s+=1){var n=i[s];this.processAxisChange(n>0&&n>this.deadZone||0>n&&n<-this.deadZone?{axis:s,value:n}:{axis:s,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(t){var e=!this._connected;this._index=t.index,this._connected=!0,this._rawPad=t,this._rawButtons=t.buttons,this._axes=t.axes,e&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this._index),e&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var t=this._connected;this._connected=!1,this._rawPad=void 0,this._rawButtons=[],this._buttons=[];var e=this._index;this._index=null,t&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,e),t&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},processAxisChange:function(t){this.game.input.disabled||this.game.input.gamepad.disabled||this._axes[t.axis]!==t.value&&(this._axes[t.axis]=t.value,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,t,this._index),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,t))},processButtonDown:function(t,e){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,t,e,this._index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,t,e),this._buttons[t]&&this._buttons[t].isDown?this._buttons[t].duration=this.game.time.now-this._buttons[t].timeDown:this._buttons[t]?(this._buttons[t].isDown=!0,this._buttons[t].timeDown=this.game.time.now,this._buttons[t].duration=0,this._buttons[t].value=e):this._buttons[t]={isDown:!0,timeDown:this.game.time.now,timeUp:0,duration:0,value:e},this._hotkeys[t]&&this._hotkeys[t].processButtonDown(e))},processButtonUp:function(t,e){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,t,e,this._index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,t,e),this._hotkeys[t]&&this._hotkeys[t].processButtonUp(e),this._buttons[t]?(this._buttons[t].isDown=!1,this._buttons[t].timeUp=this.game.time.now,this._buttons[t].value=e):this._buttons[t]={isDown:!1,timeDown:this.game.time.now,timeUp:this.game.time.now,duration:0,value:e})},processButtonFloat:function(t,e){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,t,e,this._index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,t,e),this._buttons[t]?this._buttons[t].value=e:this._buttons[t]={value:e},this._hotkeys[t]&&this._hotkeys[t].processButtonFloat(e))},axis:function(t){return this._axes[t]?this._axes[t]:!1},isDown:function(t){return this._buttons[t]?this._buttons[t].isDown:!1},justReleased:function(t,e){return"undefined"==typeof e&&(e=250),this._buttons[t]&&this._buttons[t].isDown===!1&&this.game.time.now-this._buttons[t].timeUp<e},justPressed:function(t,e){return"undefined"==typeof e&&(e=250),this._buttons[t]&&this._buttons[t].isDown&&this._buttons[t].duration<e},buttonValue:function(t){return this._buttons[t]?this._buttons[t].value:!1},reset:function(){for(var t=0;t<this._buttons.length;t++)this._buttons[t]=0;for(var e=0;e<this._axes.length;e++)this._axes[e]=0}},n.SinglePad.prototype.constructor=n.SinglePad,Object.defineProperty(n.SinglePad.prototype,"connected",{get:function(){return this._connected}}),Object.defineProperty(n.SinglePad.prototype,"index",{get:function(){return this._index}}),n.GamepadButton=function(t,e){this.game=t,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.duration=0,this.timeUp=0,this.repeats=0,this.value=0,this.buttonCode=e,this.onDown=new n.Signal,this.onUp=new n.Signal,this.onFloat=new n.Signal},n.GamepadButton.prototype={processButtonDown:function(t){this.isDown?(this.duration=this.game.time.now-this.timeDown,this.repeats++):(this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.now,this.duration=0,this.repeats=0,this.value=t,this.onDown.dispatch(this,t))},processButtonUp:function(t){this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.value=t,this.onUp.dispatch(this,t)},processButtonFloat:function(t){this.value=t,this.onFloat.dispatch(this,t)},justPressed:function(t){return"undefined"==typeof t&&(t=250),this.isDown&&this.duration<t},justReleased:function(t){return"undefined"==typeof t&&(t=250),this.isDown===!1&&this.game.time.now-this.timeUp<t}},n.GamepadButton.prototype.constructor=n.GamepadButton,n.InputHandler=function(t){this.sprite=t,this.game=t.game,this.enabled=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this._wasEnabled=!1,this._tempPoint=new n.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},n.InputHandler.prototype={start:function(t,e){if(t=t||0,"undefined"==typeof e&&(e=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=e,this.priorityID=t;for(var i=0;10>i;i++)this._pointerData[i]={id:i,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new n.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new n.Signal,this.sprite.events.onInputOut=new n.Signal,this.sprite.events.onInputDown=new n.Signal,this.sprite.events.onInputUp=new n.Signal,this.sprite.events.onDragStart=new n.Signal,this.sprite.events.onDragStop=new n.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.sprite},addedToGroup:function(){this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1},reset:function(){this.enabled=!1;for(var t=0;10>t;t++)this._pointerData[t]={id:t,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(t,e){return 0===this.sprite.scale.x||0===this.sprite.scale.y?!1:this.pixelPerfectClick||this.pixelPerfectOver?!0:this.priorityID>t||this.priorityID===t&&this.sprite._cache[3]<e?!0:!1},pointerX:function(t){return t=t||0,this._pointerData[t].x},pointerY:function(t){return t=t||0,this._pointerData[t].y},pointerDown:function(t){return t=t||0,this._pointerData[t].isDown},pointerUp:function(t){return t=t||0,this._pointerData[t].isUp},pointerTimeDown:function(t){return t=t||0,this._pointerData[t].timeDown},pointerTimeUp:function(t){return t=t||0,this._pointerData[t].timeUp},pointerOver:function(t){if(this.enabled){if("undefined"!=typeof t)return this._pointerData[t].isOver;for(var e=0;10>e;e++)if(this._pointerData[e].isOver)return!0}return!1},pointerOut:function(t){if(this.enabled){if("undefined"!=typeof t)return this._pointerData[t].isOut;for(var e=0;10>e;e++)if(this._pointerData[e].isOut)return!0}return!1},pointerTimeOver:function(t){return t=t||0,this._pointerData[t].timeOver},pointerTimeOut:function(t){return t=t||0,this._pointerData[t].timeOut},pointerDragged:function(t){return t=t||0,this._pointerData[t].isDragged},checkPointerDown:function(t){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,t,this._tempPoint)?this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPointerOver:function(t){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,t,this._tempPoint)?this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPixel:function(t,e,i){if(this.sprite.texture.baseTexture.source){if(this.game.input.hitContext.clearRect(0,0,1,1),null===t&&null===e){this.game.input.getLocalPosition(this.sprite,i,this._tempPoint);var t=this._tempPoint.x,e=this._tempPoint.y}0!==this.sprite.anchor.x&&(t-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(e-=-this.sprite.texture.frame.height*this.sprite.anchor.y),t+=this.sprite.texture.frame.x,e+=this.sprite.texture.frame.y,this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,t,e,1,1,0,0,1,1);var s=this.game.input.hitContext.getImageData(0,0,1,1);if(s.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(t){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID==t.id?this.updateDrag(t):this._pointerData[t.id].isOver===!0?this.checkPointerOver(t)?(this._pointerData[t.id].x=t.x-this.sprite.x,this._pointerData[t.id].y=t.y-this.sprite.y,!0):(this._pointerOutHandler(t),!1):void 0:(this._pointerOutHandler(t),!1):void 0},_pointerOverHandler:function(t){null!==this.sprite&&this._pointerData[t.id].isOver===!1&&(this._pointerData[t.id].isOver=!0,this._pointerData[t.id].isOut=!1,this._pointerData[t.id].timeOver=this.game.time.now,this._pointerData[t.id].x=t.x-this.sprite.x,this._pointerData[t.id].y=t.y-this.sprite.y,this.useHandCursor&&this._pointerData[t.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,t))},_pointerOutHandler:function(t){null!==this.sprite&&(this._pointerData[t.id].isOver=!1,this._pointerData[t.id].isOut=!0,this._pointerData[t.id].timeOut=this.game.time.now,this.useHandCursor&&this._pointerData[t.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,t))},_touchedHandler:function(t){if(null!==this.sprite){if(this._pointerData[t.id].isDown===!1&&this._pointerData[t.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,t))return;this._pointerData[t.id].isDown=!0,this._pointerData[t.id].isUp=!1,this._pointerData[t.id].timeDown=this.game.time.now,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,t),this.draggable&&this.isDragged===!1&&this.startDrag(t),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(t){null!==this.sprite&&this._pointerData[t.id].isDown&&t.isUp&&(this._pointerData[t.id].isDown=!1,this._pointerData[t.id].isUp=!0,this._pointerData[t.id].timeUp=this.game.time.now,this._pointerData[t.id].downDuration=this._pointerData[t.id].timeUp-this._pointerData[t.id].timeDown,this.checkPointerOver(t)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,t,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,t,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),this.draggable&&this.isDragged&&this._draggedPointerID==t.id&&this.stopDrag(t))},updateDrag:function(t){return t.isUp?(this.stopDrag(t),!1):(this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=t.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=t.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=t.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.y=t.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0)},justOver:function(t,e){return t=t||0,e=e||500,this._pointerData[t].isOver&&this.overDuration(t)<e},justOut:function(t,e){return t=t||0,e=e||500,this._pointerData[t].isOut&&this.game.time.now-this._pointerData[t].timeOut<e},justPressed:function(t,e){return t=t||0,e=e||500,this._pointerData[t].isDown&&this.downDuration(t)<e},justReleased:function(t,e){return t=t||0,e=e||500,this._pointerData[t].isUp&&this.game.time.now-this._pointerData[t].timeUp<e},overDuration:function(t){return t=t||0,this._pointerData[t].isOver?this.game.time.now-this._pointerData[t].timeOver:-1},downDuration:function(t){return t=t||0,this._pointerData[t].isDown?this.game.time.now-this._pointerData[t].timeDown:-1},enableDrag:function(t,e,i,s,r,o){"undefined"==typeof t&&(t=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=255),"undefined"==typeof r&&(r=null),"undefined"==typeof o&&(o=null),this._dragPoint=new n.Point,this.draggable=!0,this.bringToTop=e,this.dragOffset=new n.Point,this.dragFromCenter=t,this.pixelPerfect=i,this.pixelPerfectAlpha=s,r&&(this.boundsRect=r),o&&(this.boundsSprite=o)},disableDrag:function(){if(this._pointerData)for(var t=0;10>t;t++)this._pointerData[t].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(t){if(this.isDragged=!0,this._draggedPointerID=t.id,this._pointerData[t.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(t.x,t.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-t.x,this.sprite.cameraOffset.y-t.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-t.x,this.sprite.cameraOffset.y-t.y);else if(this.dragFromCenter){var e=this.sprite.getBounds();this.sprite.x=t.x+(this.sprite.x-e.centerX),this.sprite.y=t.y+(this.sprite.y-e.centerY),this._dragPoint.setTo(this.sprite.x-t.x,this.sprite.y-t.y)}else this._dragPoint.setTo(this.sprite.x-t.x,this.sprite.y-t.y);this.updateDrag(t),this.bringToTop&&this.sprite.bringToTop(),this.sprite.events.onDragStart.dispatch(this.sprite,t)},stopDrag:function(t){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[t.id].isDragged=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,t),this.checkPointerOver(t)===!1&&this._pointerOutHandler(t)},setDragLock:function(t,e){"undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=!0),this.allowHorizontalDrag=t,this.allowVerticalDrag=e},enableSnap:function(t,e,i,s,n,r){"undefined"==typeof i&&(i=!0),"undefined"==typeof s&&(s=!1),"undefined"==typeof n&&(n=0),"undefined"==typeof r&&(r=0),this.snapX=t,this.snapY=e,this.snapOffsetX=n,this.snapOffsetY=r,this.snapOnDrag=i,this.snapOnRelease=s},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.x<this.boundsRect.left?this.sprite.cameraOffset.x=this.boundsRect.cameraOffset.x:this.sprite.cameraOffset.x+this.sprite.width>this.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.y<this.boundsRect.top?this.sprite.cameraOffset.y=this.boundsRect.top:this.sprite.cameraOffset.y+this.sprite.height>this.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.x<this.boundsRect.left?this.sprite.x=this.boundsRect.x:this.sprite.x+this.sprite.width>this.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.y<this.boundsRect.top?this.sprite.y=this.boundsRect.top:this.sprite.y+this.sprite.height>this.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.x<this.boundsSprite.camerOffset.x?this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x:this.sprite.cameraOffset.x+this.sprite.width>this.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.y<this.boundsSprite.camerOffset.y?this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y:this.sprite.cameraOffset.y+this.sprite.height>this.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.x<this.boundsSprite.x?this.sprite.x=this.boundsSprite.x:this.sprite.x+this.sprite.width>this.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.y<this.boundsSprite.y?this.sprite.y=this.boundsSprite.y:this.sprite.y+this.sprite.height>this.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},n.InputHandler.prototype.constructor=n.InputHandler,n.Events=function(t){this.parent=t,this.onAddedToGroup=new n.Signal,this.onRemovedFromGroup=new n.Signal,this.onKilled=new n.Signal,this.onRevived=new n.Signal,this.onOutOfBounds=new n.Signal,this.onEnterBounds=new n.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},n.Events.prototype={destroy:function(){this.parent=null,this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},n.Events.prototype.constructor=n.Events,n.GameObjectFactory=function(t){this.game=t,this.world=this.game.world},n.GameObjectFactory.prototype={existing:function(t){return this.world.add(t)},image:function(t,e,i,s,r){return"undefined"==typeof r&&(r=this.world),r.add(new n.Image(this.game,t,e,i,s))},sprite:function(t,e,i,s,n){return"undefined"==typeof n&&(n=this.world),n.create(t,e,i,s)},tween:function(t){return this.game.tweens.create(t)},group:function(t,e,i,s,r){return new n.Group(this.game,t,e,i,s,r)},physicsGroup:function(t,e,i,s){return new n.Group(this.game,e,i,s,!0,t)},spriteBatch:function(t,e,i){return"undefined"==typeof e&&(e="group"),"undefined"==typeof i&&(i=!1),new n.SpriteBatch(this.game,t,e,i)},audio:function(t,e,i,s){return this.game.sound.add(t,e,i,s)},sound:function(t,e,i,s){return this.game.sound.add(t,e,i,s)},tileSprite:function(t,e,i,s,r,o,a){return"undefined"==typeof a&&(a=this.world),a.add(new n.TileSprite(this.game,t,e,i,s,r,o))},text:function(t,e,i,s,r){return"undefined"==typeof r&&(r=this.world),r.add(new n.Text(this.game,t,e,i,s))},button:function(t,e,i,s,r,o,a,h,l,u){return"undefined"==typeof u&&(u=this.world),u.add(new n.Button(this.game,t,e,i,s,r,o,a,h,l))},graphics:function(t,e,i){return"undefined"==typeof i&&(i=this.world),i.add(new n.Graphics(this.game,t,e))},emitter:function(t,e,i){return this.game.particles.add(new n.Particles.Arcade.Emitter(this.game,t,e,i))},retroFont:function(t,e,i,s,r,o,a,h,l){return new n.RetroFont(this.game,t,e,i,s,r,o,a,h,l)},bitmapText:function(t,e,i,s,r,o){return"undefined"==typeof o&&(o=this.world),o.add(new n.BitmapText(this.game,t,e,i,s,r))},tilemap:function(t,e,i,s,r){return new n.Tilemap(this.game,t,e,i,s,r)},renderTexture:function(t,e,i,s){("undefined"==typeof i||""===i)&&(i=this.game.rnd.uuid()),"undefined"==typeof s&&(s=!1);var r=new n.RenderTexture(this.game,t,e,i);return s&&this.game.cache.addRenderTexture(i,r),r},bitmapData:function(t,e,i,s){"undefined"==typeof s&&(s=!1),("undefined"==typeof i||""===i)&&(i=this.game.rnd.uuid());var r=new n.BitmapData(this.game,i,t,e);return s&&this.game.cache.addBitmapData(i,r),r},filter:function(t){var e=Array.prototype.splice.call(arguments,1),t=new n.Filter[t](this.game);return t.init.apply(t,e),t}},n.GameObjectFactory.prototype.constructor=n.GameObjectFactory,n.GameObjectCreator=function(t){this.game=t,this.world=this.game.world},n.GameObjectCreator.prototype={image:function(t,e,i,s){return new n.Image(this.game,t,e,i,s)},sprite:function(t,e,i,s){return new n.Sprite(this.game,t,e,i,s)},tween:function(t){return new n.Tween(t,this.game)},group:function(t,e,i,s,r){return new n.Group(this.game,null,e,i,s,r)},spriteBatch:function(t,e,i){return"undefined"==typeof e&&(e="group"),"undefined"==typeof i&&(i=!1),new n.SpriteBatch(this.game,t,e,i)},audio:function(t,e,i,s){return this.game.sound.add(t,e,i,s)},sound:function(t,e,i,s){return this.game.sound.add(t,e,i,s)},tileSprite:function(t,e,i,s,r,o){return new n.TileSprite(this.game,t,e,i,s,r,o)},text:function(t,e,i,s){return new n.Text(this.game,t,e,i,s)},button:function(t,e,i,s,r,o,a,h,l){return new n.Button(this.game,t,e,i,s,r,o,a,h,l)},graphics:function(t,e){return new n.Graphics(this.game,t,e)},emitter:function(t,e,i){return new n.Particles.Arcade.Emitter(this.game,t,e,i)},retroFont:function(t,e,i,s,r,o,a,h,l){return new n.RetroFont(this.game,t,e,i,s,r,o,a,h,l)},bitmapText:function(t,e,i,s,r){return new n.BitmapText(this.game,t,e,i,s,r)},tilemap:function(t,e,i,s,r){return new n.Tilemap(this.game,t,e,i,s,r)},renderTexture:function(t,e,i,s){("undefined"==typeof i||""===i)&&(i=this.game.rnd.uuid()),"undefined"==typeof s&&(s=!1);var r=new n.RenderTexture(this.game,t,e,i);return s&&this.game.cache.addRenderTexture(i,r),r},bitmapData:function(t,e,i,s){"undefined"==typeof s&&(s=!1),("undefined"==typeof i||""===i)&&(i=this.game.rnd.uuid());var r=new n.BitmapData(this.game,i,t,e);return s&&this.game.cache.addBitmapData(i,r),r},filter:function(t){var e=Array.prototype.splice.call(arguments,1),t=new n.Filter[t](this.game);return t.init.apply(t,e),t}},n.GameObjectCreator.prototype.constructor=n.GameObjectCreator,n.BitmapData=function(t,e,i,r){"undefined"==typeof i&&(i=100),"undefined"==typeof r&&(r=100),this.game=t,this.key=e,this.width=i,this.height=r,this.canvas=n.Canvas.create(i,r,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,i,r),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new s.BaseTexture(this.canvas),this.texture=new s.Texture(this.baseTexture),this.textureFrame=new n.Frame(0,0,0,i,r,"bitmapData",t.rnd.uuid()),this.type=n.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this.update=this.refreshBuffer,this._tempR=0,this._tempG=0,this._tempB=0},n.BitmapData.prototype={add:function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)t[e].loadTexture&&t[e].loadTexture(this);else t.loadTexture(this)},clear:function(){this.context.clearRect(0,0,this.width,this.height),this.dirty=!0},fill:function(t,e,i,s){"undefined"==typeof s&&(s=1),this.context.fillStyle="rgba("+t+","+e+","+i+","+s+")",this.context.fillRect(0,0,this.width,this.height),this.dirty=!0},resize:function(t,e){(t!==this.width||e!==this.height)&&(this.width=t,this.height=e,this.canvas.width=t,this.canvas.height=e,this.textureFrame.width=t,this.textureFrame.height=e,this.refreshBuffer()),this.dirty=!0},refreshBuffer:function(t,e,i,s){"undefined"==typeof t&&(t=0),"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=this.width),"undefined"==typeof s&&(s=this.height),this.imageData=this.context.getImageData(t,e,i,s),this.data=this.imageData.data,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data},processPixelRGB:function(t,e,i,s,r,o){"undefined"==typeof i&&(i=0),"undefined"==typeof s&&(s=0),"undefined"==typeof r&&(r=this.width),"undefined"==typeof o&&(o=this.height);for(var a=i+r,h=s+o,l=n.Color.createColor(),u={r:0,g:0,b:0,a:0},c=!1,d=s;h>d;d++)for(var p=i;a>p;p++)n.Color.unpackPixel(this.getPixel32(p,d),l),u=t.call(e,l,p,d),u!==!1&&null!==u&&(this.setPixel32(p,d,u.r,u.g,u.b,u.a,!1),c=!0);c&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(t,e,i,s,n,r){"undefined"==typeof i&&(i=0),"undefined"==typeof s&&(s=0),"undefined"==typeof n&&(n=this.width),"undefined"==typeof r&&(r=this.height);for(var o=i+n,a=s+r,h=0,l=0,u=!1,c=s;a>c;c++)for(var d=i;o>d;d++)h=this.getPixel32(d,c),l=t.call(e,h,d,c),l!==h&&(this.pixels[c*this.width+d]=l,u=!0);
  u&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(t,e,i,s,r,o,a,h,l){var u=0,c=0,d=this.width,p=this.height,f=n.Color.packPixel(t,e,i,s);void 0!==l&&l instanceof n.Rectangle&&(u=l.x,c=l.y,d=l.width,p=l.height);for(var g=0;p>g;g++)for(var m=0;d>m;m++)this.getPixel32(u+m,c+g)===f&&this.setPixel32(u+m,c+g,r,o,a,h,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(t,e,i,s){if(("undefined"==typeof t||null===t)&&(t=!1),("undefined"==typeof e||null===e)&&(e=!1),("undefined"==typeof i||null===i)&&(i=!1),t||e||i){"undefined"==typeof s&&(s=new n.Rectangle(0,0,this.width,this.height));for(var r=n.Color.createColor(),o=s.y;o<s.bottom;o++)for(var a=s.x;a<s.right;a++)n.Color.unpackPixel(this.getPixel32(a,o),r,!0),t&&(r.h=t),e&&(r.s=e),i&&(r.l=i),n.Color.HSLtoRGB(r.h,r.s,r.l,r),this.setPixel32(a,o,r.r,r.g,r.b,r.a,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0}},shiftHSL:function(t,e,i,s){if(("undefined"==typeof t||null===t)&&(t=!1),("undefined"==typeof e||null===e)&&(e=!1),("undefined"==typeof i||null===i)&&(i=!1),t||e||i){"undefined"==typeof s&&(s=new n.Rectangle(0,0,this.width,this.height));for(var r=n.Color.createColor(),o=s.y;o<s.bottom;o++)for(var a=s.x;a<s.right;a++)n.Color.unpackPixel(this.getPixel32(a,o),r,!0),t&&(r.h=this.game.math.wrap(r.h+t,0,1)),e&&(r.s=this.game.math.limitValue(r.s+e,0,1)),i&&(r.l=this.game.math.limitValue(r.l+i,0,1)),n.Color.HSLtoRGB(r.h,r.s,r.l,r),this.setPixel32(a,o,r.r,r.g,r.b,r.a,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0}},setPixel32:function(t,e,i,s,r,o,a){"undefined"==typeof a&&(a=!0),t>=0&&t<=this.width&&e>=0&&e<=this.height&&(this.pixels[e*this.width+t]=n.Device.LITTLE_ENDIAN?o<<24|r<<16|s<<8|i:i<<24|s<<16|r<<8|o,a&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(t,e,i,s,n,r){this.setPixel32(t,e,i,s,n,255,r)},getPixel:function(t,e,i){i||(i=n.Color.createColor());var s=~~(t+e*this.width);return s*=4,this.data[s]&&(i.r=this.data[s],i.g=this.data[++s],i.b=this.data[++s],i.a=this.data[++s]),i},getPixel32:function(t,e){return t>=0&&t<=this.width&&e>=0&&e<=this.height?this.pixels[e*this.width+t]:void 0},getPixelRGB:function(t,e,i,s,r){return n.Color.unpackPixel(this.getPixel32(t,e),i,s,r)},getPixels:function(t){return this.context.getImageData(t.x,t.y,t.width,t.height)},copyPixels:function(t,e,i,s){"string"==typeof t&&(t=this.game.cache.getImage(t)),t&&this.context.drawImage(t,e.x,e.y,e.width,e.height,i,s,e.width,e.height),this.dirty=!0},draw:function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=0),"string"==typeof t&&(t=this.game.cache.getImage(t)),t&&this.context.drawImage(t,0,0,t.width,t.height,e,i,t.width,t.height),this.dirty=!0},drawSprite:function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=0);var s=t.texture.frame;this.context.drawImage(t.texture.baseTexture.source,s.x,s.y,s.width,s.height,e,i,s.width,s.height),this.dirty=!0},alphaMask:function(t,e){var i=this.context.globalCompositeOperation;"string"==typeof e&&(e=this.game.cache.getImage(e)),e&&this.context.drawImage(e,0,0),this.context.globalCompositeOperation="source-atop","string"==typeof t&&(t=this.game.cache.getImage(t)),t&&this.context.drawImage(t,0,0),this.context.globalCompositeOperation=i,this.dirty=!0},extract:function(t,e,i,s,n){return"undefined"==typeof n&&(n=255),this.processPixelRGB(function(r,o,a){return r.r===e&&r.g===i&&r.b===s&&t.setPixel32(o,a,e,i,s,n,!1),!1},this),t.context.putImageData(t.imageData,0,0),t.dirty=!0,t},circle:function(t,e,i,s){"undefined"!=typeof s&&(this.context.fillStyle=s),this.context.beginPath(),this.context.arc(t,e,i,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===n.WEBGL&&this.dirty&&(s.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},n.BitmapData.prototype.constructor=n.BitmapData,n.Sprite=function(t,e,i,r,o){e=e||0,i=i||0,r=r||null,o=o||null,this.game=t,this.name="",this.type=n.SPRITE,this.z=0,this.events=new n.Events(this),this.animations=new n.AnimationManager(this),this.key=r,this._frame=0,this._frameName="",s.Sprite.call(this,s.TextureCache.__default),this.loadTexture(r,o),this.position.set(e,i),this.world=new n.Point(e,i),this.autoCull=!1,this.input=null,this.body=null,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new n.Point,this._cache=[0,0,0,0,1,0,1,0,0],this._bounds=new n.Rectangle},n.Sprite.prototype=Object.create(s.Sprite.prototype),n.Sprite.prototype.constructor=n.Sprite,n.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var t=0,e=this.children.length;e>t;t++)this.children[t].preUpdate();return!0},n.Sprite.prototype.update=function(){},n.Sprite.prototype.postUpdate=function(){this.key instanceof n.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var t=0,e=this.children.length;e>t;t++)this.children[t].postUpdate()},n.Sprite.prototype.loadTexture=function(t,e){return e=e||0,t instanceof n.RenderTexture?(this.key=t.key,void this.setTexture(t)):t instanceof n.BitmapData?(this.key=t,void this.setTexture(t.texture)):t instanceof s.Texture?(this.key=t,void this.setTexture(t)):null===t||"undefined"==typeof t?(this.key="__default",void this.setTexture(s.TextureCache[this.key])):"string"!=typeof t||this.game.cache.checkImageKey(t)?this.game.cache.isSpriteSheet(t)?(this.key=t,this.animations.loadFrameData(this.game.cache.getFrameData(t)),"string"==typeof e?this.frameName=e:this.frame=e,void 0):(this.key=t,void this.setTexture(s.TextureCache[t])):(this.key="__missing",void this.setTexture(s.TextureCache[this.key]))},n.Sprite.prototype.crop=function(t){if("undefined"==typeof t||null===t)this.texture.hasOwnProperty("sourceWidth")&&this.texture.setFrame(new n.Rectangle(0,0,this.texture.sourceWidth,this.texture.sourceHeight));else if(this.texture instanceof s.Texture){var e={};n.Utils.extend(!0,e,this.texture),e.sourceWidth=e.width,e.sourceHeight=e.height,e.frame=t,e.width=t.width,e.height=t.height,this.texture=e,this.texture.updateFrame=!0,s.Texture.frameUpdates.push(this.texture)}else this.texture.setFrame(t)},n.Sprite.prototype.revive=function(t){return"undefined"==typeof t&&(t=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=t,this.events&&this.events.onRevived.dispatch(this),this},n.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},n.Sprite.prototype.destroy=function(t){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var e=this.children.length;if(t)for(;e--;)this.children[e].destroy(t);else for(;e--;)this.removeChild(this.children[e]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},n.Sprite.prototype.damage=function(t){return this.alive&&(this.health-=t,this.health<=0&&this.kill()),this},n.Sprite.prototype.reset=function(t,e,i){return"undefined"==typeof i&&(i=1),this.world.setTo(t,e),this.position.x=t,this.position.y=e,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=i,this.body&&this.body.reset(t,e,!1,!1),this._cache[4]=1,this},n.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},n.Sprite.prototype.play=function(t,e,i,s){return this.animations?this.animations.play(t,e,i,s):void 0},n.Sprite.prototype.overlap=function(t){return n.Rectangle.intersects(this.getBounds(),t.getBounds())},Object.defineProperty(n.Sprite.prototype,"angle",{get:function(){return n.Math.wrapAngle(n.Math.radToDeg(this.rotation))},set:function(t){this.rotation=n.Math.degToRad(n.Math.wrapAngle(t))}}),Object.defineProperty(n.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(n.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(n.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(n.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(n.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(n.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(t){this.animations.frame=t}}),Object.defineProperty(n.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(t){this.animations.frameName=t}}),Object.defineProperty(n.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(n.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(t){t?null===this.input?(this.input=new n.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(n.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(t){t?(this._cache[6]=1,this.body&&this.body.type===n.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===n.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(n.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(t){t?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(n.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(t){this.position.x=t,this.body&&this.body.type===n.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(n.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(t){this.position.y=t,this.body&&this.body.type===n.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(n.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.Image=function(t,e,i,r,o){e=e||0,i=i||0,r=r||null,o=o||null,this.game=t,this.exists=!0,this.name="",this.type=n.IMAGE,this.z=0,this.events=new n.Events(this),this.key=r,this._frame=0,this._frameName="",s.Sprite.call(this,s.TextureCache.__default),this.loadTexture(r,o),this.position.set(e,i),this.world=new n.Point(e,i),this.autoCull=!1,this.input=null,this.cameraOffset=new n.Point,this._cache=[0,0,0,0,1,0,1,0,0]},n.Image.prototype=Object.create(s.Sprite.prototype),n.Image.prototype.constructor=n.Image,n.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var t=0,e=this.children.length;e>t;t++)this.children[t].preUpdate();return!0},n.Image.prototype.update=function(){},n.Image.prototype.postUpdate=function(){this.key instanceof n.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var t=0,e=this.children.length;e>t;t++)this.children[t].postUpdate()},n.Image.prototype.loadTexture=function(t,e){if(e=e||0,t instanceof n.RenderTexture)return this.key=t.key,void this.setTexture(t);if(t instanceof n.BitmapData)return this.key=t,void this.setTexture(t.texture);if(t instanceof s.Texture)return this.key=t,void this.setTexture(t);if(null===t||"undefined"==typeof t)return this.key="__default",void this.setTexture(s.TextureCache[this.key]);if("string"==typeof t&&!this.game.cache.checkImageKey(t))return this.key="__missing",void this.setTexture(s.TextureCache[this.key]);if(this.game.cache.isSpriteSheet(t)){this.key=t;var i=this.game.cache.getFrameData(t);return"string"==typeof e?(this._frame=0,this._frameName=e,void this.setTexture(s.TextureCache[i.getFrameByName(e).uuid])):(this._frame=e,this._frameName="",void this.setTexture(s.TextureCache[i.getFrame(e).uuid]))}return this.key=t,void this.setTexture(s.TextureCache[t])},n.Image.prototype.crop=function(t){if("undefined"==typeof t||null===t)this.texture.hasOwnProperty("sourceWidth")&&this.texture.setFrame(new n.Rectangle(0,0,this.texture.sourceWidth,this.texture.sourceHeight));else if(this.texture instanceof s.Texture){var e={};n.Utils.extend(!0,e,this.texture),e.sourceWidth=e.width,e.sourceHeight=e.height,e.frame=t,e.width=t.width,e.height=t.height,this.texture=e,this.texture.updateFrame=!0,s.Texture.frameUpdates.push(this.texture)}else this.texture.setFrame(t)},n.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},n.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},n.Image.prototype.destroy=function(t){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy();var e=this.children.length;if(t)for(;e--;)this.children[e].destroy(t);else for(;e--;)this.removeChild(this.children[e]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},n.Image.prototype.reset=function(t,e){return this.world.setTo(t,e),this.position.x=t,this.position.y=e,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},n.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},Object.defineProperty(n.Image.prototype,"angle",{get:function(){return n.Math.wrapAngle(n.Math.radToDeg(this.rotation))},set:function(t){this.rotation=n.Math.degToRad(n.Math.wrapAngle(t))}}),Object.defineProperty(n.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(n.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(n.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(n.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(n.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(n.Image.prototype,"frame",{get:function(){return this._frame},set:function(t){if(t!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var e=this.game.cache.getFrameData(this.key);e&&t<e.total&&e.getFrame(t)&&(this.setTexture(s.TextureCache[e.getFrame(t).uuid]),this._frame=t)}}}),Object.defineProperty(n.Image.prototype,"frameName",{get:function(){return this._frameName},set:function(t){if(t!==this.frameName&&this.game.cache.isSpriteSheet(this.key)){var e=this.game.cache.getFrameData(this.key);e&&e.getFrameByName(t)&&(this.setTexture(s.TextureCache[e.getFrameByName(t).uuid]),this._frameName=t)}}}),Object.defineProperty(n.Image.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(n.Image.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(t){t?null===this.input?(this.input=new n.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(n.Image.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.Image.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(t){t?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(n.Image.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.TileSprite=function(t,e,i,r,o,a,h){e=e||0,i=i||0,r=r||256,o=o||256,a=a||null,h=h||null,this.game=t,this.name="",this.type=n.TILESPRITE,this.z=0,this.events=new n.Events(this),this.animations=new n.AnimationManager(this),this.key=a,this._frame=0,this._frameName="",this._scroll=new n.Point,s.TilingSprite.call(this,s.TextureCache.__default,r,o),this.loadTexture(a,h),this.position.set(e,i),this.input=null,this.world=new n.Point(e,i),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new n.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0]},n.TileSprite.prototype=Object.create(s.TilingSprite.prototype),n.TileSprite.prototype.constructor=n.TileSprite,n.TileSprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var t=0,e=this.children.length;e>t;t++)this.children[t].preUpdate();return!0},n.TileSprite.prototype.update=function(){},n.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var t=0,e=this.children.length;e>t;t++)this.children[t].postUpdate()},n.TileSprite.prototype.autoScroll=function(t,e){this._scroll.set(t,e)},n.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},n.TileSprite.prototype.loadTexture=function(t,e){return e=e||0,t instanceof n.RenderTexture?(this.key=t.key,void this.setTexture(t)):t instanceof n.BitmapData?(this.key=t,void this.setTexture(t.texture)):t instanceof s.Texture?(this.key=t,void this.setTexture(t)):null===t||"undefined"==typeof t?(this.key="__default",void this.setTexture(s.TextureCache[this.key])):"string"!=typeof t||this.game.cache.checkImageKey(t)?this.game.cache.isSpriteSheet(t)?(this.key=t,this.animations.loadFrameData(this.game.cache.getFrameData(t)),"string"==typeof e?this.frameName=e:this.frame=e,void 0):(this.key=t,void this.setTexture(s.TextureCache[t])):(this.key="__missing",void this.setTexture(s.TextureCache[this.key]))},n.TileSprite.prototype.destroy=function(t){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var e=this.children.length;if(t)for(;e--;)this.children[e].destroy(t);else for(;e--;)this.removeChild(this.children[e]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},n.TileSprite.prototype.play=function(t,e,i,s){return this.animations.play(t,e,i,s)},n.TileSprite.prototype.reset=function(t,e){return this.world.setTo(t,e),this.position.x=t,this.position.y=e,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(t,e,!1,!1),this._cache[4]=1,this},Object.defineProperty(n.TileSprite.prototype,"angle",{get:function(){return n.Math.wrapAngle(n.Math.radToDeg(this.rotation))},set:function(t){this.rotation=n.Math.degToRad(n.Math.wrapAngle(t))}}),Object.defineProperty(n.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(t){t!==this.animations.frame&&(this.animations.frame=t)}}),Object.defineProperty(n.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(t){t!==this.animations.frameName&&(this.animations.frameName=t)}}),Object.defineProperty(n.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(t){t?(this._cache[6]=1,this.body&&this.body.type===n.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===n.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(n.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(t){t?null===this.input?(this.input=new n.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(n.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(t){this.position.x=t,this.body&&this.body.type===n.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(n.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(t){this.position.y=t,this.body&&this.body.type===n.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(n.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.Text=function(t,e,i,r,o){e=e||0,i=i||0,r=r||" ",o=o||{},r=0===r.length?" ":r.toString(),this.game=t,this.exists=!0,this.name="",this.type=n.TEXT,this.z=0,this.world=new n.Point(e,i),this._text=r,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new n.Events(this),this.input=null,this.cameraOffset=new n.Point,this.setStyle(o),s.Text.call(this,r,this.style),this.position.set(e,i),this._cache=[0,0,0,0,1,0,1,0,0]},n.Text.prototype=Object.create(s.Text.prototype),n.Text.prototype.constructor=n.Text,n.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var t=0,e=this.children.length;e>t;t++)this.children[t].preUpdate();return!0},n.Text.prototype.update=function(){},n.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var t=0,e=this.children.length;e>t;t++)this.children[t].postUpdate()},n.Text.prototype.destroy=function(t){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var e=this.children.length;if(t)for(;e--;)this.children[e].destroy(t);else for(;e--;)this.removeChild(this.children[e]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},n.Text.prototype.setShadow=function(t,e,i,s){this.style.shadowOffsetX=t||0,this.style.shadowOffsetY=e||0,this.style.shadowColor=i||"rgba(0,0,0,0)",this.style.shadowBlur=s||0,this.dirty=!0},n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,t.shadowOffsetX=t.shadowOffsetX||0,t.shadowOffsetY=t.shadowOffsetY||0,t.shadowColor=t.shadowColor||"rgba(0,0,0,0)",t.shadowBlur=t.shadowBlur||0,this.style=t,this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.runWordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],n=0,r=0;r<e.length;r++){var o=this.context.measureText(e[r]).width;i[r]=o,n=Math.max(n,o)}this.canvas.width=n+this.style.strokeThickness;var a=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness+this._lineSpacing+this.style.shadowOffsetY;for(this.canvas.height=a*e.length,navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.shadowOffsetX=this.style.shadowOffsetX,this.context.shadowOffsetY=this.style.shadowOffsetY,this.context.shadowColor=this.style.shadowColor,this.context.shadowBlur=this.style.shadowBlur,this.context.textBaseline="top",this.context.lineCap="round",this.context.lineJoin="round",r=0;r<e.length;r++){var h=new s.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*a);"right"===this.style.align?h.x+=n-i[r]:"center"===this.style.align&&(h.x+=(n-i[r])/2),h.y+=this._lineSpacing,this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[r],h.x,h.y),this.style.fill&&this.context.fillText(e[r],h.x,h.y)}this.updateTexture()},n.Text.prototype.runWordWrap=function(t){for(var e="",i=t.split("\n"),s=0;s<i.length;s++){for(var n=this.style.wordWrapWidth,r=i[s].split(" "),o=0;o<r.length;o++){var a=this.context.measureText(r[o]).width,h=a+this.context.measureText(" ").width;h>n?(o>0&&(e+="\n"),e+=r[o]+" ",n=this.style.wordWrapWidth-a):(n-=h,e+=r[o]+" ")}s<i.length-1&&(e+="\n")}return e},Object.defineProperty(n.Text.prototype,"angle",{get:function(){return n.Math.radToDeg(this.rotation)},set:function(t){this.rotation=n.Math.degToRad(t)}}),Object.defineProperty(n.Text.prototype,"text",{get:function(){return this._text},set:function(t){t!==this._text&&(this._text=t.toString()||" ",this.dirty=!0,this.updateTransform())}}),Object.defineProperty(n.Text.prototype,"font",{get:function(){return this._font},set:function(t){t!==this._font&&(this._font=t.trim(),this.style.font=this._fontWeight+" "+this._fontSize+"px '"+this._font+"'",this.dirty=!0,this.updateTransform())}}),Object.defineProperty(n.Text.prototype,"fontSize",{get:function(){return this._fontSize},set:function(t){t=parseInt(t,10),t!==this._fontSize&&(this._fontSize=t,this.style.font=this._fontWeight+" "+this._fontSize+"px '"+this._font+"'",this.dirty=!0,this.updateTransform())}}),Object.defineProperty(n.Text.prototype,"fontWeight",{get:function(){return this._fontWeight},set:function(t){t!==this._fontWeight&&(this._fontWeight=t,this.style.font=this._fontWeight+" "+this._fontSize+"px '"+this._font+"'",this.dirty=!0,this.updateTransform())}}),Object.defineProperty(n.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(t){t!==this.style.fill&&(this.style.fill=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"align",{get:function(){return this.style.align},set:function(t){t!==this.style.align&&(this.style.align=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(t){t!==this.style.stroke&&(this.style.stroke=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(t){t!==this.style.strokeThickness&&(this.style.strokeThickness=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(t){t!==this.style.wordWrap&&(this.style.wordWrap=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(t){t!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(t){t!==this._lineSpacing&&(this._lineSpacing=parseFloat(t),this.dirty=!0,this.updateTransform())}}),Object.defineProperty(n.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(t){t!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(t){t!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(t){t!==this.style.shadowColor&&(this.style.shadowColor=t,this.dirty=!0)}}),Object.defineProperty(n.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(t){t!==this.style.shadowBlur&&(this.style.shadowBlur=t,this.dirty=!0)
  }}),Object.defineProperty(n.Text.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(t){t?null===this.input?(this.input=new n.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(n.Text.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.Text.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.BitmapText=function(t,e,i,r,o,a){e=e||0,i=i||0,r=r||"",o=o||"",a=a||32,this.game=t,this.exists=!0,this.name="",this.type=n.BITMAPTEXT,this.z=0,this.world=new n.Point(e,i),this._text=o,this._font=r,this._fontSize=a,this._align="left",this._tint=16777215,this.events=new n.Events(this),this.input=null,this.cameraOffset=new n.Point,s.BitmapText.call(this,o),this.position.set(e,i),this._cache=[0,0,0,0,1,0,1,0,0]},n.BitmapText.prototype=Object.create(s.BitmapText.prototype),n.BitmapText.prototype.constructor=n.BitmapText,n.BitmapText.prototype.setStyle=function(){this.style={align:this._align},this.fontName=this._font,this.fontSize=this._fontSize,this.dirty=!0},n.BitmapText.prototype.preUpdate=function(){return this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.exists&&this.parent.exists?(this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),!0):(this.renderOrderID=-1,!1)},n.BitmapText.prototype.update=function(){},n.BitmapText.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},n.BitmapText.prototype.destroy=function(t){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this));var e=this.children.length;if(t)for(;e--;)this.children[e].destroy?this.children[e].destroy(t):this.removeChild(this.children[e]);else for(;e--;)this.removeChild(this.children[e]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},Object.defineProperty(n.BitmapText.prototype,"align",{get:function(){return this._align},set:function(t){t!==this._align&&(this._align=t,this.setStyle())}}),Object.defineProperty(n.BitmapText.prototype,"tint",{get:function(){return this._tint},set:function(t){t!==this._tint&&(this._tint=t,this.dirty=!0)}}),Object.defineProperty(n.BitmapText.prototype,"angle",{get:function(){return n.Math.radToDeg(this.rotation)},set:function(t){this.rotation=n.Math.degToRad(t)}}),Object.defineProperty(n.BitmapText.prototype,"font",{get:function(){return this._font},set:function(t){t!==this._font&&(this._font=t.trim(),this.style.font=this._fontSize+"px '"+this._font+"'",this.dirty=!0)}}),Object.defineProperty(n.BitmapText.prototype,"fontSize",{get:function(){return this._fontSize},set:function(t){t=parseInt(t,10),t!==this._fontSize&&(this._fontSize=t,this.style.font=this._fontSize+"px '"+this._font+"'",this.dirty=!0)}}),Object.defineProperty(n.BitmapText.prototype,"text",{get:function(){return this._text},set:function(t){t!==this._text&&(this._text=t.toString()||" ",this.dirty=!0)}}),Object.defineProperty(n.BitmapText.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(t){t?null===this.input?(this.input=new n.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(n.BitmapText.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.BitmapText.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.Button=function(t,e,i,s,r,o,a,h,l,u){e=e||0,i=i||0,s=s||null,r=r||null,o=o||this,n.Image.call(this,t,e,i,s,h),this.type=n.BUTTON,this._onOverFrameName=null,this._onOutFrameName=null,this._onDownFrameName=null,this._onUpFrameName=null,this._onOverFrameID=null,this._onOutFrameID=null,this._onDownFrameID=null,this._onUpFrameID=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new n.Signal,this.onInputOut=new n.Signal,this.onInputDown=new n.Signal,this.onInputUp=new n.Signal,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.setFrames(a,h,l,u),null!==r&&this.onInputUp.add(r,o),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this)},n.Button.prototype=Object.create(n.Image.prototype),n.Button.prototype.constructor=n.Button,n.Button.prototype.clearFrames=function(){this._onOverFrameName=null,this._onOverFrameID=null,this._onOutFrameName=null,this._onOutFrameID=null,this._onDownFrameName=null,this._onDownFrameID=null,this._onUpFrameName=null,this._onUpFrameID=null},n.Button.prototype.setFrames=function(t,e,i,s){this.clearFrames(),null!==t&&("string"==typeof t?(this._onOverFrameName=t,this.input.pointerOver()&&(this.frameName=t)):(this._onOverFrameID=t,this.input.pointerOver()&&(this.frame=t))),null!==e&&("string"==typeof e?(this._onOutFrameName=e,this.input.pointerOver()===!1&&(this.frameName=e)):(this._onOutFrameID=e,this.input.pointerOver()===!1&&(this.frame=e))),null!==i&&("string"==typeof i?(this._onDownFrameName=i,this.input.pointerDown()&&(this.frameName=i)):(this._onDownFrameID=i,this.input.pointerDown()&&(this.frame=i))),null!==s&&("string"==typeof s?(this._onUpFrameName=s,this.input.pointerUp()&&(this.frameName=s)):(this._onUpFrameID=s,this.input.pointerUp()&&(this.frame=s)))},n.Button.prototype.setSounds=function(t,e,i,s,n,r,o,a){this.setOverSound(t,e),this.setOutSound(n,r),this.setDownSound(i,s),this.setUpSound(o,a)},n.Button.prototype.setOverSound=function(t,e){this.onOverSound=null,this.onOverSoundMarker="",t instanceof n.Sound&&(this.onOverSound=t),"string"==typeof e&&(this.onOverSoundMarker=e)},n.Button.prototype.setOutSound=function(t,e){this.onOutSound=null,this.onOutSoundMarker="",t instanceof n.Sound&&(this.onOutSound=t),"string"==typeof e&&(this.onOutSoundMarker=e)},n.Button.prototype.setDownSound=function(t,e){this.onDownSound=null,this.onDownSoundMarker="",t instanceof n.Sound&&(this.onDownSound=t),"string"==typeof e&&(this.onDownSoundMarker=e)},n.Button.prototype.setUpSound=function(t,e){this.onUpSound=null,this.onUpSoundMarker="",t instanceof n.Sound&&(this.onUpSound=t),"string"==typeof e&&(this.onUpSoundMarker=e)},n.Button.prototype.onInputOverHandler=function(t,e){this.freezeFrames===!1&&this.setState(1),this.onOverSound&&this.onOverSound.play(this.onOverSoundMarker),this.onInputOver&&this.onInputOver.dispatch(this,e)},n.Button.prototype.onInputOutHandler=function(t,e){this.freezeFrames===!1&&this.setState(2),this.onOutSound&&this.onOutSound.play(this.onOutSoundMarker),this.onInputOut&&this.onInputOut.dispatch(this,e)},n.Button.prototype.onInputDownHandler=function(t,e){this.freezeFrames===!1&&this.setState(3),this.onDownSound&&this.onDownSound.play(this.onDownSoundMarker),this.onInputDown&&this.onInputDown.dispatch(this,e)},n.Button.prototype.onInputUpHandler=function(t,e,i){this.onUpSound&&this.onUpSound.play(this.onUpSoundMarker),this.onInputUp&&this.onInputUp.dispatch(this,e,i),this.freezeFrames||this.setState(this.forceOut?2:null!==this._onUpFrameName||null!==this._onUpFrameID?4:i?1:2)},n.Button.prototype.setState=function(t){1===t?null!=this._onOverFrameName?this.frameName=this._onOverFrameName:null!=this._onOverFrameID&&(this.frame=this._onOverFrameID):2===t?null!=this._onOutFrameName?this.frameName=this._onOutFrameName:null!=this._onOutFrameID&&(this.frame=this._onOutFrameID):3===t?null!=this._onDownFrameName?this.frameName=this._onDownFrameName:null!=this._onDownFrameID&&(this.frame=this._onDownFrameID):4===t&&(null!=this._onUpFrameName?this.frameName=this._onUpFrameName:null!=this._onUpFrameID&&(this.frame=this._onUpFrameID))},n.Graphics=function(t,e,i){e=e||0,i=i||0,this.game=t,this.exists=!0,this.name="",this.type=n.GRAPHICS,this.z=0,this.world=new n.Point(e,i),this.cameraOffset=new n.Point,s.Graphics.call(this),this.position.set(e,i),this._cache=[0,0,0,0,1,0,1,0,0]},n.Graphics.prototype=Object.create(s.Graphics.prototype),n.Graphics.prototype.constructor=n.Graphics,n.Graphics.prototype.preUpdate=function(){return this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.exists&&this.parent.exists?(this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),!0):(this.renderOrderID=-1,!1)},n.Graphics.prototype.update=function(){},n.Graphics.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},n.Graphics.prototype.destroy=function(t){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof t&&(t=!0),this._cache[8]=1,this.clear(),this.parent&&(this.parent instanceof n.Group?this.parent.remove(this):this.parent.removeChild(this));var e=this.children.length;if(t)for(;e--;)this.children[e].destroy(t);else for(;e--;)this.removeChild(this.children[e]);this.exists=!1,this.visible=!1,this.game=null,this._cache[8]=0}},n.Graphics.prototype.drawPolygon=function(t){this.moveTo(t.points[0].x,t.points[0].y);for(var e=1;e<t.points.length;e+=1)this.lineTo(t.points[e].x,t.points[e].y);this.lineTo(t.points[0].x,t.points[0].y)},Object.defineProperty(n.Graphics.prototype,"angle",{get:function(){return n.Math.radToDeg(this.rotation)},set:function(t){this.rotation=n.Math.degToRad(t)}}),Object.defineProperty(n.Graphics.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(t){t?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(n.Graphics.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),n.RenderTexture=function(t,e,i,r){this.game=t,this.key=r,this.type=n.RENDERTEXTURE,this._temp=new n.Point,s.RenderTexture.call(this,e,i)},n.RenderTexture.prototype=Object.create(s.RenderTexture.prototype),n.RenderTexture.prototype.constructor=n.RenderTexture,n.RenderTexture.prototype.renderXY=function(t,e,i,s){this._temp.set(e,i),this.render(t,this._temp,s)},n.SpriteBatch=function(t,e,i,r){s.SpriteBatch.call(this),n.Group.call(this,t,e,i,r),this.type=n.SPRITEBATCH},n.SpriteBatch.prototype=n.Utils.extend(!0,n.SpriteBatch.prototype,n.Group.prototype,s.SpriteBatch.prototype),n.SpriteBatch.prototype.constructor=n.SpriteBatch,n.RetroFont=function(t,e,i,r,o,a,h,l,u,c){this.characterWidth=i,this.characterHeight=r,this.characterSpacingX=h||0,this.characterSpacingY=l||0,this.characterPerRow=a,this.offsetX=u||0,this.offsetY=c||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=t.cache.getImage(e),this._text="",this.grabData=[];for(var d=this.offsetX,p=this.offsetY,f=0,g=new n.FrameData,m=0;m<o.length;m++){var y=t.rnd.uuid(),v=g.addFrame(new n.Frame(m,d,p,this.characterWidth,this.characterHeight,"",y));this.grabData[o.charCodeAt(m)]=v.index,s.TextureCache[y]=new s.Texture(s.BaseTextureCache[e],{x:d,y:p,width:this.characterWidth,height:this.characterHeight}),f++,f==this.characterPerRow?(f=0,d=this.offsetX,p+=this.characterHeight+this.characterSpacingY):d+=this.characterWidth+this.characterSpacingX}t.cache.updateFrameData(e,g),this.stamp=new n.Image(t,0,0,e,0),n.RenderTexture.call(this,t),this.type=n.RETROFONT},n.RetroFont.prototype=Object.create(n.RenderTexture.prototype),n.RetroFont.prototype.constructor=n.RetroFont,n.RetroFont.ALIGN_LEFT="left",n.RetroFont.ALIGN_RIGHT="right",n.RetroFont.ALIGN_CENTER="center",n.RetroFont.TEXT_SET1=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",n.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",n.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",n.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",n.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",n.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",n.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",n.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",n.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",n.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",n.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",n.RetroFont.prototype.setFixedWidth=function(t,e){"undefined"==typeof e&&(e="left"),this.fixedWidth=t,this.align=e},n.RetroFont.prototype.setText=function(t,e,i,s,n,r){this.multiLine=e||!1,this.customSpacingX=i||0,this.customSpacingY=s||0,this.align=n||"left",this.autoUpperCase=r?!1:!0,t.length>0&&(this.text=t)},n.RetroFont.prototype.resize=function(t,e){if(this.width=t,this.height=e,this.frame.width=this.width,this.frame.height=this.height,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.renderer.type===s.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var i=this.renderer.gl;i.bindTexture(i.TEXTURE_2D,this.baseTexture._glTextures[i.id]),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);s.Texture.frameUpdates.push(this)},n.RetroFont.prototype.buildRetroFontText=function(){var t=0,e=0;if(this.multiLine){var i=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,i.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),i.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY),this.textureBuffer.clear();for(var s=0;s<i.length;s++){switch(this.align){case n.RetroFont.ALIGN_LEFT:t=0;break;case n.RetroFont.ALIGN_RIGHT:t=this.width-i[s].length*(this.characterWidth+this.customSpacingX);break;case n.RetroFont.ALIGN_CENTER:t=this.width/2-i[s].length*(this.characterWidth+this.customSpacingX)/2,t+=this.customSpacingX/2}0>t&&(t=0),this.pasteLine(i[s],t,e,this.customSpacingX),e+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight),this.textureBuffer.clear(),this.align){case n.RetroFont.ALIGN_LEFT:t=0;break;case n.RetroFont.ALIGN_RIGHT:t=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case n.RetroFont.ALIGN_CENTER:t=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,t+=this.customSpacingX/2}this.pasteLine(this._text,t,0,this.customSpacingX)}},n.RetroFont.prototype.pasteLine=function(t,e,i,s){for(var r=new n.Point,o=0;o<t.length;o++)if(" "==t.charAt(o))e+=this.characterWidth+s;else if(this.grabData[t.charCodeAt(o)]>=0&&(this.stamp.frame=this.grabData[t.charCodeAt(o)],r.set(e,i),this.render(this.stamp,r,!1),e+=this.characterWidth+s,e>this.width))break},n.RetroFont.prototype.getLongestLine=function(){var t=0;if(this._text.length>0)for(var e=this._text.split("\n"),i=0;i<e.length;i++)e[i].length>t&&(t=e[i].length);return t},n.RetroFont.prototype.removeUnsupportedCharacters=function(t){for(var e="",i=0;i<this._text.length;i++){var s=this._text[i],n=s.charCodeAt(0);(this.grabData[n]>=0||!t&&"\n"===s)&&(e=e.concat(s))}return e},Object.defineProperty(n.RetroFont.prototype,"text",{get:function(){return this._text},set:function(t){var e;e=this.autoUpperCase?t.toUpperCase():t,e!==this._text&&(this._text=e,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),n.Particle=function(t,e,i,s,r){n.Sprite.call(this,t,e,i,s,r),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},n.Particle.prototype=Object.create(n.Sprite.prototype),n.Particle.prototype.constructor=n.Particle,n.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},n.Particle.prototype.onEmit=function(){},n.Particle.prototype.setAlphaData=function(t){this.alphaData=t,this._a=t.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},n.Particle.prototype.setScaleData=function(t){this.scaleData=t,this._s=t.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},n.Particle.prototype.reset=function(t,e,i){return"undefined"==typeof i&&(i=1),this.world.setTo(t,e),this.position.x=t,this.position.y=e,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=i,this.body&&this.body.reset(t,e,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},n.Canvas={create:function(t,e,i,s){if("undefined"==typeof s&&(s=!1),t=t||256,e=e||256,s)var n=document.createElement("canvas");else var n=document.createElement(navigator.isCocoonJS?"screencanvas":"canvas");return"string"==typeof i&&""!==i&&(n.id=i),n.width=t,n.height=e,n.style.display="block",n},getOffset:function(t,e){e=e||new n.Point;var i=t.getBoundingClientRect(),s=t.clientTop||document.body.clientTop||0,r=t.clientLeft||document.body.clientLeft||0,o=0,a=0;return"CSS1Compat"===document.compatMode?(o=window.pageYOffset||document.documentElement.scrollTop||t.scrollTop||0,a=window.pageXOffset||document.documentElement.scrollLeft||t.scrollLeft||0):(o=window.pageYOffset||document.body.scrollTop||t.scrollTop||0,a=window.pageXOffset||document.body.scrollLeft||t.scrollLeft||0),e.x=i.left+a-r,e.y=i.top+o-s,e},getAspectRatio:function(t){return t.width/t.height},setBackgroundColor:function(t,e){return e=e||"rgb(0,0,0)",t.style.backgroundColor=e,t},setTouchAction:function(t,e){return e=e||"none",t.style.msTouchAction=e,t.style["ms-touch-action"]=e,t.style["touch-action"]=e,t},setUserSelect:function(t,e){return e=e||"none",t.style["-webkit-touch-callout"]=e,t.style["-webkit-user-select"]=e,t.style["-khtml-user-select"]=e,t.style["-moz-user-select"]=e,t.style["-ms-user-select"]=e,t.style["user-select"]=e,t.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",t},addToDOM:function(t,e,i){var s;return"undefined"==typeof i&&(i=!0),e&&("string"==typeof e?s=document.getElementById(e):"object"==typeof e&&1===e.nodeType&&(s=e)),s||(s=document.body),i&&s.style&&(s.style.overflow="hidden"),s.appendChild(t),t},setTransform:function(t,e,i,s,n,r,o){return t.setTransform(s,r,o,n,e,i),t},setSmoothingEnabled:function(t,e){return t.imageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.oImageSmoothingEnabled=e,t.webkitImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e,t},setImageRenderingCrisp:function(t){return t.style["image-rendering"]="optimizeSpeed",t.style["image-rendering"]="crisp-edges",t.style["image-rendering"]="-moz-crisp-edges",t.style["image-rendering"]="-webkit-optimize-contrast",t.style["image-rendering"]="optimize-contrast",t.style.msInterpolationMode="nearest-neighbor",t},setImageRenderingBicubic:function(t){return t.style["image-rendering"]="auto",t.style.msInterpolationMode="bicubic",t}},n.Device=function(t){this.game=t,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkOS()},n.Device.LITTLE_ENDIAN=!1,n.Device.prototype={_checkOS:function(){var t=navigator.userAgent;/Android/.test(t)?this.android=!0:/CrOS/.test(t)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(t)?this.iOS=!0:/Linux/.test(t)?this.linux=!0:/Mac OS/.test(t)?this.macOS=!0:/Windows/.test(t)&&(this.windows=!0,/Windows Phone/i.test(t)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(t)&&/Touch/i.test(t))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(t){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var t=document.createElement("canvas");return!!window.WebGLRenderingContext&&(t.getContext("webgl")||t.getContext("experimental-webgl"))}catch(e){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var t=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],e=0;e<t.length;e++)this.game.canvas[t[e]]&&(this.fullscreen=!0,this.requestFullscreen=t[e]);var i=["cancelFullScreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","msCancelFullScreen","msExitFullscreen","mozCancelFullScreen","mozExitFullscreen"];if(this.fullscreen)for(var e=0;e<i.length;e++)this.game.canvas[i[e]]&&(this.cancelFullscreen=i[e]);window.Element&&Element.ALLOW_KEYBOARD_INPUT&&(this.fullscreenKeyboard=!0)},_checkBrowser:function(){var t=navigator.userAgent;/Arora/.test(t)?this.arora=!0:/Chrome/.test(t)?this.chrome=!0:/Epiphany/.test(t)?this.epiphany=!0:/Firefox/.test(t)?this.firefox=!0:/Mobile Safari/.test(t)?this.mobileSafari=!0:/MSIE (\d+\.\d+);/.test(t)?(this.ie=!0,this.ieVersion=parseInt(RegExp.$1,10)):/Midori/.test(t)?this.midori=!0:/Opera/.test(t)?this.opera=!0:/Safari/.test(t)?this.safari=!0:/Silk/.test(t)?this.silk=!0:/Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(t)&&(this.ie=!0,this.trident=!0,this.tridentVersion=parseInt(RegExp.$1,10),this.ieVersion=parseInt(RegExp.$3,10)),navigator.standalone&&(this.webApp=!0),navigator.isCocoonJS&&(this.cocoonJS=!0),"undefined"!=typeof window.ejecta&&(this.ejecta=!0),/Crosswalk/.test(t)&&(this.crosswalk=!0)},_checkAudio:function(){this.audioData=!!window.Audio,this.webAudio=!(!window.webkitAudioContext&&!window.AudioContext);var t=document.createElement("audio"),e=!1;try{(e=!!t.canPlayType)&&(t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")&&(this.ogg=!0),t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,"")&&(this.opus=!0),t.canPlayType("audio/mpeg;").replace(/^no$/,"")&&(this.mp3=!0),t.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")&&(this.wav=!0),(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/aac;").replace(/^no$/,""))&&(this.m4a=!0),t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")&&(this.webm=!0))}catch(i){}},_checkDevice:function(){this.pixelRatio=window.devicePixelRatio||1,this.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),this.iPhone4=2==this.pixelRatio&&this.iPhone,this.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),this.typedArray="undefined"!=typeof Int8Array?!0:!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(this.littleEndian=this._checkIsLittleEndian(),n.Device.LITTLE_ENDIAN=this.littleEndian),this.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==this.littleEndian&&this._checkIsUint8ClampedImageData(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(this.vibration=!0)},_checkIsLittleEndian:function(){var t=new ArrayBuffer(4),e=new Uint8Array(t),i=new Uint32Array(t);return e[0]=161,e[1]=178,e[2]=195,e[3]=212,3569595041==i[0]?!0:2712847316==i[0]?!1:null},_checkIsUint8ClampedImageData:function(){if("undefined"==typeof Uint8ClampedArray)return!1;var t=document.createElement("canvas"),e=t.getContext("2d");if(!e)return!1;var i=e.createImageData(1,1);return i.data instanceof Uint8ClampedArray},_checkCSS3D:function(){var t,e=document.createElement("p"),i={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(e,null);for(var s in i)void 0!==e.style[s]&&(e.style[s]="translate3d(1px,1px,1px)",t=window.getComputedStyle(e).getPropertyValue(i[s]));document.body.removeChild(e),this.css3D=void 0!==t&&t.length>0&&"none"!==t},canPlayAudio:function(t){return"mp3"==t&&this.mp3?!0:"ogg"==t&&(this.ogg||this.opus)?!0:"m4a"==t&&this.m4a?!0:"wav"==t&&this.wav?!0:"webm"==t&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},n.Device.prototype.constructor=n.Device,n.RequestAnimationFrame=function(t,e){"undefined"==typeof e&&(e=!1),this.game=t,this.isRunning=!1,this.forceSetTimeOut=e;for(var i=["ms","moz","webkit","o"],s=0;s<i.length&&!window.requestAnimationFrame;s++)window.requestAnimationFrame=window[i[s]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[i[s]+"CancelAnimationFrame"];this._isSetTimeOut=!1,this._onLoop=null,this._timeOutID=null},n.RequestAnimationFrame.prototype={start:function(){this.isRunning=!0;var t=this;!window.requestAnimationFrame||this.forceSetTimeOut?(this._isSetTimeOut=!0,this._onLoop=function(){return t.updateSetTimeout()},this._timeOutID=window.setTimeout(this._onLoop,0)):(this._isSetTimeOut=!1,this._onLoop=function(e){return t.updateRAF(e)},this._timeOutID=window.requestAnimationFrame(this._onLoop))},updateRAF:function(){this.game.update(Date.now()),this._timeOutID=window.requestAnimationFrame(this._onLoop)},updateSetTimeout:function(){this.game.update(Date.now()),this._timeOutID=window.setTimeout(this._onLoop,this.game.time.timeToCall)},stop:function(){this._isSetTimeOut?clearTimeout(this._timeOutID):window.cancelAnimationFrame(this._timeOutID),this.isRunning=!1},isSetTimeOut:function(){return this._isSetTimeOut},isRAF:function(){return this._isSetTimeOut===!1}},n.RequestAnimationFrame.prototype.constructor=n.RequestAnimationFrame,n.Math={PI2:2*Math.PI,fuzzyEqual:function(t,e,i){return"undefined"==typeof i&&(i=1e-4),Math.abs(t-e)<i},fuzzyLessThan:function(t,e,i){return"undefined"==typeof i&&(i=1e-4),e+i>t},fuzzyGreaterThan:function(t,e,i){return"undefined"==typeof i&&(i=1e-4),t>e-i},fuzzyCeil:function(t,e){return"undefined"==typeof e&&(e=1e-4),Math.ceil(t-e)},fuzzyFloor:function(t,e){return"undefined"==typeof e&&(e=1e-4),Math.floor(t+e)},average:function(){for(var t=[],e=0;e<arguments.length-0;e++)t[e]=arguments[e+0];for(var i=0,s=0;s<t.length;s++)i+=t[s];return i/t.length},truncate:function(t){return t>0?Math.floor(t):Math.ceil(t)},shear:function(t){return t%1},snapTo:function(t,e,i){return"undefined"==typeof i&&(i=0),0===e?t:(t-=i,t=e*Math.round(t/e),i+t)},snapToFloor:function(t,e,i){return"undefined"==typeof i&&(i=0),0===e?t:(t-=i,t=e*Math.floor(t/e),i+t)},snapToCeil:function(t,e,i){return"undefined"==typeof i&&(i=0),0===e?t:(t-=i,t=e*Math.ceil(t/e),i+t)},snapToInArray:function(t,e,i){if("undefined"==typeof i&&(i=!0),i&&e.sort(),t<e[0])return e[0];for(var s=1;e[s]<t;)s++;var n=e[s-1],r=s<e.length?e[s]:Number.POSITIVE_INFINITY;return t-n>=r-t?r:n},roundTo:function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=10);var s=Math.pow(i,-e);return Math.round(t*s)/s},floorTo:function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=10);var s=Math.pow(i,-e);return Math.floor(t*s)/s},ceilTo:function(t,e,i){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=10);var s=Math.pow(i,-e);return Math.ceil(t*s)/s},interpolateFloat:function(t,e,i){return(e-t)*i+t},angleBetween:function(t,e,i,s){return Math.atan2(s-e,i-t)},angleBetweenPoints:function(t,e){return Math.atan2(e.y-t.y,e.x-t.x)},reverseAngle:function(t){return this.normalizeAngle(t+Math.PI,!0)},normalizeAngle:function(t){return t%=2*Math.PI,t>=0?t:t+2*Math.PI},normalizeLatitude:function(t){return Math.max(-90,Math.min(90,t))},normalizeLongitude:function(t){return t%360==180?180:(t%=360,-180>t?t+360:t>180?t-360:t)},nearestAngleBetween:function(t,e,i){"undefined"==typeof i&&(i=!0);var s=i?Math.PI:180;return t=this.normalizeAngle(t,i),e=this.normalizeAngle(e,i),-s/2>t&&e>s/2&&(t+=2*s),-s/2>e&&t>s/2&&(e+=2*s),e-t},interpolateAngles:function(t,e,i,s,n){return"undefined"==typeof s&&(s=!0),"undefined"==typeof n&&(n=null),t=this.normalizeAngle(t,s),e=this.normalizeAngleToAnother(e,t,s),"function"==typeof n?n(i,t,e-t,1):this.interpolateFloat(t,e,i)},chanceRoll:function(t){return"undefined"==typeof t&&(t=50),0>=t?!1:t>=100?!0:100*Math.random()>=t?!1:!0},numberArray:function(t,e){for(var i=[],s=t;e>=s;s++)i.push(s);return i},maxAdd:function(t,e,i){return t+=e,t>i&&(t=i),t},minSub:function(t,e,i){return t-=e,i>t&&(t=i),t},wrap:function(t,e,i){var s=i-e;if(0>=s)return 0;var n=(t-e)%s;return 0>n&&(n+=s),n+e},wrapValue:function(t,e,i){var s;return t=Math.abs(t),e=Math.abs(e),i=Math.abs(i),s=(t+e)%i},limitValue:function(t,e,i){return e>t?e:t>i?i:t},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(t){return 1&t},isEven:function(t){return 1&t?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var t=arguments[0];else var t=arguments;for(var e=1,i=0,s=t.length;s>e;e++)t[e]<t[i]&&(i=e);return t[i]},max:function(){if(1===arguments.length&&"object"==typeof arguments[0])var t=arguments[0];else var t=arguments;for(var e=1,i=0,s=t.length;s>e;e++)t[e]>t[i]&&(i=e);return t[i]},minProperty:function(t){if(2===arguments.length&&"object"==typeof arguments[1])var e=arguments[1];else var e=arguments.slice(1);for(var i=1,s=0,n=e.length;n>i;i++)e[i][t]<e[s][t]&&(s=i);return e[s][t]},maxProperty:function(t){if(2===arguments.length&&"object"==typeof arguments[1])var e=arguments[1];
  else var e=arguments.slice(1);for(var i=1,s=0,n=e.length;n>i;i++)e[i][t]>e[s][t]&&(s=i);return e[s][t]},wrapAngle:function(t,e){var i=e?Math.PI/180:1;return this.wrap(t,-180*i,180*i)},angleLimit:function(t,e,i){var s=t;return t>i?s=i:e>t&&(s=e),s},linearInterpolation:function(t,e){var i=t.length-1,s=i*e,n=Math.floor(s);return 0>e?this.linear(t[0],t[1],s):e>1?this.linear(t[i],t[i-1],i-s):this.linear(t[n],t[n+1>i?i:n+1],s-n)},bezierInterpolation:function(t,e){for(var i=0,s=t.length-1,n=0;s>=n;n++)i+=Math.pow(1-e,s-n)*Math.pow(e,n)*t[n]*this.bernstein(s,n);return i},catmullRomInterpolation:function(t,e){var i=t.length-1,s=i*e,n=Math.floor(s);return t[0]===t[i]?(0>e&&(n=Math.floor(s=i*(1+e))),this.catmullRom(t[(n-1+i)%i],t[n],t[(n+1)%i],t[(n+2)%i],s-n)):0>e?t[0]-(this.catmullRom(t[0],t[0],t[1],t[1],-s)-t[0]):e>1?t[i]-(this.catmullRom(t[i],t[i],t[i-1],t[i-1],s-i)-t[i]):this.catmullRom(t[n?n-1:0],t[n],t[n+1>i?i:n+1],t[n+2>i?i:n+2],s-n)},linear:function(t,e,i){return(e-t)*i+t},bernstein:function(t,e){return this.factorial(t)/this.factorial(e)/this.factorial(t-e)},catmullRom:function(t,e,i,s,n){var r=.5*(i-t),o=.5*(s-e),a=n*n,h=n*a;return(2*e-2*i+r+o)*h+(-3*e+3*i-2*r-o)*a+r*n+e},difference:function(t,e){return Math.abs(t-e)},getRandom:function(t,e,i){if("undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=0),null!=t){var s=i;if((0===s||s>t.length-e)&&(s=t.length-e),s>0)return t[e+Math.floor(Math.random()*s)]}return null},removeRandom:function(t,e,i){if("undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=0),null!=t){var s=i;if((0===s||s>t.length-e)&&(s=t.length-e),s>0){var n=e+Math.floor(Math.random()*s),r=t.splice(n,1);return r[0]}}return null},floor:function(t){var e=0|t;return t>0?e:e!=t?e-1:e},ceil:function(t){var e=0|t;return t>0&&e!=t?e+1:e},sinCosGenerator:function(t,e,i,s){"undefined"==typeof e&&(e=1),"undefined"==typeof i&&(i=1),"undefined"==typeof s&&(s=1);for(var n=e,r=i,o=s*Math.PI/t,a=[],h=[],l=0;t>l;l++)r-=n*o,n+=r*o,a[l]=r,h[l]=n;return{sin:h,cos:a,length:t}},shift:function(t){var e=t.shift();return t.push(e),e},shuffleArray:function(t){for(var e=t.length-1;e>0;e--){var i=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[i],t[i]=s}return t},distance:function(t,e,i,s){var n=t-i,r=e-s;return Math.sqrt(n*n+r*r)},distancePow:function(t,e,i,s,n){return"undefined"==typeof n&&(n=2),Math.sqrt(Math.pow(i-t,n)+Math.pow(s-e,n))},distanceRounded:function(t,e,i,s){return Math.round(n.Math.distance(t,e,i,s))},clamp:function(t,e,i){return e>t?e:t>i?i:t},clampBottom:function(t,e){return e>t?e:t},within:function(t,e,i){return Math.abs(t-e)<=i},mapLinear:function(t,e,i,s,n){return s+(t-e)*(n-s)/(i-e)},smoothstep:function(t,e,i){return t=Math.max(0,Math.min(1,(t-e)/(i-e))),t*t*(3-2*t)},smootherstep:function(t,e,i){return t=Math.max(0,Math.min(1,(t-e)/(i-e))),t*t*t*(t*(6*t-15)+10)},sign:function(t){return 0>t?-1:t>0?1:0},degToRad:function(){var t=Math.PI/180;return function(e){return e*t}}(),radToDeg:function(){var t=180/Math.PI;return function(e){return e*t}}()},n.RandomDataGenerator=function(t){"undefined"==typeof t&&(t=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(t)},n.RandomDataGenerator.prototype={rnd:function(){var t=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|t,this.s0=this.s1,this.s1=this.s2,this.s2=t-this.c,this.s2},sow:function(t){"undefined"==typeof t&&(t=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var e,i=0;e=t[i++];)this.s0-=this.hash(e),this.s0+=~~(this.s0<0),this.s1-=this.hash(e),this.s1+=~~(this.s1<0),this.s2-=this.hash(e),this.s2+=~~(this.s2<0)},hash:function(t){var e,i,s;for(s=4022871197,t=t.toString(),i=0;i<t.length;i++)s+=t.charCodeAt(i),e=.02519603282416938*s,s=e>>>0,e-=s,e*=s,s=e>>>0,e-=s,s+=4294967296*e;return 2.3283064365386963e-10*(s>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(t,e){return Math.floor(this.realInRange(0,e-t+1))+t},realInRange:function(t,e){return this.frac()*(e-t)+t},normal:function(){return 1-2*this.frac()},uuid:function(){var t="",e="";for(e=t="";t++<36;e+=~t%5|3*t&4?(15^t?8^this.frac()*(20^t?16:4):4).toString(16):"-");return e},pick:function(t){return t[this.integerInRange(0,t.length-1)]},weightedPick:function(t){return t[~~(Math.pow(this.frac(),2)*(t.length-1))]},timestamp:function(t,e){return this.realInRange(t||9466848e5,e||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},n.RandomDataGenerator.prototype.constructor=n.RandomDataGenerator,n.QuadTree=function(t,e,i,s,n,r,o){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(t,e,i,s,n,r,o)},n.QuadTree.prototype={reset:function(t,e,i,s,n,r,o){this.maxObjects=n||10,this.maxLevels=r||4,this.level=o||0,this.bounds={x:Math.round(t),y:Math.round(e),width:i,height:s,subWidth:Math.floor(i/2),subHeight:Math.floor(s/2),right:Math.round(t)+Math.floor(i/2),bottom:Math.round(e)+Math.floor(s/2)},this.objects.length=0,this.nodes.length=0},populate:function(t){t.forEach(this.populateHandler,this,!0)},populateHandler:function(t){t.body&&t.exists&&this.insert(t.body)},split:function(){this.level++,this.nodes[0]=new n.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new n.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new n.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new n.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(t){var e,i=0;if(null!=this.nodes[0]&&(e=this.getIndex(t),-1!==e))return void this.nodes[e].insert(t);if(this.objects.push(t),this.objects.length>this.maxObjects&&this.level<this.maxLevels)for(null==this.nodes[0]&&this.split();i<this.objects.length;)e=this.getIndex(this.objects[i]),-1!==e?this.nodes[e].insert(this.objects.splice(i,1)[0]):i++},getIndex:function(t){var e=-1;return t.x<this.bounds.right&&t.right<this.bounds.right?t.y<this.bounds.bottom&&t.bottom<this.bounds.bottom?e=1:t.y>this.bounds.bottom&&(e=2):t.x>this.bounds.right&&(t.y<this.bounds.bottom&&t.bottom<this.bounds.bottom?e=0:t.y>this.bounds.bottom&&(e=3)),e},retrieve:function(t){if(!t.body)return this._empty;var e=this.objects,i=this.getIndex(t.body);return this.nodes[0]&&(-1!==i?e=e.concat(this.nodes[i].retrieve(t)):(e=e.concat(this.nodes[0].retrieve(t)),e=e.concat(this.nodes[1].retrieve(t)),e=e.concat(this.nodes[2].retrieve(t)),e=e.concat(this.nodes[3].retrieve(t)))),e},clear:function(){this.objects.length=0;for(var t=this.nodes.length;t--;)this.nodes[t].clear(),this.nodes.splice(t,1);this.nodes.length=0}},n.QuadTree.prototype.constructor=n.QuadTree,n.Net=function(t){this.game=t},n.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(t){return-1!==window.location.hostname.indexOf(t)},updateQueryString:function(t,e,i,s){"undefined"==typeof i&&(i=!1),("undefined"==typeof s||""===s)&&(s=window.location.href);var n="",r=new RegExp("([?|&])"+t+"=.*?(&|#|$)(.*)","gi");if(r.test(s))n="undefined"!=typeof e&&null!==e?s.replace(r,"$1"+t+"="+e+"$2$3"):s.replace(r,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof e&&null!==e){var o=-1!==s.indexOf("?")?"&":"?",a=s.split("#");s=a[0]+o+t+"="+e,a[1]&&(s+="#"+a[1]),n=s}else n=s;return i?void(window.location.href=n):n},getQueryString:function(t){"undefined"==typeof t&&(t="");var e={},i=location.search.substring(1).split("&");for(var s in i){var n=i[s].split("=");if(n.length>1){if(t&&t==this.decodeURI(n[0]))return this.decodeURI(n[1]);e[this.decodeURI(n[0])]=this.decodeURI(n[1])}}return e},decodeURI:function(t){return decodeURIComponent(t.replace(/\+/g," "))}},n.Net.prototype.constructor=n.Net,n.TweenManager=function(t){this.game=t,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},n.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var t=0;t<this._tweens.length;t++)this._tweens[t].pendingDelete=!0;this._add=[]},add:function(t){t._manager=this,this._add.push(t)},create:function(t){return new n.Tween(t,this.game,this)},remove:function(t){var e=this._tweens.indexOf(t);-1!==e&&(this._tweens[e].pendingDelete=!0)},update:function(){if(0===this._tweens.length&&0===this._add.length)return!1;for(var t=0,e=this._tweens.length;e>t;)this._tweens[t].update(this.game.time.now)?t++:(this._tweens.splice(t,1),e--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(t){return this._tweens.some(function(e){return e._object===t})},_pauseAll:function(){for(var t=this._tweens.length-1;t>=0;t--)this._tweens[t]._pause()},_resumeAll:function(){for(var t=this._tweens.length-1;t>=0;t--)this._tweens[t]._resume()},pauseAll:function(){for(var t=this._tweens.length-1;t>=0;t--)this._tweens[t].pause()},resumeAll:function(){for(var t=this._tweens.length-1;t>=0;t--)this._tweens[t].resume(!0)}},n.TweenManager.prototype.constructor=n.TweenManager,n.Tween=function(t,e,i){this._object=t,this.game=e,this._manager=i,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=n.Easing.Linear.None,this._interpolationFunction=n.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new n.Signal,this.onLoop=new n.Signal,this.onComplete=new n.Signal,this.isRunning=!1},n.Tween.prototype={to:function(t,e,i,s,n,r,o){e=e||1e3,i=i||null,s=s||!1,n=n||0,r=r||0,o=o||!1,o&&0===r&&(r=1);var a;return this._parent?(a=this._manager.create(this._object),this._lastChild.chain(a),this._lastChild=a):(a=this,this._parent=this,this._lastChild=this),a._repeat=r,a._duration=e,a._valuesEnd=t,null!==i&&(a._easingFunction=i),n>0&&(a._delayTime=n),a._yoyo=o,s?this.start():this},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var t in this._valuesEnd){if(Array.isArray(this._valuesEnd[t])){if(0===this._valuesEnd[t].length)continue;this._valuesEnd[t]=[this._object[t]].concat(this._valuesEnd[t])}this._valuesStart[t]=this._object[t],Array.isArray(this._valuesStart[t])||(this._valuesStart[t]*=1),this._valuesStartRepeat[t]=this._valuesStart[t]||0}return this}},generateData:function(t,e){if(null===this.game||null===this._object)return null;this._startTime=0;for(var i in this._valuesEnd){if(Array.isArray(this._valuesEnd[i])){if(0===this._valuesEnd[i].length)continue;this._valuesEnd[i]=[this._object[i]].concat(this._valuesEnd[i])}this._valuesStart[i]=this._object[i],Array.isArray(this._valuesStart[i])||(this._valuesStart[i]*=1),this._valuesStartRepeat[i]=this._valuesStart[i]||0}for(var s=0,n=Math.floor(t*(this._duration/1e3)),r=this._duration/n,o=[];n--;){var i,a=(s-this._startTime)/this._duration;a=a>1?1:a;var h=this._easingFunction(a),l={};for(i in this._valuesEnd){var u=this._valuesStart[i]||0,c=this._valuesEnd[i];c instanceof Array?l[i]=this._interpolationFunction(c,h):("string"==typeof c&&(c=u+parseFloat(c,10)),"number"==typeof c&&(l[i]=u+(c-u)*h))}o.push(l),s+=r}if(this._yoyo){var d=o.slice();d.reverse(),o=o.concat(d)}return"undefined"!=typeof e?e=e.concat(o):o},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(t){return this._delayTime=t,this},repeat:function(t){return this._repeat=t,this},yoyo:function(t){return this._yoyo=t,t&&0===this._repeat&&(this._repeat=1),this},easing:function(t){return this._easingFunction=t,this},interpolation:function(t){return this._interpolationFunction=t,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(t,e){return this._onUpdateCallback=t,this._onUpdateCallbackContext=e,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(t){if(this.pendingDelete)return!1;if(this._paused||t<this._startTime)return!0;var e;if(t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this.onStart.dispatch(this._object),this._onStartCallbackFired=!0);var i=(t-this._startTime)/this._duration;i=i>1?1:i;var s=this._easingFunction(i);for(e in this._valuesEnd){var n=this._valuesStart[e]||0,r=this._valuesEnd[e];r instanceof Array?this._object[e]=this._interpolationFunction(r,s):("string"==typeof r&&(r=n+parseFloat(r,10)),"number"==typeof r&&(this._object[e]=n+(r-n)*s))}if(null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._onUpdateCallbackContext,this,s),1==i){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(e in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[e]&&(this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(this._valuesEnd[e],10)),this._yoyo){var o=this._valuesStartRepeat[e];this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=o,this._reversed=!this._reversed}this._valuesStart[e]=this._valuesStartRepeat[e]}return this._startTime=t+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var a=0,h=this._chainedTweens.length;h>a;a++)this._chainedTweens[a].start(t);return!1}return!0}},n.Tween.prototype.constructor=n.Tween,n.Easing={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){var e,i=.1,s=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=s/4):e=s*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/s)))},Out:function(t){var e,i=.1,s=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=s/4):e=s*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/s)+1)},InOut:function(t){var e,i=.1,s=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=s/4):e=s*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/s):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/s)*.5+1)}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-n.Easing.Bounce.Out(1-t)},Out:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return.5>t?.5*n.Easing.Bounce.In(2*t):.5*n.Easing.Bounce.Out(2*t-1)+.5}}},n.Time=function(t){this.game=t,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new n.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},n.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},create:function(t){"undefined"==typeof t&&(t=!0);var e=new n.Timer(this.game,t);return this._timers.push(e),e},removeAll:function(){for(var t=0;t<this._timers.length;t++)this._timers[t].destroy();this._timers=[],this.events.removeAll()},update:function(t){if(this.now=t,this.timeToCall=this.game.math.max(0,16-(t-this.lastTime)),this.elapsed=this.now-this.time,this.elapsed>this.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=t+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i<this._len;)this._timers[this._i].update(this.now)?this._i++:(this._timers.splice(this._i,1),this._len--)},gamePaused:function(){this._pauseStarted=this.now,this.events.pause();for(var t=this._timers.length;t--;)this._timers[t]._pause()},gameResumed:function(){this.time=this.now=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var t=this._timers.length;t--;)this._timers[t]._resume()},totalElapsedSeconds:function(){return.001*(this.now-this._started)},elapsedSince:function(t){return this.now-t},elapsedSecondsSince:function(t){return.001*(this.now-t)},reset:function(){this._started=this.now,this.removeAll()}},n.Time.prototype.constructor=n.Time,n.Timer=function(t,e){"undefined"==typeof e&&(e=!0),this.game=t,this.running=!1,this.autoDestroy=e,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new n.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},n.Timer.MINUTE=6e4,n.Timer.SECOND=1e3,n.Timer.HALF=500,n.Timer.QUARTER=250,n.Timer.prototype={create:function(t,e,i,s,r,o){var a=t;a+=0===this._now?this.game.time.now:this._now;var h=new n.TimerEvent(this,t,a,i,e,s,r,o);return this.events.push(h),this.order(),this.expired=!1,h},add:function(t,e,i){return this.create(t,!1,0,e,i,Array.prototype.splice.call(arguments,3))},repeat:function(t,e,i,s){return this.create(t,!1,e,i,s,Array.prototype.splice.call(arguments,4))},loop:function(t,e,i){return this.create(t,!0,0,e,i,Array.prototype.splice.call(arguments,3))},start:function(t){if(!this.running){this._started=this.game.time.now+(t||0),this.running=!0;for(var e=0;e<this.events.length;e++)this.events[e].tick=this.events[e].delay+this._started}},stop:function(t){this.running=!1,"undefined"==typeof t&&(t=!0),t&&(this.events.length=0)},remove:function(t){for(var e=0;e<this.events.length;e++)if(this.events[e]===t)return this.events[e].pendingDelete=!0,!0;return!1},order:function(){this.events.length>0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(t,e){return t.tick<e.tick?-1:t.tick>e.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(t){if(this.paused)return!0;if(this.elapsed=t-this._now,this._now=t,this.elapsed>this.timeCap&&this.adjustEvents(t-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i<this._len&&this.running&&this._now>=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0,this._codePaused=!0)},_pause:function(){this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(t){for(var e=0;e<this.events.length;e++)if(!this.events[e].pendingDelete){var i=this.events[e].tick-t;0>i&&(i=0),this.events[e].tick=this._now+i}var s=this.nextTick-t;this.nextTick=0>s?this._now:this._now+s},resume:function(){this.paused&&(this._pauseTotal+=this.game.time.pauseDuration,this._now=this.game.time.now,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1)},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(n.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(n.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(n.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(n.Timer.prototype,"ms",{get:function(){return this._now-this._started-this._pauseTotal}}),Object.defineProperty(n.Timer.prototype,"seconds",{get:function(){return.001*this.ms}}),n.Timer.prototype.constructor=n.Timer,n.TimerEvent=function(t,e,i,s,n,r,o,a){this.timer=t,this.delay=e,this.tick=i,this.repeatCount=s-1,this.loop=n,this.callback=r,this.callbackContext=o,this.args=a,this.pendingDelete=!1},n.TimerEvent.prototype.constructor=n.TimerEvent,n.AnimationManager=function(t){this.sprite=t,this.game=t.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},n.AnimationManager.prototype={loadFrameData:function(t){this._frameData=t,this.frame=0,this.isLoaded=!0},add:function(t,e,i,r,o){return null==this._frameData?void console.warn("No FrameData available for Phaser.Animation "+t):(e=e||[],i=i||60,"undefined"==typeof r&&(r=!1),"undefined"==typeof o&&(o=e&&"number"==typeof e[0]?!0:!1),null==this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new n.Signal,this.sprite.events.onAnimationComplete=new n.Signal,this.sprite.events.onAnimationLoop=new n.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(e,o,this._outputFrames),this._anims[t]=new n.Animation(this.game,this.sprite,t,this._frameData,this._outputFrames,i,r),this.currentAnim=this._anims[t],this.currentFrame=this.currentAnim.currentFrame,this.sprite.setTexture(s.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1),this._anims[t])},validateFrames:function(t,e){"undefined"==typeof e&&(e=!0);for(var i=0;i<t.length;i++)if(e===!0){if(t[i]>this._frameData.total)return!1}else if(this._frameData.checkFrameName(t[i])===!1)return!1;return!0},play:function(t,e,i,s){if(this._anims[t]){if(this.currentAnim!==this._anims[t])return this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[t],this.currentAnim.paused=!1,this.currentAnim.play(e,i,s);if(this.currentAnim.isPlaying===!1)return this.currentAnim.paused=!1,this.currentAnim.play(e,i,s)}},stop:function(t,e){"undefined"==typeof e&&(e=!1),"string"==typeof t?this._anims[t]&&(this.currentAnim=this._anims[t],this.currentAnim.stop(e)):this.currentAnim&&this.currentAnim.stop(e)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},getAnimation:function(t){return"string"==typeof t&&this._anims[t]?this._anims[t]:null},refreshFrame:function(){this.sprite.setTexture(s.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var t=null;for(var t in this._anims)this._anims.hasOwnProperty(t)&&this._anims[t].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},n.AnimationManager.prototype.constructor=n.AnimationManager,Object.defineProperty(n.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(n.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(n.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(t){this.currentAnim.paused=t}}),Object.defineProperty(n.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(t){"number"==typeof t&&this._frameData&&null!==this._frameData.getFrame(t)&&(this.currentFrame=this._frameData.getFrame(t),this.currentFrame&&(this._frameIndex=t,this.sprite.setTexture(s.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(n.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(t){"string"==typeof t&&this._frameData&&null!==this._frameData.getFrameByName(t)?(this.currentFrame=this._frameData.getFrameByName(t),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setTexture(s.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+t)}}),n.Animation=function(t,e,i,s,r,o,a){this.game=t,this._parent=e,this._frameData=s,this.name=i,this._frames=[],this._frames=this._frames.concat(r),this.delay=1e3/o,this.loop=a,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new n.Signal,this.onComplete=new n.Signal,this.onLoop=new n.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},n.Animation.prototype={play:function(t,e,i){return"number"==typeof t&&(this.delay=1e3/t),"boolean"==typeof e&&(this.loop=e),"undefined"!=typeof i&&(this.killOnComplete=i),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setTexture(s.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart.dispatch(this._parent,this)},setFrame:function(t,e){var i;if("undefined"==typeof e&&(e=!1),"string"==typeof t)for(var s=0;s<this._frames.length;s++)this._frameData.getFrame(this._frames[s]).name===t&&(i=s);else if("number"==typeof t)if(e)i=t;else for(var s=0;s<this._frames.length;s++)this.frames[s]===i&&(i=s);i&&(this._frameIndex=i-1,this._timeNextFrame=this.game.time.now,this.update())},stop:function(t,e){"undefined"==typeof t&&(t=!1),"undefined"==typeof e&&(e=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,t&&(this.currentFrame=this._frameData.getFrame(this._frames[0])),e&&(this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.now)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.now+this._frameDiff)},update:function(){return this.isPaused?!1:this.isPlaying===!0&&this.game.time.now>=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(s.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete():(this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(s.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1))),!0):!1},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},n.Animation.prototype.constructor=n.Animation,Object.defineProperty(n.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(t){this.isPaused=t,t?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(n.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(n.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(t){this.currentFrame=this._frameData.getFrame(this._frames[t]),null!==this.currentFrame&&(this._frameIndex=t,this._parent.setTexture(s.TextureCache[this.currentFrame.uuid]))
  }}),Object.defineProperty(n.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(t){t>=1&&(this.delay=1e3/t)}}),n.Animation.generateFrameNames=function(t,e,i,s,r){"undefined"==typeof s&&(s="");var o=[],a="";if(i>e)for(var h=e;i>=h;h++)a="number"==typeof r?n.Utils.pad(h.toString(),r,"0",1):h.toString(),a=t+a+s,o.push(a);else for(var h=e;h>=i;h--)a="number"==typeof r?n.Utils.pad(h.toString(),r,"0",1):h.toString(),a=t+a+s,o.push(a);return o},n.Frame=function(t,e,i,s,r,o,a){this.index=t,this.x=e,this.y=i,this.width=s,this.height=r,this.name=o,this.uuid=a,this.centerX=Math.floor(s/2),this.centerY=Math.floor(r/2),this.distance=n.Math.distance(0,0,s,r),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=s,this.sourceSizeH=r,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0},n.Frame.prototype={setTrim:function(t,e,i,s,n,r,o){this.trimmed=t,t&&(this.width=e,this.height=i,this.sourceSizeW=e,this.sourceSizeH=i,this.centerX=Math.floor(e/2),this.centerY=Math.floor(i/2),this.spriteSourceSizeX=s,this.spriteSourceSizeY=n,this.spriteSourceSizeW=r,this.spriteSourceSizeH=o)},getRect:function(t){return"undefined"==typeof t?t=new n.Rectangle(this.x,this.y,this.width,this.height):t.setTo(this.x,this.y,this.width,this.height),t}},n.Frame.prototype.constructor=n.Frame,n.FrameData=function(){this._frames=[],this._frameNames=[]},n.FrameData.prototype={addFrame:function(t){return t.index=this._frames.length,this._frames.push(t),""!==t.name&&(this._frameNames[t.name]=t.index),t},getFrame:function(t){return t>this._frames.length&&(t=0),this._frames[t]},getFrameByName:function(t){return"number"==typeof this._frameNames[t]?this._frames[this._frameNames[t]]:null},checkFrameName:function(t){return null==this._frameNames[t]?!1:!0},getFrameRange:function(t,e,i){"undefined"==typeof i&&(i=[]);for(var s=t;e>=s;s++)i.push(this._frames[s]);return i},getFrames:function(t,e,i){if("undefined"==typeof e&&(e=!0),"undefined"==typeof i&&(i=[]),"undefined"==typeof t||0===t.length)for(var s=0;s<this._frames.length;s++)i.push(this._frames[s]);else for(var s=0,n=t.length;n>s;s++)i.push(e?this.getFrame(t[s]):this.getFrameByName(t[s]));return i},getFrameIndexes:function(t,e,i){if("undefined"==typeof e&&(e=!0),"undefined"==typeof i&&(i=[]),"undefined"==typeof t||0===t.length)for(var s=0,n=this._frames.length;n>s;s++)i.push(this._frames[s].index);else for(var s=0,n=t.length;n>s;s++)e?i.push(t[s]):this.getFrameByName(t[s])&&i.push(this.getFrameByName(t[s]).index);return i}},n.FrameData.prototype.constructor=n.FrameData,Object.defineProperty(n.FrameData.prototype,"total",{get:function(){return this._frames.length}}),n.AnimationParser={spriteSheet:function(t,e,i,r,o,a,h){var l=t.cache.getImage(e);if(null==l)return null;var u=l.width,c=l.height;0>=i&&(i=Math.floor(-u/Math.min(-1,i))),0>=r&&(r=Math.floor(-c/Math.min(-1,r)));var d=Math.floor((u-a)/(i+h)),p=Math.floor((c-a)/(r+h)),f=d*p;if(-1!==o&&(f=o),0===u||0===c||i>u||r>c||0===f)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var g=new n.FrameData,m=a,y=a,v=0;f>v;v++){var x=t.rnd.uuid();g.addFrame(new n.Frame(v,m,y,i,r,"",x)),s.TextureCache[x]=new s.Texture(s.BaseTextureCache[e],{x:m,y:y,width:i,height:r}),m+=i+h,m+i>u&&(m=a,y+=r+h)}return g},JSONData:function(t,e,i){if(!e.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(e);for(var r,o=new n.FrameData,a=e.frames,h=0;h<a.length;h++){var l=t.rnd.uuid();r=o.addFrame(new n.Frame(h,a[h].frame.x,a[h].frame.y,a[h].frame.w,a[h].frame.h,a[h].filename,l)),s.TextureCache[l]=new s.Texture(s.BaseTextureCache[i],{x:a[h].frame.x,y:a[h].frame.y,width:a[h].frame.w,height:a[h].frame.h}),a[h].trimmed&&(r.setTrim(a[h].trimmed,a[h].sourceSize.w,a[h].sourceSize.h,a[h].spriteSourceSize.x,a[h].spriteSourceSize.y,a[h].spriteSourceSize.w,a[h].spriteSourceSize.h),s.TextureCache[l].trim=new n.Rectangle(a[h].spriteSourceSize.x,a[h].spriteSourceSize.y,a[h].sourceSize.w,a[h].sourceSize.h))}return o},JSONDataHash:function(t,e,i){if(!e.frames)return console.warn("Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object"),void console.log(e);var r,o=new n.FrameData,a=e.frames,h=0;for(var l in a){var u=t.rnd.uuid();r=o.addFrame(new n.Frame(h,a[l].frame.x,a[l].frame.y,a[l].frame.w,a[l].frame.h,l,u)),s.TextureCache[u]=new s.Texture(s.BaseTextureCache[i],{x:a[l].frame.x,y:a[l].frame.y,width:a[l].frame.w,height:a[l].frame.h}),a[l].trimmed&&(r.setTrim(a[l].trimmed,a[l].sourceSize.w,a[l].sourceSize.h,a[l].spriteSourceSize.x,a[l].spriteSourceSize.y,a[l].spriteSourceSize.w,a[l].spriteSourceSize.h),s.TextureCache[u].trim=new n.Rectangle(a[l].spriteSourceSize.x,a[l].spriteSourceSize.y,a[l].sourceSize.w,a[l].sourceSize.h)),h++}return o},XMLData:function(t,e,i){if(!e.getElementsByTagName("TextureAtlas"))return void console.warn("Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag");for(var r,o,a,h,l,u,c,d,p,f,g,m,y=new n.FrameData,v=e.getElementsByTagName("SubTexture"),x=0;x<v.length;x++)o=t.rnd.uuid(),h=v[x].attributes,a=h.name.nodeValue,l=parseInt(h.x.nodeValue,10),u=parseInt(h.y.nodeValue,10),c=parseInt(h.width.nodeValue,10),d=parseInt(h.height.nodeValue,10),p=null,f=null,h.frameX&&(p=Math.abs(parseInt(h.frameX.nodeValue,10)),f=Math.abs(parseInt(h.frameY.nodeValue,10)),g=parseInt(h.frameWidth.nodeValue,10),m=parseInt(h.frameHeight.nodeValue,10)),r=y.addFrame(new n.Frame(x,l,u,c,d,a,o)),s.TextureCache[o]=new s.Texture(s.BaseTextureCache[i],{x:l,y:u,width:c,height:d}),(null!==p||null!==f)&&(r.setTrim(!0,c,d,p,f,g,m),s.TextureCache[o].trim=new n.Rectangle(p,f,c,d));return y}},n.Cache=function(t){this.game=t,this._canvases={},this._images={},this._textures={},this._sounds={},this._text={},this._json={},this._physics={},this._tilemaps={},this._binary={},this._bitmapDatas={},this._bitmapFont={},this.addDefaultImage(),this.addMissingImage(),this.onSoundUnlock=new n.Signal},n.Cache.CANVAS=1,n.Cache.IMAGE=2,n.Cache.TEXTURE=3,n.Cache.SOUND=4,n.Cache.TEXT=5,n.Cache.PHYSICS=6,n.Cache.TILEMAP=7,n.Cache.BINARY=8,n.Cache.BITMAPDATA=9,n.Cache.BITMAPFONT=10,n.Cache.JSON=11,n.Cache.prototype={addCanvas:function(t,e,i){this._canvases[t]={canvas:e,context:i}},addBinary:function(t,e){this._binary[t]=e},addBitmapData:function(t,e){return this._bitmapDatas[t]=e,e},addRenderTexture:function(t,e){var i=new n.Frame(0,0,0,e.width,e.height,"","");this._textures[t]={texture:e,frame:i}},addSpriteSheet:function(t,e,i,r,o,a,h,l){this._images[t]={url:e,data:i,spriteSheet:!0,frameWidth:r,frameHeight:o,margin:h,spacing:l},s.BaseTextureCache[t]=new s.BaseTexture(i),s.TextureCache[t]=new s.Texture(s.BaseTextureCache[t]),this._images[t].frameData=n.AnimationParser.spriteSheet(this.game,t,r,o,a,h,l)},addTilemap:function(t,e,i,s){this._tilemaps[t]={url:e,data:i,format:s}},addTextureAtlas:function(t,e,i,r,o){this._images[t]={url:e,data:i,spriteSheet:!0},s.BaseTextureCache[t]=new s.BaseTexture(i),s.TextureCache[t]=new s.Texture(s.BaseTextureCache[t]),o==n.Loader.TEXTURE_ATLAS_JSON_ARRAY?this._images[t].frameData=n.AnimationParser.JSONData(this.game,r,t):o==n.Loader.TEXTURE_ATLAS_JSON_HASH?this._images[t].frameData=n.AnimationParser.JSONDataHash(this.game,r,t):o==n.Loader.TEXTURE_ATLAS_XML_STARLING&&(this._images[t].frameData=n.AnimationParser.XMLData(this.game,r,t))},addBitmapFont:function(t,e,i,r,o,a){this._images[t]={url:e,data:i,spriteSheet:!0},s.BaseTextureCache[t]=new s.BaseTexture(i),s.TextureCache[t]=new s.Texture(s.BaseTextureCache[t]),n.LoaderParser.bitmapFont(this.game,r,t,o,a)},addPhysicsData:function(t,e,i,s){this._physics[t]={url:e,data:i,format:s}},addDefaultImage:function(){var t=new Image;t.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==",this._images.__default={url:null,data:t,spriteSheet:!1},this._images.__default.frame=new n.Frame(0,0,0,32,32,"",""),s.BaseTextureCache.__default=new s.BaseTexture(t),s.TextureCache.__default=new s.Texture(s.BaseTextureCache.__default)},addMissingImage:function(){var t=new Image;t.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==",this._images.__missing={url:null,data:t,spriteSheet:!1},this._images.__missing.frame=new n.Frame(0,0,0,32,32,"",""),s.BaseTextureCache.__missing=new s.BaseTexture(t),s.TextureCache.__missing=new s.Texture(s.BaseTextureCache.__missing)},addText:function(t,e,i){this._text[t]={url:e,data:i}},addJSON:function(t,e,i){this._json[t]={url:e,data:i}},addImage:function(t,e,i){this._images[t]={url:e,data:i,spriteSheet:!1},this._images[t].frame=new n.Frame(0,0,0,i.width,i.height,t,this.game.rnd.uuid()),s.BaseTextureCache[t]=new s.BaseTexture(i),s.TextureCache[t]=new s.Texture(s.BaseTextureCache[t])},addSound:function(t,e,i,s,n){s=s||!0,n=n||!1;var r=!1;n&&(r=!0),this._sounds[t]={url:e,data:i,isDecoding:!1,decoded:r,webAudio:s,audioTag:n,locked:this.game.sound.touchLocked}},reloadSound:function(t){var e=this;this._sounds[t]&&(this._sounds[t].data.src=this._sounds[t].url,this._sounds[t].data.addEventListener("canplaythrough",function(){return e.reloadSoundComplete(t)},!1),this._sounds[t].data.load())},reloadSoundComplete:function(t){this._sounds[t]&&(this._sounds[t].locked=!1,this.onSoundUnlock.dispatch(t))},updateSound:function(t,e,i){this._sounds[t]&&(this._sounds[t][e]=i)},decodedSound:function(t,e){this._sounds[t].data=e,this._sounds[t].decoded=!0,this._sounds[t].isDecoding=!1},getCanvas:function(t){return this._canvases[t]?this._canvases[t].canvas:void console.warn('Phaser.Cache.getCanvas: Invalid key: "'+t+'"')},getBitmapData:function(t){return this._bitmapDatas[t]?this._bitmapDatas[t]:void console.warn('Phaser.Cache.getBitmapData: Invalid key: "'+t+'"')},getBitmapFont:function(t){return this._bitmapFont[t]?this._bitmapFont[t]:void console.warn('Phaser.Cache.getBitmapFont: Invalid key: "'+t+'"')},getPhysicsData:function(t,e,i){if("undefined"==typeof e||null===e){if(this._physics[t])return this._physics[t].data;console.warn('Phaser.Cache.getPhysicsData: Invalid key: "'+t+'"')}else if(this._physics[t]&&this._physics[t].data[e]){var s=this._physics[t].data[e];if(!s||!i)return s;for(var n in s)if(n=s[n],n.fixtureKey===i)return n;console.warn('Phaser.Cache.getPhysicsData: Could not find given fixtureKey: "'+i+" in "+t+'"')}else console.warn('Phaser.Cache.getPhysicsData: Invalid key/object: "'+t+" / "+e+'"');return null},checkImageKey:function(t){return this._images[t]?!0:!1},getImage:function(t){return this._images[t]?this._images[t].data:void console.warn('Phaser.Cache.getImage: Invalid key: "'+t+'"')},getTilemapData:function(t){return this._tilemaps[t]?this._tilemaps[t]:void console.warn('Phaser.Cache.getTilemapData: Invalid key: "'+t+'"')},getFrameData:function(t){return this._images[t]&&this._images[t].frameData?this._images[t].frameData:null},updateFrameData:function(t,e){this._images[t]&&(this._images[t].spriteSheet=!0,this._images[t].frameData=e)},getFrameByIndex:function(t,e){return this._images[t]&&this._images[t].frameData?this._images[t].frameData.getFrame(e):null},getFrameByName:function(t,e){return this._images[t]&&this._images[t].frameData?this._images[t].frameData.getFrameByName(e):null},getFrame:function(t){return this._images[t]&&this._images[t].spriteSheet===!1?this._images[t].frame:null},getTextureFrame:function(t){return this._textures[t]?this._textures[t].frame:null},getTexture:function(t){return this._textures[t]?this._textures[t]:void console.warn('Phaser.Cache.getTexture: Invalid key: "'+t+'"')},getSound:function(t){return this._sounds[t]?this._sounds[t]:void console.warn('Phaser.Cache.getSound: Invalid key: "'+t+'"')},getSoundData:function(t){return this._sounds[t]?this._sounds[t].data:void console.warn('Phaser.Cache.getSoundData: Invalid key: "'+t+'"')},isSoundDecoded:function(t){return this._sounds[t]?this._sounds[t].decoded:void 0},isSoundReady:function(t){return this._sounds[t]&&this._sounds[t].decoded&&this.game.sound.touchLocked===!1},isSpriteSheet:function(t){return this._images[t]?this._images[t].spriteSheet:!1},getText:function(t){return this._text[t]?this._text[t].data:void console.warn('Phaser.Cache.getText: Invalid key: "'+t+'"')},getJSON:function(t){return this._json[t]?this._json[t].data:void console.warn('Phaser.Cache.getJSON: Invalid key: "'+t+'"')},getBinary:function(t){return this._binary[t]?this._binary[t]:void console.warn('Phaser.Cache.getBinary: Invalid key: "'+t+'"')},getKeys:function(t){var e=null;switch(t){case n.Cache.CANVAS:e=this._canvases;break;case n.Cache.IMAGE:e=this._images;break;case n.Cache.TEXTURE:e=this._textures;break;case n.Cache.SOUND:e=this._sounds;break;case n.Cache.TEXT:e=this._text;break;case n.Cache.PHYSICS:e=this._physics;break;case n.Cache.TILEMAP:e=this._tilemaps;break;case n.Cache.BINARY:e=this._binary;break;case n.Cache.BITMAPDATA:e=this._bitmapDatas;break;case n.Cache.BITMAPFONT:e=this._bitmapFont;break;case n.Cache.JSON:e=this._json}if(e){var i=[];for(var s in e)"__default"!==s&&"__missing"!==s&&i.push(s);return i}},removeCanvas:function(t){delete this._canvases[t]},removeImage:function(t){delete this._images[t]},removeSound:function(t){delete this._sounds[t]},removeText:function(t){delete this._text[t]},removeJSON:function(t){delete this._json[t]},removePhysics:function(t){delete this._physics[t]},removeTilemap:function(t){delete this._tilemaps[t]},removeBinary:function(t){delete this._binary[t]},removeBitmapData:function(t){delete this._bitmapDatas[t]},removeBitmapFont:function(t){delete this._bitmapFont[t]},destroy:function(){for(var t in this._canvases)delete this._canvases[t];for(var t in this._images)"__default"!==t&&"__missing"!==t&&delete this._images[t];for(var t in this._sounds)delete this._sounds[t];for(var t in this._text)delete this._text[t];for(var t in this._json)delete this._json[t];for(var t in this._textures)delete this._textures[t];for(var t in this._physics)delete this._physics[t];for(var t in this._tilemaps)delete this._tilemaps[t];for(var t in this._binary)delete this._binary[t];for(var t in this._bitmapDatas)delete this._bitmapDatas[t];for(var t in this._bitmapFont)delete this._bitmapFont[t]}},n.Cache.prototype.constructor=n.Cache,n.Loader=function(t){this.game=t,this._fileList=[],this._fileIndex=0,this._progressChunk=0,this._xhr=new XMLHttpRequest,this._ajax=null,this.isLoading=!1,this.hasLoaded=!1,this.progress=0,this.progressFloat=0,this.preloadSprite=null,this.crossOrigin=!1,this.baseURL="",this.onLoadStart=new n.Signal,this.onFileStart=new n.Signal,this.onFileComplete=new n.Signal,this.onFileError=new n.Signal,this.onLoadComplete=new n.Signal},n.Loader.TEXTURE_ATLAS_JSON_ARRAY=0,n.Loader.TEXTURE_ATLAS_JSON_HASH=1,n.Loader.TEXTURE_ATLAS_XML_STARLING=2,n.Loader.PHYSICS_LIME_CORONA_JSON=3,n.Loader.PHYSICS_PHASER_JSON=4,n.Loader.prototype={setPreloadSprite:function(t,e){e=e||0,this.preloadSprite={sprite:t,direction:e,width:t.width,height:t.height,rect:null},this.preloadSprite.rect=0===e?new n.Rectangle(0,0,1,t.height):new n.Rectangle(0,0,t.width,1),t.crop(this.preloadSprite.rect),t.visible=!0},checkKeyExists:function(t,e){if(this._fileList.length>0)for(var i=0;i<this._fileList.length;i++)if(this._fileList[i].type===t&&this._fileList[i].key===e)return!0;return!1},getAssetIndex:function(t,e){if(this._fileList.length>0)for(var i=0;i<this._fileList.length;i++)if(this._fileList[i].type===t&&this._fileList[i].key===e)return i;return-1},getAsset:function(t,e){if(this._fileList.length>0)for(var i=0;i<this._fileList.length;i++)if(this._fileList[i].type===t&&this._fileList[i].key===e)return{index:i,file:this._fileList[i]};return!1},reset:function(){this.preloadSprite=null,this.isLoading=!1,this._fileList.length=0,this._fileIndex=0},addToFileList:function(t,e,i,s){var n={type:t,key:e,url:i,data:null,error:!1,loaded:!1};if("undefined"!=typeof s)for(var r in s)n[r]=s[r];this.checkKeyExists(t,e)===!1&&this._fileList.push(n)},replaceInFileList:function(t,e,i,s){var n={type:t,key:e,url:i,data:null,error:!1,loaded:!1};if("undefined"!=typeof s)for(var r in s)n[r]=s[r];var o=this.getAssetIndex(t,e);-1===o?this._fileList.push(n):this._fileList[o]=n},image:function(t,e,i){return"undefined"==typeof i&&(i=!1),i?this.replaceInFileList("image",t,e):this.addToFileList("image",t,e),this},text:function(t,e,i){return"undefined"==typeof i&&(i=!1),i?this.replaceInFileList("text",t,e):this.addToFileList("text",t,e),this},json:function(t,e,i){return"undefined"==typeof i&&(i=!1),i?this.replaceInFileList("json",t,e):this.addToFileList("json",t,e),this},script:function(t,e,i,s){return"undefined"==typeof i&&(i=!1),i!==!1&&"undefined"==typeof s&&(s=i),this.addToFileList("script",t,e,{callback:i,callbackContext:s}),this},binary:function(t,e,i,s){return"undefined"==typeof i&&(i=!1),i!==!1&&"undefined"==typeof s&&(s=i),this.addToFileList("binary",t,e,{callback:i,callbackContext:s}),this},spritesheet:function(t,e,i,s,n,r,o){return"undefined"==typeof n&&(n=-1),"undefined"==typeof r&&(r=0),"undefined"==typeof o&&(o=0),this.addToFileList("spritesheet",t,e,{frameWidth:i,frameHeight:s,frameMax:n,margin:r,spacing:o}),this},audio:function(t,e,i){return"undefined"==typeof i&&(i=!0),this.addToFileList("audio",t,e,{buffer:null,autoDecode:i}),this},tilemap:function(t,e,i,s){if("undefined"==typeof e&&(e=null),"undefined"==typeof i&&(i=null),"undefined"==typeof s&&(s=n.Tilemap.CSV),null==e&&null==i)return console.warn("Phaser.Loader.tilemap - Both mapDataURL and mapData are null. One must be set."),this;if(i){switch(s){case n.Tilemap.CSV:break;case n.Tilemap.TILED_JSON:"string"==typeof i&&(i=JSON.parse(i))}this.game.cache.addTilemap(t,null,i,s)}else this.addToFileList("tilemap",t,e,{format:s});return this},physics:function(t,e,i,s){return"undefined"==typeof e&&(e=null),"undefined"==typeof i&&(i=null),"undefined"==typeof s&&(s=n.Physics.LIME_CORONA_JSON),null==e&&null==i?(console.warn("Phaser.Loader.physics - Both dataURL and jsonData are null. One must be set."),this):(i?("string"==typeof i&&(i=JSON.parse(i)),this.game.cache.addPhysicsData(t,null,i,s)):this.addToFileList("physics",t,e,{format:s}),this)},bitmapFont:function(t,e,i,s,n,r){if("undefined"==typeof i&&(i=null),"undefined"==typeof s&&(s=null),"undefined"==typeof n&&(n=0),"undefined"==typeof r&&(r=0),i)this.addToFileList("bitmapfont",t,e,{xmlURL:i,xSpacing:n,ySpacing:r});else if("string"==typeof s){var o;try{if(window.DOMParser){var a=new DOMParser;o=a.parseFromString(s,"text/xml")}else o=new ActiveXObject("Microsoft.XMLDOM"),o.async="false",o.loadXML(s)}catch(h){o=void 0}if(!o||!o.documentElement||o.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid Bitmap Font XML given");this.addToFileList("bitmapfont",t,e,{xmlURL:null,xmlData:o,xSpacing:n,ySpacing:r})}return this},atlasJSONArray:function(t,e,i,s){return this.atlas(t,e,i,s,n.Loader.TEXTURE_ATLAS_JSON_ARRAY)},atlasJSONHash:function(t,e,i,s){return this.atlas(t,e,i,s,n.Loader.TEXTURE_ATLAS_JSON_HASH)},atlasXML:function(t,e,i,s){return this.atlas(t,e,i,s,n.Loader.TEXTURE_ATLAS_XML_STARLING)},atlas:function(t,e,i,s,r){if("undefined"==typeof i&&(i=null),"undefined"==typeof s&&(s=null),"undefined"==typeof r&&(r=n.Loader.TEXTURE_ATLAS_JSON_ARRAY),i)this.addToFileList("textureatlas",t,e,{atlasURL:i,format:r});else{switch(r){case n.Loader.TEXTURE_ATLAS_JSON_ARRAY:"string"==typeof s&&(s=JSON.parse(s));break;case n.Loader.TEXTURE_ATLAS_XML_STARLING:if("string"==typeof s){var o;try{if(window.DOMParser){var a=new DOMParser;o=a.parseFromString(s,"text/xml")}else o=new ActiveXObject("Microsoft.XMLDOM"),o.async="false",o.loadXML(s)}catch(h){o=void 0}if(!o||!o.documentElement||o.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid Texture Atlas XML given");s=o}}this.addToFileList("textureatlas",t,e,{atlasURL:null,atlasData:s,format:r})}return this},removeFile:function(t,e){var i=this.getAsset(t,e);i!==!1&&this._fileList.splice(i.index,1)},removeAll:function(){this._fileList.length=0},start:function(){this.isLoading||(this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.onLoadComplete.dispatch()))},loadFile:function(){if(!this._fileList[this._fileIndex])return void console.warn("Phaser.Loader loadFile invalid index "+this._fileIndex);var t=this._fileList[this._fileIndex],e=this;switch(this.onFileStart.dispatch(this.progress,t.key),t.type){case"image":case"spritesheet":case"textureatlas":case"bitmapfont":t.data=new Image,t.data.name=t.key,t.data.onload=function(){return e.fileComplete(e._fileIndex)},t.data.onerror=function(){return e.fileError(e._fileIndex)},this.crossOrigin&&(t.data.crossOrigin=this.crossOrigin),t.data.src=this.baseURL+t.url;break;case"audio":t.url=this.getAudioURL(t.url),null!==t.url?this.game.sound.usingWebAudio?(this._xhr.open("GET",this.baseURL+t.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return e.fileComplete(e._fileIndex)},this._xhr.onerror=function(){return e.fileError(e._fileIndex)},this._xhr.send()):this.game.sound.usingAudioTag&&(this.game.sound.touchLocked?(t.data=new Audio,t.data.name=t.key,t.data.preload="auto",t.data.src=this.baseURL+t.url,this.fileComplete(this._fileIndex)):(t.data=new Audio,t.data.name=t.key,t.data.onerror=function(){return e.fileError(e._fileIndex)},t.data.preload="auto",t.data.src=this.baseURL+t.url,t.data.addEventListener("canplaythrough",n.GAMES[this.game.id].load.fileComplete(this._fileIndex),!1),t.data.load())):this.fileError(this._fileIndex);break;case"json":window.XDomainRequest?(this._ajax=new window.XDomainRequest,this._ajax.timeout=3e3,this._ajax.onerror=function(){return e.dataLoadError(e._fileIndex)},this._ajax.ontimeout=function(){return e.dataLoadError(e._fileIndex)},this._ajax.onprogress=function(){},this._ajax.onload=function(){return e.jsonLoadComplete(e._fileIndex)},this._ajax.open("GET",this.baseURL+t.url,!0),this._ajax.send()):(this._xhr.open("GET",this.baseURL+t.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return e.jsonLoadComplete(e._fileIndex)},this._xhr.onerror=function(){return e.dataLoadError(e._fileIndex)},this._xhr.send());break;case"tilemap":if(this._xhr.open("GET",this.baseURL+t.url,!0),this._xhr.responseType="text",t.format===n.Tilemap.TILED_JSON)this._xhr.onload=function(){return e.jsonLoadComplete(e._fileIndex)};else{if(t.format!==n.Tilemap.CSV)throw new Error("Phaser.Loader. Invalid Tilemap format: "+t.format);this._xhr.onload=function(){return e.csvLoadComplete(e._fileIndex)}}this._xhr.onerror=function(){return e.dataLoadError(e._fileIndex)},this._xhr.send();break;case"text":case"script":case"physics":this._xhr.open("GET",this.baseURL+t.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return e.fileComplete(e._fileIndex)},this._xhr.onerror=function(){return e.fileError(e._fileIndex)},this._xhr.send();break;case"binary":this._xhr.open("GET",this.baseURL+t.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return e.fileComplete(e._fileIndex)},this._xhr.onerror=function(){return e.fileError(e._fileIndex)},this._xhr.send()}},getAudioURL:function(t){var e;"string"==typeof t&&(t=[t]);for(var i=0;i<t.length;i++)if(e=t[i].toLowerCase(),e=e.substr((Math.max(0,e.lastIndexOf("."))||1/0)+1),this.game.device.canPlayAudio(e))return t[i];return null},fileError:function(t){this._fileList[t].loaded=!0,this._fileList[t].error=!0,this.onFileError.dispatch(this._fileList[t].key,this._fileList[t]),console.warn("Phaser.Loader error loading file: "+this._fileList[t].key+" from URL "+this._fileList[t].url),this.nextFile(t,!1)},fileComplete:function(t){if(!this._fileList[t])return void console.warn("Phaser.Loader fileComplete invalid index "+t);var e=this._fileList[t];e.loaded=!0;var i=!0,s=this;switch(e.type){case"image":this.game.cache.addImage(e.key,e.url,e.data);break;case"spritesheet":this.game.cache.addSpriteSheet(e.key,e.url,e.data,e.frameWidth,e.frameHeight,e.frameMax,e.margin,e.spacing);break;case"textureatlas":if(null==e.atlasURL)this.game.cache.addTextureAtlas(e.key,e.url,e.data,e.atlasData,e.format);else{if(i=!1,this._xhr.open("GET",this.baseURL+e.atlasURL,!0),this._xhr.responseType="text",e.format==n.Loader.TEXTURE_ATLAS_JSON_ARRAY||e.format==n.Loader.TEXTURE_ATLAS_JSON_HASH)this._xhr.onload=function(){return s.jsonLoadComplete(t)};else{if(e.format!=n.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+e.format);this._xhr.onload=function(){return s.xmlLoadComplete(t)}}this._xhr.onerror=function(){return s.dataLoadError(t)},this._xhr.send()}break;case"bitmapfont":null==e.xmlURL?this.game.cache.addBitmapFont(e.key,e.url,e.data,e.xmlData,e.xSpacing,e.ySpacing):(i=!1,this._xhr.open("GET",this.baseURL+e.xmlURL,!0),this._xhr.responseType="text",this._xhr.onload=function(){return s.xmlLoadComplete(t)},this._xhr.onerror=function(){return s.dataLoadError(t)},this._xhr.send());break;case"audio":if(this.game.sound.usingWebAudio){if(e.data=this._xhr.response,this.game.cache.addSound(e.key,e.url,e.data,!0,!1),e.autoDecode){var r=this,o=e.key;this.game.cache.updateSound(o,"isDecoding",!0),this.game.sound.context.decodeAudioData(e.data,function(t){t&&(r.game.cache.decodedSound(o,t),r.game.sound.onSoundDecode.dispatch(o,r.game.cache.getSound(o)))})}}else e.data.removeEventListener("canplaythrough",n.GAMES[this.game.id].load.fileComplete),this.game.cache.addSound(e.key,e.url,e.data,!1,!0);break;case"text":e.data=this._xhr.responseText,this.game.cache.addText(e.key,e.url,e.data);break;case"physics":var a=JSON.parse(this._xhr.responseText);this.game.cache.addPhysicsData(e.key,e.url,a,e.format);break;case"script":e.data=document.createElement("script"),e.data.language="javascript",e.data.type="text/javascript",e.data.defer=!1,e.data.text=this._xhr.responseText,document.head.appendChild(e.data),e.callback&&(e.data=e.callback.call(e.callbackContext,e.key,this._xhr.responseText));break;case"binary":e.data=e.callback?e.callback.call(e.callbackContext,e.key,this._xhr.response):this._xhr.response,this.game.cache.addBinary(e.key,e.data)}i&&this.nextFile(t,!0)},jsonLoadComplete:function(t){if(!this._fileList[t])return void console.warn("Phaser.Loader jsonLoadComplete invalid index "+t);var e=this._fileList[t],i=JSON.parse(this._xhr.responseText);e.loaded=!0,"tilemap"===e.type?this.game.cache.addTilemap(e.key,e.url,i,e.format):"json"===e.type?this.game.cache.addJSON(e.key,e.url,i):this.game.cache.addTextureAtlas(e.key,e.url,e.data,i,e.format),this.nextFile(t,!0)},csvLoadComplete:function(t){if(!this._fileList[t])return void console.warn("Phaser.Loader csvLoadComplete invalid index "+t);var e=this._fileList[t],i=this._xhr.responseText;e.loaded=!0,this.game.cache.addTilemap(e.key,e.url,i,e.format),this.nextFile(t,!0)},dataLoadError:function(t){var e=this._fileList[t];e.loaded=!0,e.error=!0,console.warn("Phaser.Loader dataLoadError: "+e.key),this.nextFile(t,!0)},xmlLoadComplete:function(t){var e,i=this._xhr.responseText;try{if(window.DOMParser){var s=new DOMParser;e=s.parseFromString(i,"text/xml")}else e=new ActiveXObject("Microsoft.XMLDOM"),e.async="false",e.loadXML(i)}catch(n){e=void 0}if(!e||!e.documentElement||e.getElementsByTagName("parsererror").length)throw new Error("Phaser.Loader. Invalid XML given");var r=this._fileList[t];r.loaded=!0,"bitmapfont"==r.type?this.game.cache.addBitmapFont(r.key,r.url,r.data,e,r.xSpacing,r.ySpacing):"textureatlas"==r.type&&this.game.cache.addTextureAtlas(r.key,r.url,r.data,e,r.format),this.nextFile(t,!0)},nextFile:function(t,e){this.progressFloat+=this._progressChunk,this.progress=Math.round(this.progressFloat),this.progress>100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[t].key,e,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var t=0,e=0;e<this._fileList.length;e++)this._fileList[e].loaded&&t++;return t},totalQueuedFiles:function(){for(var t=0,e=0;e<this._fileList.length;e++)this._fileList[e].loaded===!1&&t++;return t}},n.Loader.prototype.constructor=n.Loader,n.LoaderParser={bitmapFont:function(t,e,i,n,r){var o={},a=e.getElementsByTagName("info")[0],h=e.getElementsByTagName("common")[0];o.font=a.getAttribute("face"),o.size=parseInt(a.getAttribute("size"),10),o.lineHeight=parseInt(h.getAttribute("lineHeight"),10)+r,o.chars={};for(var l=e.getElementsByTagName("char"),u=s.TextureCache[i],c=0;c<l.length;c++){var d=parseInt(l[c].getAttribute("id"),10),p=new s.Rectangle(parseInt(l[c].getAttribute("x"),10),parseInt(l[c].getAttribute("y"),10),parseInt(l[c].getAttribute("width"),10),parseInt(l[c].getAttribute("height"),10));o.chars[d]={xOffset:parseInt(l[c].getAttribute("xoffset"),10),yOffset:parseInt(l[c].getAttribute("yoffset"),10),xAdvance:parseInt(l[c].getAttribute("xadvance"),10)+n,kerning:{},texture:s.TextureCache[i]=new s.Texture(u,p)}}var f=e.getElementsByTagName("kerning");for(c=0;c<f.length;c++){var g=parseInt(f[c].getAttribute("first"),10),m=parseInt(f[c].getAttribute("second"),10),y=parseInt(f[c].getAttribute("amount"),10);o.chars[m].kerning[g]=y}s.BitmapText.fonts[i]=o}},n.Sound=function(t,e,i,s,r){"undefined"==typeof i&&(i=1),"undefined"==typeof s&&(s=!1),"undefined"==typeof r&&(r=t.sound.connectToMaster),this.game=t,this.name=e,this.key=e,this.loop=s,this.volume=i,this.markers={},this.context=null,this.autoplay=!1,this.totalDuration=0,this.startTime=0,this.currentTime=0,this.duration=0,this.durationMS=0,this.position=0,this.stopTime=0,this.paused=!1,this.pausedPosition=0,this.pausedTime=0,this.isPlaying=!1,this.currentMarker="",this.pendingPlayback=!1,this.override=!1,this.usingWebAudio=this.game.sound.usingWebAudio,this.usingAudioTag=this.game.sound.usingAudioTag,this.externalNode=null,this.masterGainNode=null,this.gainNode=null,this.usingWebAudio?(this.context=this.game.sound.context,this.masterGainNode=this.game.sound.masterGain,this.gainNode="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.gainNode.gain.value=i*this.game.sound.volume,r&&this.gainNode.connect(this.masterGainNode)):this.game.cache.getSound(e)&&this.game.cache.isSoundReady(e)?(this._sound=this.game.cache.getSoundData(e),this.totalDuration=0,this._sound.duration&&(this.totalDuration=this._sound.duration)):this.game.cache.onSoundUnlock.add(this.soundHasUnlocked,this),this.onDecoded=new n.Signal,this.onPlay=new n.Signal,this.onPause=new n.Signal,this.onResume=new n.Signal,this.onLoop=new n.Signal,this.onStop=new n.Signal,this.onMute=new n.Signal,this.onMarkerComplete=new n.Signal,this._volume=i,this._buffer=null,this._muted=!1,this._tempMarker=0,this._tempPosition=0,this._tempVolume=0,this._tempLoop=0,this._paused=!1},n.Sound.prototype={soundHasUnlocked:function(t){t==this.key&&(this._sound=this.game.cache.getSoundData(this.key),this.totalDuration=this._sound.duration)
  },addMarker:function(t,e,i,s,n){"undefined"==typeof s&&(s=1),"undefined"==typeof n&&(n=!1),this.markers[t]={name:t,start:e,stop:e+i,volume:s,duration:i,durationMS:1e3*i,loop:n}},removeMarker:function(t){delete this.markers[t]},update:function(){this.pendingPlayback&&this.game.cache.isSoundReady(this.key)&&(this.pendingPlayback=!1,this.play(this._tempMarker,this._tempPosition,this._tempVolume,this._tempLoop)),this.isPlaying&&(this.currentTime=this.game.time.now-this.startTime,this.currentTime>=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(t,e,i,s,n){if("undefined"==typeof t&&(t=""),"undefined"==typeof n&&(n=!0),this.isPlaying!==!0||n!==!1||this.override!==!1){if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=t,""!==t){if(!this.markers[t])return void console.warn("Phaser.Sound.play: audio marker "+t+" doesn't exist");this.position=this.markers[t].start,this.volume=this.markers[t].volume,this.loop=this.markers[t].loop,this.duration=this.markers[t].duration,this.durationMS=this.markers[t].durationMS,"undefined"!=typeof i&&(this.volume=i),"undefined"!=typeof s&&(this.loop=s),this._tempMarker=t,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else e=e||0,"undefined"==typeof i&&(i=this._volume),"undefined"==typeof s&&(s=this.loop),this.position=e,this.volume=i,this.loop=s,this.duration=0,this.durationMS=0,this._tempMarker=t,this._tempPosition=e,this._tempVolume=i,this._tempLoop=s;this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode.input:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===t&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0}},restart:function(t,e,i,s){t=t||"",e=e||0,i=i||1,"undefined"==typeof s&&(s=!1),this.play(t,e,i,s,!0)},pause:function(){this.isPlaying&&this._sound&&(this.stop(),this.isPlaying=!1,this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this))},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var t=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode.input:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,t,this.duration):this._sound.start(0,t,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){this.isPlaying&&this._sound&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.isPlaying=!1;var t=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.onStop.dispatch(this,t)},destroy:function(t){"undefined"==typeof t&&(t=!0),this.stop(),t&&this.game.sound.remove(this),this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose()}},n.Sound.prototype.constructor=n.Sound,Object.defineProperty(n.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(n.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(n.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(t){t=t||null,t?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(n.Sound.prototype,"volume",{get:function(){return this._volume},set:function(t){this.usingWebAudio?(this._volume=t,this.gainNode.gain.value=t):this.usingAudioTag&&this._sound&&t>=0&&1>=t&&(this._volume=t,this._sound.volume=t)}}),n.SoundManager=function(t){this.game=t,this.onSoundDecode=new n.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},n.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(t){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(t){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var t=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=t,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var t=0;t<this._sounds.length;t++)this._sounds[t]&&this._sounds[t].stop()},pauseAll:function(){for(var t=0;t<this._sounds.length;t++)this._sounds[t]&&this._sounds[t].pause()},resumeAll:function(){for(var t=0;t<this._sounds.length;t++)this._sounds[t]&&this._sounds[t].resume()},decode:function(t,e){e=e||null;var i=this.game.cache.getSoundData(t);if(i&&this.game.cache.isSoundDecoded(t)===!1){this.game.cache.updateSound(t,"isDecoding",!0);var s=this;this.context.decodeAudioData(i,function(i){s.game.cache.decodedSound(t,i),e&&s.onSoundDecode.dispatch(t,e)})}},update:function(){this.touchLocked&&this.game.device.webAudio&&null!==this._unlockSource&&(this._unlockSource.playbackState===this._unlockSource.PLAYING_STATE||this._unlockSource.playbackState===this._unlockSource.FINISHED_STATE)&&(this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null);for(var t=0;t<this._sounds.length;t++)this._sounds[t].update()},add:function(t,e,i,s){"undefined"==typeof e&&(e=1),"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=this.connectToMaster);var r=new n.Sound(this.game,t,e,i,s);return this._sounds.push(r),r},remove:function(t){for(var e=this._sounds.length;e--;)if(this._sounds[e]===t)return this._sounds[e].destroy(!1),this._sounds.splice(e,1),!0;return!1},removeByKey:function(t){for(var e=this._sounds.length,i=0;e--;)this._sounds[e].key===t&&(this._sounds[e].destroy(!1),this._sounds.splice(e,1),i++);return i},play:function(t,e,i){var s=this.add(t,e,i);return s.play(),s},setMute:function(){if(!this._muted){this._muted=!0,this.usingWebAudio&&(this._muteVolume=this.masterGain.gain.value,this.masterGain.gain.value=0);for(var t=0;t<this._sounds.length;t++)this._sounds[t].usingAudioTag&&(this._sounds[t].mute=!0)}},unsetMute:function(){if(this._muted&&!this._codeMuted){this._muted=!1,this.usingWebAudio&&(this.masterGain.gain.value=this._muteVolume);for(var t=0;t<this._sounds.length;t++)this._sounds[t].usingAudioTag&&(this._sounds[t].mute=!1)}}},n.SoundManager.prototype.constructor=n.SoundManager,Object.defineProperty(n.SoundManager.prototype,"mute",{get:function(){return this._muted},set:function(t){if(t=t||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(n.SoundManager.prototype,"volume",{get:function(){return this.usingWebAudio?this.masterGain.gain.value:this._volume},set:function(t){if(this._volume=t,this.usingWebAudio)this.masterGain.gain.value=t;else for(var e=0;e<this._sounds.length;e++)this._sounds[e].usingAudioTag&&(this._sounds[e].volume=this._sounds[e].volume*t)}}),n.Utils.Debug=function(t){this.game=t,this.sprite=null,this.canvas=null,this.baseTexture=null,this.texture=null,this.textureFrame=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},n.Utils.Debug.prototype={boot:function(){this.game.renderType===n.CANVAS?this.context=this.game.context:(this.canvas=n.Canvas.create(this.game.width,this.game.height,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new s.BaseTexture(this.canvas),this.texture=new s.Texture(this.baseTexture),this.textureFrame=new n.Frame(0,0,0,this.game.width,this.game.height,"debug",this.game.rnd.uuid()),this.sprite=this.game.make.image(0,0,this.texture,this.textureFrame),this.game.stage.addChild(this.sprite))},preUpdate:function(){this.dirty&&this.sprite&&(this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},start:function(t,e,i,s){"number"!=typeof t&&(t=0),"number"!=typeof e&&(e=0),i=i||"rgb(255,255,255)","undefined"==typeof s&&(s=0),this.currentX=t,this.currentY=e,this.currentColor=i,this.currentAlpha=this.context.globalAlpha,this.columnWidth=s,this.sprite&&(this.dirty=!0),this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=i,this.context.fillStyle=i,this.context.font=this.font,this.context.globalAlpha=1},stop:function(){this.context.restore(),this.context.globalAlpha=this.currentAlpha,this.sprite&&s.updateWebGLTexture(this.baseTexture,this.game.renderer.gl)},line:function(){for(var t=this.currentX,e=0;e<arguments.length;e++)this.renderShadow&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(arguments[e],t+1,this.currentY+1),this.context.fillStyle=this.currentColor),this.context.fillText(arguments[e],t,this.currentY),t+=this.columnWidth;this.currentY+=this.lineHeight},soundInfo:function(t,e,i,s){this.start(e,i,s),this.line("Sound: "+t.key+" Locked: "+t.game.sound.touchLocked),this.line("Is Ready?: "+this.game.cache.isSoundReady(t.key)+" Pending Playback: "+t.pendingPlayback),this.line("Decoded: "+t.isDecoded+" Decoding: "+t.isDecoding),this.line("Total Duration: "+t.totalDuration+" Playing: "+t.isPlaying),this.line("Time: "+t.currentTime),this.line("Volume: "+t.volume+" Muted: "+t.mute),this.line("WebAudio: "+t.usingWebAudio+" Audio: "+t.usingAudioTag),""!==t.currentMarker&&(this.line("Marker: "+t.currentMarker+" Duration: "+t.duration+" (ms: "+t.durationMS+")"),this.line("Start: "+t.markers[t.currentMarker].start+" Stop: "+t.markers[t.currentMarker].stop),this.line("Position: "+t.position)),this.stop()},cameraInfo:function(t,e,i,s){this.start(e,i,s),this.line("Camera ("+t.width+" x "+t.height+")"),this.line("X: "+t.x+" Y: "+t.y),this.line("Bounds x: "+t.bounds.x+" Y: "+t.bounds.y+" w: "+t.bounds.width+" h: "+t.bounds.height),this.line("View x: "+t.view.x+" Y: "+t.view.y+" w: "+t.view.width+" h: "+t.view.height),this.stop()},timer:function(t,e,i,s){this.start(e,i,s),this.line("Timer (running: "+t.running+" expired: "+t.expired+")"),this.line("Next Tick: "+t.next+" Duration: "+t.duration),this.line("Paused: "+t.paused+" Length: "+t.length),this.stop()},pointer:function(t,e,i,s,n){null!=t&&("undefined"==typeof e&&(e=!1),i=i||"rgba(0,255,0,0.5)",s=s||"rgba(255,0,0,0.5)",(e!==!0||t.isUp!==!0)&&(this.start(t.x,t.y-100,n),this.context.beginPath(),this.context.arc(t.x,t.y,t.circle.radius,0,2*Math.PI),this.context.fillStyle=t.active?i:s,this.context.fill(),this.context.closePath(),this.context.beginPath(),this.context.moveTo(t.positionDown.x,t.positionDown.y),this.context.lineTo(t.position.x,t.position.y),this.context.lineWidth=2,this.context.stroke(),this.context.closePath(),this.line("ID: "+t.id+" Active: "+t.active),this.line("World X: "+t.worldX+" World Y: "+t.worldY),this.line("Screen X: "+t.x+" Screen Y: "+t.y),this.line("Duration: "+t.duration+" ms"),this.line("is Down: "+t.isDown+" is Up: "+t.isUp),this.stop()))},spriteInputInfo:function(t,e,i,s){this.start(e,i,s),this.line("Sprite Input: ("+t.width+" x "+t.height+")"),this.line("x: "+t.input.pointerX().toFixed(1)+" y: "+t.input.pointerY().toFixed(1)),this.line("over: "+t.input.pointerOver()+" duration: "+t.input.overDuration().toFixed(0)),this.line("down: "+t.input.pointerDown()+" duration: "+t.input.downDuration().toFixed(0)),this.line("just over: "+t.input.justOver()+" just out: "+t.input.justOut()),this.stop()},key:function(t,e,i,s){this.start(e,i,s,150),this.line("Key:",t.keyCode,"isDown:",t.isDown),this.line("justPressed:",t.justPressed(),"justReleased:",t.justReleased()),this.line("Time Down:",t.timeDown.toFixed(0),"duration:",t.duration.toFixed(0)),this.stop()},inputInfo:function(t,e,i){this.start(t,e,i),this.line("Input"),this.line("X: "+this.game.input.x+" Y: "+this.game.input.y),this.line("World X: "+this.game.input.worldX+" World Y: "+this.game.input.worldY),this.line("Scale X: "+this.game.input.scale.x.toFixed(1)+" Scale Y: "+this.game.input.scale.x.toFixed(1)),this.line("Screen X: "+this.game.input.activePointer.screenX+" Screen Y: "+this.game.input.activePointer.screenY),this.stop()},spriteBounds:function(t,e,i){var s=t.getBounds();s.x+=this.game.camera.x,s.y+=this.game.camera.y,this.rectangle(s,e,i)},spriteInfo:function(t,e,i,s){this.start(e,i,s),this.line("Sprite:  ("+t.width+" x "+t.height+") anchor: "+t.anchor.x+" x "+t.anchor.y),this.line("x: "+t.x.toFixed(1)+" y: "+t.y.toFixed(1)),this.line("angle: "+t.angle.toFixed(1)+" rotation: "+t.rotation.toFixed(1)),this.line("visible: "+t.visible+" in camera: "+t.inCamera),this.stop()},spriteCoords:function(t,e,i,s){this.start(e,i,s,100),t.name&&this.line(t.name),this.line("x:",t.x.toFixed(2),"y:",t.y.toFixed(2)),this.line("pos x:",t.position.x.toFixed(2),"pos y:",t.position.y.toFixed(2)),this.line("world x:",t.world.x.toFixed(2),"world y:",t.world.y.toFixed(2)),this.stop()},lineInfo:function(t,e,i,s){this.start(e,i,s,80),this.line("start.x:",t.start.x.toFixed(2),"start.y:",t.start.y.toFixed(2)),this.line("end.x:",t.end.x.toFixed(2),"end.y:",t.end.y.toFixed(2)),this.line("length:",t.length.toFixed(2),"angle:",t.angle),this.stop()},pixel:function(t,e,i,s){s=s||2,this.start(),this.context.fillStyle=i,this.context.fillRect(t,e,s,s),this.stop()},geom:function(t,e,i,s){"undefined"==typeof i&&(i=!0),"undefined"==typeof s&&(s=0),e=e||"rgba(0,255,0,0.4)",this.start(),this.context.fillStyle=e,this.context.strokeStyle=e,t instanceof n.Rectangle||1===s?i?this.context.fillRect(t.x-this.game.camera.x,t.y-this.game.camera.y,t.width,t.height):this.context.strokeRect(t.x-this.game.camera.x,t.y-this.game.camera.y,t.width,t.height):t instanceof n.Circle||2===s?(this.context.beginPath(),this.context.arc(t.x-this.game.camera.x,t.y-this.game.camera.y,t.radius,0,2*Math.PI,!1),this.context.closePath(),i?this.context.fill():this.context.stroke()):t instanceof n.Point||3===s?this.context.fillRect(t.x-this.game.camera.x,t.y-this.game.camera.y,4,4):(t instanceof n.Line||4===s)&&(this.context.lineWidth=1,this.context.beginPath(),this.context.moveTo(t.start.x+.5-this.game.camera.x,t.start.y+.5-this.game.camera.y),this.context.lineTo(t.end.x+.5-this.game.camera.x,t.end.y+.5-this.game.camera.y),this.context.closePath(),this.context.stroke()),this.stop()},rectangle:function(t,e,i){"undefined"==typeof i&&(i=!0),e=e||"rgba(0, 255, 0, 0.4)",this.start(),i?(this.context.fillStyle=e,this.context.fillRect(t.x-this.game.camera.x,t.y-this.game.camera.y,t.width,t.height)):(this.context.strokeStyle=e,this.context.strokeRect(t.x-this.game.camera.x,t.y-this.game.camera.y,t.width,t.height)),this.stop()},text:function(t,e,i,s,n){s=s||"rgb(255,255,255)",n=n||"16px Courier",this.start(),this.context.font=n,this.renderShadow&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(t,e+1,i+1)),this.context.fillStyle=s,this.context.fillText(t,e,i),this.stop()},quadTree:function(t,e){e=e||"rgba(255,0,0,0.3)",this.start();var i=t.bounds;if(0===t.nodes.length){this.context.strokeStyle=e,this.context.strokeRect(i.x,i.y,i.width,i.height),this.text("size: "+t.objects.length,i.x+4,i.y+16,"rgb(0,200,0)","12px Courier"),this.context.strokeStyle="rgb(0,255,0)";for(var s=0;s<t.objects.length;s++)this.context.strokeRect(t.objects[s].x,t.objects[s].y,t.objects[s].width,t.objects[s].height)}else for(var s=0;s<t.nodes.length;s++)this.quadTree(t.nodes[s]);this.stop()},body:function(t,e,i){t.body&&t.body.type===n.Physics.ARCADE&&(this.start(),n.Physics.Arcade.Body.render(this.context,t.body,e,i),this.stop())},bodyInfo:function(t,e,i,s){t.body&&t.body.type===n.Physics.ARCADE&&(this.start(e,i,s,210),n.Physics.Arcade.Body.renderBodyInfo(this,t.body),this.stop())}},n.Utils.Debug.prototype.constructor=n.Utils.Debug,n.Color={packPixel:function(t,e,i,s){return n.Device.LITTLE_ENDIAN?s<<24|i<<16|e<<8|t:t<<24|e<<16|i<<8|s},unpackPixel:function(t,e,i,s){return("undefined"==typeof e||null===e)&&(e=n.Color.createColor()),("undefined"==typeof i||null===i)&&(i=!1),("undefined"==typeof s||null===s)&&(s=!1),n.Device.LITTLE_ENDIAN?(e.a=(4278190080&t)>>>24,e.b=(16711680&t)>>>16,e.g=(65280&t)>>>8,e.r=255&t):(e.r=(4278190080&t)>>>24,e.g=(16711680&t)>>>16,e.b=(65280&t)>>>8,e.a=255&t),e.color=t,e.rgba="rgba("+e.r+","+e.g+","+e.b+","+e.a/255+")",i&&n.Color.RGBtoHSL(e.r,e.g,e.b,e),s&&n.Color.RGBtoHSV(e.r,e.g,e.b,e),e},fromRGBA:function(t,e){return e||(e=n.Color.createColor()),e.r=(4278190080&t)>>>24,e.g=(16711680&t)>>>16,e.b=(65280&t)>>>8,e.a=255&t,e.rgba="rgba("+e.r+","+e.g+","+e.b+","+e.a+")",e},toRGBA:function(t,e,i,s){return t<<24|e<<16|i<<8|s},RGBtoHSL:function(t,e,i,s){s||(s=n.Color.createColor(t,e,i,1)),t/=255,e/=255,i/=255;var r=Math.min(t,e,i),o=Math.max(t,e,i);if(s.h=0,s.s=0,s.l=(o+r)/2,o!==r){var a=o-r;s.s=s.l>.5?a/(2-o-r):a/(o+r),o===t?s.h=(e-i)/a+(i>e?6:0):o===e?s.h=(i-t)/a+2:o===i&&(s.h=(t-e)/a+4),s.h/=6}return s},HSLtoRGB:function(t,e,i,s){if(s?(s.r=i,s.g=i,s.b=i):s=n.Color.createColor(i,i,i),0!==e){var r=.5>i?i*(1+e):i+e-i*e,o=2*i-r;s.r=n.Color.hueToColor(o,r,t+1/3),s.g=n.Color.hueToColor(o,r,t),s.b=n.Color.hueToColor(o,r,t-1/3)}return s.r=Math.floor(255*s.r|0),s.g=Math.floor(255*s.g|0),s.b=Math.floor(255*s.b|0),n.Color.updateColor(s),s},RGBtoHSV:function(t,e,i,s){s||(s=n.Color.createColor(t,e,i,255)),t/=255,e/=255,i/=255;var r=Math.min(t,e,i),o=Math.max(t,e,i),a=o-r;return s.h=0,s.s=0===o?0:a/o,s.v=o,o!==r&&(o===t?s.h=(e-i)/a+(i>e?6:0):o===e?s.h=(i-t)/a+2:o===i&&(s.h=(t-e)/a+4),s.h/=6),s},HSVtoRGB:function(t,e,i,s){"undefined"==typeof s&&(s=n.Color.createColor(0,0,0,1,t,e,0,i));var r,o,a,h=Math.floor(6*t),l=6*t-h,u=i*(1-e),c=i*(1-l*e),d=i*(1-(1-l)*e);switch(h%6){case 0:r=i,o=d,a=u;break;case 1:r=c,o=i,a=u;break;case 2:r=u,o=i,a=d;break;case 3:r=u,o=c,a=i;break;case 4:r=d,o=u,a=i;break;case 5:r=i,o=u,a=c}return s.r=Math.floor(255*r),s.g=Math.floor(255*o),s.b=Math.floor(255*a),n.Color.updateColor(s),s},hueToColor:function(t,e,i){return 0>i&&(i+=1),i>1&&(i-=1),1/6>i?t+6*(e-t)*i:.5>i?e:2/3>i?t+(e-t)*(2/3-i)*6:t},createColor:function(t,e,i,s,n,r,o,a){var h={r:t||0,g:e||0,b:i||0,a:s||1,h:n||0,s:r||0,l:o||0,v:a||0,color:0};return h.rgba="rgba("+h.r+","+h.g+","+h.b+","+h.a+")",h},updateColor:function(t){return t.rgba="rgba("+t.r+","+t.g+","+t.b+","+t.a+")",t},getColor32:function(t,e,i,s){return t<<24|e<<16|i<<8|s},getColor:function(t,e,i){return t<<16|e<<8|i},RGBtoString:function(t,e,i,s,r){return"undefined"==typeof s&&(s=255),"undefined"==typeof r&&(r="#"),"#"===r?"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1):"0x"+n.Color.componentToHex(s)+n.Color.componentToHex(t)+n.Color.componentToHex(e)+n.Color.componentToHex(i)},hexToRGB:function(t){var e=n.Color.hexToColor(t);return e?n.Color.getColor32(e.a,e.r,e.g,e.b):void 0},hexToColor:function(t,e){e||(e=n.Color.createColor());var i=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(i,function(t,e,i,s){return e+e+i+i+s+s});var s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return s&&(e.r=parseInt(s[1],16),e.g=parseInt(s[2],16),e.b=parseInt(s[3],16)),e},componentToHex:function(t){var e=t.toString(16);return 1==e.length?"0"+e:e},HSVColorWheel:function(t,e){"undefined"==typeof t&&(t=1),"undefined"==typeof e&&(e=1);for(var i=[],s=0;359>=s;s++)i.push(n.Color.HSVtoRGB(s/359,t,e));return i},HSLColorWheel:function(t,e){"undefined"==typeof t&&(t=.5),"undefined"==typeof e&&(e=.5);for(var i=[],s=0;359>=s;s++)i.push(n.Color.HSLtoRGB(s/359,t,e));return i},interpolateColor:function(t,e,i,s,r){"undefined"==typeof r&&(r=255);var o=n.Color.getRGB(t),a=n.Color.getRGB(e),h=(a.red-o.red)*s/i+o.red,l=(a.green-o.green)*s/i+o.green,u=(a.blue-o.blue)*s/i+o.blue;return n.Color.getColor32(r,h,l,u)},interpolateColorWithRGB:function(t,e,i,s,r,o){var a=n.Color.getRGB(t),h=(e-a.red)*o/r+a.red,l=(i-a.green)*o/r+a.green,u=(s-a.blue)*o/r+a.blue;return n.Color.getColor(h,l,u)},interpolateRGB:function(t,e,i,s,r,o,a,h){var l=(s-t)*h/a+t,u=(r-e)*h/a+e,c=(o-i)*h/a+i;return n.Color.getColor(l,u,c)},getRandomColor:function(t,e,i){if("undefined"==typeof t&&(t=0),"undefined"==typeof e&&(e=255),"undefined"==typeof i&&(i=255),e>255||t>e)return n.Color.getColor(255,255,255);var s=t+Math.round(Math.random()*(e-t)),r=t+Math.round(Math.random()*(e-t)),o=t+Math.round(Math.random()*(e-t));return n.Color.getColor32(i,s,r,o)},getRGB:function(t){return{alpha:t>>>24,red:t>>16&255,green:t>>8&255,blue:255&t}},getWebRGB:function(t){var e=(t>>>24)/255,i=t>>16&255,s=t>>8&255,n=255&t;return"rgba("+i.toString()+","+s.toString()+","+n.toString()+","+e.toString()+")"},getAlpha:function(t){return t>>>24},getAlphaFloat:function(t){return(t>>>24)/255},getRed:function(t){return t>>16&255},getGreen:function(t){return t>>8&255},getBlue:function(t){return 255&t},getColorInfo:function(t){var e=n.Color.getRGB(t),i=n.Color.RGBtoHexstring(t)+"\n";return i=i.concat("Alpha: "+e.alpha+" Red: "+e.red+" Green: "+e.green+" Blue: "+e.blue)+"\n"},RGBtoHexstring:function(t){var e=n.Color.getRGB(t);return"0x"+n.Color.colorToHexstring(e.alpha)+n.Color.colorToHexstring(e.red)+n.Color.colorToHexstring(e.green)+n.Color.colorToHexstring(e.blue)},RGBtoWebstring:function(t){var e=n.Color.getRGB(t);return"#"+n.Color.colorToHexstring(e.red)+n.Color.colorToHexstring(e.green)+n.Color.colorToHexstring(e.blue)},colorToHexstring:function(t){var e="0123456789ABCDEF",i=t%16,s=(t-i)/16,n=e.charAt(s)+e.charAt(i);return n}},n.Physics=function(t,e){e=e||{},this.game=t,this.config=e,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},n.Physics.ARCADE=0,n.Physics.P2JS=1,n.Physics.NINJA=2,n.Physics.BOX2D=3,n.Physics.CHIPMUNK=5,n.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!n.Physics.hasOwnProperty("Arcade")||(this.arcade=new n.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&n.Physics.hasOwnProperty("Ninja")&&(this.ninja=new n.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&n.Physics.hasOwnProperty("P2")&&(this.p2=new n.Physics.P2(this.game,this.config))},startSystem:function(t){if(t===n.Physics.ARCADE?this.arcade=new n.Physics.Arcade(this.game):t===n.Physics.P2JS&&(this.p2=new n.Physics.P2(this.game,this.config)),t===n.Physics.NINJA)this.ninja=new n.Physics.Ninja(this.game);else{if(t===n.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(t===n.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(t,e,i){"undefined"==typeof e&&(e=n.Physics.ARCADE),"undefined"==typeof i&&(i=!1),e===n.Physics.ARCADE?this.arcade.enable(t):e===n.Physics.P2JS&&this.p2?this.p2.enable(t,i):e===n.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(t)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},n.Physics.prototype.constructor=n.Physics,n.Physics.Arcade=function(t){this.game=t,this.gravity=new n.Point,this.bounds=new n.Rectangle(0,0,t.world.width,t.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new n.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},n.Physics.Arcade.prototype.constructor=n.Physics.Arcade,n.Physics.Arcade.prototype={setBounds:function(t,e,i,s){this.bounds.setTo(t,e,i,s)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(t,e){"undefined"==typeof e&&(e=!0);var i=1;if(Array.isArray(t))for(i=t.length;i--;)t[i]instanceof n.Group?this.enable(t[i].children,e):(this.enableBody(t[i]),e&&t[i].hasOwnProperty("children")&&t[i].children.length>0&&this.enable(t[i],!0));else t instanceof n.Group?this.enable(t.children,e):(this.enableBody(t),e&&t.hasOwnProperty("children")&&t.children.length>0&&this.enable(t.children,!0))},enableBody:function(t){t.hasOwnProperty("body")&&null===t.body&&(t.body=new n.Physics.Arcade.Body(t))},updateMotion:function(t){this._velocityDelta=this.computeVelocity(0,t,t.angularVelocity,t.angularAcceleration,t.angularDrag,t.maxAngular)-t.angularVelocity,t.angularVelocity+=this._velocityDelta,t.rotation+=t.angularVelocity*this.game.time.physicsElapsed,t.velocity.x=this.computeVelocity(1,t,t.velocity.x,t.acceleration.x,t.drag.x,t.maxVelocity.x),t.velocity.y=this.computeVelocity(2,t,t.velocity.y,t.acceleration.y,t.drag.y,t.maxVelocity.y)},computeVelocity:function(t,e,i,s,n,r){return r=r||1e4,1==t&&e.allowGravity?i+=(this.gravity.x+e.gravity.x)*this.game.time.physicsElapsed:2==t&&e.allowGravity&&(i+=(this.gravity.y+e.gravity.y)*this.game.time.physicsElapsed),s?i+=s*this.game.time.physicsElapsed:n&&(this._drag=n*this.game.time.physicsElapsed,i-this._drag>0?i-=this._drag:i+this._drag<0?i+=this._drag:i=0),i>r?i=r:-r>i&&(i=-r),i},overlap:function(t,e,i,s,n){if(i=i||null,s=s||null,n=n||i,this._result=!1,this._total=0,Array.isArray(e))for(var r=0,o=e.length;o>r;r++)this.collideHandler(t,e[r],i,s,n,!0);else this.collideHandler(t,e,i,s,n,!0);return this._total>0},collide:function(t,e,i,s,n){if(i=i||null,s=s||null,n=n||i,this._result=!1,this._total=0,Array.isArray(e))for(var r=0,o=e.length;o>r;r++)this.collideHandler(t,e[r],i,s,n,!1);else this.collideHandler(t,e,i,s,n,!1);return this._total>0},collideHandler:function(t,e,i,s,r,o){return"undefined"!=typeof e||t.type!==n.GROUP&&t.type!==n.EMITTER?void(t&&e&&t.exists&&e.exists&&(t.type==n.SPRITE||t.type==n.TILESPRITE?e.type==n.SPRITE||e.type==n.TILESPRITE?this.collideSpriteVsSprite(t,e,i,s,r,o):e.type==n.GROUP||e.type==n.EMITTER?this.collideSpriteVsGroup(t,e,i,s,r,o):e.type==n.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(t,e,i,s,r):t.type==n.GROUP?e.type==n.SPRITE||e.type==n.TILESPRITE?this.collideSpriteVsGroup(e,t,i,s,r,o):e.type==n.GROUP||e.type==n.EMITTER?this.collideGroupVsGroup(t,e,i,s,r,o):e.type==n.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(t,e,i,s,r):t.type==n.TILEMAPLAYER?e.type==n.SPRITE||e.type==n.TILESPRITE?this.collideSpriteVsTilemapLayer(e,t,i,s,r):(e.type==n.GROUP||e.type==n.EMITTER)&&this.collideGroupVsTilemapLayer(e,t,i,s,r):t.type==n.EMITTER&&(e.type==n.SPRITE||e.type==n.TILESPRITE?this.collideSpriteVsGroup(e,t,i,s,r,o):e.type==n.GROUP||e.type==n.EMITTER?this.collideGroupVsGroup(t,e,i,s,r,o):e.type==n.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(t,e,i,s,r)))):void this.collideGroupVsSelf(t,i,s,r,o)},collideSpriteVsSprite:function(t,e,i,s,n,r){return t.body&&e.body?(this.separate(t.body,e.body,s,n,r)&&(i&&i.call(n,t,e),this._total++),!0):!1},collideSpriteVsGroup:function(t,e,i,s,n,r){if(0!==e.length&&t.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(e),this._potentials=this.quadTree.retrieve(t);for(var o=0,a=this._potentials.length;a>o;o++)this.separate(t.body,this._potentials[o],s,n,r)&&(i&&i.call(n,t,this._potentials[o].sprite),this._total++)}},collideGroupVsSelf:function(t,e,i,s,n){if(0!==t.length)for(var r=t.children.length,o=0;r>o;o++)for(var a=o+1;r>=a;a++)t.children[o]&&t.children[a]&&t.children[o].exists&&t.children[a].exists&&this.collideSpriteVsSprite(t.children[o],t.children[a],e,i,s,n)},collideGroupVsGroup:function(t,e,i,s,n,r){if(0!==t.length&&0!==e.length)for(var o=0,a=t.children.length;a>o;o++)t.children[o].exists&&this.collideSpriteVsGroup(t.children[o],e,i,s,n,r)
  },collideSpriteVsTilemapLayer:function(t,e,i,s,n){if(t.body&&(this._mapData=e.getTiles(t.body.position.x-t.body.tilePadding.x,t.body.position.y-t.body.tilePadding.y,t.body.width+t.body.tilePadding.x,t.body.height+t.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var r=0;r<this._mapData.length;r++)this.separateTile(r,t.body,this._mapData[r])&&(s?s.call(n,t,this._mapData[r])&&(this._total++,i&&i.call(n,t,this._mapData[r])):(this._total++,i&&i.call(n,t,this._mapData[r])))},collideGroupVsTilemapLayer:function(t,e,i,s,n){if(0!==t.length)for(var r=0,o=t.children.length;o>r;r++)t.children[r].exists&&this.collideSpriteVsTilemapLayer(t.children[r],e,i,s,n)},separate:function(t,e,i,s,n){return this.intersects(t,e)?i&&i.call(s,t.sprite,e.sprite)===!1?!1:n?!0:(this._result=this.forceX||Math.abs(this.gravity.y+t.gravity.y)<Math.abs(this.gravity.x+t.gravity.x)?this.separateX(t,e,n)||this.separateY(t,e,n):this.separateY(t,e,n)||this.separateX(t,e,n),this._result):!1},intersects:function(t,e){return t.right<=e.position.x?!1:t.bottom<=e.position.y?!1:t.position.x>=e.right?!1:t.position.y>=e.bottom?!1:!0},separateX:function(t,e,i){return t.immovable&&e.immovable?!1:(this._overlap=0,this.intersects(t,e)&&(this._maxOverlap=t.deltaAbsX()+e.deltaAbsX()+this.OVERLAP_BIAS,0===t.deltaX()&&0===e.deltaX()?(t.embedded=!0,e.embedded=!0):t.deltaX()>e.deltaX()?(this._overlap=t.right-e.x,this._overlap>this._maxOverlap||t.checkCollision.right===!1||e.checkCollision.left===!1?this._overlap=0:(t.touching.none=!1,t.touching.right=!0,e.touching.none=!1,e.touching.left=!0)):t.deltaX()<e.deltaX()&&(this._overlap=t.x-e.width-e.x,-this._overlap>this._maxOverlap||t.checkCollision.left===!1||e.checkCollision.right===!1?this._overlap=0:(t.touching.none=!1,t.touching.left=!0,e.touching.none=!1,e.touching.right=!0)),0!==this._overlap)?(t.overlapX=this._overlap,e.overlapX=this._overlap,i||t.customSeparateX||e.customSeparateX?!0:(this._velocity1=t.velocity.x,this._velocity2=e.velocity.x,t.immovable||e.immovable?t.immovable?e.immovable||(e.x+=this._overlap,e.velocity.x=this._velocity1-this._velocity2*e.bounce.x):(t.x=t.x-this._overlap,t.velocity.x=this._velocity2-this._velocity1*t.bounce.x):(this._overlap*=.5,t.x=t.x-this._overlap,e.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*e.mass/t.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*t.mass/e.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,t.velocity.x=this._average+this._newVelocity1*t.bounce.x,e.velocity.x=this._average+this._newVelocity2*e.bounce.x),!0)):!1)},separateY:function(t,e,i){return t.immovable&&e.immovable?!1:(this._overlap=0,this.intersects(t,e)&&(this._maxOverlap=t.deltaAbsY()+e.deltaAbsY()+this.OVERLAP_BIAS,0===t.deltaY()&&0===e.deltaY()?(t.embedded=!0,e.embedded=!0):t.deltaY()>e.deltaY()?(this._overlap=t.bottom-e.y,this._overlap>this._maxOverlap||t.checkCollision.down===!1||e.checkCollision.up===!1?this._overlap=0:(t.touching.none=!1,t.touching.down=!0,e.touching.none=!1,e.touching.up=!0)):t.deltaY()<e.deltaY()&&(this._overlap=t.y-e.bottom,-this._overlap>this._maxOverlap||t.checkCollision.up===!1||e.checkCollision.down===!1?this._overlap=0:(t.touching.none=!1,t.touching.up=!0,e.touching.none=!1,e.touching.down=!0)),0!==this._overlap)?(t.overlapY=this._overlap,e.overlapY=this._overlap,i||t.customSeparateY||e.customSeparateY?!0:(this._velocity1=t.velocity.y,this._velocity2=e.velocity.y,t.immovable||e.immovable?t.immovable?e.immovable||(e.y+=this._overlap,e.velocity.y=this._velocity1-this._velocity2*e.bounce.y,t.moves&&(e.x+=t.x-t.prev.x)):(t.y=t.y-this._overlap,t.velocity.y=this._velocity2-this._velocity1*t.bounce.y,e.moves&&(t.x+=e.x-e.prev.x)):(this._overlap*=.5,t.y=t.y-this._overlap,e.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*e.mass/t.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*t.mass/e.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,t.velocity.y=this._average+this._newVelocity1*t.bounce.y,e.velocity.y=this._average+this._newVelocity2*e.bounce.y),!0)):!1)},separateTile:function(t,e,i){if(!i.intersects(e.position.x,e.position.y,e.right,e.bottom))return!1;if(i.collisionCallback&&!i.collisionCallback.call(i.collisionCallbackContext,e.sprite,i))return!1;if(i.layer.callbacks[i.index]&&!i.layer.callbacks[i.index].callback.call(i.layer.callbacks[i.index].callbackContext,e.sprite,i))return!1;if(!(i.faceLeft||i.faceRight||i.faceTop||i.faceBottom))return!1;var s=0,n=0,r=0,o=1;if(e.deltaAbsX()>e.deltaAbsY()?r=-1:e.deltaAbsX()<e.deltaAbsY()&&(o=-1),0!==e.deltaX()&&0!==e.deltaY()&&(i.faceLeft||i.faceRight)&&(i.faceTop||i.faceBottom)&&(r=Math.min(Math.abs(e.position.x-i.right),Math.abs(e.right-i.left)),o=Math.min(Math.abs(e.position.y-i.bottom),Math.abs(e.bottom-i.top))),o>r){if((i.faceLeft||i.faceRight)&&(s=this.tileCheckX(e,i),0!==s&&!i.intersects(e.position.x,e.position.y,e.right,e.bottom)))return!0;(i.faceTop||i.faceBottom)&&(n=this.tileCheckY(e,i))}else{if((i.faceTop||i.faceBottom)&&(n=this.tileCheckY(e,i),0!==n&&!i.intersects(e.position.x,e.position.y,e.right,e.bottom)))return!0;(i.faceLeft||i.faceRight)&&(s=this.tileCheckX(e,i))}return 0!==s||0!==n},tileCheckX:function(t,e){var i=0;return t.deltaX()<0&&!t.blocked.left&&e.collideRight&&t.checkCollision.left?e.faceRight&&t.x<e.right&&(i=t.x-e.right,i<-this.TILE_BIAS&&(i=0)):t.deltaX()>0&&!t.blocked.right&&e.collideLeft&&t.checkCollision.right&&e.faceLeft&&t.right>e.left&&(i=t.right-e.left,i>this.TILE_BIAS&&(i=0)),0!==i&&this.processTileSeparationX(t,i),i},tileCheckY:function(t,e){var i=0;return t.deltaY()<0&&!t.blocked.up&&e.collideDown&&t.checkCollision.up?e.faceBottom&&t.y<e.bottom&&(i=t.y-e.bottom,i<-this.TILE_BIAS&&(i=0)):t.deltaY()>0&&!t.blocked.down&&e.collideUp&&t.checkCollision.down&&e.faceTop&&t.bottom>e.top&&(i=t.bottom-e.top,i>this.TILE_BIAS&&(i=0)),0!==i&&this.processTileSeparationY(t,i),i},processTileSeparationX:function(t,e){0>e?t.blocked.left=!0:e>0&&(t.blocked.right=!0),t.position.x-=e,t.velocity.x=0===t.bounce.x?0:-t.velocity.x*t.bounce.x},processTileSeparationY:function(t,e){0>e?t.blocked.up=!0:e>0&&(t.blocked.down=!0),t.position.y-=e,t.velocity.y=0===t.bounce.y?0:-t.velocity.y*t.bounce.y},moveToObject:function(t,e,i,s){return"undefined"==typeof i&&(i=60),"undefined"==typeof s&&(s=0),this._angle=Math.atan2(e.y-t.y,e.x-t.x),s>0&&(i=this.distanceBetween(t,e)/(s/1e3)),t.body.velocity.x=Math.cos(this._angle)*i,t.body.velocity.y=Math.sin(this._angle)*i,this._angle},moveToPointer:function(t,e,i,s){return"undefined"==typeof e&&(e=60),i=i||this.game.input.activePointer,"undefined"==typeof s&&(s=0),this._angle=this.angleToPointer(t,i),s>0&&(e=this.distanceToPointer(t,i)/(s/1e3)),t.body.velocity.x=Math.cos(this._angle)*e,t.body.velocity.y=Math.sin(this._angle)*e,this._angle},moveToXY:function(t,e,i,s,n){return"undefined"==typeof s&&(s=60),"undefined"==typeof n&&(n=0),this._angle=Math.atan2(i-t.y,e-t.x),n>0&&(s=this.distanceToXY(t,e,i)/(n/1e3)),t.body.velocity.x=Math.cos(this._angle)*s,t.body.velocity.y=Math.sin(this._angle)*s,this._angle},velocityFromAngle:function(t,e,i){return"undefined"==typeof e&&(e=60),i=i||new n.Point,i.setTo(Math.cos(this.game.math.degToRad(t))*e,Math.sin(this.game.math.degToRad(t))*e)},velocityFromRotation:function(t,e,i){return"undefined"==typeof e&&(e=60),i=i||new n.Point,i.setTo(Math.cos(t)*e,Math.sin(t)*e)},accelerationFromRotation:function(t,e,i){return"undefined"==typeof e&&(e=60),i=i||new n.Point,i.setTo(Math.cos(t)*e,Math.sin(t)*e)},accelerateToObject:function(t,e,i,s,n){return"undefined"==typeof i&&(i=60),"undefined"==typeof s&&(s=1e3),"undefined"==typeof n&&(n=1e3),this._angle=this.angleBetween(t,e),t.body.acceleration.setTo(Math.cos(this._angle)*i,Math.sin(this._angle)*i),t.body.maxVelocity.setTo(s,n),this._angle},accelerateToPointer:function(t,e,i,s,n){return"undefined"==typeof i&&(i=60),"undefined"==typeof e&&(e=this.game.input.activePointer),"undefined"==typeof s&&(s=1e3),"undefined"==typeof n&&(n=1e3),this._angle=this.angleToPointer(t,e),t.body.acceleration.setTo(Math.cos(this._angle)*i,Math.sin(this._angle)*i),t.body.maxVelocity.setTo(s,n),this._angle},accelerateToXY:function(t,e,i,s,n,r){return"undefined"==typeof s&&(s=60),"undefined"==typeof n&&(n=1e3),"undefined"==typeof r&&(r=1e3),this._angle=this.angleToXY(t,e,i),t.body.acceleration.setTo(Math.cos(this._angle)*s,Math.sin(this._angle)*s),t.body.maxVelocity.setTo(n,r),this._angle},distanceBetween:function(t,e){return this._dx=t.x-e.x,this._dy=t.y-e.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(t,e,i){return this._dx=t.x-e,this._dy=t.y-i,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(t,e){return e=e||this.game.input.activePointer,this._dx=t.x-e.x,this._dy=t.y-e.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(t,e){return this._dx=e.x-t.x,this._dy=e.y-t.y,Math.atan2(this._dy,this._dx)},angleToXY:function(t,e,i){return this._dx=e-t.x,this._dy=i-t.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(t,e){return e=e||this.game.input.activePointer,this._dx=e.worldX-t.x,this._dy=e.worldY-t.y,Math.atan2(this._dy,this._dx)}},n.Physics.Arcade.Body=function(t){this.sprite=t,this.game=t.game,this.type=n.Physics.ARCADE,this.offset=new n.Point,this.position=new n.Point(t.x,t.y),this.prev=new n.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=t.rotation,this.preRotation=t.rotation,this.sourceWidth=t.texture.frame.width,this.sourceHeight=t.texture.frame.height,this.width=t.width,this.height=t.height,this.halfWidth=Math.abs(t.width/2),this.halfHeight=Math.abs(t.height/2),this.center=new n.Point(t.x+this.halfWidth,t.y+this.halfHeight),this.velocity=new n.Point,this.newVelocity=new n.Point(0,0),this.deltaMax=new n.Point(0,0),this.acceleration=new n.Point,this.drag=new n.Point,this.allowGravity=!0,this.gravity=new n.Point(0,0),this.bounce=new n.Point,this.maxVelocity=new n.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=n.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new n.Point,this.phase=0,this._reset=!0,this._sx=t.scale.x,this._sy=t.scale.y,this._dx=0,this._dy=0},n.Physics.Arcade.Body.prototype={updateBounds:function(){var t=Math.abs(this.sprite.scale.x),e=Math.abs(this.sprite.scale.y);(t!==this._sx||e!==this._sy)&&(this.width=this.sourceWidth*t,this.height=this.sourceHeight*e,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=t,this._sy=e,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1},postUpdate:function(){2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=n.LEFT:this.deltaX()>0&&(this.facing=n.RIGHT),this.deltaY()<0?this.facing=n.UP:this.deltaY()>0&&(this.facing=n.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.x<this.game.physics.arcade.bounds.x&&this.game.physics.arcade.checkCollision.left?(this.position.x=this.game.physics.arcade.bounds.x,this.velocity.x*=-this.bounce.x,this.blocked.left=!0):this.right>this.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.y<this.game.physics.arcade.bounds.y&&this.game.physics.arcade.checkCollision.up?(this.position.y=this.game.physics.arcade.bounds.y,this.velocity.y*=-this.bounce.y,this.blocked.up=!0):this.bottom>this.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(t,e,i,s){i=i||this.offset.x,s=s||this.offset.y,this.sourceWidth=t,this.sourceHeight=e,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(i,s),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(t,e){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=t-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=e-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(t,e){return n.Rectangle.contains(this,t,e)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(n.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(n.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(n.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(t){this.position.x=t}}),Object.defineProperty(n.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(t){this.position.y=t}}),n.Physics.Arcade.Body.render=function(t,e,i,s){"undefined"==typeof i&&(i=!0),s=s||"rgba(0,255,0,0.4)",i?(t.fillStyle=s,t.fillRect(e.position.x-e.game.camera.x,e.position.y-e.game.camera.y,e.width,e.height)):(t.strokeStyle=s,t.strokeRect(e.position.x-e.game.camera.x,e.position.y-e.game.camera.y,e.width,e.height))},n.Physics.Arcade.Body.renderBodyInfo=function(t,e){t.line("x: "+e.x.toFixed(2),"y: "+e.y.toFixed(2),"width: "+e.width,"height: "+e.height),t.line("velocity x: "+e.velocity.x.toFixed(2),"y: "+e.velocity.y.toFixed(2),"deltaX: "+e._dx.toFixed(2),"deltaY: "+e._dy.toFixed(2)),t.line("acceleration x: "+e.acceleration.x.toFixed(2),"y: "+e.acceleration.y.toFixed(2),"speed: "+e.speed.toFixed(2),"angle: "+e.angle.toFixed(2)),t.line("gravity x: "+e.gravity.x,"y: "+e.gravity.y,"bounce x: "+e.bounce.x.toFixed(2),"y: "+e.bounce.y.toFixed(2)),t.line("touching left: "+e.touching.left,"right: "+e.touching.right,"up: "+e.touching.up,"down: "+e.touching.down),t.line("blocked left: "+e.blocked.left,"right: "+e.blocked.right,"up: "+e.blocked.up,"down: "+e.blocked.down)},n.Physics.Arcade.Body.prototype.constructor=n.Physics.Arcade.Body,n.Particles=function(t){this.game=t,this.emitters={},this.ID=0},n.Particles.prototype={add:function(t){return this.emitters[t.name]=t,t},remove:function(t){delete this.emitters[t.name]},update:function(){for(var t in this.emitters)this.emitters[t].exists&&this.emitters[t].update()}},n.Particles.prototype.constructor=n.Particles,n.Particles.Arcade={},n.Particles.Arcade.Emitter=function(t,e,i,s){this.maxParticles=s||50,n.Group.call(this,t),this.name="emitter"+this.game.particles.ID++,this.type=n.EMITTER,this.width=1,this.height=1,this.minParticleSpeed=new n.Point(-100,-100),this.maxParticleSpeed=new n.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=n.Particle,this.particleDrag=new n.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new n.Point,this.on=!1,this.particleAnchor=new n.Point(.5,.5),this.blendMode=n.blendModes.NORMAL,this.emitX=e,this.emitY=i,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new n.Point(1,1),this._maxParticleScale=new n.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},n.Particles.Arcade.Emitter.prototype=Object.create(n.Group.prototype),n.Particles.Arcade.Emitter.prototype.constructor=n.Particles.Arcade.Emitter,n.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter<this._quantity);this.on=!1}else this.game.time.now>=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var t=this.children.length;t--;)this.children[t].exists&&this.children[t].update()},n.Particles.Arcade.Emitter.prototype.makeParticles=function(t,e,i,s,n){"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=this.maxParticles),"undefined"==typeof s&&(s=!1),"undefined"==typeof n&&(n=!1);var r,o=0,a=t,h=e;for(this._frames=e;i>o;)"object"==typeof t&&(a=this.game.rnd.pick(t)),"object"==typeof e&&(h=this.game.rnd.pick(e)),r=new this.particleClass(this.game,0,0,a,h),this.game.physics.arcade.enable(r,!1),s?(r.body.checkCollision.any=!0,r.body.checkCollision.none=!1):r.body.checkCollision.none=!0,r.body.collideWorldBounds=n,r.exists=!1,r.visible=!1,r.anchor.copyFrom(this.particleAnchor),this.add(r),o++;return this},n.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},n.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},n.Particles.Arcade.Emitter.prototype.start=function(t,e,i,s){"undefined"==typeof t&&(t=!0),"undefined"==typeof e&&(e=0),("undefined"==typeof i||null===i)&&(i=250),"undefined"==typeof s&&(s=0),this.revive(),this.visible=!0,this.on=!0,this._explode=t,this.lifespan=e,this.frequency=i,t?this._quantity=s:this._quantity+=s,this._counter=0,this._timer=this.game.time.now+i},n.Particles.Arcade.Emitter.prototype.emitParticle=function(){var t=this.getFirstExists(!1);null!==t&&(this.width>1||this.height>1?t.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):t.reset(this.emitX,this.emitY),t.angle=0,t.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(t):this.particleSendToBack&&this.sendToBack(t),this.autoScale?t.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?t.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&t.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),t.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?t.setAlphaData(this.alphaData):t.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),t.blendMode=this.blendMode,t.body.updateBounds(),t.body.bounce.setTo(this.bounce.x,this.bounce.y),t.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),t.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),t.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),t.body.gravity.y=this.gravity,t.body.drag.x=this.particleDrag.x,t.body.drag.y=this.particleDrag.y,t.body.angularDrag=this.angularDrag,t.onEmit())},n.Particles.Arcade.Emitter.prototype.setSize=function(t,e){this.width=t,this.height=e},n.Particles.Arcade.Emitter.prototype.setXSpeed=function(t,e){t=t||0,e=e||0,this.minParticleSpeed.x=t,this.maxParticleSpeed.x=e},n.Particles.Arcade.Emitter.prototype.setYSpeed=function(t,e){t=t||0,e=e||0,this.minParticleSpeed.y=t,this.maxParticleSpeed.y=e},n.Particles.Arcade.Emitter.prototype.setRotation=function(t,e){t=t||0,e=e||0,this.minRotation=t,this.maxRotation=e},n.Particles.Arcade.Emitter.prototype.setAlpha=function(t,e,i,s,r){if("undefined"==typeof t&&(t=1),"undefined"==typeof e&&(e=1),"undefined"==typeof i&&(i=0),"undefined"==typeof s&&(s=n.Easing.Linear.None),"undefined"==typeof r&&(r=!1),this.minParticleAlpha=t,this.maxParticleAlpha=e,this.autoAlpha=!1,i>0&&t!==e){var o={v:t},a=this.game.make.tween(o).to({v:e},i,s);a.yoyo(r),this.alphaData=a.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},n.Particles.Arcade.Emitter.prototype.setScale=function(t,e,i,s,r,o,a){if("undefined"==typeof t&&(t=1),"undefined"==typeof e&&(e=1),"undefined"==typeof i&&(i=1),"undefined"==typeof s&&(s=1),"undefined"==typeof r&&(r=0),"undefined"==typeof o&&(o=n.Easing.Linear.None),"undefined"==typeof a&&(a=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(t,i),this._maxParticleScale.set(e,s),this.autoScale=!1,r>0&&t!==e||i!==s){var h={x:t,y:i},l=this.game.make.tween(h).to({x:e,y:s},r,o);l.yoyo(a),this.scaleData=l.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},n.Particles.Arcade.Emitter.prototype.at=function(t){t.center?(this.emitX=t.center.x,this.emitY=t.center.y):(this.emitX=t.world.x+t.anchor.x*t.width,this.emitY=t.world.y+t.anchor.y*t.height)},Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(t){this.emitX=t}}),Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(t){this.emitY=t}}),Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.width/2)}}),Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.width/2)}}),Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.height/2)}}),Object.defineProperty(n.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.height/2)}}),n.Tile=function(t,e,i,s,n,r){this.layer=t,this.index=e,this.x=i,this.y=s,this.worldX=i*n,this.worldY=s*r,this.width=n,this.height=r,this.centerX=Math.abs(n/2),this.centerY=Math.abs(r/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},n.Tile.prototype={containsPoint:function(t,e){return!(t<this.worldX||e<this.worldY||t>this.right||e>this.bottom)},intersects:function(t,e,i,s){return i<=this.worldX?!1:s<=this.worldY?!1:t>=this.worldX+this.width?!1:e>=this.worldY+this.height?!1:!0},setCollisionCallback:function(t,e){this.collisionCallback=t,this.collisionCallbackContext=e},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(t,e,i,s){this.collideLeft=t,this.collideRight=e,this.collideUp=i,this.collideDown=s},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(t,e){return t&&e?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:t?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:e?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(t){this.index=t.index,this.alpha=t.alpha,this.properties=t.properties,this.collideUp=t.collideUp,this.collideDown=t.collideDown,this.collideLeft=t.collideLeft,this.collideRight=t.collideRight,this.collisionCallback=t.collisionCallback,this.collisionCallbackContext=t.collisionCallbackContext}},n.Tile.prototype.constructor=n.Tile,Object.defineProperty(n.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(n.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(n.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(n.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(n.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(n.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),n.Tilemap=function(t,e,i,s,r,o){this.game=t,this.key=e;var a=n.TilemapParser.parse(this.game,e,i,s,r,o);null!==a&&(this.width=a.width,this.height=a.height,this.tileWidth=a.tileWidth,this.tileHeight=a.tileHeight,this.orientation=a.orientation,this.format=a.format,this.version=a.version,this.properties=a.properties,this.widthInPixels=a.widthInPixels,this.heightInPixels=a.heightInPixels,this.layers=a.layers,this.tilesets=a.tilesets,this.tiles=a.tiles,this.objects=a.objects,this.collideIndexes=[],this.collision=a.collision,this.images=a.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},n.Tilemap.CSV=0,n.Tilemap.TILED_JSON=1,n.Tilemap.prototype={create:function(t,e,i,s,n,r){return"undefined"==typeof r&&(r=this.game.world),this.width=e,this.height=i,this.setTileSize(s,n),this.layers.length=0,this.createBlankLayer(t,e,i,s,n,r)},setTileSize:function(t,e){this.tileWidth=t,this.tileHeight=e,this.widthInPixels=this.width*t,this.heightInPixels=this.height*e},addTilesetImage:function(t,e,i,s,r,o,a){if("undefined"==typeof i&&(i=this.tileWidth),"undefined"==typeof s&&(s=this.tileHeight),"undefined"==typeof r&&(r=0),"undefined"==typeof o&&(o=0),"undefined"==typeof a&&(a=0),0===i&&(i=32),0===s&&(s=32),"undefined"==typeof e){if("string"!=typeof t)return null;if(e=t,!this.game.cache.checkImageKey(e))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+e+'"'),null}if("string"==typeof t&&(t=this.getTilesetIndex(t),null===t&&this.format===n.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+e+'"'),null;if(this.tilesets[t])return this.tilesets[t].setImage(this.game.cache.getImage(e)),this.tilesets[t];var h=new n.Tileset(e,a,i,s,r,o,{});h.setImage(this.game.cache.getImage(e)),this.tilesets.push(h);for(var l=this.tilesets.length-1,u=r,c=r,d=0,p=0,f=0,g=a;g<a+h.total&&(this.tiles[g]=[u,c,l],u+=i+o,d++,d!==h.total)&&(p++,p!==h.columns||(u=r,c+=s+o,p=0,f++,f!==h.rows));g++);return h},createFromObjects:function(t,e,i,s,r,o,a,h,l){if("undefined"==typeof r&&(r=!0),"undefined"==typeof o&&(o=!1),"undefined"==typeof a&&(a=this.game.world),"undefined"==typeof h&&(h=n.Sprite),"undefined"==typeof l&&(l=!0),!this.objects[t])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+t);for(var u,c=0,d=this.objects[t].length;d>c;c++)if(this.objects[t][c].gid===e){u=new h(this.game,this.objects[t][c].x,this.objects[t][c].y,i,s),u.name=this.objects[t][c].name,u.visible=this.objects[t][c].visible,u.autoCull=o,u.exists=r,l&&(u.y-=u.height),a.add(u);for(var p in this.objects[t][c].properties)a.set(u,p,this.objects[t][c].properties[p],!1,!1,0)}},createLayer:function(t,e,i,s){"undefined"==typeof e&&(e=this.game.width),"undefined"==typeof i&&(i=this.game.height),"undefined"==typeof s&&(s=this.game.world);var r=t;return"string"==typeof t&&(r=this.getLayerIndex(t)),null===r||r>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+r):s.add(new n.TilemapLayer(this.game,this,r,e,i))},createBlankLayer:function(t,e,i,s,r,o){if("undefined"==typeof o&&(o=this.game.world),null!==this.getLayerIndex(t))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var a,h={name:t,x:0,y:0,width:e,height:i,widthInPixels:e*s,heightInPixels:i*r,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},l=[],u=0;i>u;u++){a=[];for(var c=0;e>c;c++)a.push(new n.Tile(h,-1,c,u,s,r));l.push(a)}h.data=l,this.layers.push(h),this.currentLayer=this.layers.length-1;var d=h.widthInPixels,p=h.heightInPixels;d>this.game.width&&(d=this.game.width),p>this.game.height&&(p=this.game.height);var l=new n.TilemapLayer(this.game,this,this.layers.length-1,d,p);return l.name=t,o.add(l)},getIndex:function(t,e){for(var i=0;i<t.length;i++)if(t[i].name===e)return i;return null},getLayerIndex:function(t){return this.getIndex(this.layers,t)},getTilesetIndex:function(t){return this.getIndex(this.tilesets,t)},getImageIndex:function(t){return this.getIndex(this.images,t)},getObjectIndex:function(t){return this.getIndex(this.objects,t)},setTileIndexCallback:function(t,e,i,s){if(s=this.getLayer(s),"number"==typeof t)this.layers[s].callbacks[t]={callback:e,callbackContext:i};else for(var n=0,r=t.length;r>n;n++)this.layers[s].callbacks[t[n]]={callback:e,callbackContext:i}},setTileLocationCallback:function(t,e,i,s,n,r,o){if(o=this.getLayer(o),this.copy(t,e,i,s,o),!(this._results.length<2))for(var a=1;a<this._results.length;a++)this._results[a].setCollisionCallback(n,r)},setCollision:function(t,e,i){if("undefined"==typeof e&&(e=!0),i=this.getLayer(i),"number"==typeof t)return this.setCollisionByIndex(t,e,i,!0);for(var s=0,n=t.length;n>s;s++)this.setCollisionByIndex(t[s],e,i,!1);this.calculateFaces(i)},setCollisionBetween:function(t,e,i,s){if("undefined"==typeof i&&(i=!0),s=this.getLayer(s),!(t>e)){for(var n=t;e>=n;n++)this.setCollisionByIndex(n,i,s,!1);
  this.calculateFaces(s)}},setCollisionByExclusion:function(t,e,i){"undefined"==typeof e&&(e=!0),i=this.getLayer(i);for(var s=0,n=this.tiles.length;n>s;s++)-1===t.indexOf(s)&&this.setCollisionByIndex(s,e,i,!1);this.calculateFaces(i)},setCollisionByIndex:function(t,e,i,s){if("undefined"==typeof e&&(e=!0),"undefined"==typeof i&&(i=this.currentLayer),"undefined"==typeof s&&(s=!0),e)this.collideIndexes.push(t);else{var n=this.collideIndexes.indexOf(t);n>-1&&this.collideIndexes.splice(n,1)}for(var r=0;r<this.layers[i].height;r++)for(var o=0;o<this.layers[i].width;o++){var a=this.layers[i].data[r][o];a&&a.index===t&&(e?a.setCollision(!0,!0,!0,!0):a.resetCollision(),a.faceTop=e,a.faceBottom=e,a.faceLeft=e,a.faceRight=e)}return s&&this.calculateFaces(i),i},getLayer:function(t){return"undefined"==typeof t?t=this.currentLayer:"string"==typeof t?t=this.getLayerIndex(t):t instanceof n.TilemapLayer&&(t=t.index),t},calculateFaces:function(t){for(var e=null,i=null,s=null,n=null,r=0,o=this.layers[t].height;o>r;r++)for(var a=0,h=this.layers[t].width;h>a;a++){var l=this.layers[t].data[r][a];l&&(e=this.getTileAbove(t,a,r),i=this.getTileBelow(t,a,r),s=this.getTileLeft(t,a,r),n=this.getTileRight(t,a,r),l.collides&&(l.faceTop=!0,l.faceBottom=!0,l.faceLeft=!0,l.faceRight=!0),e&&e.collides&&(l.faceTop=!1),i&&i.collides&&(l.faceBottom=!1),s&&s.collides&&(l.faceLeft=!1),n&&n.collides&&(l.faceRight=!1))}},getTileAbove:function(t,e,i){return i>0?this.layers[t].data[i-1][e]:null},getTileBelow:function(t,e,i){return i<this.layers[t].height-1?this.layers[t].data[i+1][e]:null},getTileLeft:function(t,e,i){return e>0?this.layers[t].data[i][e-1]:null},getTileRight:function(t,e,i){return e<this.layers[t].width-1?this.layers[t].data[i][e+1]:null},setLayer:function(t){t=this.getLayer(t),this.layers[t]&&(this.currentLayer=t)},hasTile:function(t,e,i){return i=this.getLayer(i),null!==this.layers[i].data[e]&&null!==this.layers[i].data[e][t]},removeTile:function(t,e,i){if(i=this.getLayer(i),t>=0&&t<this.layers[i].width&&e>=0&&e<this.layers[i].height&&this.hasTile(t,e,i)){var s=this.layers[i].data[e][t];return this.layers[i].data[e][t]=null,this.layers[i].dirty=!0,this.calculateFaces(i),s}},removeTileWorldXY:function(t,e,i,s,n){return n=this.getLayer(n),t=this.game.math.snapToFloor(t,i)/i,e=this.game.math.snapToFloor(e,s)/s,this.removeTile(t,e,n)},putTile:function(t,e,i,s){if(null===t)return this.removeTile(e,i,s);if(s=this.getLayer(s),e>=0&&e<this.layers[s].width&&i>=0&&i<this.layers[s].height){var r;return t instanceof n.Tile?(r=t.index,this.hasTile(e,i,s)?this.layers[s].data[i][e].copy(t):this.layers[s].data[i][e]=new n.Tile(s,r,e,i,t.width,t.height)):(r=t,this.hasTile(e,i,s)?this.layers[s].data[i][e].index=r:this.layers[s].data[i][e]=new n.Tile(this.layers[s],r,e,i,this.tileWidth,this.tileHeight)),this.collideIndexes.indexOf(r)>-1?this.layers[s].data[i][e].setCollision(!0,!0,!0,!0):this.layers[s].data[i][e].resetCollision(),this.layers[s].dirty=!0,this.calculateFaces(s),this.layers[s].data[i][e]}return null},putTileWorldXY:function(t,e,i,s,n,r){return r=this.getLayer(r),e=this.game.math.snapToFloor(e,s)/s,i=this.game.math.snapToFloor(i,n)/n,this.putTile(t,e,i,r)},getTile:function(t,e,i){return i=this.getLayer(i),t>=0&&t<this.layers[i].width&&e>=0&&e<this.layers[i].height?-1===this.layers[i].data[e][t].index?null:this.layers[i].data[e][t]:void 0},getTileWorldXY:function(t,e,i,s,n){return"undefined"==typeof i&&(i=this.tileWidth),"undefined"==typeof s&&(s=this.tileHeight),n=this.getLayer(n),t=this.game.math.snapToFloor(t,i)/i,e=this.game.math.snapToFloor(e,s)/s,this.getTile(t,e,n)},copy:function(t,e,i,s,n){if(n=this.getLayer(n),!this.layers[n])return void(this._results.length=0);"undefined"==typeof t&&(t=0),"undefined"==typeof e&&(e=0),"undefined"==typeof i&&(i=this.layers[n].width),"undefined"==typeof s&&(s=this.layers[n].height),0>t&&(t=0),0>e&&(e=0),i>this.layers[n].width&&(i=this.layers[n].width),s>this.layers[n].height&&(s=this.layers[n].height),this._results.length=0,this._results.push({x:t,y:e,width:i,height:s,layer:n});for(var r=e;e+s>r;r++)for(var o=t;t+i>o;o++)this._results.push(this.layers[n].data[r][o]);return this._results},paste:function(t,e,i,s){if("undefined"==typeof t&&(t=0),"undefined"==typeof e&&(e=0),s=this.getLayer(s),i&&!(i.length<2)){for(var n=i[1].x-t,r=i[1].y-e,o=1;o<i.length;o++)this.layers[s].data[r+i[o].y][n+i[o].x].copy(i[o]);this.layers[s].dirty=!0,this.calculateFaces(s)}},swap:function(t,e,i,s,n,r,o){o=this.getLayer(o),this.copy(i,s,n,r,o),this._results.length<2||(this._tempA=t,this._tempB=e,this._results.forEach(this.swapHandler,this),this.paste(i,s,this._results,o))},swapHandler:function(t,e){t.index===this._tempA&&(this._results[e].index=this._tempB),t.index===this._tempB&&(this._results[e].index=this._tempA)},forEach:function(t,e,i,s,n,r,o){o=this.getLayer(o),this.copy(i,s,n,r,o),this._results.length<2||(this._results.forEach(t,e),this.paste(i,s,this._results,o))},replace:function(t,e,i,s,n,r,o){if(o=this.getLayer(o),this.copy(i,s,n,r,o),!(this._results.length<2)){for(var a=1;a<this._results.length;a++)this._results[a].index===t&&(this._results[a].index=e);this.paste(i,s,this._results,o)}},random:function(t,e,i,s,n){if(n=this.getLayer(n),this.copy(t,e,i,s,n),!(this._results.length<2)){for(var r=[],o=1;o<this._results.length;o++)if(this._results[o].index){var a=this._results[o].index;-1===r.indexOf(a)&&r.push(a)}for(var h=1;h<this._results.length;h++)this._results[h].index=this.game.rnd.pick(r);this.paste(t,e,this._results,n)}},shuffle:function(t,e,i,s,r){if(r=this.getLayer(r),this.copy(t,e,i,s,r),!(this._results.length<2)){for(var o=[],a=1;a<this._results.length;a++)this._results[a].index&&o.push(this._results[a].index);n.Utils.shuffle(o);for(var h=1;h<this._results.length;h++)this._results[h].index=o[h-1];this.paste(t,e,this._results,r)}},fill:function(t,e,i,s,n,r){if(r=this.getLayer(r),this.copy(e,i,s,n,r),!(this._results.length<2)){for(var o=1;o<this._results.length;o++)this._results[o].index=t;this.paste(e,i,this._results,r)}},removeAllLayers:function(){this.layers.length=0,this.currentLayer=0},dump:function(){for(var t="",e=[""],i=0;i<this.layers[this.currentLayer].height;i++){for(var s=0;s<this.layers[this.currentLayer].width;s++)t+="%c  ",e.push(this.layers[this.currentLayer].data[i][s]>1?this.debugMap[this.layers[this.currentLayer].data[i][s]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[i][s]]:"background: #ffffff":"background: rgb(0, 0, 0)");t+="\n"}e[0]=t,console.log.apply(console,e)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},n.Tilemap.prototype.constructor=n.Tilemap,n.TilemapLayer=function(t,e,i,r,o){this.game=t,this.map=e,this.index=i,this.layer=e.layers[i],this.canvas=n.Canvas.create(r,o,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new s.BaseTexture(this.canvas),this.texture=new s.Texture(this.baseTexture),this.textureFrame=new n.Frame(0,0,0,r,o,"tilemapLayer",t.rnd.uuid()),n.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=n.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new n.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._mc={cw:e.tileWidth,ch:e.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},n.TilemapLayer.prototype=Object.create(n.Image.prototype),n.TilemapLayer.prototype.constructor=n.TilemapLayer,n.TilemapLayer.prototype.postUpdate=function(){n.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},n.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},n.TilemapLayer.prototype._fixX=function(t){return 0>t&&(t=0),1===this.scrollFactorX?t:this._mc.x+(t-this._mc.x/this.scrollFactorX)},n.TilemapLayer.prototype._unfixX=function(t){return 1===this.scrollFactorX?t:this._mc.x/this.scrollFactorX+(t-this._mc.x)},n.TilemapLayer.prototype._fixY=function(t){return 0>t&&(t=0),1===this.scrollFactorY?t:this._mc.y+(t-this._mc.y/this.scrollFactorY)},n.TilemapLayer.prototype._unfixY=function(t){return 1===this.scrollFactorY?t:this._mc.y/this.scrollFactorY+(t-this._mc.y)},n.TilemapLayer.prototype.getTileX=function(t){return this.game.math.snapToFloor(this._fixX(t),this.map.tileWidth)/this.map.tileWidth},n.TilemapLayer.prototype.getTileY=function(t){return this.game.math.snapToFloor(this._fixY(t),this.map.tileHeight)/this.map.tileHeight},n.TilemapLayer.prototype.getTileXY=function(t,e,i){return i.x=this.getTileX(t),i.y=this.getTileY(e),i},n.TilemapLayer.prototype.getRayCastTiles=function(t,e,i,s){("undefined"==typeof e||null===e)&&(e=this.rayStepRate),"undefined"==typeof i&&(i=!1),"undefined"==typeof s&&(s=!1);var n=this.getTiles(t.x,t.y,t.width,t.height,i,s);if(0===n.length)return[];for(var r=t.coordinatesOnLine(e),o=r.length,a=[],h=0;h<n.length;h++)for(var l=0;o>l;l++)if(n[h].containsPoint(r[l][0],r[l][1])){a.push(n[h]);break}return a},n.TilemapLayer.prototype.getTiles=function(t,e,i,s,n,r){"undefined"==typeof n&&(n=!1),"undefined"==typeof r&&(r=!1),t=this._fixX(t),e=this._fixY(e),i>this.layer.widthInPixels&&(i=this.layer.widthInPixels),s>this.layer.heightInPixels&&(s=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(t,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(e,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(i,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(s,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var o=this._mc.ty;o<this._mc.ty+this._mc.th;o++)for(var a=this._mc.tx;a<this._mc.tx+this._mc.tw;a++)this.layer.data[o]&&this.layer.data[o][a]&&(!n&&!r||this.layer.data[o][a].isInteresting(n,r))&&this._results.push(this.layer.data[o][a]);return this._results},n.TilemapLayer.prototype.updateMax=function(){this._mc.maxX=this.game.math.ceil(this.canvas.width/this.map.tileWidth)+1,this._mc.maxY=this.game.math.ceil(this.canvas.height/this.map.tileHeight)+1,this.layer&&(this._mc.maxX>this.layer.width&&(this._mc.maxX=this.layer.width),this._mc.maxY>this.layer.height&&(this._mc.maxY=this.layer.height)),this.dirty=!0},n.TilemapLayer.prototype.render=function(){if(this.layer.dirty&&(this.dirty=!0),this.dirty&&this.visible){this._mc.prevX=this._mc.dx,this._mc.prevY=this._mc.dy,this._mc.dx=-(this._mc.x-this._mc.startX*this.map.tileWidth),this._mc.dy=-(this._mc.y-this._mc.startY*this.map.tileHeight),this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.tileColor;var t,e;this.debug&&(this.context.globalAlpha=this.debugAlpha);for(var i=this._mc.startY,r=this._mc.startY+this._mc.maxY;r>i;i++){this._column=this.layer.data[i];for(var o=this._mc.startX,a=this._mc.startX+this._mc.maxX;a>o;o++)this._column[o]&&(t=this._column[o],t.index>-1&&(e=this.map.tilesets[this.map.tiles[t.index][2]],this.debug===!1&&t.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=t.alpha),e.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),t.index),t.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight)))),this._mc.tx+=this.map.tileWidth;this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===n.WEBGL&&s.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},n.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var t=this._mc.startY,e=this._mc.startY+this._mc.maxY;e>t;t++){this._column=this.layer.data[t];for(var i=this._mc.startX,s=this._mc.startX+this._mc.maxX;s>i;i++){var n=this._column[i];n&&(n.faceTop||n.faceBottom||n.faceLeft||n.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),n.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),n.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),n.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),n.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(n.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(t){t!==this._mc.x&&t>=0&&this.layer.widthInPixels>this.width&&(this._mc.x=t,this._mc.x>this.layer.widthInPixels-this.width&&(this._mc.x=this.layer.widthInPixels-this.width),this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this._mc.startX<0&&(this._mc.startX=0),this._mc.startX+this._mc.maxX>this.layer.width&&(this._mc.startX=this.layer.width-this._mc.maxX),this.dirty=!0)}}),Object.defineProperty(n.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(t){t!==this._mc.y&&t>=0&&this.layer.heightInPixels>this.height&&(this._mc.y=t,this._mc.y>this.layer.heightInPixels-this.height&&(this._mc.y=this.layer.heightInPixels-this.height),this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this._mc.startY<0&&(this._mc.startY=0),this._mc.startY+this._mc.maxY>this.layer.height&&(this._mc.startY=this.layer.height-this._mc.maxY),this.dirty=!0)}}),Object.defineProperty(n.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(t){this._mc.cw=t,this.dirty=!0}}),Object.defineProperty(n.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(t){this._mc.ch=t,this.dirty=!0}}),n.TilemapParser={parse:function(t,e,i,s,r,o){if("undefined"==typeof i&&(i=32),"undefined"==typeof s&&(s=32),"undefined"==typeof r&&(r=10),"undefined"==typeof o&&(o=10),"undefined"==typeof e)return this.getEmptyData();if(null===e)return this.getEmptyData(i,s,r,o);var a=t.cache.getTilemapData(e);if(a){if(a.format===n.Tilemap.CSV)return this.parseCSV(e,a.data,i,s);if(!a.format||a.format===n.Tilemap.TILED_JSON)return this.parseTiledJSON(a.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+e)},parseCSV:function(t,e,i,s){var r=this.getEmptyData();e=e.trim();for(var o=[],a=e.split("\n"),h=a.length,l=0,u=0;u<a.length;u++){o[u]=[];for(var c=a[u].split(","),d=0;d<c.length;d++)o[u][d]=new n.Tile(r.layers[0],parseInt(c[d],10),d,u,i,s);0===l&&(l=c.length)}return r.format=n.Tilemap.CSV,r.name=t,r.width=l,r.height=h,r.tileWidth=i,r.tileHeight=s,r.widthInPixels=l*i,r.heightInPixels=h*s,r.layers[0].width=l,r.layers[0].height=h,r.layers[0].widthInPixels=r.widthInPixels,r.layers[0].heightInPixels=r.heightInPixels,r.layers[0].data=o,r},getEmptyData:function(t,e,i,s){var n={};n.width=0,n.height=0,n.tileWidth=0,n.tileHeight=0,"undefined"!=typeof t&&null!==t&&(n.tileWidth=t),"undefined"!=typeof e&&null!==e&&(n.tileHeight=e),"undefined"!=typeof i&&null!==i&&(n.width=i),"undefined"!=typeof s&&null!==s&&(n.height=s),n.orientation="orthogonal",n.version="1",n.properties={},n.widthInPixels=0,n.heightInPixels=0;var r=[],o={name:"layer",x:0,y:0,width:0,height:0,widthInPixels:0,heightInPixels:0,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],data:[]};return r.push(o),n.layers=r,n.images=[],n.objects={},n.collision={},n.tilesets=[],n.tiles=[],n},parseTiledJSON:function(t){if("orthogonal"!==t.orientation)return console.warn("TilemapParser.parseTiledJSON: Only orthogonal map types are supported in this version of Phaser"),null;var e={};e.width=t.width,e.height=t.height,e.tileWidth=t.tilewidth,e.tileHeight=t.tileheight,e.orientation=t.orientation,e.format=n.Tilemap.TILED_JSON,e.version=t.version,e.properties=t.properties,e.widthInPixels=e.width*e.tileWidth,e.heightInPixels=e.height*e.tileHeight;for(var i=[],s=0;s<t.layers.length;s++)if("tilelayer"===t.layers[s].type){var r={name:t.layers[s].name,x:t.layers[s].x,y:t.layers[s].y,width:t.layers[s].width,height:t.layers[s].height,widthInPixels:t.layers[s].width*t.tilewidth,heightInPixels:t.layers[s].height*t.tileheight,alpha:t.layers[s].opacity,visible:t.layers[s].visible,properties:{},indexes:[],callbacks:[],bodies:[]};t.layers[s].properties&&(r.properties=t.layers[s].properties);for(var o=0,a=[],h=[],l=0,u=t.layers[s].data.length;u>l;l++)a.push(t.layers[s].data[l]>0?new n.Tile(r,t.layers[s].data[l],o,h.length,t.tilewidth,t.tileheight):new n.Tile(r,-1,o,h.length,t.tilewidth,t.tileheight)),o++,o===t.layers[s].width&&(h.push(a),o=0,a=[]);r.data=h,i.push(r)}e.layers=i;for(var c=[],s=0;s<t.layers.length;s++)if("imagelayer"===t.layers[s].type){var d={name:t.layers[s].name,image:t.layers[s].image,x:t.layers[s].x,y:t.layers[s].y,alpha:t.layers[s].opacity,visible:t.layers[s].visible,properties:{}};t.layers[s].properties&&(d.properties=t.layers[s].properties),c.push(d)}e.images=c;for(var p=[],s=0;s<t.tilesets.length;s++){var f=t.tilesets[s],g=new n.Tileset(f.name,f.firstgid,f.tilewidth,f.tileheight,f.margin,f.spacing,f.properties);f.tileproperties&&(g.tileProperties=f.tileproperties),g.rows=Math.round((f.imageheight-f.margin)/(f.tileheight+f.spacing)),g.columns=Math.round((f.imagewidth-f.margin)/(f.tilewidth+f.spacing)),g.total=g.rows*g.columns,g.rows%1!==0||g.columns%1!==0?console.warn("TileSet image dimensions do not match expected dimensions. Tileset width/height must be evenly divisible by Tilemap tile width/height."):p.push(g)}e.tilesets=p;for(var m={},y={},s=0;s<t.layers.length;s++)if("objectgroup"===t.layers[s].type){m[t.layers[s].name]=[],y[t.layers[s].name]=[];for(var v=0,u=t.layers[s].objects.length;u>v;v++)if(t.layers[s].objects[v].gid){var x={gid:t.layers[s].objects[v].gid,name:t.layers[s].objects[v].name,x:t.layers[s].objects[v].x,y:t.layers[s].objects[v].y,visible:t.layers[s].objects[v].visible,properties:t.layers[s].objects[v].properties};m[t.layers[s].name].push(x)}else if(t.layers[s].objects[v].polyline){var x={name:t.layers[s].objects[v].name,x:t.layers[s].objects[v].x,y:t.layers[s].objects[v].y,width:t.layers[s].objects[v].width,height:t.layers[s].objects[v].height,visible:t.layers[s].objects[v].visible,properties:t.layers[s].objects[v].properties};x.polyline=[];for(var b=0;b<t.layers[s].objects[v].polyline.length;b++)x.polyline.push([t.layers[s].objects[v].polyline[b].x,t.layers[s].objects[v].polyline[b].y]);y[t.layers[s].name].push(x)}}e.objects=m,e.collision=y,e.tiles=[];for(var s=0;s<e.tilesets.length;s++)for(var f=e.tilesets[s],o=f.tileMargin,w=f.tileMargin,T=0,S=0,A=0,l=f.firstgid;l<f.firstgid+f.total&&(e.tiles[l]=[o,w,s],o+=f.tileWidth+f.tileSpacing,T++,T!==f.total)&&(S++,S!==f.columns||(o=f.tileMargin,w+=f.tileHeight+f.tileSpacing,S=0,A++,A!==f.rows));l++);return e}},n.Tileset=function(t,e,i,s,n,r,o){("undefined"==typeof i||0>=i)&&(i=32),("undefined"==typeof s||0>=s)&&(s=32),"undefined"==typeof n&&(n=0),"undefined"==typeof r&&(r=0),this.name=t,this.firstgid=e,this.tileWidth=i,this.tileHeight=s,this.tileMargin=n,this.tileSpacing=r,this.properties=o,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},n.Tileset.prototype={draw:function(t,e,i,s){this.image&&this.drawCoords[s]&&t.drawImage(this.image,this.drawCoords[s][0],this.drawCoords[s][1],this.tileWidth,this.tileHeight,e,i,this.tileWidth,this.tileHeight)},setImage:function(t){this.image=t,this.rows=Math.round((t.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((t.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var e=this.tileMargin,i=this.tileMargin,s=this.firstgid,n=0;n<this.rows;n++){for(var r=0;r<this.columns;r++)this.drawCoords[s]=[e,i],e+=this.tileWidth+this.tileSpacing,s++;e=this.tileMargin,i+=this.tileHeight+this.tileSpacing}},setSpacing:function(t,e){this.tileMargin=t,this.tileSpacing=e,this.setImage(this.image)}},n.Tileset.prototype.constructor=n.Tileset,"undefined"!=typeof i?("undefined"!=typeof e&&e.exports&&(i=e.exports=n),i.Phaser=n):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return t.Phaser=n}()):t.Phaser=n}).call(this)},{"./pixi":12}],12:[function(t,e,i){(function(){var t=this,s=s||{};s.WEBGL_RENDERER=0,s.CANVAS_RENDERER=1,s.VERSION="v1.5.2",s.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},s.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},s.INTERACTION_FREQUENCY=30,s.AUTO_PREVENT_DEFAULT=!0,s.RAD_TO_DEG=180/Math.PI,s.DEG_TO_RAD=Math.PI/180,s.Point=function(t,e){this.x=t||0,this.y=e||0},s.Point.prototype.clone=function(){return new s.Point(this.x,this.y)},s.Point.prototype.constructor=s.Point,s.Point.prototype.set=function(t,e){this.x=t||0,this.y=e||(0!==e?this.x:0)},s.Rectangle=function(t,e,i,s){this.x=t||0,this.y=e||0,this.width=i||0,this.height=s||0},s.Rectangle.prototype.clone=function(){return new s.Rectangle(this.x,this.y,this.width,this.height)},s.Rectangle.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;var i=this.x;if(t>=i&&t<=i+this.width){var s=this.y;if(e>=s&&e<=s+this.height)return!0}return!1},s.Rectangle.prototype.constructor=s.Rectangle,s.EmptyRectangle=new s.Rectangle(0,0,0,0),s.Polygon=function(t){if(t instanceof Array||(t=Array.prototype.slice.call(arguments)),"number"==typeof t[0]){for(var e=[],i=0,n=t.length;n>i;i+=2)e.push(new s.Point(t[i],t[i+1]));t=e}this.points=t},s.Polygon.prototype.clone=function(){for(var t=[],e=0;e<this.points.length;e++)t.push(this.points[e].clone());return new s.Polygon(t)},s.Polygon.prototype.contains=function(t,e){for(var i=!1,s=0,n=this.points.length-1;s<this.points.length;n=s++){var r=this.points[s].x,o=this.points[s].y,a=this.points[n].x,h=this.points[n].y,l=o>e!=h>e&&(a-r)*(e-o)/(h-o)+r>t;l&&(i=!i)}return i},s.Polygon.prototype.constructor=s.Polygon,s.Circle=function(t,e,i){this.x=t||0,this.y=e||0,this.radius=i||0},s.Circle.prototype.clone=function(){return new s.Circle(this.x,this.y,this.radius)},s.Circle.prototype.contains=function(t,e){if(this.radius<=0)return!1;var i=this.x-t,s=this.y-e,n=this.radius*this.radius;return i*=i,s*=s,n>=i+s},s.Circle.prototype.constructor=s.Circle,s.Ellipse=function(t,e,i,s){this.x=t||0,this.y=e||0,this.width=i||0,this.height=s||0},s.Ellipse.prototype.clone=function(){return new s.Ellipse(this.x,this.y,this.width,this.height)},s.Ellipse.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;var i=(t-this.x)/this.width,s=(e-this.y)/this.height;return i*=i,s*=s,1>=i+s},s.Ellipse.prototype.getBounds=function(){return new s.Rectangle(this.x,this.y,this.width,this.height)},s.Ellipse.prototype.constructor=s.Ellipse,s.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},s.Matrix2=s.determineMatrixArrayType(),s.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},s.Matrix.prototype.fromArray=function(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]},s.Matrix.prototype.toArray=function(t){this.array||(this.array=new Float32Array(9));var e=this.array;return t?(this.array[0]=this.a,this.array[1]=this.c,this.array[2]=0,this.array[3]=this.b,this.array[4]=this.d,this.array[5]=0,this.array[6]=this.tx,this.array[7]=this.ty,this.array[8]=1):(this.array[0]=this.a,this.array[1]=this.b,this.array[2]=this.tx,this.array[3]=this.c,this.array[4]=this.d,this.array[5]=this.ty,this.array[6]=0,this.array[7]=0,this.array[8]=1),e},s.identityMatrix=new s.Matrix,s.DisplayObject=function(){this.position=new s.Point,this.scale=new s.Point(1,1),this.pivot=new s.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new s.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new s.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},s.DisplayObject.prototype.constructor=s.DisplayObject,s.DisplayObject.prototype.setInteractive=function(t){this.interactive=t},Object.defineProperty(s.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(t){this._interactive=t,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(s.DisplayObject.prototype,"worldVisible",{get:function(){var t=this;do{if(!t.visible)return!1;t=t.parent}while(t);return!0}}),Object.defineProperty(s.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(t){this._mask&&(this._mask.isMask=!1),this._mask=t,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(s.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(t){if(t){for(var e=[],i=0;i<t.length;i++)for(var s=t[i].passes,n=0;n<s.length;n++)e.push(s[n]);this._filterBlock={target:this,filterPasses:e}}this._filters=t}}),Object.defineProperty(s.DisplayObject.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(t){this._cacheAsBitmap!==t&&(t?this._generateCachedSprite():this._destroyCachedSprite(),this._cacheAsBitmap=t)}}),s.DisplayObject.prototype.updateTransform=function(){this.rotation!==this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.parent.worldTransform,e=this.worldTransform,i=this.pivot.x,s=this.pivot.y,n=this._cr*this.scale.x,r=-this._sr*this.scale.y,o=this._sr*this.scale.x,a=this._cr*this.scale.y,h=this.position.x-n*i-s*r,l=this.position.y-a*s-i*o,u=t.a,c=t.b,d=t.c,p=t.d;e.a=u*n+c*o,e.b=u*r+c*a,e.tx=u*h+c*l+t.tx,e.c=d*n+p*o,e.d=d*r+p*a,e.ty=d*h+p*l+t.ty,this.worldAlpha=this.alpha*this.parent.worldAlpha},s.DisplayObject.prototype.getBounds=function(t){return t=t,s.EmptyRectangle},s.DisplayObject.prototype.getLocalBounds=function(){return this.getBounds(s.identityMatrix)},s.DisplayObject.prototype.setStageReference=function(t){this.stage=t,this._interactive&&(this.stage.dirty=!0)},s.DisplayObject.prototype.generateTexture=function(t){var e=this.getLocalBounds(),i=new s.RenderTexture(0|e.width,0|e.height,t);return i.render(this,new s.Point(-e.x,-e.y)),i},s.DisplayObject.prototype.updateCache=function(){this._generateCachedSprite()},s.DisplayObject.prototype._renderCachedSprite=function(t){t.gl?s.Sprite.prototype._renderWebGL.call(this._cachedSprite,t):s.Sprite.prototype._renderCanvas.call(this._cachedSprite,t)},s.DisplayObject.prototype._generateCachedSprite=function(){this._cacheAsBitmap=!1;var t=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.texture.resize(0|t.width,0|t.height);else{var e=new s.RenderTexture(0|t.width,0|t.height);this._cachedSprite=new s.Sprite(e),this._cachedSprite.worldTransform=this.worldTransform}var i=this._filters;this._filters=null,this._cachedSprite.filters=i,this._cachedSprite.texture.render(this,new s.Point(-t.x,-t.y)),this._cachedSprite.anchor.x=-(t.x/t.width),this._cachedSprite.anchor.y=-(t.y/t.height),this._filters=i,this._cacheAsBitmap=!0},s.DisplayObject.prototype._destroyCachedSprite=function(){this._cachedSprite&&(this._cachedSprite.texture.destroy(!0),this._cachedSprite=null)},s.DisplayObject.prototype._renderWebGL=function(t){t=t},s.DisplayObject.prototype._renderCanvas=function(t){t=t},Object.defineProperty(s.DisplayObject.prototype,"x",{get:function(){return this.position.x},set:function(t){this.position.x=t}}),Object.defineProperty(s.DisplayObject.prototype,"y",{get:function(){return this.position.y},set:function(t){this.position.y=t}}),s.DisplayObjectContainer=function(){s.DisplayObject.call(this),this.children=[]},s.DisplayObjectContainer.prototype=Object.create(s.DisplayObject.prototype),s.DisplayObjectContainer.prototype.constructor=s.DisplayObjectContainer,s.DisplayObjectContainer.prototype.addChild=function(t){this.addChildAt(t,this.children.length)},s.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&e<=this.children.length))throw new Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);t.parent&&t.parent.removeChild(t),t.parent=this,this.children.splice(e,0,t),this.stage&&t.setStageReference(this.stage)},s.DisplayObjectContainer.prototype.swapChildren=function(t,e){if(t!==e){var i=this.children.indexOf(t),s=this.children.indexOf(e);if(0>i||0>s)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[i]=e,this.children[s]=t}},s.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&t<this.children.length)return this.children[t];throw new Error("Supplied index does not exist in the child list, or the supplied DisplayObject must be a child of the caller")},s.DisplayObjectContainer.prototype.removeChild=function(t){return this.removeChildAt(this.children.indexOf(t))},s.DisplayObjectContainer.prototype.removeChildAt=function(t){var e=this.getChildAt(t);return this.stage&&e.removeStageReference(),e.parent=void 0,this.children.splice(t,1),e},s.DisplayObjectContainer.prototype.removeChildren=function(t,e){var i=t||0,s="number"==typeof e?e:this.children.length,n=s-i;if(n>0&&s>=n){for(var r=this.children.splice(i,n),o=0;o<r.length;o++){var a=r[o];this.stage&&a.removeStageReference(),a.parent=void 0}return r}throw new Error("Range Error, numeric values are outside the acceptable range")},s.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible&&(s.DisplayObject.prototype.updateTransform.call(this),!this._cacheAsBitmap))for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()},s.DisplayObjectContainer.prototype.getBounds=function(t){if(0===this.children.length)return s.EmptyRectangle;if(t){var e=this.worldTransform;this.worldTransform=t,this.updateTransform(),this.worldTransform=e}for(var i,n,r,o=1/0,a=1/0,h=-1/0,l=-1/0,u=!1,c=0,d=this.children.length;d>c;c++){var p=this.children[c];p.visible&&(u=!0,i=this.children[c].getBounds(t),o=o<i.x?o:i.x,a=a<i.y?a:i.y,n=i.width+i.x,r=i.height+i.y,h=h>n?h:n,l=l>r?l:r)}if(!u)return s.EmptyRectangle;var f=this._bounds;return f.x=o,f.y=a,f.width=h-o,f.height=l-a,f},s.DisplayObjectContainer.prototype.getLocalBounds=function(){var t=this.worldTransform;this.worldTransform=s.identityMatrix;for(var e=0,i=this.children.length;i>e;e++)this.children[e].updateTransform();var n=this.getBounds();return this.worldTransform=t,n},s.DisplayObjectContainer.prototype.setStageReference=function(t){this.stage=t,this._interactive&&(this.stage.dirty=!0);for(var e=0,i=this.children.length;i>e;e++){var s=this.children[e];s.setStageReference(t)}},s.DisplayObjectContainer.prototype.removeStageReference=function(){for(var t=0,e=this.children.length;e>t;t++){var i=this.children[t];i.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},s.DisplayObjectContainer.prototype._renderWebGL=function(t){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(t);var e,i;if(this._mask||this._filters){for(this._mask&&(t.spriteBatch.stop(),t.maskManager.pushMask(this.mask,t),t.spriteBatch.start()),this._filters&&(t.spriteBatch.flush(),t.filterManager.pushFilter(this._filterBlock)),e=0,i=this.children.length;i>e;e++)this.children[e]._renderWebGL(t);
  t.spriteBatch.stop(),this._filters&&t.filterManager.popFilter(),this._mask&&t.maskManager.popMask(t),t.spriteBatch.start()}else for(e=0,i=this.children.length;i>e;e++)this.children[e]._renderWebGL(t)}},s.DisplayObjectContainer.prototype._renderCanvas=function(t){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(t);this._mask&&t.maskManager.pushMask(this._mask,t.context);for(var e=0,i=this.children.length;i>e;e++){var s=this.children[e];s._renderCanvas(t)}this._mask&&t.maskManager.popMask(t.context)}},s.Sprite=function(t){s.DisplayObjectContainer.call(this),this.anchor=new s.Point,this.texture=t,this._width=0,this._height=0,this.tint=16777215,this.blendMode=s.blendModes.NORMAL,t.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},s.Sprite.prototype=Object.create(s.DisplayObjectContainer.prototype),s.Sprite.prototype.constructor=s.Sprite,Object.defineProperty(s.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(s.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),s.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!==t.baseTexture?(this.textureChange=!0,this.texture=t):this.texture=t,this.cachedTint=16777215,this.updateFrame=!0},s.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},s.Sprite.prototype.getBounds=function(t){var e=this.texture.frame.width,i=this.texture.frame.height,s=e*(1-this.anchor.x),n=e*-this.anchor.x,r=i*(1-this.anchor.y),o=i*-this.anchor.y,a=t||this.worldTransform,h=a.a,l=a.c,u=a.b,c=a.d,d=a.tx,p=a.ty,f=h*n+u*o+d,g=c*o+l*n+p,m=h*s+u*o+d,y=c*o+l*s+p,v=h*s+u*r+d,x=c*r+l*s+p,b=h*n+u*r+d,w=c*r+l*n+p,T=-1/0,S=-1/0,A=1/0,_=1/0;A=A>f?f:A,A=A>m?m:A,A=A>v?v:A,A=A>b?b:A,_=_>g?g:_,_=_>y?y:_,_=_>x?x:_,_=_>w?w:_,T=f>T?f:T,T=m>T?m:T,T=v>T?v:T,T=b>T?b:T,S=g>S?g:S,S=y>S?y:S,S=x>S?x:S,S=w>S?w:S;var C=this._bounds;return C.x=A,C.width=T-A,C.y=_,C.height=S-_,this._currentBounds=C,C},s.Sprite.prototype._renderWebGL=function(t){if(this.visible&&!(this.alpha<=0)){var e,i;if(this._mask||this._filters){var s=t.spriteBatch;for(this._mask&&(s.stop(),t.maskManager.pushMask(this.mask,t),s.start()),this._filters&&(s.flush(),t.filterManager.pushFilter(this._filterBlock)),s.render(this),e=0,i=this.children.length;i>e;e++)this.children[e]._renderWebGL(t);s.stop(),this._filters&&t.filterManager.popFilter(),this._mask&&t.maskManager.popMask(t),s.start()}else for(t.spriteBatch.render(this),e=0,i=this.children.length;i>e;e++)this.children[e]._renderWebGL(t)}},s.Sprite.prototype._renderCanvas=function(t){if(this.visible!==!1&&0!==this.alpha){var e=this.texture.frame,i=t.context,n=this.texture;if(this.blendMode!==t.currentBlendMode&&(t.currentBlendMode=this.blendMode,i.globalCompositeOperation=s.blendModesCanvas[t.currentBlendMode]),this._mask&&t.maskManager.pushMask(this._mask,t.context),e&&e.width&&e.height&&n.baseTexture.source){i.globalAlpha=this.worldAlpha;var r=this.worldTransform;if(t.roundPixels?i.setTransform(r.a,r.c,r.b,r.d,0|r.tx,0|r.ty):i.setTransform(r.a,r.c,r.b,r.d,r.tx,r.ty),t.smoothProperty&&t.scaleMode!==this.texture.baseTexture.scaleMode&&(t.scaleMode=this.texture.baseTexture.scaleMode,i[t.smoothProperty]=t.scaleMode===s.scaleModes.LINEAR),16777215!==this.tint){if(this.cachedTint!==this.tint){if(!n.baseTexture.hasLoaded)return;this.cachedTint=this.tint,this.tintedTexture=s.CanvasTinter.getTintedTexture(this,this.tint)}i.drawImage(this.tintedTexture,0,0,e.width,e.height,this.anchor.x*-e.width,this.anchor.y*-e.height,e.width,e.height)}else if(n.trim){var o=n.trim;i.drawImage(this.texture.baseTexture.source,e.x,e.y,e.width,e.height,o.x-this.anchor.x*o.width,o.y-this.anchor.y*o.height,e.width,e.height)}else i.drawImage(this.texture.baseTexture.source,e.x,e.y,e.width,e.height,this.anchor.x*-e.width,this.anchor.y*-e.height,e.width,e.height)}for(var a=0,h=this.children.length;h>a;a++){var l=this.children[a];l._renderCanvas(t)}this._mask&&t.maskManager.popMask(t.context)}},s.Sprite.fromFrame=function(t){var e=s.TextureCache[t];if(!e)throw new Error('The frameId "'+t+'" does not exist in the texture cache'+this);return new s.Sprite(e)},s.Sprite.fromImage=function(t,e,i){var n=s.Texture.fromImage(t,e,i);return new s.Sprite(n)},s.SpriteBatch=function(t){s.DisplayObjectContainer.call(this),this.textureThing=t,this.ready=!1},s.SpriteBatch.prototype=Object.create(s.DisplayObjectContainer.prototype),s.SpriteBatch.constructor=s.SpriteBatch,s.SpriteBatch.prototype.initWebGL=function(t){this.fastSpriteBatch=new s.WebGLFastSpriteBatch(t),this.ready=!0},s.SpriteBatch.prototype.updateTransform=function(){s.DisplayObject.prototype.updateTransform.call(this)},s.SpriteBatch.prototype._renderWebGL=function(t){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(t.gl),t.spriteBatch.stop(),t.shaderManager.activateShader(t.shaderManager.fastShader),this.fastSpriteBatch.begin(this,t),this.fastSpriteBatch.render(this),t.shaderManager.activateShader(t.shaderManager.defaultShader),t.spriteBatch.start())},s.SpriteBatch.prototype._renderCanvas=function(t){var e=t.context;e.globalAlpha=this.worldAlpha,s.DisplayObject.prototype.updateTransform.call(this);for(var i=this.worldTransform,n=!0,r=0;r<this.children.length;r++){var o=this.children[r];if(o.visible){var a=o.texture,h=a.frame;if(e.globalAlpha=this.worldAlpha*o.alpha,o.rotation%(2*Math.PI)===0)n&&(e.setTransform(i.a,i.c,i.b,i.d,i.tx,i.ty),n=!1),e.drawImage(a.baseTexture.source,h.x,h.y,h.width,h.height,o.anchor.x*-h.width*o.scale.x+o.position.x+.5|0,o.anchor.y*-h.height*o.scale.y+o.position.y+.5|0,h.width*o.scale.x,h.height*o.scale.y);else{n||(n=!0),s.DisplayObject.prototype.updateTransform.call(o);var l=o.worldTransform;t.roundPixels?e.setTransform(l.a,l.c,l.b,l.d,0|l.tx,0|l.ty):e.setTransform(l.a,l.c,l.b,l.d,l.tx,l.ty),e.drawImage(a.baseTexture.source,h.x,h.y,h.width,h.height,o.anchor.x*-h.width+.5|0,o.anchor.y*-h.height+.5|0,h.width,h.height)}}}},s.AbstractFilter=function(t,e){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=e||{},this.fragmentSrc=t||[]},s.FilterBlock=function(){this.visible=!0,this.renderable=!0},s.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),s.Sprite.call(this,s.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},s.Text.prototype=Object.create(s.Sprite.prototype),s.Text.prototype.constructor=s.Text,s.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,t.wordWrapWidth=t.wordWrapWidth||100,t.dropShadow=t.dropShadow||!1,t.dropShadowAngle=t.dropShadowAngle||Math.PI/6,t.dropShadowDistance=t.dropShadowDistance||4,t.dropShadowColor=t.dropShadowColor||"black",this.style=t,this.dirty=!0},s.Text.prototype.setText=function(t){this.text=t.toString()||" ",this.dirty=!0},s.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],s=0,n=0;n<e.length;n++){var r=this.context.measureText(e[n]).width;i[n]=r,s=Math.max(s,r)}var o=s+this.style.strokeThickness;this.style.dropShadow&&(o+=this.style.dropShadowDistance),this.canvas.width=o+this.context.lineWidth;var a=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness,h=a*e.length;this.style.dropShadow&&(h+=this.style.dropShadowDistance),this.canvas.height=h,navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top";var l,u;if(this.style.dropShadow){this.context.fillStyle=this.style.dropShadowColor;var c=Math.sin(this.style.dropShadowAngle)*this.style.dropShadowDistance,d=Math.cos(this.style.dropShadowAngle)*this.style.dropShadowDistance;for(n=0;n<e.length;n++)l=this.style.strokeThickness/2,u=this.style.strokeThickness/2+n*a,"right"===this.style.align?l+=s-i[n]:"center"===this.style.align&&(l+=(s-i[n])/2),this.style.fill&&this.context.fillText(e[n],l+c,u+d)}for(this.context.fillStyle=this.style.fill,n=0;n<e.length;n++)l=this.style.strokeThickness/2,u=this.style.strokeThickness/2+n*a,"right"===this.style.align?l+=s-i[n]:"center"===this.style.align&&(l+=(s-i[n])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[n],l,u),this.style.fill&&this.context.fillText(e[n],l,u);this.updateTexture()},s.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,this.requiresUpdate=!0},s.Text.prototype._renderWebGL=function(t){this.requiresUpdate&&(this.requiresUpdate=!1,s.updateWebGLTexture(this.texture.baseTexture,t.gl)),s.Sprite.prototype._renderWebGL.call(this,t)},s.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),s.Sprite.prototype.updateTransform.call(this)},s.Text.prototype.determineFontHeight=function(t){var e=s.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],n=document.createElement("div"),r=document.createTextNode("M");n.appendChild(r),n.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(n),e=n.offsetHeight,s.Text.heightCache[t]=e,i.removeChild(n)}return e},s.Text.prototype.wordWrap=function(t){for(var e="",i=t.split("\n"),s=0;s<i.length;s++){for(var n=this.style.wordWrapWidth,r=i[s].split(" "),o=0;o<r.length;o++){var a=this.context.measureText(r[o]).width,h=a+this.context.measureText(" ").width;0===o||h>n?(o>0&&(e+="\n"),e+=r[o],n=this.style.wordWrapWidth-a):(n-=h,e+=" "+r[o])}s<i.length-1&&(e+="\n")}return e},s.Text.prototype.destroy=function(t){t&&this.texture.destroy()},s.Text.heightCache={},s.BitmapText=function(t,e){s.DisplayObjectContainer.call(this),this._pool=[],this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},s.BitmapText.prototype=Object.create(s.DisplayObjectContainer.prototype),s.BitmapText.prototype.constructor=s.BitmapText,s.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},s.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):s.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=t.tint},s.BitmapText.prototype.updateText=function(){for(var t=s.BitmapText.fonts[this.fontName],e=new s.Point,i=null,n=[],r=0,o=[],a=0,h=this.fontSize/t.size,l=0;l<this.text.length;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))o.push(e.x),r=Math.max(r,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),n.push({texture:c.texture,line:a,charCode:u,position:new s.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}o.push(e.x),r=Math.max(r,e.x);var d=[];for(l=0;a>=l;l++){var p=0;"right"===this.style.align?p=r-o[l]:"center"===this.style.align&&(p=(r-o[l])/2),d.push(p)}var f=this.children.length,g=n.length,m=this.tint||16777215;for(l=0;g>l;l++){var y=f>l?this.children[l]:this._pool.pop();y?y.setTexture(n[l].texture):y=new s.Sprite(n[l].texture),y.position.x=(n[l].position.x+d[n[l].line])*h,y.position.y=n[l].position.y*h,y.scale.x=y.scale.y=h,y.tint=m,y.parent||this.addChild(y)}for(;this.children.length>g;){var v=this.getChildAt(this.children.length-1);this._pool.push(v),this.removeChild(v)}this.textWidth=r*h,this.textHeight=(e.y+t.lineHeight)*h},s.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),s.DisplayObjectContainer.prototype.updateTransform.call(this)},s.BitmapText.fonts={},s.Stage=function(t){s.DisplayObjectContainer.call(this),this.worldTransform=new s.Matrix,this.interactive=!0,this.interactionManager=new s.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new s.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(t)},s.Stage.prototype=Object.create(s.DisplayObjectContainer.prototype),s.Stage.prototype.constructor=s.Stage,s.Stage.prototype.setInteractionDelegate=function(t){this.interactionManager.setTargetDomElement(t)},s.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},s.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=s.hex2rgb(this.backgroundColor);var e=this.backgroundColor.toString(16);e="000000".substr(0,6-e.length)+e,this.backgroundColorString="#"+e},s.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var n=0,r=["ms","moz","webkit","o"],o=0;o<r.length&&!window.requestAnimationFrame;++o)window.requestAnimationFrame=window[r[o]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[r[o]+"CancelAnimationFrame"]||window[r[o]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-n)),s=window.setTimeout(function(){t(e+i)},i);return n=e+i,s}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,s.hex2rgb=function(t){return[(t>>16&255)/255,(t>>8&255)/255,(255&t)/255]},s.rgb2hex=function(t){return(255*t[0]<<16)+(255*t[1]<<8)+255*t[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var r=n.concat(t.call(arguments));s.apply(this instanceof i?this:e,r)}var s=this,n=t.call(arguments,1);if("function"!=typeof s)throw new TypeError;return i.prototype=function r(t){return t&&(r.prototype=t),this instanceof r?void 0:new r}(s.prototype),i}}()),s.AjaxRequest=function(){var t=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var e=0;e<t.length;e++)try{return new window.ActiveXObject(t[e])}catch(i){}},s.canUseNewCanvasBlendModes=function(){var t=document.createElement("canvas");t.width=1,t.height=1;var e=t.getContext("2d");return e.fillStyle="#000",e.fillRect(0,0,1,1),e.globalCompositeOperation="multiply",e.fillStyle="#fff",e.fillRect(0,0,1,1),0===e.getImageData(0,0,1,1).data[0]},s.getNextPowerOfTwo=function(t){if(t>0&&0===(t&t-1))return t;for(var e=1;t>e;)e<<=1;return e},s.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){if(t[e.type]&&t[e.type].length)for(var i=0,s=t[e.type].length;s>i;i++)t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var s=t[e].indexOf(i);-1!==s&&t[e].splice(s,1)},this.removeAllEventListeners=function(e){var i=t[e];i&&(i.length=0)}},s.PolyK={},s.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var n=[],r=[],o=0;i>o;o++)r.push(o);o=0;for(var a=i;a>3;){var h=r[(o+0)%a],l=r[(o+1)%a],u=r[(o+2)%a],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],m=t[2*u+1],y=!1;if(s.PolyK._convex(c,d,p,f,g,m,e)){y=!0;for(var v=0;a>v;v++){var x=r[v];if(x!==h&&x!==l&&x!==u&&s.PolyK._PointInTriangle(t[2*x],t[2*x+1],c,d,p,f,g,m)){y=!1;break}}}if(y)n.push(h,l,u),r.splice((o+1)%a,1),a--,o=0;else if(o++>3*a){if(!e)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(n=[],r=[],o=0;i>o;o++)r.push(o);o=0,a=i,e=!1}}return n.push(r[0],r[1],r[2]),n},s.PolyK._PointInTriangle=function(t,e,i,s,n,r,o,a){var h=o-i,l=a-s,u=n-i,c=r-s,d=t-i,p=e-s,f=h*h+l*l,g=h*u+l*c,m=h*d+l*p,y=u*u+c*c,v=u*d+c*p,x=1/(f*y-g*g),b=(y*m-g*v)*x,w=(f*v-g*m)*x;return b>=0&&w>=0&&1>b+w},s.PolyK._convex=function(t,e,i,s,n,r,o){return(e-s)*(n-i)+(i-t)*(r-s)>=0===o},s.initDefaultShaders=function(){},s.CompileVertexShader=function(t,e){return s._CompileShader(t,e,t.VERTEX_SHADER)},s.CompileFragmentShader=function(t,e){return s._CompileShader(t,e,t.FRAGMENT_SHADER)},s._CompileShader=function(t,e,i){var s=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,s),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(window.console.log(t.getShaderInfoLog(n)),null)},s.compileProgram=function(t,e,i){var n=s.CompileFragmentShader(t,i),r=s.CompileVertexShader(t,e),o=t.createProgram();return t.attachShader(o,r),t.attachShader(o,n),t.linkProgram(o),t.getProgramParameter(o,t.LINK_STATUS)||window.console.log("Could not initialise shaders"),o},s.PixiShader=function(t){this.gl=t,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {","   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},s.PixiShader.prototype.init=function(){var t=this.gl,e=s.compileProgram(t,this.vertexSrc||s.PixiShader.defaultVertexSrc,this.fragmentSrc);t.useProgram(e),this.uSampler=t.getUniformLocation(e,"uSampler"),this.projectionVector=t.getUniformLocation(e,"projectionVector"),this.offsetVector=t.getUniformLocation(e,"offsetVector"),this.dimensions=t.getUniformLocation(e,"dimensions"),this.aVertexPosition=t.getAttribLocation(e,"aVertexPosition"),this.aTextureCoord=t.getAttribLocation(e,"aTextureCoord"),this.colorAttribute=t.getAttribLocation(e,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var i in this.uniforms)this.uniforms[i].uniformLocation=t.getUniformLocation(e,i);this.initUniforms(),this.program=e},s.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var t,e=this.gl;for(var i in this.uniforms){t=this.uniforms[i];var s=t.type;"sampler2D"===s?(t._init=!1,null!==t.value&&this.initSampler2D(t)):"mat2"===s||"mat3"===s||"mat4"===s?(t.glMatrix=!0,t.glValueLength=1,"mat2"===s?t.glFunc=e.uniformMatrix2fv:"mat3"===s?t.glFunc=e.uniformMatrix3fv:"mat4"===s&&(t.glFunc=e.uniformMatrix4fv)):(t.glFunc=e["uniform"+s],t.glValueLength="2f"===s||"2i"===s?2:"3f"===s||"3i"===s?3:"4f"===s||"4i"===s?4:1)}},s.PixiShader.prototype.initSampler2D=function(t){if(t.value&&t.value.baseTexture&&t.value.baseTexture.hasLoaded){var e=this.gl;if(e.activeTexture(e["TEXTURE"+this.textureCount]),e.bindTexture(e.TEXTURE_2D,t.value.baseTexture._glTextures[e.id]),t.textureData){var i=t.textureData,s=i.magFilter?i.magFilter:e.LINEAR,n=i.minFilter?i.minFilter:e.LINEAR,r=i.wrapS?i.wrapS:e.CLAMP_TO_EDGE,o=i.wrapT?i.wrapT:e.CLAMP_TO_EDGE,a=i.luminance?e.LUMINANCE:e.RGBA;if(i.repeat&&(r=e.REPEAT,o=e.REPEAT),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!!i.flipY),i.width){var h=i.width?i.width:512,l=i.height?i.height:2,u=i.border?i.border:0;e.texImage2D(e.TEXTURE_2D,0,a,h,l,u,a,e.UNSIGNED_BYTE,null)}else e.texImage2D(e.TEXTURE_2D,0,a,e.RGBA,e.UNSIGNED_BYTE,t.value.baseTexture.source);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,o)}e.uniform1i(t.uniformLocation,this.textureCount),t._init=!0,this.textureCount++}},s.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var t,e=this.gl;for(var i in this.uniforms)t=this.uniforms[i],1===t.glValueLength?t.glMatrix===!0?t.glFunc.call(e,t.uniformLocation,t.transpose,t.value):t.glFunc.call(e,t.uniformLocation,t.value):2===t.glValueLength?t.glFunc.call(e,t.uniformLocation,t.value.x,t.value.y):3===t.glValueLength?t.glFunc.call(e,t.uniformLocation,t.value.x,t.value.y,t.value.z):4===t.glValueLength?t.glFunc.call(e,t.uniformLocation,t.value.x,t.value.y,t.value.z,t.value.w):"sampler2D"===t.type&&(t._init?(e.activeTexture(e["TEXTURE"+this.textureCount]),e.bindTexture(e.TEXTURE_2D,t.value.baseTexture._glTextures[e.id]||s.createWebGLTexture(t.value.baseTexture,e)),e.uniform1i(t.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(t))},s.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},s.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec2 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {","   gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);","   vTextureCoord = aTextureCoord;","   vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;","   vColor = vec4(color * aColor.x, aColor.x);","}"],s.PixiFastShader=function(t){this.gl=t,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {","   vec2 v;","   vec2 sv = aVertexPosition * aScale;","   v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);","   v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);","   v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;","   gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);","   vTextureCoord = aTextureCoord;","   vColor = aColor;","}"],this.textureCount=0,this.init()},s.PixiFastShader.prototype.init=function(){var t=this.gl,e=s.compileProgram(t,this.vertexSrc,this.fragmentSrc);t.useProgram(e),this.uSampler=t.getUniformLocation(e,"uSampler"),this.projectionVector=t.getUniformLocation(e,"projectionVector"),this.offsetVector=t.getUniformLocation(e,"offsetVector"),this.dimensions=t.getUniformLocation(e,"dimensions"),this.uMatrix=t.getUniformLocation(e,"uMatrix"),this.aVertexPosition=t.getAttribLocation(e,"aVertexPosition"),this.aPositionCoord=t.getAttribLocation(e,"aPositionCoord"),this.aScale=t.getAttribLocation(e,"aScale"),this.aRotation=t.getAttribLocation(e,"aRotation"),this.aTextureCoord=t.getAttribLocation(e,"aTextureCoord"),this.colorAttribute=t.getAttribLocation(e,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=e},s.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},s.StripShader=function(){this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","   gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","   gl_FragColor = gl_FragColor * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","uniform vec2 offsetVector;","varying float vColor;","void main(void) {","   vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","   v -= offsetVector.xyx;","   gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / projectionVector.y + 1.0 , 0.0, 1.0);","   vTextureCoord = aTextureCoord;","   vColor = aColor;","}"]},s.StripShader.prototype.init=function(){var t=s.gl,e=s.compileProgram(t,this.vertexSrc,this.fragmentSrc);t.useProgram(e),this.uSampler=t.getUniformLocation(e,"uSampler"),this.projectionVector=t.getUniformLocation(e,"projectionVector"),this.offsetVector=t.getUniformLocation(e,"offsetVector"),this.colorAttribute=t.getAttribLocation(e,"aColor"),this.aVertexPosition=t.getAttribLocation(e,"aVertexPosition"),this.aTextureCoord=t.getAttribLocation(e,"aTextureCoord"),this.translationMatrix=t.getUniformLocation(e,"translationMatrix"),this.alpha=t.getUniformLocation(e,"alpha"),this.program=e},s.PrimitiveShader=function(t){this.gl=t,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","   gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {","   vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);","   v -= offsetVector.xyx;","   gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","   vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},s.PrimitiveShader.prototype.init=function(){var t=this.gl,e=s.compileProgram(t,this.vertexSrc,this.fragmentSrc);t.useProgram(e),this.projectionVector=t.getUniformLocation(e,"projectionVector"),this.offsetVector=t.getUniformLocation(e,"offsetVector"),this.tintColor=t.getUniformLocation(e,"tint"),this.aVertexPosition=t.getAttribLocation(e,"aVertexPosition"),this.colorAttribute=t.getAttribLocation(e,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=t.getUniformLocation(e,"translationMatrix"),this.alpha=t.getUniformLocation(e,"alpha"),this.program=e},s.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},s.WebGLGraphics=function(){},s.WebGLGraphics.renderGraphics=function(t,e){var i=e.gl,n=e.projection,r=e.offset,o=e.shaderManager.primitiveShader;t._webGL[i.id]||(t._webGL[i.id]={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()});var a=t._webGL[i.id];t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,a.lastIndex=0,a.points=[],a.indices=[]),s.WebGLGraphics.updateGraphics(t,i)),e.shaderManager.activatePrimitiveShader(),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(o.translationMatrix,!1,t.worldTransform.toArray(!0)),i.uniform2f(o.projectionVector,n.x,-n.y),i.uniform2f(o.offsetVector,-r.x,-r.y),i.uniform3fv(o.tintColor,s.hex2rgb(t.tint)),i.uniform1f(o.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,a.buffer),i.vertexAttribPointer(o.aVertexPosition,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(o.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,a.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,a.indices.length,i.UNSIGNED_SHORT,0),e.shaderManager.deactivatePrimitiveShader()},s.WebGLGraphics.updateGraphics=function(t,e){for(var i=t._webGL[e.id],n=i.lastIndex;n<t.graphicsData.length;n++){var r=t.graphicsData[n];r.type===s.Graphics.POLY?(r.fill&&r.points.length>3&&s.WebGLGraphics.buildPoly(r,i),r.lineWidth>0&&s.WebGLGraphics.buildLine(r,i)):r.type===s.Graphics.RECT?s.WebGLGraphics.buildRectangle(r,i):(r.type===s.Graphics.CIRC||r.type===s.Graphics.ELIP)&&s.WebGLGraphics.buildCircle(r,i)}i.lastIndex=t.graphicsData.length,i.glPoints=new Float32Array(i.points),e.bindBuffer(e.ARRAY_BUFFER,i.buffer),e.bufferData(e.ARRAY_BUFFER,i.glPoints,e.STATIC_DRAW),i.glIndicies=new Uint16Array(i.indices),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i.indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i.glIndicies,e.STATIC_DRAW)},s.WebGLGraphics.buildRectangle=function(t,e){var i=t.points,n=i[0],r=i[1],o=i[2],a=i[3];if(t.fill){var h=s.hex2rgb(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=e.points,f=e.indices,g=p.length/6;p.push(n,r),p.push(u,c,d,l),p.push(n+o,r),p.push(u,c,d,l),p.push(n,r+a),p.push(u,c,d,l),p.push(n+o,r+a),p.push(u,c,d,l),f.push(g,g,g+1,g+2,g+3,g+3)}if(t.lineWidth){var m=t.points;t.points=[n,r,n+o,r,n+o,r+a,n,r+a,n,r],s.WebGLGraphics.buildLine(t,e),t.points=m}},s.WebGLGraphics.buildCircle=function(t,e){var i=t.points,n=i[0],r=i[1],o=i[2],a=i[3],h=40,l=2*Math.PI/h,u=0;if(t.fill){var c=s.hex2rgb(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,m=e.points,y=e.indices,v=m.length/6;for(y.push(v),u=0;h+1>u;u++)m.push(n,r,p,f,g,d),m.push(n+Math.sin(l*u)*o,r+Math.cos(l*u)*a,p,f,g,d),y.push(v++,v++);y.push(v-1)}if(t.lineWidth){var x=t.points;for(t.points=[],u=0;h+1>u;u++)t.points.push(n+Math.sin(l*u)*o,r+Math.cos(l*u)*a);s.WebGLGraphics.buildLine(t,e),t.points=x}},s.WebGLGraphics.buildLine=function(t,e){var i=0,n=t.points;if(0!==n.length){if(t.lineWidth%2)for(i=0;i<n.length;i++)n[i]+=.5;var r=new s.Point(n[0],n[1]),o=new s.Point(n[n.length-2],n[n.length-1]);if(r.x===o.x&&r.y===o.y){n.pop(),n.pop(),o=new s.Point(n[n.length-2],n[n.length-1]);var a=o.x+.5*(r.x-o.x),h=o.y+.5*(r.y-o.y);n.unshift(a,h),n.push(a,h)}var l,u,c,d,p,f,g,m,y,v,x,b,w,T,S,A,_,C,P,M,O,E,k,D=e.points,R=e.indices,L=n.length/2,I=n.length,B=D.length/6,F=t.lineWidth/2,N=s.hex2rgb(t.lineColor),U=t.lineAlpha,G=N[0]*U,j=N[1]*U,W=N[2]*U;for(c=n[0],d=n[1],p=n[2],f=n[3],y=-(d-f),v=c-p,k=Math.sqrt(y*y+v*v),y/=k,v/=k,y*=F,v*=F,D.push(c-y,d-v,G,j,W,U),D.push(c+y,d+v,G,j,W,U),i=1;L-1>i;i++)c=n[2*(i-1)],d=n[2*(i-1)+1],p=n[2*i],f=n[2*i+1],g=n[2*(i+1)],m=n[2*(i+1)+1],y=-(d-f),v=c-p,k=Math.sqrt(y*y+v*v),y/=k,v/=k,y*=F,v*=F,x=-(f-m),b=p-g,k=Math.sqrt(x*x+b*b),x/=k,b/=k,x*=F,b*=F,S=-v+d-(-v+f),A=-y+p-(-y+c),_=(-y+c)*(-v+f)-(-y+p)*(-v+d),C=-b+m-(-b+f),P=-x+p-(-x+g),M=(-x+g)*(-b+f)-(-x+p)*(-b+m),O=S*P-C*A,Math.abs(O)<.1?(O+=10.1,D.push(p-y,f-v,G,j,W,U),D.push(p+y,f+v,G,j,W,U)):(l=(A*M-P*_)/O,u=(C*_-S*M)/O,E=(l-p)*(l-p)+(u-f)+(u-f),E>19600?(w=y-x,T=v-b,k=Math.sqrt(w*w+T*T),w/=k,T/=k,w*=F,T*=F,D.push(p-w,f-T),D.push(G,j,W,U),D.push(p+w,f+T),D.push(G,j,W,U),D.push(p-w,f-T),D.push(G,j,W,U),I++):(D.push(l,u),D.push(G,j,W,U),D.push(p-(l-p),f-(u-f)),D.push(G,j,W,U)));for(c=n[2*(L-2)],d=n[2*(L-2)+1],p=n[2*(L-1)],f=n[2*(L-1)+1],y=-(d-f),v=c-p,k=Math.sqrt(y*y+v*v),y/=k,v/=k,y*=F,v*=F,D.push(p-y,f-v),D.push(G,j,W,U),D.push(p+y,f+v),D.push(G,j,W,U),R.push(B),i=0;I>i;i++)R.push(B++);R.push(B-1)}},s.WebGLGraphics.buildPoly=function(t,e){var i=t.points;if(!(i.length<6)){var n=e.points,r=e.indices,o=i.length/2,a=s.hex2rgb(t.fillColor),h=t.fillAlpha,l=a[0]*h,u=a[1]*h,c=a[2]*h,d=s.PolyK.Triangulate(i),p=n.length/6,f=0;for(f=0;f<d.length;f+=3)r.push(d[f]+p),r.push(d[f]+p),r.push(d[f+1]+p),r.push(d[f+2]+p),r.push(d[f+2]+p);for(f=0;o>f;f++)n.push(i[2*f],i[2*f+1],l,u,c,h)}},s.glContexts=[],s.WebGLRenderer=function(t,e,i,n,r){s.defaultRenderer||(s.defaultRenderer=this),this.type=s.WEBGL_RENDERER,this.transparent=!!n,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.contextLost=this.handleContextLost.bind(this),this.contextRestoredLost=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLost,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredLost,!1),this.options={alpha:this.transparent,antialias:!!r,premultipliedAlpha:!!n,stencil:!0};try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(o){try{this.gl=this.view.getContext("webgl",this.options)
  }catch(a){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var h=this.gl;this.glContextId=h.id=s.WebGLRenderer.glContextId++,s.glContexts[this.glContextId]=h,s.blendModesWebGL||(s.blendModesWebGL=[],s.blendModesWebGL[s.blendModes.NORMAL]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.ADD]=[h.SRC_ALPHA,h.DST_ALPHA],s.blendModesWebGL[s.blendModes.MULTIPLY]=[h.DST_COLOR,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.SCREEN]=[h.SRC_ALPHA,h.ONE],s.blendModesWebGL[s.blendModes.OVERLAY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.DARKEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.LIGHTEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.COLOR_DODGE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.COLOR_BURN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.HARD_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.SOFT_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.DIFFERENCE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.EXCLUSION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.HUE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.SATURATION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.COLOR]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],s.blendModesWebGL[s.blendModes.LUMINOSITY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA]),this.projection=new s.Point,this.projection.x=this.width/2,this.projection.y=-this.height/2,this.offset=new s.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,this.shaderManager=new s.WebGLShaderManager(h),this.spriteBatch=new s.WebGLSpriteBatch(h),this.maskManager=new s.WebGLMaskManager(h),this.filterManager=new s.WebGLFilterManager(h,this.transparent),this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.renderer=this,h.useProgram(this.shaderManager.defaultShader.program),h.disable(h.DEPTH_TEST),h.disable(h.CULL_FACE),h.enable(h.BLEND),h.colorMask(!0,!0,!0,this.transparent)},s.WebGLRenderer.prototype.constructor=s.WebGLRenderer,s.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(t.interactive&&t.interactionManager.removeEvents(),this.__stage=t),s.WebGLRenderer.updateTextures(),t.updateTransform(),t._interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this)));var e=this.gl;e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),this.transparent?e.clearColor(0,0,0,0):e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],1),e.clear(e.COLOR_BUFFER_BIT),this.renderDisplayObject(t,this.projection),t.interactive?t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this)):t._interactiveEventsAdded&&(t._interactiveEventsAdded=!1,t.interactionManager.setTarget(this))}},s.WebGLRenderer.prototype.renderDisplayObject=function(t,e,i){this.renderSession.drawCount=0,this.renderSession.currentBlendMode=9999,this.renderSession.projection=e,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,i),t._renderWebGL(this.renderSession),this.spriteBatch.end()},s.WebGLRenderer.updateTextures=function(){var t=0;for(t=0;t<s.Texture.frameUpdates.length;t++)s.WebGLRenderer.updateTextureFrame(s.Texture.frameUpdates[t]);for(t=0;t<s.texturesToDestroy.length;t++)s.WebGLRenderer.destroyTexture(s.texturesToDestroy[t]);s.texturesToUpdate.length=0,s.texturesToDestroy.length=0,s.Texture.frameUpdates.length=0},s.WebGLRenderer.destroyTexture=function(t){for(var e=t._glTextures.length-1;e>=0;e--){var i=t._glTextures[e],n=s.glContexts[e];n&&i&&n.deleteTexture(i)}t._glTextures.length=0},s.WebGLRenderer.updateTextureFrame=function(t){t.updateFrame=!1,t._updateWebGLuvs()},s.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2,this.projection.y=-this.height/2},s.createWebGLTexture=function(t,e){return t.hasLoaded&&(t._glTextures[e.id]=e.createTexture(),e.bindTexture(e.TEXTURE_2D,t._glTextures[e.id]),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t.scaleMode===s.scaleModes.LINEAR?e.LINEAR:e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t.scaleMode===s.scaleModes.LINEAR?e.LINEAR:e.NEAREST),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),t._glTextures[e.id]},s.updateWebGLTexture=function(t,e){t._glTextures[e.id]&&(e.bindTexture(e.TEXTURE_2D,t._glTextures[e.id]),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t.scaleMode===s.scaleModes.LINEAR?e.LINEAR:e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t.scaleMode===s.scaleModes.LINEAR?e.LINEAR:e.NEAREST),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},s.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},s.WebGLRenderer.prototype.handleContextRestored=function(){try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(t){try{this.gl=this.view.getContext("webgl",this.options)}catch(e){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var i=this.gl;i.id=s.WebGLRenderer.glContextId++,this.shaderManager.setContext(i),this.spriteBatch.setContext(i),this.maskManager.setContext(i),this.filterManager.setContext(i),this.renderSession.gl=this.gl,i.disable(i.DEPTH_TEST),i.disable(i.CULL_FACE),i.enable(i.BLEND),i.colorMask(!0,!0,!0,this.transparent),this.gl.viewport(0,0,this.width,this.height);for(var n in s.TextureCache){var r=s.TextureCache[n].baseTexture;r._glTextures=[]}this.contextLost=!1},s.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLost),this.view.removeEventListener("webglcontextrestored",this.contextRestoredLost),s.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},s.WebGLRenderer.glContextId=0,s.WebGLMaskManager=function(t){this.maskStack=[],this.maskPosition=0,this.setContext(t)},s.WebGLMaskManager.prototype.setContext=function(t){this.gl=t},s.WebGLMaskManager.prototype.pushMask=function(t,e){var i=this.gl;0===this.maskStack.length&&(i.enable(i.STENCIL_TEST),i.stencilFunc(i.ALWAYS,1,1)),this.maskStack.push(t),i.colorMask(!1,!1,!1,!1),i.stencilOp(i.KEEP,i.KEEP,i.INCR),s.WebGLGraphics.renderGraphics(t,e),i.colorMask(!0,!0,!0,!0),i.stencilFunc(i.NOTEQUAL,0,this.maskStack.length),i.stencilOp(i.KEEP,i.KEEP,i.KEEP)},s.WebGLMaskManager.prototype.popMask=function(t){var e=this.gl,i=this.maskStack.pop();i&&(e.colorMask(!1,!1,!1,!1),e.stencilOp(e.KEEP,e.KEEP,e.DECR),s.WebGLGraphics.renderGraphics(i,t),e.colorMask(!0,!0,!0,!0),e.stencilFunc(e.NOTEQUAL,0,this.maskStack.length),e.stencilOp(e.KEEP,e.KEEP,e.KEEP)),0===this.maskStack.length&&e.disable(e.STENCIL_TEST)},s.WebGLMaskManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},s.WebGLShaderManager=function(t){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var e=0;e<this.maxAttibs;e++)this.attribState[e]=!1;this.setContext(t)},s.WebGLShaderManager.prototype.setContext=function(t){this.gl=t,this.primitiveShader=new s.PrimitiveShader(t),this.defaultShader=new s.PixiShader(t),this.fastShader=new s.PixiFastShader(t),this.activateShader(this.defaultShader)},s.WebGLShaderManager.prototype.setAttribs=function(t){var e;for(e=0;e<this.tempAttribState.length;e++)this.tempAttribState[e]=!1;for(e=0;e<t.length;e++){var i=t[e];this.tempAttribState[i]=!0}var s=this.gl;for(e=0;e<this.attribState.length;e++)this.attribState[e]!==this.tempAttribState[e]&&(this.attribState[e]=this.tempAttribState[e],this.tempAttribState[e]?s.enableVertexAttribArray(e):s.disableVertexAttribArray(e))},s.WebGLShaderManager.prototype.activateShader=function(t){this.currentShader=t,this.gl.useProgram(t.program),this.setAttribs(t.attributes)},s.WebGLShaderManager.prototype.activatePrimitiveShader=function(){var t=this.gl;t.useProgram(this.primitiveShader.program),this.setAttribs(this.primitiveShader.attributes)},s.WebGLShaderManager.prototype.deactivatePrimitiveShader=function(){var t=this.gl;t.useProgram(this.defaultShader.program),this.setAttribs(this.defaultShader.attributes)},s.WebGLShaderManager.prototype.destroy=function(){this.attribState=null,this.tempAttribState=null,this.primitiveShader.destroy(),this.defaultShader.destroy(),this.fastShader.destroy(),this.gl=null},s.WebGLSpriteBatch=function(t){this.vertSize=6,this.size=2e3;var e=4*this.size*this.vertSize,i=6*this.size;this.vertices=new Float32Array(e),this.indices=new Uint16Array(i),this.lastIndexCount=0;for(var s=0,n=0;i>s;s+=6,n+=4)this.indices[s+0]=n+0,this.indices[s+1]=n+1,this.indices[s+2]=n+2,this.indices[s+3]=n+0,this.indices[s+4]=n+2,this.indices[s+5]=n+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.setContext(t)},s.WebGLSpriteBatch.prototype.setContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.vertices,t.DYNAMIC_DRAW),this.currentBlendMode=99999},s.WebGLSpriteBatch.prototype.begin=function(t){this.renderSession=t,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},s.WebGLSpriteBatch.prototype.end=function(){this.flush()},s.WebGLSpriteBatch.prototype.render=function(t){var e=t.texture;(e.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size)&&(this.flush(),this.currentBaseTexture=e.baseTexture),t.blendMode!==this.currentBlendMode&&this.setBlendMode(t.blendMode);var i=t._uvs||t.texture._uvs;if(i){var s,n,r,o,a=t.worldAlpha,h=t.tint,l=this.vertices,u=t.anchor.x,c=t.anchor.y;if(t.texture.trim){var d=t.texture.trim;n=d.x-u*d.width,s=n+e.frame.width,o=d.y-c*d.height,r=o+e.frame.height}else s=e.frame.width*(1-u),n=e.frame.width*-u,r=e.frame.height*(1-c),o=e.frame.height*-c;var p=4*this.currentBatchSize*this.vertSize,f=t.worldTransform,g=f.a,m=f.c,y=f.b,v=f.d,x=f.tx,b=f.ty;l[p++]=g*n+y*o+x,l[p++]=v*o+m*n+b,l[p++]=i.x0,l[p++]=i.y0,l[p++]=a,l[p++]=h,l[p++]=g*s+y*o+x,l[p++]=v*o+m*s+b,l[p++]=i.x1,l[p++]=i.y1,l[p++]=a,l[p++]=h,l[p++]=g*s+y*r+x,l[p++]=v*r+m*s+b,l[p++]=i.x2,l[p++]=i.y2,l[p++]=a,l[p++]=h,l[p++]=g*n+y*r+x,l[p++]=v*r+m*n+b,l[p++]=i.x3,l[p++]=i.y3,l[p++]=a,l[p++]=h,this.currentBatchSize++}},s.WebGLSpriteBatch.prototype.renderTilingSprite=function(t){var e=t.tilingTexture;(e.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size)&&(this.flush(),this.currentBaseTexture=e.baseTexture),t.blendMode!==this.currentBlendMode&&this.setBlendMode(t.blendMode),t._uvs||(t._uvs=new s.TextureUvs);var i=t._uvs;t.tilePosition.x%=e.baseTexture.width*t.tileScaleOffset.x,t.tilePosition.y%=e.baseTexture.height*t.tileScaleOffset.y;var n=t.tilePosition.x/(e.baseTexture.width*t.tileScaleOffset.x),r=t.tilePosition.y/(e.baseTexture.height*t.tileScaleOffset.y),o=t.width/e.baseTexture.width/(t.tileScale.x*t.tileScaleOffset.x),a=t.height/e.baseTexture.height/(t.tileScale.y*t.tileScaleOffset.y);i.x0=0-n,i.y0=0-r,i.x1=1*o-n,i.y1=0-r,i.x2=1*o-n,i.y2=1*a-r,i.x3=0-n,i.y3=1*a-r;var h=t.worldAlpha,l=t.tint,u=this.vertices,c=t.width,d=t.height,p=t.anchor.x,f=t.anchor.y,g=c*(1-p),m=c*-p,y=d*(1-f),v=d*-f,x=4*this.currentBatchSize*this.vertSize,b=t.worldTransform,w=b.a,T=b.c,S=b.b,A=b.d,_=b.tx,C=b.ty;u[x++]=w*m+S*v+_,u[x++]=A*v+T*m+C,u[x++]=i.x0,u[x++]=i.y0,u[x++]=h,u[x++]=l,u[x++]=w*g+S*v+_,u[x++]=A*v+T*g+C,u[x++]=i.x1,u[x++]=i.y1,u[x++]=h,u[x++]=l,u[x++]=w*g+S*y+_,u[x++]=A*y+T*g+C,u[x++]=i.x2,u[x++]=i.y2,u[x++]=h,u[x++]=l,u[x++]=w*m+S*y+_,u[x++]=A*y+T*m+C,u[x++]=i.x3,u[x++]=i.y3,u[x++]=h,u[x++]=l,this.currentBatchSize++},s.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var t=this.gl;if(t.bindTexture(t.TEXTURE_2D,this.currentBaseTexture._glTextures[t.id]||s.createWebGLTexture(this.currentBaseTexture,t)),this.currentBatchSize>.5*this.size)t.bufferSubData(t.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);t.bufferSubData(t.ARRAY_BUFFER,0,e)}t.drawElements(t.TRIANGLES,6*this.currentBatchSize,t.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},s.WebGLSpriteBatch.prototype.stop=function(){this.flush()},s.WebGLSpriteBatch.prototype.start=function(){var t=this.gl;t.activeTexture(t.TEXTURE0),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var e=this.renderSession.projection;t.uniform2f(this.shader.projectionVector,e.x,e.y);var i=4*this.vertSize;t.vertexAttribPointer(this.shader.aVertexPosition,2,t.FLOAT,!1,i,0),t.vertexAttribPointer(this.shader.aTextureCoord,2,t.FLOAT,!1,i,8),t.vertexAttribPointer(this.shader.colorAttribute,2,t.FLOAT,!1,i,16),this.currentBlendMode!==s.blendModes.NORMAL&&this.setBlendMode(s.blendModes.NORMAL)},s.WebGLSpriteBatch.prototype.setBlendMode=function(t){this.flush(),this.currentBlendMode=t;var e=s.blendModesWebGL[this.currentBlendMode];this.gl.blendFunc(e[0],e[1])},s.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},s.WebGLFastSpriteBatch=function(t){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var e=4*this.size*this.vertSize,i=6*this.maxSize;this.vertices=new Float32Array(e),this.indices=new Uint16Array(i),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var s=0,n=0;i>s;s+=6,n+=4)this.indices[s+0]=n+0,this.indices[s+1]=n+1,this.indices[s+2]=n+2,this.indices[s+3]=n+0,this.indices[s+4]=n+2,this.indices[s+5]=n+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(t)},s.WebGLFastSpriteBatch.prototype.setContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.vertices,t.DYNAMIC_DRAW),this.currentBlendMode=99999},s.WebGLFastSpriteBatch.prototype.begin=function(t,e){this.renderSession=e,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=t.worldTransform.toArray(!0),this.start()},s.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},s.WebGLFastSpriteBatch.prototype.render=function(t){var e=t.children,i=e[0];if(i.texture._uvs){this.currentBaseTexture=i.texture.baseTexture,i.blendMode!==this.currentBlendMode&&this.setBlendMode(i.blendMode);for(var s=0,n=e.length;n>s;s++)this.renderSprite(e[s]);this.flush()}},s.WebGLFastSpriteBatch.prototype.renderSprite=function(t){if(t.visible&&(t.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=t.texture.baseTexture,t.texture._uvs))){var e,i,s,n,r,o,a,h,l=this.vertices;if(e=t.texture._uvs,i=t.texture.frame.width,s=t.texture.frame.height,t.texture.trim){var u=t.texture.trim;r=u.x-t.anchor.x*u.width,n=r+t.texture.frame.width,a=u.y-t.anchor.y*u.height,o=a+t.texture.frame.height}else n=t.texture.frame.width*(1-t.anchor.x),r=t.texture.frame.width*-t.anchor.x,o=t.texture.frame.height*(1-t.anchor.y),a=t.texture.frame.height*-t.anchor.y;h=4*this.currentBatchSize*this.vertSize,l[h++]=r,l[h++]=a,l[h++]=t.position.x,l[h++]=t.position.y,l[h++]=t.scale.x,l[h++]=t.scale.y,l[h++]=t.rotation,l[h++]=e.x0,l[h++]=e.y1,l[h++]=t.alpha,l[h++]=n,l[h++]=a,l[h++]=t.position.x,l[h++]=t.position.y,l[h++]=t.scale.x,l[h++]=t.scale.y,l[h++]=t.rotation,l[h++]=e.x1,l[h++]=e.y1,l[h++]=t.alpha,l[h++]=n,l[h++]=o,l[h++]=t.position.x,l[h++]=t.position.y,l[h++]=t.scale.x,l[h++]=t.scale.y,l[h++]=t.rotation,l[h++]=e.x2,l[h++]=e.y2,l[h++]=t.alpha,l[h++]=r,l[h++]=o,l[h++]=t.position.x,l[h++]=t.position.y,l[h++]=t.scale.x,l[h++]=t.scale.y,l[h++]=t.rotation,l[h++]=e.x3,l[h++]=e.y3,l[h++]=t.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},s.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var t=this.gl;if(this.currentBaseTexture._glTextures[t.id]||s.createWebGLTexture(this.currentBaseTexture,t),t.bindTexture(t.TEXTURE_2D,this.currentBaseTexture._glTextures[t.id]),this.currentBatchSize>.5*this.size)t.bufferSubData(t.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);t.bufferSubData(t.ARRAY_BUFFER,0,e)}t.drawElements(t.TRIANGLES,6*this.currentBatchSize,t.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},s.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},s.WebGLFastSpriteBatch.prototype.start=function(){var t=this.gl;t.activeTexture(t.TEXTURE0),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var e=this.renderSession.projection;t.uniform2f(this.shader.projectionVector,e.x,e.y),t.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var i=4*this.vertSize;t.vertexAttribPointer(this.shader.aVertexPosition,2,t.FLOAT,!1,i,0),t.vertexAttribPointer(this.shader.aPositionCoord,2,t.FLOAT,!1,i,8),t.vertexAttribPointer(this.shader.aScale,2,t.FLOAT,!1,i,16),t.vertexAttribPointer(this.shader.aRotation,1,t.FLOAT,!1,i,24),t.vertexAttribPointer(this.shader.aTextureCoord,2,t.FLOAT,!1,i,28),t.vertexAttribPointer(this.shader.colorAttribute,1,t.FLOAT,!1,i,36),this.currentBlendMode!==s.blendModes.NORMAL&&this.setBlendMode(s.blendModes.NORMAL)},s.WebGLFastSpriteBatch.prototype.setBlendMode=function(t){this.flush(),this.currentBlendMode=t;var e=s.blendModesWebGL[this.currentBlendMode];this.gl.blendFunc(e[0],e[1])},s.WebGLFilterManager=function(t,e){this.transparent=e,this.filterStack=[],this.offsetX=0,this.offsetY=0,this.setContext(t)},s.WebGLFilterManager.prototype.setContext=function(t){this.gl=t,this.texturePool=[],this.initShaderBuffers()},s.WebGLFilterManager.prototype.begin=function(t,e){this.renderSession=t,this.defaultShader=t.shaderManager.defaultShader;var i=this.renderSession.projection;this.width=2*i.x,this.height=2*-i.y,this.buffer=e},s.WebGLFilterManager.prototype.pushFilter=function(t){var e=this.gl,i=this.renderSession.projection,n=this.renderSession.offset;t._filterArea=t.target.filterArea||t.target.getBounds(),this.filterStack.push(t);var r=t.filterPasses[0];this.offsetX+=t._filterArea.x,this.offsetY+=t._filterArea.y;var o=this.texturePool.pop();o?o.resize(this.width,this.height):o=new s.FilterTexture(this.gl,this.width,this.height),e.bindTexture(e.TEXTURE_2D,o.texture);var a=t._filterArea,h=r.padding;a.x-=h,a.y-=h,a.width+=2*h,a.height+=2*h,a.x<0&&(a.x=0),a.width>this.width&&(a.width=this.width),a.y<0&&(a.y=0),a.height>this.height&&(a.height=this.height),e.bindFramebuffer(e.FRAMEBUFFER,o.frameBuffer),e.viewport(0,0,a.width,a.height),i.x=a.width/2,i.y=-a.height/2,n.x=-a.x,n.y=-a.y,e.uniform2f(this.defaultShader.projectionVector,a.width/2,-a.height/2),e.uniform2f(this.defaultShader.offsetVector,-a.x,-a.y),e.colorMask(!0,!0,!0,!0),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),t._glFilterTexture=o},s.WebGLFilterManager.prototype.popFilter=function(){var t=this.gl,e=this.filterStack.pop(),i=e._filterArea,n=e._glFilterTexture,r=this.renderSession.projection,o=this.renderSession.offset;if(e.filterPasses.length>1){t.viewport(0,0,i.width,i.height),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=i.height,this.vertexArray[2]=i.width,this.vertexArray[3]=i.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=i.width,this.vertexArray[7]=0,t.bufferSubData(t.ARRAY_BUFFER,0,this.vertexArray),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=i.width/this.width,this.uvArray[5]=i.height/this.height,this.uvArray[6]=i.width/this.width,this.uvArray[7]=i.height/this.height,t.bufferSubData(t.ARRAY_BUFFER,0,this.uvArray);var a=n,h=this.texturePool.pop();h||(h=new s.FilterTexture(this.gl,this.width,this.height)),h.resize(this.width,this.height),t.bindFramebuffer(t.FRAMEBUFFER,h.frameBuffer),t.clear(t.COLOR_BUFFER_BIT),t.disable(t.BLEND);for(var l=0;l<e.filterPasses.length-1;l++){var u=e.filterPasses[l];t.bindFramebuffer(t.FRAMEBUFFER,h.frameBuffer),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,a.texture),this.applyFilterPass(u,i,i.width,i.height);var c=a;a=h,h=c}t.enable(t.BLEND),n=a,this.texturePool.push(h)}var d=e.filterPasses[e.filterPasses.length-1];this.offsetX-=i.x,this.offsetY-=i.y;var p=this.width,f=this.height,g=0,m=0,y=this.buffer;if(0===this.filterStack.length)t.colorMask(!0,!0,!0,!0);else{var v=this.filterStack[this.filterStack.length-1];i=v._filterArea,p=i.width,f=i.height,g=i.x,m=i.y,y=v._glFilterTexture.frameBuffer}r.x=p/2,r.y=-f/2,o.x=g,o.y=m,i=e._filterArea;var x=i.x-g,b=i.y-m;t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=x,this.vertexArray[1]=b+i.height,this.vertexArray[2]=x+i.width,this.vertexArray[3]=b+i.height,this.vertexArray[4]=x,this.vertexArray[5]=b,this.vertexArray[6]=x+i.width,this.vertexArray[7]=b,t.bufferSubData(t.ARRAY_BUFFER,0,this.vertexArray),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=i.width/this.width,this.uvArray[5]=i.height/this.height,this.uvArray[6]=i.width/this.width,this.uvArray[7]=i.height/this.height,t.bufferSubData(t.ARRAY_BUFFER,0,this.uvArray),t.viewport(0,0,p,f),t.bindFramebuffer(t.FRAMEBUFFER,y),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,n.texture),this.applyFilterPass(d,i,p,f),t.useProgram(this.defaultShader.program),t.uniform2f(this.defaultShader.projectionVector,p/2,-f/2),t.uniform2f(this.defaultShader.offsetVector,-g,-m),this.texturePool.push(n),e._glFilterTexture=null},s.WebGLFilterManager.prototype.applyFilterPass=function(t,e,i,n){var r=this.gl,o=t.shaders[r.id];o||(o=new s.PixiShader(r),o.fragmentSrc=t.fragmentSrc,o.uniforms=t.uniforms,o.init(),t.shaders[r.id]=o),r.useProgram(o.program),r.uniform2f(o.projectionVector,i/2,-n/2),r.uniform2f(o.offsetVector,0,0),t.uniforms.dimensions&&(t.uniforms.dimensions.value[0]=this.width,t.uniforms.dimensions.value[1]=this.height,t.uniforms.dimensions.value[2]=this.vertexArray[0],t.uniforms.dimensions.value[3]=this.vertexArray[5]),o.syncUniforms(),r.bindBuffer(r.ARRAY_BUFFER,this.vertexBuffer),r.vertexAttribPointer(o.aVertexPosition,2,r.FLOAT,!1,0,0),r.bindBuffer(r.ARRAY_BUFFER,this.uvBuffer),r.vertexAttribPointer(o.aTextureCoord,2,r.FLOAT,!1,0,0),r.bindBuffer(r.ARRAY_BUFFER,this.colorBuffer),r.vertexAttribPointer(o.colorAttribute,2,r.FLOAT,!1,0,0),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this.indexBuffer),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0),this.renderSession.drawCount++},s.WebGLFilterManager.prototype.initShaderBuffers=function(){var t=this.gl;this.vertexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.vertexArray=new Float32Array([0,0,1,0,0,1,1,1]),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.vertexArray,t.STATIC_DRAW),this.uvArray=new Float32Array([0,0,1,0,0,1,1,1]),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvArray,t.STATIC_DRAW),this.colorArray=new Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colorArray,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),t.STATIC_DRAW)},s.WebGLFilterManager.prototype.destroy=function(){var t=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var e=0;e<this.texturePool.length;e++)this.texturePool.destroy();this.texturePool=null,t.deleteBuffer(this.vertexBuffer),t.deleteBuffer(this.uvBuffer),t.deleteBuffer(this.colorBuffer),t.deleteBuffer(this.indexBuffer)},s.FilterTexture=function(t,e,i,n){this.gl=t,this.frameBuffer=t.createFramebuffer(),this.texture=t.createTexture(),n=n||s.scaleModes.DEFAULT,t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n===s.scaleModes.LINEAR?t.LINEAR:t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n===s.scaleModes.LINEAR?t.LINEAR:t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer),t.bindFramebuffer(t.FRAMEBUFFER,this.frameBuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture,0),this.renderBuffer=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,this.renderBuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,this.renderBuffer),this.resize(e,i)},s.FilterTexture.prototype.clear=function(){var t=this.gl;t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT)},s.FilterTexture.prototype.resize=function(t,e){if(this.width!==t||this.height!==e){this.width=t,this.height=e;var i=this.gl;i.bindTexture(i.TEXTURE_2D,this.texture),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,t,e,0,i.RGBA,i.UNSIGNED_BYTE,null),i.bindRenderbuffer(i.RENDERBUFFER,this.renderBuffer),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,t,e)}},s.FilterTexture.prototype.destroy=function(){var t=this.gl;t.deleteFramebuffer(this.frameBuffer),t.deleteTexture(this.texture),this.frameBuffer=null,this.texture=null},s.CanvasMaskManager=function(){},s.CanvasMaskManager.prototype.pushMask=function(t,e){e.save();var i=t.alpha,n=t.worldTransform;e.setTransform(n.a,n.c,n.b,n.d,n.tx,n.ty),s.CanvasGraphics.renderGraphicsMask(t,e),e.clip(),t.worldAlpha=i},s.CanvasMaskManager.prototype.popMask=function(t){t.restore()},s.CanvasTinter=function(){},s.CanvasTinter.getTintedTexture=function(t,e){var i=t.texture;e=s.CanvasTinter.roundColor(e);var n="#"+("00000"+(0|e).toString(16)).substr(-6);if(i.tintCache=i.tintCache||{},i.tintCache[n])return i.tintCache[n];var r=s.CanvasTinter.canvas||document.createElement("canvas");if(s.CanvasTinter.tintMethod(i,e,r),s.CanvasTinter.convertTintToImage){var o=new Image;o.src=r.toDataURL(),i.tintCache[n]=o}else i.tintCache[n]=r,s.CanvasTinter.canvas=null;return r},s.CanvasTinter.tintWithMultiply=function(t,e,i){var s=i.getContext("2d"),n=t.frame;i.width=n.width,i.height=n.height,s.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),s.fillRect(0,0,n.width,n.height),s.globalCompositeOperation="multiply",s.drawImage(t.baseTexture.source,n.x,n.y,n.width,n.height,0,0,n.width,n.height),s.globalCompositeOperation="destination-atop",s.drawImage(t.baseTexture.source,n.x,n.y,n.width,n.height,0,0,n.width,n.height)},s.CanvasTinter.tintWithOverlay=function(t,e,i){var s=i.getContext("2d"),n=t.frame;i.width=n.width,i.height=n.height,s.globalCompositeOperation="copy",s.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),s.fillRect(0,0,n.width,n.height),s.globalCompositeOperation="destination-atop",s.drawImage(t.baseTexture.source,n.x,n.y,n.width,n.height,0,0,n.width,n.height)},s.CanvasTinter.tintWithPerPixel=function(t,e,i){var n=i.getContext("2d"),r=t.frame;i.width=r.width,i.height=r.height,n.globalCompositeOperation="copy",n.drawImage(t.baseTexture.source,r.x,r.y,r.width,r.height,0,0,r.width,r.height);for(var o=s.hex2rgb(e),a=o[0],h=o[1],l=o[2],u=n.getImageData(0,0,r.width,r.height),c=u.data,d=0;d<c.length;d+=4)c[d+0]*=a,c[d+1]*=h,c[d+2]*=l;n.putImageData(u,0,0)},s.CanvasTinter.roundColor=function(t){var e=s.CanvasTinter.cacheStepsPerColorChannel,i=s.hex2rgb(t);return i[0]=Math.min(255,i[0]/e*e),i[1]=Math.min(255,i[1]/e*e),i[2]=Math.min(255,i[2]/e*e),s.rgb2hex(i)},s.CanvasTinter.cacheStepsPerColorChannel=8,s.CanvasTinter.convertTintToImage=!1,s.CanvasTinter.canUseMultiply=s.canUseNewCanvasBlendModes(),s.CanvasTinter.tintMethod=s.CanvasTinter.canUseMultiply?s.CanvasTinter.tintWithMultiply:s.CanvasTinter.tintWithPerPixel,s.CanvasRenderer=function(t,e,i,n){s.defaultRenderer=s.defaultRenderer||this,this.type=s.CANVAS_RENDERER,this.clearBeforeRender=!0,this.roundPixels=!1,this.transparent=!!n,s.blendModesCanvas||(s.blendModesCanvas=[],s.canUseNewCanvasBlendModes()?(s.blendModesCanvas[s.blendModes.NORMAL]="source-over",s.blendModesCanvas[s.blendModes.ADD]="lighter",s.blendModesCanvas[s.blendModes.MULTIPLY]="multiply",s.blendModesCanvas[s.blendModes.SCREEN]="screen",s.blendModesCanvas[s.blendModes.OVERLAY]="overlay",s.blendModesCanvas[s.blendModes.DARKEN]="darken",s.blendModesCanvas[s.blendModes.LIGHTEN]="lighten",s.blendModesCanvas[s.blendModes.COLOR_DODGE]="color-dodge",s.blendModesCanvas[s.blendModes.COLOR_BURN]="color-burn",s.blendModesCanvas[s.blendModes.HARD_LIGHT]="hard-light",s.blendModesCanvas[s.blendModes.SOFT_LIGHT]="soft-light",s.blendModesCanvas[s.blendModes.DIFFERENCE]="difference",s.blendModesCanvas[s.blendModes.EXCLUSION]="exclusion",s.blendModesCanvas[s.blendModes.HUE]="hue",s.blendModesCanvas[s.blendModes.SATURATION]="saturation",s.blendModesCanvas[s.blendModes.COLOR]="color",s.blendModesCanvas[s.blendModes.LUMINOSITY]="luminosity"):(s.blendModesCanvas[s.blendModes.NORMAL]="source-over",s.blendModesCanvas[s.blendModes.ADD]="lighter",s.blendModesCanvas[s.blendModes.MULTIPLY]="source-over",s.blendModesCanvas[s.blendModes.SCREEN]="source-over",s.blendModesCanvas[s.blendModes.OVERLAY]="source-over",s.blendModesCanvas[s.blendModes.DARKEN]="source-over",s.blendModesCanvas[s.blendModes.LIGHTEN]="source-over",s.blendModesCanvas[s.blendModes.COLOR_DODGE]="source-over",s.blendModesCanvas[s.blendModes.COLOR_BURN]="source-over",s.blendModesCanvas[s.blendModes.HARD_LIGHT]="source-over",s.blendModesCanvas[s.blendModes.SOFT_LIGHT]="source-over",s.blendModesCanvas[s.blendModes.DIFFERENCE]="source-over",s.blendModesCanvas[s.blendModes.EXCLUSION]="source-over",s.blendModesCanvas[s.blendModes.HUE]="source-over",s.blendModesCanvas[s.blendModes.SATURATION]="source-over",s.blendModesCanvas[s.blendModes.COLOR]="source-over",s.blendModesCanvas[s.blendModes.LUMINOSITY]="source-over")),this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.context=this.view.getContext("2d",{alpha:this.transparent}),this.refresh=!0,this.view.width=this.width,this.view.height=this.height,this.count=0,this.maskManager=new s.CanvasMaskManager,this.renderSession={context:this.context,maskManager:this.maskManager,scaleMode:null,smoothProperty:null},"imageSmoothingEnabled"in this.context?this.renderSession.smoothProperty="imageSmoothingEnabled":"webkitImageSmoothingEnabled"in this.context?this.renderSession.smoothProperty="webkitImageSmoothingEnabled":"mozImageSmoothingEnabled"in this.context?this.renderSession.smoothProperty="mozImageSmoothingEnabled":"oImageSmoothingEnabled"in this.context&&(this.renderSession.smoothProperty="oImageSmoothingEnabled")
  },s.CanvasRenderer.prototype.constructor=s.CanvasRenderer,s.CanvasRenderer.prototype.render=function(t){s.texturesToUpdate.length=0,s.texturesToDestroy.length=0,t.updateTransform(),this.context.setTransform(1,0,0,1,0,0),this.context.globalAlpha=1,!this.transparent&&this.clearBeforeRender?(this.context.fillStyle=t.backgroundColorString,this.context.fillRect(0,0,this.width,this.height)):this.transparent&&this.clearBeforeRender&&this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),s.Texture.frameUpdates.length>0&&(s.Texture.frameUpdates.length=0)},s.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},s.CanvasRenderer.prototype.renderDisplayObject=function(t,e){this.renderSession.context=e||this.context,t._renderCanvas(this.renderSession)},s.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies,s=i.length/2;this.count++,e.beginPath();for(var n=1;s-2>n;n++){var r=2*n,o=i[r],a=i[r+2],h=i[r+4],l=i[r+1],u=i[r+3],c=i[r+5];e.moveTo(o,l),e.lineTo(a,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},s.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,s=t.uvs,n=i.length/2;this.count++;for(var r=1;n-2>r;r++){var o=2*r,a=i[o],h=i[o+2],l=i[o+4],u=i[o+1],c=i[o+3],d=i[o+5],p=s[o]*t.texture.width,f=s[o+2]*t.texture.width,g=s[o+4]*t.texture.width,m=s[o+1]*t.texture.height,y=s[o+3]*t.texture.height,v=s[o+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(a,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var x=p*y+m*g+f*v-y*g-m*f-p*v,b=a*y+m*l+h*v-y*l-m*h-a*v,w=p*h+a*g+f*l-h*g-a*f-p*l,T=p*y*l+m*h*g+a*f*v-a*y*g-m*f*l-p*h*v,S=u*y+m*d+c*v-y*d-m*c-u*v,A=p*c+u*g+f*d-c*g-u*f-p*d,_=p*y*d+m*c*g+u*f*v-u*y*g-m*f*d-p*c*v;e.transform(b/x,S/x,w/x,A/x,T/x,_/x),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},s.CanvasBuffer=function(t,e){this.width=t,this.height=e,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.canvas.width=t,this.canvas.height=e},s.CanvasBuffer.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},s.CanvasBuffer.prototype.resize=function(t,e){this.width=this.canvas.width=t,this.height=this.canvas.height=e},s.CanvasGraphics=function(){},s.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,n="",r=0;r<t.graphicsData.length;r++){var o=t.graphicsData[r],a=o.points;if(e.strokeStyle=n="#"+("00000"+(0|o.lineColor).toString(16)).substr(-6),e.lineWidth=o.lineWidth,o.type===s.Graphics.POLY){e.beginPath(),e.moveTo(a[0],a[1]);for(var h=1;h<a.length/2;h++)e.lineTo(a[2*h],a[2*h+1]);a[0]===a[a.length-2]&&a[1]===a[a.length-1]&&e.closePath(),o.fill&&(e.globalAlpha=o.fillAlpha*i,e.fillStyle=n="#"+("00000"+(0|o.fillColor).toString(16)).substr(-6),e.fill()),o.lineWidth&&(e.globalAlpha=o.lineAlpha*i,e.stroke())}else if(o.type===s.Graphics.RECT)(o.fillColor||0===o.fillColor)&&(e.globalAlpha=o.fillAlpha*i,e.fillStyle=n="#"+("00000"+(0|o.fillColor).toString(16)).substr(-6),e.fillRect(a[0],a[1],a[2],a[3])),o.lineWidth&&(e.globalAlpha=o.lineAlpha*i,e.strokeRect(a[0],a[1],a[2],a[3]));else if(o.type===s.Graphics.CIRC)e.beginPath(),e.arc(a[0],a[1],a[2],0,2*Math.PI),e.closePath(),o.fill&&(e.globalAlpha=o.fillAlpha*i,e.fillStyle=n="#"+("00000"+(0|o.fillColor).toString(16)).substr(-6),e.fill()),o.lineWidth&&(e.globalAlpha=o.lineAlpha*i,e.stroke());else if(o.type===s.Graphics.ELIP){var l=o.points,u=2*l[2],c=2*l[3],d=l[0]-u/2,p=l[1]-c/2;e.beginPath();var f=.5522848,g=u/2*f,m=c/2*f,y=d+u,v=p+c,x=d+u/2,b=p+c/2;e.moveTo(d,b),e.bezierCurveTo(d,b-m,x-g,p,x,p),e.bezierCurveTo(x+g,p,y,b-m,y,b),e.bezierCurveTo(y,b+m,x+g,v,x,v),e.bezierCurveTo(x-g,v,d,b+m,d,b),e.closePath(),o.fill&&(e.globalAlpha=o.fillAlpha*i,e.fillStyle=n="#"+("00000"+(0|o.fillColor).toString(16)).substr(-6),e.fill()),o.lineWidth&&(e.globalAlpha=o.lineAlpha*i,e.stroke())}}},s.CanvasGraphics.renderGraphicsMask=function(t,e){var i=t.graphicsData.length;if(0!==i){i>1&&(i=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var n=0;1>n;n++){var r=t.graphicsData[n],o=r.points;if(r.type===s.Graphics.POLY){e.beginPath(),e.moveTo(o[0],o[1]);for(var a=1;a<o.length/2;a++)e.lineTo(o[2*a],o[2*a+1]);o[0]===o[o.length-2]&&o[1]===o[o.length-1]&&e.closePath()}else if(r.type===s.Graphics.RECT)e.beginPath(),e.rect(o[0],o[1],o[2],o[3]),e.closePath();else if(r.type===s.Graphics.CIRC)e.beginPath(),e.arc(o[0],o[1],o[2],0,2*Math.PI),e.closePath();else if(r.type===s.Graphics.ELIP){var h=r.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,m=c+l,y=d+u,v=c+l/2,x=d+u/2;e.moveTo(c,x),e.bezierCurveTo(c,x-g,v-f,d,v,d),e.bezierCurveTo(v+f,d,m,x-g,m,x),e.bezierCurveTo(m,x+g,v+f,y,v,y),e.bezierCurveTo(v-f,y,c,x+g,c,x),e.closePath()}}}},s.Graphics=function(){s.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor="black",this.graphicsData=[],this.tint=16777215,this.blendMode=s.blendModes.NORMAL,this.currentPath={points:[]},this._webGL=[],this.isMask=!1,this.bounds=null,this.boundsPadding=10},s.Graphics.prototype=Object.create(s.DisplayObjectContainer.prototype),s.Graphics.prototype.constructor=s.Graphics,Object.defineProperty(s.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(t){this._cacheAsBitmap=t,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),s.Graphics.prototype.lineStyle=function(t,e,i){return this.currentPath.points.length||this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=arguments.length<3?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:s.Graphics.POLY},this.graphicsData.push(this.currentPath),this},s.Graphics.prototype.moveTo=function(t,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:s.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath),this},s.Graphics.prototype.lineTo=function(t,e){return this.currentPath.points.push(t,e),this.dirty=!0,this},s.Graphics.prototype.beginFill=function(t,e){return this.filling=!0,this.fillColor=t||0,this.fillAlpha=arguments.length<2?1:e,this},s.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},s.Graphics.prototype.drawRect=function(t,e,i,n){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,n],type:s.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0,this},s.Graphics.prototype.drawCircle=function(t,e,i){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:s.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},s.Graphics.prototype.drawEllipse=function(t,e,i,n){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,n],type:s.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0,this},s.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this.bounds=null,this},s.Graphics.prototype.generateTexture=function(){var t=this.getBounds(),e=new s.CanvasBuffer(t.width,t.height),i=s.Texture.fromCanvas(e.canvas);return e.context.translate(-t.x,-t.y),s.CanvasGraphics.renderGraphics(this,e.context),i},s.Graphics.prototype._renderWebGL=function(t){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return this.dirty&&(this._generateCachedSprite(),s.updateWebGLTexture(this._cachedSprite.texture.baseTexture,t.gl),this.dirty=!1),this._cachedSprite.alpha=this.alpha,void s.Sprite.prototype._renderWebGL.call(this._cachedSprite,t);if(t.spriteBatch.stop(),this._mask&&t.maskManager.pushMask(this.mask,t),this._filters&&t.filterManager.pushFilter(this._filterBlock),this.blendMode!==t.spriteBatch.currentBlendMode){t.spriteBatch.currentBlendMode=this.blendMode;var e=s.blendModesWebGL[t.spriteBatch.currentBlendMode];t.spriteBatch.gl.blendFunc(e[0],e[1])}if(s.WebGLGraphics.renderGraphics(this,t),this.children.length){t.spriteBatch.start();for(var i=0,n=this.children.length;n>i;i++)this.children[i]._renderWebGL(t);t.spriteBatch.stop()}this._filters&&t.filterManager.popFilter(),this._mask&&t.maskManager.popMask(t),t.drawCount++,t.spriteBatch.start()}},s.Graphics.prototype._renderCanvas=function(t){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var e=t.context,i=this.worldTransform;this.blendMode!==t.currentBlendMode&&(t.currentBlendMode=this.blendMode,e.globalCompositeOperation=s.blendModesCanvas[t.currentBlendMode]),e.setTransform(i.a,i.c,i.b,i.d,i.tx,i.ty),s.CanvasGraphics.renderGraphics(this,e);for(var n=0,r=this.children.length;r>n;n++)this.children[n]._renderCanvas(t)}},s.Graphics.prototype.getBounds=function(t){this.bounds||this.updateBounds();var e=this.bounds.x,i=this.bounds.width+this.bounds.x,s=this.bounds.y,n=this.bounds.height+this.bounds.y,r=t||this.worldTransform,o=r.a,a=r.c,h=r.b,l=r.d,u=r.tx,c=r.ty,d=o*i+h*n+u,p=l*n+a*i+c,f=o*e+h*n+u,g=l*n+a*e+c,m=o*e+h*s+u,y=l*s+a*e+c,v=o*i+h*s+u,x=l*s+a*i+c,b=d,w=p,T=d,S=p;T=T>f?f:T,T=T>m?m:T,T=T>v?v:T,S=S>g?g:S,S=S>y?y:S,S=S>x?x:S,b=f>b?f:b,b=m>b?m:b,b=v>b?v:b,w=g>w?g:w,w=y>w?y:w,w=x>w?x:w;var A=this._bounds;return A.x=T,A.width=b-T,A.y=S,A.height=w-S,A},s.Graphics.prototype.updateBounds=function(){for(var t,e,i,n,r,o=1/0,a=-1/0,h=1/0,l=-1/0,u=0;u<this.graphicsData.length;u++){var c=this.graphicsData[u],d=c.type,p=c.lineWidth;if(t=c.points,d===s.Graphics.RECT)e=t[0]-p/2,i=t[1]-p/2,n=t[2]+p,r=t[3]+p,o=o>e?e:o,a=e+n>a?e+n:a,h=h>i?e:h,l=i+r>l?i+r:l;else if(d===s.Graphics.CIRC||d===s.Graphics.ELIP)e=t[0],i=t[1],n=t[2]+p/2,r=t[3]+p/2,o=o>e-n?e-n:o,a=e+n>a?e+n:a,h=h>i-r?i-r:h,l=i+r>l?i+r:l;else for(var f=0;f<t.length;f+=2)e=t[f],i=t[f+1],o=o>e-p?e-p:o,a=e+p>a?e+p:a,h=h>i-p?i-p:h,l=i+p>l?i+p:l}var g=this.boundsPadding;this.bounds=new s.Rectangle(o-g,h-g,a-o+2*g,l-h+2*g)},s.Graphics.prototype._generateCachedSprite=function(){var t=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(t.width,t.height);else{var e=new s.CanvasBuffer(t.width,t.height),i=s.Texture.fromCanvas(e.canvas);this._cachedSprite=new s.Sprite(i),this._cachedSprite.buffer=e,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(t.x/t.width),this._cachedSprite.anchor.y=-(t.y/t.height),this._cachedSprite.buffer.context.translate(-t.x,-t.y),s.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},s.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},s.Graphics.POLY=0,s.Graphics.RECT=1,s.Graphics.CIRC=2,s.Graphics.ELIP=3,s.TilingSprite=function(t,e,i){s.Sprite.call(this,t),this.width=e||100,this.height=i||100,this.tileScale=new s.Point(1,1),this.tileScaleOffset=new s.Point(1,1),this.tilePosition=new s.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=s.blendModes.NORMAL},s.TilingSprite.prototype=Object.create(s.Sprite.prototype),s.TilingSprite.prototype.constructor=s.TilingSprite,Object.defineProperty(s.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(t){this._width=t}}),Object.defineProperty(s.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(t){this._height=t}}),s.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},s.TilingSprite.prototype.setTexture=function(t){this.texture!==t&&(this.texture=t,this.refreshTexture=!0,this.cachedTint=16777215)},s.TilingSprite.prototype._renderWebGL=function(t){if(this.visible!==!1&&0!==this.alpha){var e,i;for(this.mask&&(t.spriteBatch.stop(),t.maskManager.pushMask(this.mask,t),t.spriteBatch.start()),this.filters&&(t.spriteBatch.flush(),t.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(s.updateWebGLTexture(this.tilingTexture.baseTexture,t.gl),this.tilingTexture.needsUpdate=!1)):t.spriteBatch.renderTilingSprite(this),e=0,i=this.children.length;i>e;e++)this.children[e]._renderWebGL(t);t.spriteBatch.stop(),this.filters&&t.filterManager.popFilter(),this.mask&&t.maskManager.popMask(t),t.spriteBatch.start()}},s.TilingSprite.prototype._renderCanvas=function(t){if(this.visible!==!1&&0!==this.alpha){var e=t.context;this._mask&&t.maskManager.pushMask(this._mask,e),e.globalAlpha=this.worldAlpha;var i=this.worldTransform;if(e.setTransform(i.a,i.c,i.b,i.d,i.tx,i.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=e.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==t.currentBlendMode&&(t.currentBlendMode=this.blendMode,e.globalCompositeOperation=s.blendModesCanvas[t.currentBlendMode]),e.beginPath();var n=this.tilePosition,r=this.tileScale;n.x%=this.tilingTexture.baseTexture.width,n.y%=this.tilingTexture.baseTexture.height,e.scale(r.x,r.y),e.translate(n.x,n.y),e.fillStyle=this.__tilePattern,e.fillRect(-n.x+this.anchor.x*-this._width,-n.y+this.anchor.y*-this._height,this._width/r.x,this._height/r.y),e.scale(1/r.x,1/r.y),e.translate(-n.x,-n.y),e.closePath(),this._mask&&t.maskManager.popMask(t.context)}},s.TilingSprite.prototype.getBounds=function(){var t=this._width,e=this._height,i=t*(1-this.anchor.x),s=t*-this.anchor.x,n=e*(1-this.anchor.y),r=e*-this.anchor.y,o=this.worldTransform,a=o.a,h=o.c,l=o.b,u=o.d,c=o.tx,d=o.ty,p=a*s+l*r+c,f=u*r+h*s+d,g=a*i+l*r+c,m=u*r+h*i+d,y=a*i+l*n+c,v=u*n+h*i+d,x=a*s+l*n+c,b=u*n+h*s+d,w=-1/0,T=-1/0,S=1/0,A=1/0;S=S>p?p:S,S=S>g?g:S,S=S>y?y:S,S=S>x?x:S,A=A>f?f:A,A=A>m?m:A,A=A>v?v:A,A=A>b?b:A,w=p>w?p:w,w=g>w?g:w,w=y>w?y:w,w=x>w?x:w,T=f>T?f:T,T=m>T?m:T,T=v>T?v:T,T=b>T?b:T;var _=this._bounds;return _.x=S,_.width=w-S,_.y=A,_.height=T-A,this._currentBounds=_,_},s.TilingSprite.prototype.generateTilingTexture=function(t){var e=this.texture;if(e.baseTexture.hasLoaded){var i,n,r=e.baseTexture,o=e.frame,a=o.width!==r.width||o.height!==r.height,h=!1;if(t?(i=s.getNextPowerOfTwo(o.width),n=s.getNextPowerOfTwo(o.height),o.width!==i&&o.height!==n&&(h=!0)):a&&(i=o.width,n=o.height,h=!0),h){var l;this.tilingTexture&&this.tilingTexture.isTiling?(l=this.tilingTexture.canvasBuffer,l.resize(i,n),this.tilingTexture.baseTexture.width=i,this.tilingTexture.baseTexture.height=n,this.tilingTexture.needsUpdate=!0):(l=new s.CanvasBuffer(i,n),this.tilingTexture=s.Texture.fromCanvas(l.canvas),this.tilingTexture.canvasBuffer=l,this.tilingTexture.isTiling=!0),l.context.drawImage(e.baseTexture.source,o.x,o.y,o.width,o.height,0,0,i,n),this.tileScaleOffset.x=o.width/i,this.tileScaleOffset.y=o.height/n}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},s.BaseTextureCache={},s.texturesToUpdate=[],s.texturesToDestroy=[],s.BaseTextureCacheIdGenerator=0,s.BaseTexture=function(t,e){if(s.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=e||s.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=t,this.id=s.BaseTextureCacheIdGenerator++,this._glTextures=[],t){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,s.texturesToUpdate.push(this);else{var i=this;this.source.onload=function(){i.hasLoaded=!0,i.width=i.source.width,i.height=i.source.height,s.texturesToUpdate.push(i),i.dispatchEvent({type:"loaded",content:i})}}this.imageUrl=null,this._powerOf2=!1}},s.BaseTexture.prototype.constructor=s.BaseTexture,s.BaseTexture.prototype.destroy=function(){this.imageUrl&&(delete s.BaseTextureCache[this.imageUrl],this.imageUrl=null,this.source.src=null),this.source=null,s.texturesToDestroy.push(this)},s.BaseTexture.prototype.updateSourceImage=function(t){this.hasLoaded=!1,this.source.src=null,this.source.src=t},s.BaseTexture.fromImage=function(t,e,i){var n=s.BaseTextureCache[t];if(void 0===e&&-1===t.indexOf("data:")&&(e=!0),!n){var r=new Image;e&&(r.crossOrigin=""),r.src=t,n=new s.BaseTexture(r,i),n.imageUrl=t,s.BaseTextureCache[t]=n}return n},s.BaseTexture.fromCanvas=function(t,e){t._pixiId||(t._pixiId="canvas_"+s.TextureCacheIdGenerator++);var i=s.BaseTextureCache[t._pixiId];return i||(i=new s.BaseTexture(t,e),s.BaseTextureCache[t._pixiId]=i),i},s.TextureCache={},s.FrameCache={},s.TextureCacheIdGenerator=0,s.Texture=function(t,e){if(s.EventTarget.call(this),e||(this.noFrame=!0,e=new s.Rectangle(0,0,1,1)),t instanceof s.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.trim=null,this.scope=this,this._uvs=null,t.hasLoaded)this.noFrame&&(e=new s.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},s.Texture.prototype.constructor=s.Texture,s.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new s.Rectangle(0,0,t.width,t.height)),this.setFrame(this.frame),this.scope.dispatchEvent({type:"update",content:this})},s.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},s.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,s.Texture.frameUpdates.push(this)},s.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new s.TextureUvs);var t=this.frame,e=this.baseTexture.width,i=this.baseTexture.height;this._uvs.x0=t.x/e,this._uvs.y0=t.y/i,this._uvs.x1=(t.x+t.width)/e,this._uvs.y1=t.y/i,this._uvs.x2=(t.x+t.width)/e,this._uvs.y2=(t.y+t.height)/i,this._uvs.x3=t.x/e,this._uvs.y3=(t.y+t.height)/i},s.Texture.fromImage=function(t,e,i){var n=s.TextureCache[t];return n||(n=new s.Texture(s.BaseTexture.fromImage(t,e,i)),s.TextureCache[t]=n),n},s.Texture.fromFrame=function(t){var e=s.TextureCache[t];if(!e)throw new Error('The frameId "'+t+'" does not exist in the texture cache ');return e},s.Texture.fromCanvas=function(t,e){var i=s.BaseTexture.fromCanvas(t,e);return new s.Texture(i)},s.Texture.addTextureToCache=function(t,e){s.TextureCache[e]=t},s.Texture.removeTextureFromCache=function(t){var e=s.TextureCache[t];return delete s.TextureCache[t],delete s.BaseTextureCache[t],e},s.Texture.frameUpdates=[],s.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y4=0},s.RenderTexture=function(t,e,i,n){if(s.EventTarget.call(this),this.width=t||100,this.height=e||100,this.frame=new s.Rectangle(0,0,this.width,this.height),this.baseTexture=new s.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=n||s.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=i||s.defaultRenderer,this.renderer.type===s.WEBGL_RENDERER){var r=this.renderer.gl;this.textureBuffer=new s.FilterTexture(r,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[r.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new s.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new s.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;s.Texture.frameUpdates.push(this)},s.RenderTexture.prototype=Object.create(s.Texture.prototype),s.RenderTexture.prototype.constructor=s.RenderTexture,s.RenderTexture.prototype.resize=function(t,e){if(this.width=t,this.height=e,this.frame.width=this.width,this.frame.height=this.height,this.renderer.type===s.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var i=this.renderer.gl;i.bindTexture(i.TEXTURE_2D,this.baseTexture._glTextures[i.id]),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);s.Texture.frameUpdates.push(this)},s.RenderTexture.prototype.renderWebGL=function(t,e,i){var n=this.renderer.gl;n.colorMask(!0,!0,!0,!0),n.viewport(0,0,this.width,this.height),n.bindFramebuffer(n.FRAMEBUFFER,this.textureBuffer.frameBuffer),i&&this.textureBuffer.clear();var r=t.children,o=t.worldTransform;t.worldTransform=s.RenderTexture.tempMatrix,t.worldTransform.d=-1,t.worldTransform.ty=-2*this.projection.y,e&&(t.worldTransform.tx=e.x,t.worldTransform.ty-=e.y);for(var a=0,h=r.length;h>a;a++)r[a].updateTransform();s.WebGLRenderer.updateTextures(),this.renderer.renderDisplayObject(t,this.projection,this.textureBuffer.frameBuffer),t.worldTransform=o},s.RenderTexture.prototype.renderCanvas=function(t,e,i){var n=t.children,r=t.worldTransform;t.worldTransform=s.RenderTexture.tempMatrix,e&&(t.worldTransform.tx=e.x,t.worldTransform.ty=e.y);for(var o=0,a=n.length;a>o;o++)n[o].updateTransform();i&&this.textureBuffer.clear();var h=this.textureBuffer.context;this.renderer.renderDisplayObject(t,h),h.setTransform(1,0,0,1,0,0),t.worldTransform=r},s.RenderTexture.tempMatrix=new s.Matrix,"undefined"!=typeof i?("undefined"!=typeof e&&e.exports&&(i=e.exports=s),i.PIXI=s):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return t.PIXI=s}()):t.PIXI=s}).call(this)},{}],13:[function(t,e){!function(t){function i(){try{return h in t&&t[h]}catch(e){return!1}}function s(t){return function(){var e=Array.prototype.slice.call(arguments,0);e.unshift(r),u.appendChild(r),r.addBehavior("#default#userData"),r.load(h);var i=t.apply(o,e);return u.removeChild(r),i}}function n(t){return t.replace(/^d/,"___$&").replace(p,"___")}var r,o={},a=t.document,h="localStorage",l="script";if(o.disabled=!1,o.set=function(){},o.get=function(){},o.remove=function(){},o.clear=function(){},o.transact=function(t,e,i){var s=o.get(t);null==i&&(i=e,e=null),"undefined"==typeof s&&(s=e||{}),i(s),o.set(t,s)},o.getAll=function(){},o.forEach=function(){},o.serialize=function(t){return JSON.stringify(t)},o.deserialize=function(t){if("string"!=typeof t)return void 0;try{return JSON.parse(t)}catch(e){return t||void 0}},i())r=t[h],o.set=function(t,e){return void 0===e?o.remove(t):(r.setItem(t,o.serialize(e)),e)},o.get=function(t){return o.deserialize(r.getItem(t))},o.remove=function(t){r.removeItem(t)},o.clear=function(){r.clear()},o.getAll=function(){var t={};return o.forEach(function(e,i){t[e]=i}),t},o.forEach=function(t){for(var e=0;e<r.length;e++){var i=r.key(e);t(i,o.get(i))}};else if(a.documentElement.addBehavior){var u,c;try{c=new ActiveXObject("htmlfile"),c.open(),c.write("<"+l+">document.w=window</"+l+'><iframe src="/favicon.ico"></iframe>'),c.close(),u=c.w.frames[0].document,r=u.createElement("div")}catch(d){r=a.createElement("div"),u=a.body}var p=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g");o.set=s(function(t,e,i){return e=n(e),void 0===i?o.remove(e):(t.setAttribute(e,o.serialize(i)),t.save(h),i)}),o.get=s(function(t,e){return e=n(e),o.deserialize(t.getAttribute(e))}),o.remove=s(function(t,e){e=n(e),t.removeAttribute(e),t.save(h)}),o.clear=s(function(t){var e=t.XMLDocument.documentElement.attributes;t.load(h);for(var i,s=0;i=e[s];s++)t.removeAttribute(i.name);t.save(h)}),o.getAll=function(){var t={};return o.forEach(function(e,i){t[e]=i}),t},o.forEach=s(function(t,e){for(var i,s=t.XMLDocument.documentElement.attributes,n=0;i=s[n];++n)e(i.name,o.deserialize(t.getAttribute(i.name)))})}try{var f="__storejs__";o.set(f,f),o.get(f)!=f&&(o.disabled=!0),o.remove(f)}catch(d){o.disabled=!0}o.enabled=!o.disabled,"undefined"!=typeof e&&e.exports&&this.module!==e?e.exports=o:"function"==typeof define&&define.amd?define(o):t.store=o}(Function("return this")())},{}],14:[function(t,e){!function(t,i){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?i(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return i(t)}:i(t)}("undefined"!=typeof window?window:this,function(t,e){function i(t){var e=t.length,i=$.type(t);return"function"===i||$.isWindow(t)?!1:1===t.nodeType&&e?!0:"array"===i||0===e||"number"==typeof e&&e>0&&e-1 in t}function s(t,e,i){if($.isFunction(e))return $.grep(t,function(t,s){return!!e.call(t,s,t)!==i});if(e.nodeType)return $.grep(t,function(t){return t===e!==i});if("string"==typeof e){if(ae.test(e))return $.filter(e,t,i);e=$.filter(e,t)}return $.grep(t,function(t){return V.call(e,t)>=0!==i})}function n(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function r(t){var e=fe[t]={};return $.each(t.match(pe)||[],function(t,i){e[i]=!0}),e}function o(){J.removeEventListener("DOMContentLoaded",o,!1),t.removeEventListener("load",o,!1),$.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=$.expando+Math.random()}function h(t,e,i){var s;if(void 0===i&&1===t.nodeType)if(s="data-"+e.replace(be,"-$1").toLowerCase(),i=t.getAttribute(s),"string"==typeof i){try{i="true"===i?!0:"false"===i?!1:"null"===i?null:+i+""===i?+i:xe.test(i)?$.parseJSON(i):i}catch(n){}ve.set(t,e,i)}else i=void 0;return i}function l(){return!0}function u(){return!1}function c(){try{return J.activeElement}catch(t){}}function d(t,e){return $.nodeName(t,"table")&&$.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function p(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function f(t){var e=Be.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function g(t,e){for(var i=0,s=t.length;s>i;i++)ye.set(t[i],"globalEval",!e||ye.get(e[i],"globalEval"))}function m(t,e){var i,s,n,r,o,a,h,l;if(1===e.nodeType){if(ye.hasData(t)&&(r=ye.access(t),o=ye.set(e,r),l=r.events)){delete o.handle,o.events={};for(n in l)for(i=0,s=l[n].length;s>i;i++)$.event.add(e,n,l[n][i])}ve.hasData(t)&&(a=ve.access(t),h=$.extend({},a),ve.set(e,h))}}function y(t,e){var i=t.getElementsByTagName?t.getElementsByTagName(e||"*"):t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&$.nodeName(t,e)?$.merge([t],i):i}function v(t,e){var i=e.nodeName.toLowerCase();"input"===i&&Ae.test(t.type)?e.checked=t.checked:("input"===i||"textarea"===i)&&(e.defaultValue=t.defaultValue)}function x(e,i){var s,n=$(i.createElement(e)).appendTo(i.body),r=t.getDefaultComputedStyle&&(s=t.getDefaultComputedStyle(n[0]))?s.display:$.css(n[0],"display");return n.detach(),r}function b(t){var e=J,i=Ge[t];return i||(i=x(t,e),"none"!==i&&i||(Ue=(Ue||$("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Ue[0].contentDocument,e.write(),e.close(),i=x(t,e),Ue.detach()),Ge[t]=i),i}function w(t,e,i){var s,n,r,o,a=t.style;return i=i||He(t),i&&(o=i.getPropertyValue(e)||i[e]),i&&(""!==o||$.contains(t.ownerDocument,t)||(o=$.style(t,e)),We.test(o)&&je.test(e)&&(s=a.width,n=a.minWidth,r=a.maxWidth,a.minWidth=a.maxWidth=a.width=o,o=i.width,a.width=s,a.minWidth=n,a.maxWidth=r)),void 0!==o?o+"":o}function T(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function S(t,e){if(e in t)return e;for(var i=e[0].toUpperCase()+e.slice(1),s=e,n=Ke.length;n--;)if(e=Ke[n]+i,e in t)return e;return s}function A(t,e,i){var s=ze.exec(e);return s?Math.max(0,s[1]-(i||0))+(s[2]||"px"):e}function _(t,e,i,s,n){for(var r=i===(s?"border":"content")?4:"width"===e?1:0,o=0;4>r;r+=2)"margin"===i&&(o+=$.css(t,i+Te[r],!0,n)),s?("content"===i&&(o-=$.css(t,"padding"+Te[r],!0,n)),"margin"!==i&&(o-=$.css(t,"border"+Te[r]+"Width",!0,n))):(o+=$.css(t,"padding"+Te[r],!0,n),"padding"!==i&&(o+=$.css(t,"border"+Te[r]+"Width",!0,n)));return o}function C(t,e,i){var s=!0,n="width"===e?t.offsetWidth:t.offsetHeight,r=He(t),o="border-box"===$.css(t,"boxSizing",!1,r);if(0>=n||null==n){if(n=w(t,e,r),(0>n||null==n)&&(n=t.style[e]),We.test(n))return n;s=o&&(q.boxSizingReliable()||n===t.style[e]),n=parseFloat(n)||0}return n+_(t,e,i||(o?"border":"content"),s,r)+"px"}function P(t,e){for(var i,s,n,r=[],o=0,a=t.length;a>o;o++)s=t[o],s.style&&(r[o]=ye.get(s,"olddisplay"),i=s.style.display,e?(r[o]||"none"!==i||(s.style.display=""),""===s.style.display&&Se(s)&&(r[o]=ye.access(s,"olddisplay",b(s.nodeName)))):(n=Se(s),"none"===i&&n||ye.set(s,"olddisplay",n?i:$.css(s,"display"))));for(o=0;a>o;o++)s=t[o],s.style&&(e&&"none"!==s.style.display&&""!==s.style.display||(s.style.display=e?r[o]||"":"none"));return t}function M(t,e,i,s,n){return new M.prototype.init(t,e,i,s,n)}function O(){return setTimeout(function(){qe=void 0}),qe=$.now()}function E(t,e){var i,s=0,n={height:t};for(e=e?1:0;4>s;s+=2-e)i=Te[s],n["margin"+i]=n["padding"+i]=t;return e&&(n.opacity=n.width=t),n}function k(t,e,i){for(var s,n=(ii[e]||[]).concat(ii["*"]),r=0,o=n.length;o>r;r++)if(s=n[r].call(i,e,t))return s}function D(t,e,i){var s,n,r,o,a,h,l,u,c=this,d={},p=t.style,f=t.nodeType&&Se(t),g=ye.get(t,"fxshow");i.queue||(a=$._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,h=a.empty.fire,a.empty.fire=function(){a.unqueued||h()}),a.unqueued++,c.always(function(){c.always(function(){a.unqueued--,$.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(i.overflow=[p.overflow,p.overflowX,p.overflowY],l=$.css(t,"display"),u="none"===l?ye.get(t,"olddisplay")||b(t.nodeName):l,"inline"===u&&"none"===$.css(t,"float")&&(p.display="inline-block")),i.overflow&&(p.overflow="hidden",c.always(function(){p.overflow=i.overflow[0],p.overflowX=i.overflow[1],p.overflowY=i.overflow[2]}));for(s in e)if(n=e[s],Qe.exec(n)){if(delete e[s],r=r||"toggle"===n,n===(f?"hide":"show")){if("show"!==n||!g||void 0===g[s])continue;f=!0}d[s]=g&&g[s]||$.style(t,s)}else l=void 0;if($.isEmptyObject(d))"inline"===("none"===l?b(t.nodeName):l)&&(p.display=l);else{g?"hidden"in g&&(f=g.hidden):g=ye.access(t,"fxshow",{}),r&&(g.hidden=!f),f?$(t).show():c.done(function(){$(t).hide()}),c.done(function(){var e;ye.remove(t,"fxshow");for(e in d)$.style(t,e,d[e])});for(s in d)o=k(f?g[s]:0,s,c),s in g||(g[s]=o.start,f&&(o.end=o.start,o.start="width"===s||"height"===s?1:0))}}function R(t,e){var i,s,n,r,o;for(i in t)if(s=$.camelCase(i),n=e[s],r=t[i],$.isArray(r)&&(n=r[1],r=t[i]=r[0]),i!==s&&(t[s]=r,delete t[i]),o=$.cssHooks[s],o&&"expand"in o){r=o.expand(r),delete t[s];for(i in r)i in t||(t[i]=r[i],e[i]=n)}else e[s]=n}function L(t,e,i){var s,n,r=0,o=ei.length,a=$.Deferred().always(function(){delete h.elem}),h=function(){if(n)return!1;for(var e=qe||O(),i=Math.max(0,l.startTime+l.duration-e),s=i/l.duration||0,r=1-s,o=0,h=l.tweens.length;h>o;o++)l.tweens[o].run(r);return a.notifyWith(t,[l,r,i]),1>r&&h?i:(a.resolveWith(t,[l]),!1)},l=a.promise({elem:t,props:$.extend({},e),opts:$.extend(!0,{specialEasing:{}},i),originalProperties:e,originalOptions:i,startTime:qe||O(),duration:i.duration,tweens:[],createTween:function(e,i){var s=$.Tween(t,l.opts,e,i,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(s),s},stop:function(e){var i=0,s=e?l.tweens.length:0;if(n)return this;
  for(n=!0;s>i;i++)l.tweens[i].run(1);return e?a.resolveWith(t,[l,e]):a.rejectWith(t,[l,e]),this}}),u=l.props;for(R(u,l.opts.specialEasing);o>r;r++)if(s=ei[r].call(l,t,u,l.opts))return s;return $.map(u,k,l),$.isFunction(l.opts.start)&&l.opts.start.call(t,l),$.fx.timer($.extend(h,{elem:t,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function I(t){return function(e,i){"string"!=typeof e&&(i=e,e="*");var s,n=0,r=e.toLowerCase().match(pe)||[];if($.isFunction(i))for(;s=r[n++];)"+"===s[0]?(s=s.slice(1)||"*",(t[s]=t[s]||[]).unshift(i)):(t[s]=t[s]||[]).push(i)}}function B(t,e,i,s){function n(a){var h;return r[a]=!0,$.each(t[a]||[],function(t,a){var l=a(e,i,s);return"string"!=typeof l||o||r[l]?o?!(h=l):void 0:(e.dataTypes.unshift(l),n(l),!1)}),h}var r={},o=t===wi;return n(e.dataTypes[0])||!r["*"]&&n("*")}function F(t,e){var i,s,n=$.ajaxSettings.flatOptions||{};for(i in e)void 0!==e[i]&&((n[i]?t:s||(s={}))[i]=e[i]);return s&&$.extend(!0,t,s),t}function N(t,e,i){for(var s,n,r,o,a=t.contents,h=t.dataTypes;"*"===h[0];)h.shift(),void 0===s&&(s=t.mimeType||e.getResponseHeader("Content-Type"));if(s)for(n in a)if(a[n]&&a[n].test(s)){h.unshift(n);break}if(h[0]in i)r=h[0];else{for(n in i){if(!h[0]||t.converters[n+" "+h[0]]){r=n;break}o||(o=n)}r=r||o}return r?(r!==h[0]&&h.unshift(r),i[r]):void 0}function U(t,e,i,s){var n,r,o,a,h,l={},u=t.dataTypes.slice();if(u[1])for(o in t.converters)l[o.toLowerCase()]=t.converters[o];for(r=u.shift();r;)if(t.responseFields[r]&&(i[t.responseFields[r]]=e),!h&&s&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),h=r,r=u.shift())if("*"===r)r=h;else if("*"!==h&&h!==r){if(o=l[h+" "+r]||l["* "+r],!o)for(n in l)if(a=n.split(" "),a[1]===r&&(o=l[h+" "+a[0]]||l["* "+a[0]])){o===!0?o=l[n]:l[n]!==!0&&(r=a[0],u.unshift(a[1]));break}if(o!==!0)if(o&&t["throws"])e=o(e);else try{e=o(e)}catch(c){return{state:"parsererror",error:o?c:"No conversion from "+h+" to "+r}}}return{state:"success",data:e}}function G(t,e,i,s){var n;if($.isArray(e))$.each(e,function(e,n){i||_i.test(t)?s(t,n):G(t+"["+("object"==typeof n?e:"")+"]",n,i,s)});else if(i||"object"!==$.type(e))s(t,e);else for(n in e)G(t+"["+n+"]",e[n],i,s)}function j(t){return $.isWindow(t)?t:9===t.nodeType&&t.defaultView}var W=[],H=W.slice,X=W.concat,z=W.push,V=W.indexOf,Y={},Z=Y.toString,K=Y.hasOwnProperty,q={},J=t.document,Q="2.1.1",$=function(t,e){return new $.fn.init(t,e)},te=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ee=/^-ms-/,ie=/-([\da-z])/gi,se=function(t,e){return e.toUpperCase()};$.fn=$.prototype={jquery:Q,constructor:$,selector:"",length:0,toArray:function(){return H.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:H.call(this)},pushStack:function(t){var e=$.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t,e){return $.each(this,t,e)},map:function(t){return this.pushStack($.map(this,function(e,i){return t.call(e,i,e)}))},slice:function(){return this.pushStack(H.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,i=+t+(0>t?e:0);return this.pushStack(i>=0&&e>i?[this[i]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:z,sort:W.sort,splice:W.splice},$.extend=$.fn.extend=function(){var t,e,i,s,n,r,o=arguments[0]||{},a=1,h=arguments.length,l=!1;for("boolean"==typeof o&&(l=o,o=arguments[a]||{},a++),"object"==typeof o||$.isFunction(o)||(o={}),a===h&&(o=this,a--);h>a;a++)if(null!=(t=arguments[a]))for(e in t)i=o[e],s=t[e],o!==s&&(l&&s&&($.isPlainObject(s)||(n=$.isArray(s)))?(n?(n=!1,r=i&&$.isArray(i)?i:[]):r=i&&$.isPlainObject(i)?i:{},o[e]=$.extend(l,r,s)):void 0!==s&&(o[e]=s));return o},$.extend({expando:"jQuery"+(Q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===$.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){return!$.isArray(t)&&t-parseFloat(t)>=0},isPlainObject:function(t){return"object"!==$.type(t)||t.nodeType||$.isWindow(t)?!1:t.constructor&&!K.call(t.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?Y[Z.call(t)]||"object":typeof t},globalEval:function(t){var e,i=eval;t=$.trim(t),t&&(1===t.indexOf("use strict")?(e=J.createElement("script"),e.text=t,J.head.appendChild(e).parentNode.removeChild(e)):i(t))},camelCase:function(t){return t.replace(ee,"ms-").replace(ie,se)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e,s){var n,r=0,o=t.length,a=i(t);if(s){if(a)for(;o>r&&(n=e.apply(t[r],s),n!==!1);r++);else for(r in t)if(n=e.apply(t[r],s),n===!1)break}else if(a)for(;o>r&&(n=e.call(t[r],r,t[r]),n!==!1);r++);else for(r in t)if(n=e.call(t[r],r,t[r]),n===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(te,"")},makeArray:function(t,e){var s=e||[];return null!=t&&(i(Object(t))?$.merge(s,"string"==typeof t?[t]:t):z.call(s,t)),s},inArray:function(t,e,i){return null==e?-1:V.call(e,t,i)},merge:function(t,e){for(var i=+e.length,s=0,n=t.length;i>s;s++)t[n++]=e[s];return t.length=n,t},grep:function(t,e,i){for(var s,n=[],r=0,o=t.length,a=!i;o>r;r++)s=!e(t[r],r),s!==a&&n.push(t[r]);return n},map:function(t,e,s){var n,r=0,o=t.length,a=i(t),h=[];if(a)for(;o>r;r++)n=e(t[r],r,s),null!=n&&h.push(n);else for(r in t)n=e(t[r],r,s),null!=n&&h.push(n);return X.apply([],h)},guid:1,proxy:function(t,e){var i,s,n;return"string"==typeof e&&(i=t[e],e=t,t=i),$.isFunction(t)?(s=H.call(arguments,2),n=function(){return t.apply(e||this,s.concat(H.call(arguments)))},n.guid=t.guid=t.guid||$.guid++,n):void 0},now:Date.now,support:q}),$.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){Y["[object "+e+"]"]=e.toLowerCase()});var ne=function(t){function e(t,e,i,s){var n,r,o,a,h,l,c,p,f,g;if((e?e.ownerDocument||e:G)!==D&&k(e),e=e||D,i=i||[],!t||"string"!=typeof t)return i;if(1!==(a=e.nodeType)&&9!==a)return[];if(L&&!s){if(n=ve.exec(t))if(o=n[1]){if(9===a){if(r=e.getElementById(o),!r||!r.parentNode)return i;if(r.id===o)return i.push(r),i}else if(e.ownerDocument&&(r=e.ownerDocument.getElementById(o))&&N(e,r)&&r.id===o)return i.push(r),i}else{if(n[2])return $.apply(i,e.getElementsByTagName(t)),i;if((o=n[3])&&w.getElementsByClassName&&e.getElementsByClassName)return $.apply(i,e.getElementsByClassName(o)),i}if(w.qsa&&(!I||!I.test(t))){if(p=c=U,f=e,g=9===a&&t,1===a&&"object"!==e.nodeName.toLowerCase()){for(l=_(t),(c=e.getAttribute("id"))?p=c.replace(be,"\\$&"):e.setAttribute("id",p),p="[id='"+p+"'] ",h=l.length;h--;)l[h]=p+d(l[h]);f=xe.test(t)&&u(e.parentNode)||e,g=l.join(",")}if(g)try{return $.apply(i,f.querySelectorAll(g)),i}catch(m){}finally{c||e.removeAttribute("id")}}}return P(t.replace(he,"$1"),e,i,s)}function i(){function t(i,s){return e.push(i+" ")>T.cacheLength&&delete t[e.shift()],t[i+" "]=s}var e=[];return t}function s(t){return t[U]=!0,t}function n(t){var e=D.createElement("div");try{return!!t(e)}catch(i){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function r(t,e){for(var i=t.split("|"),s=t.length;s--;)T.attrHandle[i[s]]=e}function o(t,e){var i=e&&t,s=i&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||Z)-(~t.sourceIndex||Z);if(s)return s;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function a(t){return function(e){var i=e.nodeName.toLowerCase();return"input"===i&&e.type===t}}function h(t){return function(e){var i=e.nodeName.toLowerCase();return("input"===i||"button"===i)&&e.type===t}}function l(t){return s(function(e){return e=+e,s(function(i,s){for(var n,r=t([],i.length,e),o=r.length;o--;)i[n=r[o]]&&(i[n]=!(s[n]=i[n]))})})}function u(t){return t&&typeof t.getElementsByTagName!==Y&&t}function c(){}function d(t){for(var e=0,i=t.length,s="";i>e;e++)s+=t[e].value;return s}function p(t,e,i){var s=e.dir,n=i&&"parentNode"===s,r=W++;return e.first?function(e,i,r){for(;e=e[s];)if(1===e.nodeType||n)return t(e,i,r)}:function(e,i,o){var a,h,l=[j,r];if(o){for(;e=e[s];)if((1===e.nodeType||n)&&t(e,i,o))return!0}else for(;e=e[s];)if(1===e.nodeType||n){if(h=e[U]||(e[U]={}),(a=h[s])&&a[0]===j&&a[1]===r)return l[2]=a[2];if(h[s]=l,l[2]=t(e,i,o))return!0}}}function f(t){return t.length>1?function(e,i,s){for(var n=t.length;n--;)if(!t[n](e,i,s))return!1;return!0}:t[0]}function g(t,i,s){for(var n=0,r=i.length;r>n;n++)e(t,i[n],s);return s}function m(t,e,i,s,n){for(var r,o=[],a=0,h=t.length,l=null!=e;h>a;a++)(r=t[a])&&(!i||i(r,s,n))&&(o.push(r),l&&e.push(a));return o}function y(t,e,i,n,r,o){return n&&!n[U]&&(n=y(n)),r&&!r[U]&&(r=y(r,o)),s(function(s,o,a,h){var l,u,c,d=[],p=[],f=o.length,y=s||g(e||"*",a.nodeType?[a]:a,[]),v=!t||!s&&e?y:m(y,d,t,a,h),x=i?r||(s?t:f||n)?[]:o:v;if(i&&i(v,x,a,h),n)for(l=m(x,p),n(l,[],a,h),u=l.length;u--;)(c=l[u])&&(x[p[u]]=!(v[p[u]]=c));if(s){if(r||t){if(r){for(l=[],u=x.length;u--;)(c=x[u])&&l.push(v[u]=c);r(null,x=[],l,h)}for(u=x.length;u--;)(c=x[u])&&(l=r?ee.call(s,c):d[u])>-1&&(s[l]=!(o[l]=c))}}else x=m(x===o?x.splice(f,x.length):x),r?r(null,o,x,h):$.apply(o,x)})}function v(t){for(var e,i,s,n=t.length,r=T.relative[t[0].type],o=r||T.relative[" "],a=r?1:0,h=p(function(t){return t===e},o,!0),l=p(function(t){return ee.call(e,t)>-1},o,!0),u=[function(t,i,s){return!r&&(s||i!==M)||((e=i).nodeType?h(t,i,s):l(t,i,s))}];n>a;a++)if(i=T.relative[t[a].type])u=[p(f(u),i)];else{if(i=T.filter[t[a].type].apply(null,t[a].matches),i[U]){for(s=++a;n>s&&!T.relative[t[s].type];s++);return y(a>1&&f(u),a>1&&d(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(he,"$1"),i,s>a&&v(t.slice(a,s)),n>s&&v(t=t.slice(s)),n>s&&d(t))}u.push(i)}return f(u)}function x(t,i){var n=i.length>0,r=t.length>0,o=function(s,o,a,h,l){var u,c,d,p=0,f="0",g=s&&[],y=[],v=M,x=s||r&&T.find.TAG("*",l),b=j+=null==v?1:Math.random()||.1,w=x.length;for(l&&(M=o!==D&&o);f!==w&&null!=(u=x[f]);f++){if(r&&u){for(c=0;d=t[c++];)if(d(u,o,a)){h.push(u);break}l&&(j=b)}n&&((u=!d&&u)&&p--,s&&g.push(u))}if(p+=f,n&&f!==p){for(c=0;d=i[c++];)d(g,y,o,a);if(s){if(p>0)for(;f--;)g[f]||y[f]||(y[f]=J.call(h));y=m(y)}$.apply(h,y),l&&!s&&y.length>0&&p+i.length>1&&e.uniqueSort(h)}return l&&(j=b,M=v),g};return n?s(o):o}var b,w,T,S,A,_,C,P,M,O,E,k,D,R,L,I,B,F,N,U="sizzle"+-new Date,G=t.document,j=0,W=0,H=i(),X=i(),z=i(),V=function(t,e){return t===e&&(E=!0),0},Y="undefined",Z=1<<31,K={}.hasOwnProperty,q=[],J=q.pop,Q=q.push,$=q.push,te=q.slice,ee=q.indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(this[e]===t)return e;return-1},ie="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",se="[\\x20\\t\\r\\n\\f]",ne="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",re=ne.replace("w","w#"),oe="\\["+se+"*("+ne+")(?:"+se+"*([*^$|!~]?=)"+se+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+re+"))|)"+se+"*\\]",ae=":("+ne+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",he=new RegExp("^"+se+"+|((?:^|[^\\\\])(?:\\\\.)*)"+se+"+$","g"),le=new RegExp("^"+se+"*,"+se+"*"),ue=new RegExp("^"+se+"*([>+~]|"+se+")"+se+"*"),ce=new RegExp("="+se+"*([^\\]'\"]*?)"+se+"*\\]","g"),de=new RegExp(ae),pe=new RegExp("^"+re+"$"),fe={ID:new RegExp("^#("+ne+")"),CLASS:new RegExp("^\\.("+ne+")"),TAG:new RegExp("^("+ne.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+se+"*(even|odd|(([+-]|)(\\d*)n|)"+se+"*(?:([+-]|)"+se+"*(\\d+)|))"+se+"*\\)|)","i"),bool:new RegExp("^(?:"+ie+")$","i"),needsContext:new RegExp("^"+se+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+se+"*((?:-\\d)?\\d*)"+se+"*\\)|)(?=[^-]|$)","i")},ge=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ye=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xe=/[+~]/,be=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+se+"?|("+se+")|.)","ig"),Te=function(t,e,i){var s="0x"+e-65536;return s!==s||i?e:0>s?String.fromCharCode(s+65536):String.fromCharCode(s>>10|55296,1023&s|56320)};try{$.apply(q=te.call(G.childNodes),G.childNodes),q[G.childNodes.length].nodeType}catch(Se){$={apply:q.length?function(t,e){Q.apply(t,te.call(e))}:function(t,e){for(var i=t.length,s=0;t[i++]=e[s++];);t.length=i-1}}}w=e.support={},A=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},k=e.setDocument=function(t){var e,i=t?t.ownerDocument||t:G,s=i.defaultView;return i!==D&&9===i.nodeType&&i.documentElement?(D=i,R=i.documentElement,L=!A(i),s&&s!==s.top&&(s.addEventListener?s.addEventListener("unload",function(){k()},!1):s.attachEvent&&s.attachEvent("onunload",function(){k()})),w.attributes=n(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=n(function(t){return t.appendChild(i.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=ye.test(i.getElementsByClassName)&&n(function(t){return t.innerHTML="<div class='a'></div><div class='a i'></div>",t.firstChild.className="i",2===t.getElementsByClassName("i").length}),w.getById=n(function(t){return R.appendChild(t).id=U,!i.getElementsByName||!i.getElementsByName(U).length}),w.getById?(T.find.ID=function(t,e){if(typeof e.getElementById!==Y&&L){var i=e.getElementById(t);return i&&i.parentNode?[i]:[]}},T.filter.ID=function(t){var e=t.replace(we,Te);return function(t){return t.getAttribute("id")===e}}):(delete T.find.ID,T.filter.ID=function(t){var e=t.replace(we,Te);return function(t){var i=typeof t.getAttributeNode!==Y&&t.getAttributeNode("id");return i&&i.value===e}}),T.find.TAG=w.getElementsByTagName?function(t,e){return typeof e.getElementsByTagName!==Y?e.getElementsByTagName(t):void 0}:function(t,e){var i,s=[],n=0,r=e.getElementsByTagName(t);if("*"===t){for(;i=r[n++];)1===i.nodeType&&s.push(i);return s}return r},T.find.CLASS=w.getElementsByClassName&&function(t,e){return typeof e.getElementsByClassName!==Y&&L?e.getElementsByClassName(t):void 0},B=[],I=[],(w.qsa=ye.test(i.querySelectorAll))&&(n(function(t){t.innerHTML="<select msallowclip=''><option selected=''></option></select>",t.querySelectorAll("[msallowclip^='']").length&&I.push("[*^$]="+se+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||I.push("\\["+se+"*(?:value|"+ie+")"),t.querySelectorAll(":checked").length||I.push(":checked")}),n(function(t){var e=i.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&I.push("name"+se+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||I.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),I.push(",.*:")})),(w.matchesSelector=ye.test(F=R.matches||R.webkitMatchesSelector||R.mozMatchesSelector||R.oMatchesSelector||R.msMatchesSelector))&&n(function(t){w.disconnectedMatch=F.call(t,"div"),F.call(t,"[s!='']:x"),B.push("!=",ae)}),I=I.length&&new RegExp(I.join("|")),B=B.length&&new RegExp(B.join("|")),e=ye.test(R.compareDocumentPosition),N=e||ye.test(R.contains)?function(t,e){var i=9===t.nodeType?t.documentElement:t,s=e&&e.parentNode;return t===s||!(!s||1!==s.nodeType||!(i.contains?i.contains(s):t.compareDocumentPosition&&16&t.compareDocumentPosition(s)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},V=e?function(t,e){if(t===e)return E=!0,0;var s=!t.compareDocumentPosition-!e.compareDocumentPosition;return s?s:(s=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&s||!w.sortDetached&&e.compareDocumentPosition(t)===s?t===i||t.ownerDocument===G&&N(G,t)?-1:e===i||e.ownerDocument===G&&N(G,e)?1:O?ee.call(O,t)-ee.call(O,e):0:4&s?-1:1)}:function(t,e){if(t===e)return E=!0,0;var s,n=0,r=t.parentNode,a=e.parentNode,h=[t],l=[e];if(!r||!a)return t===i?-1:e===i?1:r?-1:a?1:O?ee.call(O,t)-ee.call(O,e):0;if(r===a)return o(t,e);for(s=t;s=s.parentNode;)h.unshift(s);for(s=e;s=s.parentNode;)l.unshift(s);for(;h[n]===l[n];)n++;return n?o(h[n],l[n]):h[n]===G?-1:l[n]===G?1:0},i):D},e.matches=function(t,i){return e(t,null,null,i)},e.matchesSelector=function(t,i){if((t.ownerDocument||t)!==D&&k(t),i=i.replace(ce,"='$1']"),!(!w.matchesSelector||!L||B&&B.test(i)||I&&I.test(i)))try{var s=F.call(t,i);if(s||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return s}catch(n){}return e(i,D,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==D&&k(t),N(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==D&&k(t);var i=T.attrHandle[e.toLowerCase()],s=i&&K.call(T.attrHandle,e.toLowerCase())?i(t,e,!L):void 0;return void 0!==s?s:w.attributes||!L?t.getAttribute(e):(s=t.getAttributeNode(e))&&s.specified?s.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,i=[],s=0,n=0;if(E=!w.detectDuplicates,O=!w.sortStable&&t.slice(0),t.sort(V),E){for(;e=t[n++];)e===t[n]&&(s=i.push(n));for(;s--;)t.splice(i[s],1)}return O=null,t},S=e.getText=function(t){var e,i="",s=0,n=t.nodeType;if(n){if(1===n||9===n||11===n){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=S(t)}else if(3===n||4===n)return t.nodeValue}else for(;e=t[s++];)i+=S(e);return i},T=e.selectors={cacheLength:50,createPseudo:s,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(we,Te),t[3]=(t[3]||t[4]||t[5]||"").replace(we,Te),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,i=!t[6]&&t[2];return fe.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":i&&de.test(i)&&(e=_(i,!0))&&(e=i.indexOf(")",i.length-e)-i.length)&&(t[0]=t[0].slice(0,e),t[2]=i.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(we,Te).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=H[t+" "];return e||(e=new RegExp("(^|"+se+")"+t+"("+se+"|$)"))&&H(t,function(t){return e.test("string"==typeof t.className&&t.className||typeof t.getAttribute!==Y&&t.getAttribute("class")||"")})},ATTR:function(t,i,s){return function(n){var r=e.attr(n,t);return null==r?"!="===i:i?(r+="","="===i?r===s:"!="===i?r!==s:"^="===i?s&&0===r.indexOf(s):"*="===i?s&&r.indexOf(s)>-1:"$="===i?s&&r.slice(-s.length)===s:"~="===i?(" "+r+" ").indexOf(s)>-1:"|="===i?r===s||r.slice(0,s.length+1)===s+"-":!1):!0}},CHILD:function(t,e,i,s,n){var r="nth"!==t.slice(0,3),o="last"!==t.slice(-4),a="of-type"===e;return 1===s&&0===n?function(t){return!!t.parentNode}:function(e,i,h){var l,u,c,d,p,f,g=r!==o?"nextSibling":"previousSibling",m=e.parentNode,y=a&&e.nodeName.toLowerCase(),v=!h&&!a;if(m){if(r){for(;g;){for(c=e;c=c[g];)if(a?c.nodeName.toLowerCase()===y:1===c.nodeType)return!1;f=g="only"===t&&!f&&"nextSibling"}return!0}if(f=[o?m.firstChild:m.lastChild],o&&v){for(u=m[U]||(m[U]={}),l=u[t]||[],p=l[0]===j&&l[1],d=l[0]===j&&l[2],c=p&&m.childNodes[p];c=++p&&c&&c[g]||(d=p=0)||f.pop();)if(1===c.nodeType&&++d&&c===e){u[t]=[j,p,d];break}}else if(v&&(l=(e[U]||(e[U]={}))[t])&&l[0]===j)d=l[1];else for(;(c=++p&&c&&c[g]||(d=p=0)||f.pop())&&((a?c.nodeName.toLowerCase()!==y:1!==c.nodeType)||!++d||(v&&((c[U]||(c[U]={}))[t]=[j,d]),c!==e)););return d-=n,d===s||d%s===0&&d/s>=0}}},PSEUDO:function(t,i){var n,r=T.pseudos[t]||T.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return r[U]?r(i):r.length>1?(n=[t,t,"",i],T.setFilters.hasOwnProperty(t.toLowerCase())?s(function(t,e){for(var s,n=r(t,i),o=n.length;o--;)s=ee.call(t,n[o]),t[s]=!(e[s]=n[o])}):function(t){return r(t,0,n)}):r}},pseudos:{not:s(function(t){var e=[],i=[],n=C(t.replace(he,"$1"));return n[U]?s(function(t,e,i,s){for(var r,o=n(t,null,s,[]),a=t.length;a--;)(r=o[a])&&(t[a]=!(e[a]=r))}):function(t,s,r){return e[0]=t,n(e,null,r,i),!i.pop()}}),has:s(function(t){return function(i){return e(t,i).length>0}}),contains:s(function(t){return function(e){return(e.textContent||e.innerText||S(e)).indexOf(t)>-1}}),lang:s(function(t){return pe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(we,Te).toLowerCase(),function(e){var i;do if(i=L?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return i=i.toLowerCase(),i===t||0===i.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===R},focus:function(t){return t===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!T.pseudos.empty(t)},header:function(t){return me.test(t.nodeName)},input:function(t){return ge.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,i){return[0>i?i+e:i]}),even:l(function(t,e){for(var i=0;e>i;i+=2)t.push(i);return t}),odd:l(function(t,e){for(var i=1;e>i;i+=2)t.push(i);return t}),lt:l(function(t,e,i){for(var s=0>i?i+e:i;--s>=0;)t.push(s);return t}),gt:l(function(t,e,i){for(var s=0>i?i+e:i;++s<e;)t.push(s);return t})}},T.pseudos.nth=T.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[b]=a(b);for(b in{submit:!0,reset:!0})T.pseudos[b]=h(b);return c.prototype=T.filters=T.pseudos,T.setFilters=new c,_=e.tokenize=function(t,i){var s,n,r,o,a,h,l,u=X[t+" "];if(u)return i?0:u.slice(0);for(a=t,h=[],l=T.preFilter;a;){(!s||(n=le.exec(a)))&&(n&&(a=a.slice(n[0].length)||a),h.push(r=[])),s=!1,(n=ue.exec(a))&&(s=n.shift(),r.push({value:s,type:n[0].replace(he," ")}),a=a.slice(s.length));for(o in T.filter)!(n=fe[o].exec(a))||l[o]&&!(n=l[o](n))||(s=n.shift(),r.push({value:s,type:o,matches:n}),a=a.slice(s.length));if(!s)break}return i?a.length:a?e.error(t):X(t,h).slice(0)},C=e.compile=function(t,e){var i,s=[],n=[],r=z[t+" "];if(!r){for(e||(e=_(t)),i=e.length;i--;)r=v(e[i]),r[U]?s.push(r):n.push(r);r=z(t,x(n,s)),r.selector=t}return r},P=e.select=function(t,e,i,s){var n,r,o,a,h,l="function"==typeof t&&t,c=!s&&_(t=l.selector||t);if(i=i||[],1===c.length){if(r=c[0]=c[0].slice(0),r.length>2&&"ID"===(o=r[0]).type&&w.getById&&9===e.nodeType&&L&&T.relative[r[1].type]){if(e=(T.find.ID(o.matches[0].replace(we,Te),e)||[])[0],!e)return i;l&&(e=e.parentNode),t=t.slice(r.shift().value.length)}for(n=fe.needsContext.test(t)?0:r.length;n--&&(o=r[n],!T.relative[a=o.type]);)if((h=T.find[a])&&(s=h(o.matches[0].replace(we,Te),xe.test(r[0].type)&&u(e.parentNode)||e))){if(r.splice(n,1),t=s.length&&d(r),!t)return $.apply(i,s),i;break}}return(l||C(t,c))(s,e,!L,i,xe.test(t)&&u(e.parentNode)||e),i},w.sortStable=U.split("").sort(V).join("")===U,w.detectDuplicates=!!E,k(),w.sortDetached=n(function(t){return 1&t.compareDocumentPosition(D.createElement("div"))}),n(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||r("type|href|height|width",function(t,e,i){return i?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&n(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||r("value",function(t,e,i){return i||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),n(function(t){return null==t.getAttribute("disabled")})||r(ie,function(t,e,i){var s;return i?void 0:t[e]===!0?e.toLowerCase():(s=t.getAttributeNode(e))&&s.specified?s.value:null}),e}(t);$.find=ne,$.expr=ne.selectors,$.expr[":"]=$.expr.pseudos,$.unique=ne.uniqueSort,$.text=ne.getText,$.isXMLDoc=ne.isXML,$.contains=ne.contains;var re=$.expr.match.needsContext,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^.[^:#\[\.,]*$/;$.filter=function(t,e,i){var s=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===s.nodeType?$.find.matchesSelector(s,t)?[s]:[]:$.find.matches(t,$.grep(e,function(t){return 1===t.nodeType}))},$.fn.extend({find:function(t){var e,i=this.length,s=[],n=this;if("string"!=typeof t)return this.pushStack($(t).filter(function(){for(e=0;i>e;e++)if($.contains(n[e],this))return!0}));for(e=0;i>e;e++)$.find(t,n[e],s);return s=this.pushStack(i>1?$.unique(s):s),s.selector=this.selector?this.selector+" "+t:t,s},filter:function(t){return this.pushStack(s(this,t||[],!1))},not:function(t){return this.pushStack(s(this,t||[],!0))},is:function(t){return!!s(this,"string"==typeof t&&re.test(t)?$(t):t||[],!1).length}});var he,le=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ue=$.fn.init=function(t,e){var i,s;if(!t)return this;if("string"==typeof t){if(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:le.exec(t),!i||!i[1]&&e)return!e||e.jquery?(e||he).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof $?e[0]:e,$.merge(this,$.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:J,!0)),oe.test(i[1])&&$.isPlainObject(e))for(i in e)$.isFunction(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return s=J.getElementById(i[2]),s&&s.parentNode&&(this.length=1,this[0]=s),this.context=J,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):$.isFunction(t)?"undefined"!=typeof he.ready?he.ready(t):t($):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),$.makeArray(t,this))};ue.prototype=$.fn,he=$(J);var ce=/^(?:parents|prev(?:Until|All))/,de={children:!0,contents:!0,next:!0,prev:!0};$.extend({dir:function(t,e,i){for(var s=[],n=void 0!==i;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(n&&$(t).is(i))break;s.push(t)}return s},sibling:function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i}}),$.fn.extend({has:function(t){var e=$(t,this),i=e.length;return this.filter(function(){for(var t=0;i>t;t++)if($.contains(this,e[t]))return!0})},closest:function(t,e){for(var i,s=0,n=this.length,r=[],o=re.test(t)||"string"!=typeof t?$(t,e||this.context):0;n>s;s++)for(i=this[s];i&&i!==e;i=i.parentNode)if(i.nodeType<11&&(o?o.index(i)>-1:1===i.nodeType&&$.find.matchesSelector(i,t))){r.push(i);break}return this.pushStack(r.length>1?$.unique(r):r)},index:function(t){return t?"string"==typeof t?V.call($(t),this[0]):V.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack($.unique($.merge(this.get(),$(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),$.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return $.dir(t,"parentNode")},parentsUntil:function(t,e,i){return $.dir(t,"parentNode",i)},next:function(t){return n(t,"nextSibling")},prev:function(t){return n(t,"previousSibling")},nextAll:function(t){return $.dir(t,"nextSibling")},prevAll:function(t){return $.dir(t,"previousSibling")},nextUntil:function(t,e,i){return $.dir(t,"nextSibling",i)},prevUntil:function(t,e,i){return $.dir(t,"previousSibling",i)},siblings:function(t){return $.sibling((t.parentNode||{}).firstChild,t)},children:function(t){return $.sibling(t.firstChild)},contents:function(t){return t.contentDocument||$.merge([],t.childNodes)}},function(t,e){$.fn[t]=function(i,s){var n=$.map(this,e,i);return"Until"!==t.slice(-5)&&(s=i),s&&"string"==typeof s&&(n=$.filter(s,n)),this.length>1&&(de[t]||$.unique(n),ce.test(t)&&n.reverse()),this.pushStack(n)}});var pe=/\S+/g,fe={};$.Callbacks=function(t){t="string"==typeof t?fe[t]||r(t):$.extend({},t);var e,i,s,n,o,a,h=[],l=!t.once&&[],u=function(r){for(e=t.memory&&r,i=!0,a=n||0,n=0,o=h.length,s=!0;h&&o>a;a++)if(h[a].apply(r[0],r[1])===!1&&t.stopOnFalse){e=!1;break}s=!1,h&&(l?l.length&&u(l.shift()):e?h=[]:c.disable())},c={add:function(){if(h){var i=h.length;!function r(e){$.each(e,function(e,i){var s=$.type(i);"function"===s?t.unique&&c.has(i)||h.push(i):i&&i.length&&"string"!==s&&r(i)})}(arguments),s?o=h.length:e&&(n=i,u(e))}return this},remove:function(){return h&&$.each(arguments,function(t,e){for(var i;(i=$.inArray(e,h,i))>-1;)h.splice(i,1),s&&(o>=i&&o--,a>=i&&a--)}),this},has:function(t){return t?$.inArray(t,h)>-1:!(!h||!h.length)},empty:function(){return h=[],o=0,this},disable:function(){return h=l=e=void 0,this},disabled:function(){return!h},lock:function(){return l=void 0,e||c.disable(),this},locked:function(){return!l},fireWith:function(t,e){return!h||i&&!l||(e=e||[],e=[t,e.slice?e.slice():e],s?l.push(e):u(e)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},$.extend({Deferred:function(t){var e=[["resolve","done",$.Callbacks("once memory"),"resolved"],["reject","fail",$.Callbacks("once memory"),"rejected"],["notify","progress",$.Callbacks("memory")]],i="pending",s={state:function(){return i},always:function(){return n.done(arguments).fail(arguments),this},then:function(){var t=arguments;return $.Deferred(function(i){$.each(e,function(e,r){var o=$.isFunction(t[e])&&t[e];n[r[1]](function(){var t=o&&o.apply(this,arguments);t&&$.isFunction(t.promise)?t.promise().done(i.resolve).fail(i.reject).progress(i.notify):i[r[0]+"With"](this===s?i.promise():this,o?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?$.extend(t,s):s}},n={};return s.pipe=s.then,$.each(e,function(t,r){var o=r[2],a=r[3];s[r[1]]=o.add,a&&o.add(function(){i=a},e[1^t][2].disable,e[2][2].lock),n[r[0]]=function(){return n[r[0]+"With"](this===n?s:this,arguments),this},n[r[0]+"With"]=o.fireWith}),s.promise(n),t&&t.call(n,n),n},when:function(t){var e,i,s,n=0,r=H.call(arguments),o=r.length,a=1!==o||t&&$.isFunction(t.promise)?o:0,h=1===a?t:$.Deferred(),l=function(t,i,s){return function(n){i[t]=this,s[t]=arguments.length>1?H.call(arguments):n,s===e?h.notifyWith(i,s):--a||h.resolveWith(i,s)}};if(o>1)for(e=new Array(o),i=new Array(o),s=new Array(o);o>n;n++)r[n]&&$.isFunction(r[n].promise)?r[n].promise().done(l(n,s,r)).fail(h.reject).progress(l(n,i,e)):--a;return a||h.resolveWith(s,r),h.promise()}});var ge;$.fn.ready=function(t){return $.ready.promise().done(t),this},$.extend({isReady:!1,readyWait:1,holdReady:function(t){t?$.readyWait++:$.ready(!0)},ready:function(t){(t===!0?--$.readyWait:$.isReady)||($.isReady=!0,t!==!0&&--$.readyWait>0||(ge.resolveWith(J,[$]),$.fn.triggerHandler&&($(J).triggerHandler("ready"),$(J).off("ready"))))}}),$.ready.promise=function(e){return ge||(ge=$.Deferred(),"complete"===J.readyState?setTimeout($.ready):(J.addEventListener("DOMContentLoaded",o,!1),t.addEventListener("load",o,!1))),ge.promise(e)},$.ready.promise();var me=$.access=function(t,e,i,s,n,r,o){var a=0,h=t.length,l=null==i;if("object"===$.type(i)){n=!0;for(a in i)$.access(t,e,a,i[a],!0,r,o)}else if(void 0!==s&&(n=!0,$.isFunction(s)||(o=!0),l&&(o?(e.call(t,s),e=null):(l=e,e=function(t,e,i){return l.call($(t),i)})),e))for(;h>a;a++)e(t[a],i,o?s:s.call(t[a],a,e(t[a],i)));return n?t:l?e.call(t):h?e(t[0],i):r};$.acceptData=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType},a.uid=1,a.accepts=$.acceptData,a.prototype={key:function(t){if(!a.accepts(t))return 0;var e={},i=t[this.expando];if(!i){i=a.uid++;try{e[this.expando]={value:i},Object.defineProperties(t,e)}catch(s){e[this.expando]=i,$.extend(t,e)}}return this.cache[i]||(this.cache[i]={}),i},set:function(t,e,i){var s,n=this.key(t),r=this.cache[n];if("string"==typeof e)r[e]=i;else if($.isEmptyObject(r))$.extend(this.cache[n],e);
  else for(s in e)r[s]=e[s];return r},get:function(t,e){var i=this.cache[this.key(t)];return void 0===e?i:i[e]},access:function(t,e,i){var s;return void 0===e||e&&"string"==typeof e&&void 0===i?(s=this.get(t,e),void 0!==s?s:this.get(t,$.camelCase(e))):(this.set(t,e,i),void 0!==i?i:e)},remove:function(t,e){var i,s,n,r=this.key(t),o=this.cache[r];if(void 0===e)this.cache[r]={};else{$.isArray(e)?s=e.concat(e.map($.camelCase)):(n=$.camelCase(e),e in o?s=[e,n]:(s=n,s=s in o?[s]:s.match(pe)||[])),i=s.length;for(;i--;)delete o[s[i]]}},hasData:function(t){return!$.isEmptyObject(this.cache[t[this.expando]]||{})},discard:function(t){t[this.expando]&&delete this.cache[t[this.expando]]}};var ye=new a,ve=new a,xe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,be=/([A-Z])/g;$.extend({hasData:function(t){return ve.hasData(t)||ye.hasData(t)},data:function(t,e,i){return ve.access(t,e,i)},removeData:function(t,e){ve.remove(t,e)},_data:function(t,e,i){return ye.access(t,e,i)},_removeData:function(t,e){ye.remove(t,e)}}),$.fn.extend({data:function(t,e){var i,s,n,r=this[0],o=r&&r.attributes;if(void 0===t){if(this.length&&(n=ve.get(r),1===r.nodeType&&!ye.get(r,"hasDataAttrs"))){for(i=o.length;i--;)o[i]&&(s=o[i].name,0===s.indexOf("data-")&&(s=$.camelCase(s.slice(5)),h(r,s,n[s])));ye.set(r,"hasDataAttrs",!0)}return n}return"object"==typeof t?this.each(function(){ve.set(this,t)}):me(this,function(e){var i,s=$.camelCase(t);if(r&&void 0===e){if(i=ve.get(r,t),void 0!==i)return i;if(i=ve.get(r,s),void 0!==i)return i;if(i=h(r,s,void 0),void 0!==i)return i}else this.each(function(){var i=ve.get(this,s);ve.set(this,s,e),-1!==t.indexOf("-")&&void 0!==i&&ve.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){ve.remove(this,t)})}}),$.extend({queue:function(t,e,i){var s;return t?(e=(e||"fx")+"queue",s=ye.get(t,e),i&&(!s||$.isArray(i)?s=ye.access(t,e,$.makeArray(i)):s.push(i)),s||[]):void 0},dequeue:function(t,e){e=e||"fx";var i=$.queue(t,e),s=i.length,n=i.shift(),r=$._queueHooks(t,e),o=function(){$.dequeue(t,e)};"inprogress"===n&&(n=i.shift(),s--),n&&("fx"===e&&i.unshift("inprogress"),delete r.stop,n.call(t,o,r)),!s&&r&&r.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return ye.get(t,i)||ye.access(t,i,{empty:$.Callbacks("once memory").add(function(){ye.remove(t,[e+"queue",i])})})}}),$.fn.extend({queue:function(t,e){var i=2;return"string"!=typeof t&&(e=t,t="fx",i--),arguments.length<i?$.queue(this[0],t):void 0===e?this:this.each(function(){var i=$.queue(this,t,e);$._queueHooks(this,t),"fx"===t&&"inprogress"!==i[0]&&$.dequeue(this,t)})},dequeue:function(t){return this.each(function(){$.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var i,s=1,n=$.Deferred(),r=this,o=this.length,a=function(){--s||n.resolveWith(r,[r])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";o--;)i=ye.get(r[o],t+"queueHooks"),i&&i.empty&&(s++,i.empty.add(a));return a(),n.promise(e)}});var we=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Te=["Top","Right","Bottom","Left"],Se=function(t,e){return t=e||t,"none"===$.css(t,"display")||!$.contains(t.ownerDocument,t)},Ae=/^(?:checkbox|radio)$/i;!function(){var t=J.createDocumentFragment(),e=t.appendChild(J.createElement("div")),i=J.createElement("input");i.setAttribute("type","radio"),i.setAttribute("checked","checked"),i.setAttribute("name","t"),e.appendChild(i),q.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",q.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var _e="undefined";q.focusinBubbles="onfocusin"in t;var Ce=/^key/,Pe=/^(?:mouse|pointer|contextmenu)|click/,Me=/^(?:focusinfocus|focusoutblur)$/,Oe=/^([^.]*)(?:\.(.+)|)$/;$.event={global:{},add:function(t,e,i,s,n){var r,o,a,h,l,u,c,d,p,f,g,m=ye.get(t);if(m)for(i.handler&&(r=i,i=r.handler,n=r.selector),i.guid||(i.guid=$.guid++),(h=m.events)||(h=m.events={}),(o=m.handle)||(o=m.handle=function(e){return typeof $!==_e&&$.event.triggered!==e.type?$.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(pe)||[""],l=e.length;l--;)a=Oe.exec(e[l])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p&&(c=$.event.special[p]||{},p=(n?c.delegateType:c.bindType)||p,c=$.event.special[p]||{},u=$.extend({type:p,origType:g,data:s,handler:i,guid:i.guid,selector:n,needsContext:n&&$.expr.match.needsContext.test(n),namespace:f.join(".")},r),(d=h[p])||(d=h[p]=[],d.delegateCount=0,c.setup&&c.setup.call(t,s,f,o)!==!1||t.addEventListener&&t.addEventListener(p,o,!1)),c.add&&(c.add.call(t,u),u.handler.guid||(u.handler.guid=i.guid)),n?d.splice(d.delegateCount++,0,u):d.push(u),$.event.global[p]=!0)},remove:function(t,e,i,s,n){var r,o,a,h,l,u,c,d,p,f,g,m=ye.hasData(t)&&ye.get(t);if(m&&(h=m.events)){for(e=(e||"").match(pe)||[""],l=e.length;l--;)if(a=Oe.exec(e[l])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p){for(c=$.event.special[p]||{},p=(s?c.delegateType:c.bindType)||p,d=h[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=r=d.length;r--;)u=d[r],!n&&g!==u.origType||i&&i.guid!==u.guid||a&&!a.test(u.namespace)||s&&s!==u.selector&&("**"!==s||!u.selector)||(d.splice(r,1),u.selector&&d.delegateCount--,c.remove&&c.remove.call(t,u));o&&!d.length&&(c.teardown&&c.teardown.call(t,f,m.handle)!==!1||$.removeEvent(t,p,m.handle),delete h[p])}else for(p in h)$.event.remove(t,p+e[l],i,s,!0);$.isEmptyObject(h)&&(delete m.handle,ye.remove(t,"events"))}},trigger:function(e,i,s,n){var r,o,a,h,l,u,c,d=[s||J],p=K.call(e,"type")?e.type:e,f=K.call(e,"namespace")?e.namespace.split("."):[];if(o=a=s=s||J,3!==s.nodeType&&8!==s.nodeType&&!Me.test(p+$.event.triggered)&&(p.indexOf(".")>=0&&(f=p.split("."),p=f.shift(),f.sort()),l=p.indexOf(":")<0&&"on"+p,e=e[$.expando]?e:new $.Event(p,"object"==typeof e&&e),e.isTrigger=n?2:3,e.namespace=f.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=s),i=null==i?[e]:$.makeArray(i,[e]),c=$.event.special[p]||{},n||!c.trigger||c.trigger.apply(s,i)!==!1)){if(!n&&!c.noBubble&&!$.isWindow(s)){for(h=c.delegateType||p,Me.test(h+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(s.ownerDocument||J)&&d.push(a.defaultView||a.parentWindow||t)}for(r=0;(o=d[r++])&&!e.isPropagationStopped();)e.type=r>1?h:c.bindType||p,u=(ye.get(o,"events")||{})[e.type]&&ye.get(o,"handle"),u&&u.apply(o,i),u=l&&o[l],u&&u.apply&&$.acceptData(o)&&(e.result=u.apply(o,i),e.result===!1&&e.preventDefault());return e.type=p,n||e.isDefaultPrevented()||c._default&&c._default.apply(d.pop(),i)!==!1||!$.acceptData(s)||l&&$.isFunction(s[p])&&!$.isWindow(s)&&(a=s[l],a&&(s[l]=null),$.event.triggered=p,s[p](),$.event.triggered=void 0,a&&(s[l]=a)),e.result}},dispatch:function(t){t=$.event.fix(t);var e,i,s,n,r,o=[],a=H.call(arguments),h=(ye.get(this,"events")||{})[t.type]||[],l=$.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,t)!==!1){for(o=$.event.handlers.call(this,t,h),e=0;(n=o[e++])&&!t.isPropagationStopped();)for(t.currentTarget=n.elem,i=0;(r=n.handlers[i++])&&!t.isImmediatePropagationStopped();)(!t.namespace_re||t.namespace_re.test(r.namespace))&&(t.handleObj=r,t.data=r.data,s=(($.event.special[r.origType]||{}).handle||r.handler).apply(n.elem,a),void 0!==s&&(t.result=s)===!1&&(t.preventDefault(),t.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,t),t.result}},handlers:function(t,e){var i,s,n,r,o=[],a=e.delegateCount,h=t.target;if(a&&h.nodeType&&(!t.button||"click"!==t.type))for(;h!==this;h=h.parentNode||this)if(h.disabled!==!0||"click"!==t.type){for(s=[],i=0;a>i;i++)r=e[i],n=r.selector+" ",void 0===s[n]&&(s[n]=r.needsContext?$(n,this).index(h)>=0:$.find(n,this,null,[h]).length),s[n]&&s.push(r);s.length&&o.push({elem:h,handlers:s})}return a<e.length&&o.push({elem:this,handlers:e.slice(a)}),o},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var i,s,n,r=e.button;return null==t.pageX&&null!=e.clientX&&(i=t.target.ownerDocument||J,s=i.documentElement,n=i.body,t.pageX=e.clientX+(s&&s.scrollLeft||n&&n.scrollLeft||0)-(s&&s.clientLeft||n&&n.clientLeft||0),t.pageY=e.clientY+(s&&s.scrollTop||n&&n.scrollTop||0)-(s&&s.clientTop||n&&n.clientTop||0)),t.which||void 0===r||(t.which=1&r?1:2&r?3:4&r?2:0),t}},fix:function(t){if(t[$.expando])return t;var e,i,s,n=t.type,r=t,o=this.fixHooks[n];for(o||(this.fixHooks[n]=o=Pe.test(n)?this.mouseHooks:Ce.test(n)?this.keyHooks:{}),s=o.props?this.props.concat(o.props):this.props,t=new $.Event(r),e=s.length;e--;)i=s[e],t[i]=r[i];return t.target||(t.target=J),3===t.target.nodeType&&(t.target=t.target.parentNode),o.filter?o.filter(t,r):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==c()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===c()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&$.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return $.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}},simulate:function(t,e,i,s){var n=$.extend(new $.Event,i,{type:t,isSimulated:!0,originalEvent:{}});s?$.event.trigger(n,null,e):$.event.dispatch.call(e,n),n.isDefaultPrevented()&&i.preventDefault()}},$.removeEvent=function(t,e,i){t.removeEventListener&&t.removeEventListener(e,i,!1)},$.Event=function(t,e){return this instanceof $.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?l:u):this.type=t,e&&$.extend(this,e),this.timeStamp=t&&t.timeStamp||$.now(),void(this[$.expando]=!0)):new $.Event(t,e)},$.Event.prototype={isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=l,t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=l,t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=l,t&&t.stopImmediatePropagation&&t.stopImmediatePropagation(),this.stopPropagation()}},$.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){$.event.special[t]={delegateType:e,bindType:e,handle:function(t){var i,s=this,n=t.relatedTarget,r=t.handleObj;return(!n||n!==s&&!$.contains(s,n))&&(t.type=r.origType,i=r.handler.apply(this,arguments),t.type=e),i}}}),q.focusinBubbles||$.each({focus:"focusin",blur:"focusout"},function(t,e){var i=function(t){$.event.simulate(e,t.target,$.event.fix(t),!0)};$.event.special[e]={setup:function(){var s=this.ownerDocument||this,n=ye.access(s,e);n||s.addEventListener(t,i,!0),ye.access(s,e,(n||0)+1)},teardown:function(){var s=this.ownerDocument||this,n=ye.access(s,e)-1;n?ye.access(s,e,n):(s.removeEventListener(t,i,!0),ye.remove(s,e))}}}),$.fn.extend({on:function(t,e,i,s,n){var r,o;if("object"==typeof t){"string"!=typeof e&&(i=i||e,e=void 0);for(o in t)this.on(o,e,i,t[o],n);return this}if(null==i&&null==s?(s=e,i=e=void 0):null==s&&("string"==typeof e?(s=i,i=void 0):(s=i,i=e,e=void 0)),s===!1)s=u;else if(!s)return this;return 1===n&&(r=s,s=function(t){return $().off(t),r.apply(this,arguments)},s.guid=r.guid||(r.guid=$.guid++)),this.each(function(){$.event.add(this,t,s,i,e)})},one:function(t,e,i,s){return this.on(t,e,i,s,1)},off:function(t,e,i){var s,n;if(t&&t.preventDefault&&t.handleObj)return s=t.handleObj,$(t.delegateTarget).off(s.namespace?s.origType+"."+s.namespace:s.origType,s.selector,s.handler),this;if("object"==typeof t){for(n in t)this.off(n,e,t[n]);return this}return(e===!1||"function"==typeof e)&&(i=e,e=void 0),i===!1&&(i=u),this.each(function(){$.event.remove(this,t,i,e)})},trigger:function(t,e){return this.each(function(){$.event.trigger(t,e,this)})},triggerHandler:function(t,e){var i=this[0];return i?$.event.trigger(t,e,i,!0):void 0}});var Ee=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ke=/<([\w:]+)/,De=/<|&#?\w+;/,Re=/<(?:script|style|link)/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,Ie=/^$|\/(?:java|ecma)script/i,Be=/^true\/(.*)/,Fe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ne={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ne.optgroup=Ne.option,Ne.tbody=Ne.tfoot=Ne.colgroup=Ne.caption=Ne.thead,Ne.th=Ne.td,$.extend({clone:function(t,e,i){var s,n,r,o,a=t.cloneNode(!0),h=$.contains(t.ownerDocument,t);if(!(q.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||$.isXMLDoc(t)))for(o=y(a),r=y(t),s=0,n=r.length;n>s;s++)v(r[s],o[s]);if(e)if(i)for(r=r||y(t),o=o||y(a),s=0,n=r.length;n>s;s++)m(r[s],o[s]);else m(t,a);return o=y(a,"script"),o.length>0&&g(o,!h&&y(t,"script")),a},buildFragment:function(t,e,i,s){for(var n,r,o,a,h,l,u=e.createDocumentFragment(),c=[],d=0,p=t.length;p>d;d++)if(n=t[d],n||0===n)if("object"===$.type(n))$.merge(c,n.nodeType?[n]:n);else if(De.test(n)){for(r=r||u.appendChild(e.createElement("div")),o=(ke.exec(n)||["",""])[1].toLowerCase(),a=Ne[o]||Ne._default,r.innerHTML=a[1]+n.replace(Ee,"<$1></$2>")+a[2],l=a[0];l--;)r=r.lastChild;$.merge(c,r.childNodes),r=u.firstChild,r.textContent=""}else c.push(e.createTextNode(n));for(u.textContent="",d=0;n=c[d++];)if((!s||-1===$.inArray(n,s))&&(h=$.contains(n.ownerDocument,n),r=y(u.appendChild(n),"script"),h&&g(r),i))for(l=0;n=r[l++];)Ie.test(n.type||"")&&i.push(n);return u},cleanData:function(t){for(var e,i,s,n,r=$.event.special,o=0;void 0!==(i=t[o]);o++){if($.acceptData(i)&&(n=i[ye.expando],n&&(e=ye.cache[n]))){if(e.events)for(s in e.events)r[s]?$.event.remove(i,s):$.removeEvent(i,s,e.handle);ye.cache[n]&&delete ye.cache[n]}delete ve.cache[i[ve.expando]]}}}),$.fn.extend({text:function(t){return me(this,function(t){return void 0===t?$.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=t)})},null,t,arguments.length)},append:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.appendChild(t)}})},prepend:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},remove:function(t,e){for(var i,s=t?$.filter(t,this):this,n=0;null!=(i=s[n]);n++)e||1!==i.nodeType||$.cleanData(y(i)),i.parentNode&&(e&&$.contains(i.ownerDocument,i)&&g(y(i,"script")),i.parentNode.removeChild(i));return this},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&($.cleanData(y(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return $.clone(this,t,e)})},html:function(t){return me(this,function(t){var e=this[0]||{},i=0,s=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Re.test(t)&&!Ne[(ke.exec(t)||["",""])[1].toLowerCase()]){t=t.replace(Ee,"<$1></$2>");try{for(;s>i;i++)e=this[i]||{},1===e.nodeType&&($.cleanData(y(e,!1)),e.innerHTML=t);e=0}catch(n){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=arguments[0];return this.domManip(arguments,function(e){t=this.parentNode,$.cleanData(y(this)),t&&t.replaceChild(e,this)}),t&&(t.length||t.nodeType)?this:this.remove()},detach:function(t){return this.remove(t,!0)},domManip:function(t,e){t=X.apply([],t);var i,s,n,r,o,a,h=0,l=this.length,u=this,c=l-1,d=t[0],g=$.isFunction(d);if(g||l>1&&"string"==typeof d&&!q.checkClone&&Le.test(d))return this.each(function(i){var s=u.eq(i);g&&(t[0]=d.call(this,i,s.html())),s.domManip(t,e)});if(l&&(i=$.buildFragment(t,this[0].ownerDocument,!1,this),s=i.firstChild,1===i.childNodes.length&&(i=s),s)){for(n=$.map(y(i,"script"),p),r=n.length;l>h;h++)o=i,h!==c&&(o=$.clone(o,!0,!0),r&&$.merge(n,y(o,"script"))),e.call(this[h],o,h);if(r)for(a=n[n.length-1].ownerDocument,$.map(n,f),h=0;r>h;h++)o=n[h],Ie.test(o.type||"")&&!ye.access(o,"globalEval")&&$.contains(a,o)&&(o.src?$._evalUrl&&$._evalUrl(o.src):$.globalEval(o.textContent.replace(Fe,"")))}return this}}),$.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){$.fn[t]=function(t){for(var i,s=[],n=$(t),r=n.length-1,o=0;r>=o;o++)i=o===r?this:this.clone(!0),$(n[o])[e](i),z.apply(s,i.get());return this.pushStack(s)}});var Ue,Ge={},je=/^margin/,We=new RegExp("^("+we+")(?!px)[a-z%]+$","i"),He=function(t){return t.ownerDocument.defaultView.getComputedStyle(t,null)};!function(){function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o.innerHTML="",n.appendChild(r);var e=t.getComputedStyle(o,null);i="1%"!==e.top,s="4px"===e.width,n.removeChild(r)}var i,s,n=J.documentElement,r=J.createElement("div"),o=J.createElement("div");o.style&&(o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",q.clearCloneStyle="content-box"===o.style.backgroundClip,r.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",r.appendChild(o),t.getComputedStyle&&$.extend(q,{pixelPosition:function(){return e(),i},boxSizingReliable:function(){return null==s&&e(),s},reliableMarginRight:function(){var e,i=o.appendChild(J.createElement("div"));return i.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",o.style.width="1px",n.appendChild(r),e=!parseFloat(t.getComputedStyle(i,null).marginRight),n.removeChild(r),e}}))}(),$.swap=function(t,e,i,s){var n,r,o={};for(r in e)o[r]=t.style[r],t.style[r]=e[r];n=i.apply(t,s||[]);for(r in e)t.style[r]=o[r];return n};var Xe=/^(none|table(?!-c[ea]).+)/,ze=new RegExp("^("+we+")(.*)$","i"),Ve=new RegExp("^([+-])=("+we+")","i"),Ye={position:"absolute",visibility:"hidden",display:"block"},Ze={letterSpacing:"0",fontWeight:"400"},Ke=["Webkit","O","Moz","ms"];$.extend({cssHooks:{opacity:{get:function(t,e){if(e){var i=w(t,"opacity");return""===i?"1":i}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,i,s){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var n,r,o,a=$.camelCase(e),h=t.style;return e=$.cssProps[a]||($.cssProps[a]=S(h,a)),o=$.cssHooks[e]||$.cssHooks[a],void 0===i?o&&"get"in o&&void 0!==(n=o.get(t,!1,s))?n:h[e]:(r=typeof i,"string"===r&&(n=Ve.exec(i))&&(i=(n[1]+1)*n[2]+parseFloat($.css(t,e)),r="number"),null!=i&&i===i&&("number"!==r||$.cssNumber[a]||(i+="px"),q.clearCloneStyle||""!==i||0!==e.indexOf("background")||(h[e]="inherit"),o&&"set"in o&&void 0===(i=o.set(t,i,s))||(h[e]=i)),void 0)}},css:function(t,e,i,s){var n,r,o,a=$.camelCase(e);return e=$.cssProps[a]||($.cssProps[a]=S(t.style,a)),o=$.cssHooks[e]||$.cssHooks[a],o&&"get"in o&&(n=o.get(t,!0,i)),void 0===n&&(n=w(t,e,s)),"normal"===n&&e in Ze&&(n=Ze[e]),""===i||i?(r=parseFloat(n),i===!0||$.isNumeric(r)?r||0:n):n}}),$.each(["height","width"],function(t,e){$.cssHooks[e]={get:function(t,i,s){return i?Xe.test($.css(t,"display"))&&0===t.offsetWidth?$.swap(t,Ye,function(){return C(t,e,s)}):C(t,e,s):void 0},set:function(t,i,s){var n=s&&He(t);return A(t,i,s?_(t,e,s,"border-box"===$.css(t,"boxSizing",!1,n),n):0)}}}),$.cssHooks.marginRight=T(q.reliableMarginRight,function(t,e){return e?$.swap(t,{display:"inline-block"},w,[t,"marginRight"]):void 0}),$.each({margin:"",padding:"",border:"Width"},function(t,e){$.cssHooks[t+e]={expand:function(i){for(var s=0,n={},r="string"==typeof i?i.split(" "):[i];4>s;s++)n[t+Te[s]+e]=r[s]||r[s-2]||r[0];return n}},je.test(t)||($.cssHooks[t+e].set=A)}),$.fn.extend({css:function(t,e){return me(this,function(t,e,i){var s,n,r={},o=0;if($.isArray(e)){for(s=He(t),n=e.length;n>o;o++)r[e[o]]=$.css(t,e[o],!1,s);return r}return void 0!==i?$.style(t,e,i):$.css(t,e)},t,e,arguments.length>1)},show:function(){return P(this,!0)},hide:function(){return P(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Se(this)?$(this).show():$(this).hide()})}}),$.Tween=M,M.prototype={constructor:M,init:function(t,e,i,s,n,r){this.elem=t,this.prop=i,this.easing=n||"swing",this.options=e,this.start=this.now=this.cur(),this.end=s,this.unit=r||($.cssNumber[i]?"":"px")},cur:function(){var t=M.propHooks[this.prop];return t&&t.get?t.get(this):M.propHooks._default.get(this)},run:function(t){var e,i=M.propHooks[this.prop];return this.pos=e=this.options.duration?$.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):M.propHooks._default.set(this),this}},M.prototype.init.prototype=M.prototype,M.propHooks={_default:{get:function(t){var e;return null==t.elem[t.prop]||t.elem.style&&null!=t.elem.style[t.prop]?(e=$.css(t.elem,t.prop,""),e&&"auto"!==e?e:0):t.elem[t.prop]},set:function(t){$.fx.step[t.prop]?$.fx.step[t.prop](t):t.elem.style&&(null!=t.elem.style[$.cssProps[t.prop]]||$.cssHooks[t.prop])?$.style(t.elem,t.prop,t.now+t.unit):t.elem[t.prop]=t.now}}},M.propHooks.scrollTop=M.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},$.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2}},$.fx=M.prototype.init,$.fx.step={};var qe,Je,Qe=/^(?:toggle|show|hide)$/,$e=new RegExp("^(?:([+-])=|)("+we+")([a-z%]*)$","i"),ti=/queueHooks$/,ei=[D],ii={"*":[function(t,e){var i=this.createTween(t,e),s=i.cur(),n=$e.exec(e),r=n&&n[3]||($.cssNumber[t]?"":"px"),o=($.cssNumber[t]||"px"!==r&&+s)&&$e.exec($.css(i.elem,t)),a=1,h=20;if(o&&o[3]!==r){r=r||o[3],n=n||[],o=+s||1;do a=a||".5",o/=a,$.style(i.elem,t,o+r);while(a!==(a=i.cur()/s)&&1!==a&&--h)}return n&&(o=i.start=+o||+s||0,i.unit=r,i.end=n[1]?o+(n[1]+1)*n[2]:+n[2]),i}]};$.Animation=$.extend(L,{tweener:function(t,e){$.isFunction(t)?(e=t,t=["*"]):t=t.split(" ");for(var i,s=0,n=t.length;n>s;s++)i=t[s],ii[i]=ii[i]||[],ii[i].unshift(e)},prefilter:function(t,e){e?ei.unshift(t):ei.push(t)}}),$.speed=function(t,e,i){var s=t&&"object"==typeof t?$.extend({},t):{complete:i||!i&&e||$.isFunction(t)&&t,duration:t,easing:i&&e||e&&!$.isFunction(e)&&e};return s.duration=$.fx.off?0:"number"==typeof s.duration?s.duration:s.duration in $.fx.speeds?$.fx.speeds[s.duration]:$.fx.speeds._default,(null==s.queue||s.queue===!0)&&(s.queue="fx"),s.old=s.complete,s.complete=function(){$.isFunction(s.old)&&s.old.call(this),s.queue&&$.dequeue(this,s.queue)},s},$.fn.extend({fadeTo:function(t,e,i,s){return this.filter(Se).css("opacity",0).show().end().animate({opacity:e},t,i,s)},animate:function(t,e,i,s){var n=$.isEmptyObject(t),r=$.speed(e,i,s),o=function(){var e=L(this,$.extend({},t),r);(n||ye.get(this,"finish"))&&e.stop(!0)};return o.finish=o,n||r.queue===!1?this.each(o):this.queue(r.queue,o)},stop:function(t,e,i){var s=function(t){var e=t.stop;delete t.stop,e(i)};return"string"!=typeof t&&(i=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,n=null!=t&&t+"queueHooks",r=$.timers,o=ye.get(this);if(n)o[n]&&o[n].stop&&s(o[n]);else for(n in o)o[n]&&o[n].stop&&ti.test(n)&&s(o[n]);for(n=r.length;n--;)r[n].elem!==this||null!=t&&r[n].queue!==t||(r[n].anim.stop(i),e=!1,r.splice(n,1));(e||!i)&&$.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,i=ye.get(this),s=i[t+"queue"],n=i[t+"queueHooks"],r=$.timers,o=s?s.length:0;for(i.finish=!0,$.queue(this,t,[]),n&&n.stop&&n.stop.call(this,!0),e=r.length;e--;)r[e].elem===this&&r[e].queue===t&&(r[e].anim.stop(!0),r.splice(e,1));for(e=0;o>e;e++)s[e]&&s[e].finish&&s[e].finish.call(this);delete i.finish})}}),$.each(["toggle","show","hide"],function(t,e){var i=$.fn[e];$.fn[e]=function(t,s,n){return null==t||"boolean"==typeof t?i.apply(this,arguments):this.animate(E(e,!0),t,s,n)}}),$.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){$.fn[t]=function(t,i,s){return this.animate(e,t,i,s)}}),$.timers=[],$.fx.tick=function(){var t,e=0,i=$.timers;for(qe=$.now();e<i.length;e++)t=i[e],t()||i[e]!==t||i.splice(e--,1);i.length||$.fx.stop(),qe=void 0},$.fx.timer=function(t){$.timers.push(t),t()?$.fx.start():$.timers.pop()},$.fx.interval=13,$.fx.start=function(){Je||(Je=setInterval($.fx.tick,$.fx.interval))},$.fx.stop=function(){clearInterval(Je),Je=null},$.fx.speeds={slow:600,fast:200,_default:400},$.fn.delay=function(t,e){return t=$.fx?$.fx.speeds[t]||t:t,e=e||"fx",this.queue(e,function(e,i){var s=setTimeout(e,t);i.stop=function(){clearTimeout(s)}})},function(){var t=J.createElement("input"),e=J.createElement("select"),i=e.appendChild(J.createElement("option"));t.type="checkbox",q.checkOn=""!==t.value,q.optSelected=i.selected,e.disabled=!0,q.optDisabled=!i.disabled,t=J.createElement("input"),t.value="t",t.type="radio",q.radioValue="t"===t.value}();var si,ni,ri=$.expr.attrHandle;$.fn.extend({attr:function(t,e){return me(this,$.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){$.removeAttr(this,t)})}}),$.extend({attr:function(t,e,i){var s,n,r=t.nodeType;if(t&&3!==r&&8!==r&&2!==r)return typeof t.getAttribute===_e?$.prop(t,e,i):(1===r&&$.isXMLDoc(t)||(e=e.toLowerCase(),s=$.attrHooks[e]||($.expr.match.bool.test(e)?ni:si)),void 0===i?s&&"get"in s&&null!==(n=s.get(t,e))?n:(n=$.find.attr(t,e),null==n?void 0:n):null!==i?s&&"set"in s&&void 0!==(n=s.set(t,i,e))?n:(t.setAttribute(e,i+""),i):void $.removeAttr(t,e))},removeAttr:function(t,e){var i,s,n=0,r=e&&e.match(pe);if(r&&1===t.nodeType)for(;i=r[n++];)s=$.propFix[i]||i,$.expr.match.bool.test(i)&&(t[s]=!1),t.removeAttribute(i)},attrHooks:{type:{set:function(t,e){if(!q.radioValue&&"radio"===e&&$.nodeName(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}}}),ni={set:function(t,e,i){return e===!1?$.removeAttr(t,i):t.setAttribute(i,i),i}},$.each($.expr.match.bool.source.match(/\w+/g),function(t,e){var i=ri[e]||$.find.attr;ri[e]=function(t,e,s){var n,r;return s||(r=ri[e],ri[e]=n,n=null!=i(t,e,s)?e.toLowerCase():null,ri[e]=r),n}});var oi=/^(?:input|select|textarea|button)$/i;$.fn.extend({prop:function(t,e){return me(this,$.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[$.propFix[t]||t]})}}),$.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(t,e,i){var s,n,r,o=t.nodeType;if(t&&3!==o&&8!==o&&2!==o)return r=1!==o||!$.isXMLDoc(t),r&&(e=$.propFix[e]||e,n=$.propHooks[e]),void 0!==i?n&&"set"in n&&void 0!==(s=n.set(t,i,e))?s:t[e]=i:n&&"get"in n&&null!==(s=n.get(t,e))?s:t[e]},propHooks:{tabIndex:{get:function(t){return t.hasAttribute("tabindex")||oi.test(t.nodeName)||t.href?t.tabIndex:-1}}}}),q.optSelected||($.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),$.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){$.propFix[this.toLowerCase()]=this});var ai=/[\t\r\n\f]/g;$.fn.extend({addClass:function(t){var e,i,s,n,r,o,a="string"==typeof t&&t,h=0,l=this.length;if($.isFunction(t))return this.each(function(e){$(this).addClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pe)||[];l>h;h++)if(i=this[h],s=1===i.nodeType&&(i.className?(" "+i.className+" ").replace(ai," "):" ")){for(r=0;n=e[r++];)s.indexOf(" "+n+" ")<0&&(s+=n+" ");o=$.trim(s),i.className!==o&&(i.className=o)}return this},removeClass:function(t){var e,i,s,n,r,o,a=0===arguments.length||"string"==typeof t&&t,h=0,l=this.length;if($.isFunction(t))return this.each(function(e){$(this).removeClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pe)||[];l>h;h++)if(i=this[h],s=1===i.nodeType&&(i.className?(" "+i.className+" ").replace(ai," "):"")){for(r=0;n=e[r++];)for(;s.indexOf(" "+n+" ")>=0;)s=s.replace(" "+n+" "," ");o=t?$.trim(s):"",i.className!==o&&(i.className=o)}return this},toggleClass:function(t,e){var i=typeof t;return"boolean"==typeof e&&"string"===i?e?this.addClass(t):this.removeClass(t):this.each($.isFunction(t)?function(i){$(this).toggleClass(t.call(this,i,this.className,e),e)}:function(){if("string"===i)for(var e,s=0,n=$(this),r=t.match(pe)||[];e=r[s++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else(i===_e||"boolean"===i)&&(this.className&&ye.set(this,"__className__",this.className),this.className=this.className||t===!1?"":ye.get(this,"__className__")||"")})},hasClass:function(t){for(var e=" "+t+" ",i=0,s=this.length;s>i;i++)if(1===this[i].nodeType&&(" "+this[i].className+" ").replace(ai," ").indexOf(e)>=0)return!0;return!1}});var hi=/\r/g;$.fn.extend({val:function(t){var e,i,s,n=this[0];{if(arguments.length)return s=$.isFunction(t),this.each(function(i){var n;1===this.nodeType&&(n=s?t.call(this,i,$(this).val()):t,null==n?n="":"number"==typeof n?n+="":$.isArray(n)&&(n=$.map(n,function(t){return null==t?"":t+""})),e=$.valHooks[this.type]||$.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,n,"value")||(this.value=n))});if(n)return e=$.valHooks[n.type]||$.valHooks[n.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(i=e.get(n,"value"))?i:(i=n.value,"string"==typeof i?i.replace(hi,""):null==i?"":i)}}}),$.extend({valHooks:{option:{get:function(t){var e=$.find.attr(t,"value");return null!=e?e:$.trim($.text(t))}},select:{get:function(t){for(var e,i,s=t.options,n=t.selectedIndex,r="select-one"===t.type||0>n,o=r?null:[],a=r?n+1:s.length,h=0>n?a:r?n:0;a>h;h++)if(i=s[h],!(!i.selected&&h!==n||(q.optDisabled?i.disabled:null!==i.getAttribute("disabled"))||i.parentNode.disabled&&$.nodeName(i.parentNode,"optgroup"))){if(e=$(i).val(),r)return e;o.push(e)}return o},set:function(t,e){for(var i,s,n=t.options,r=$.makeArray(e),o=n.length;o--;)s=n[o],(s.selected=$.inArray(s.value,r)>=0)&&(i=!0);return i||(t.selectedIndex=-1),r}}}}),$.each(["radio","checkbox"],function(){$.valHooks[this]={set:function(t,e){return $.isArray(e)?t.checked=$.inArray($(t).val(),e)>=0:void 0}},q.checkOn||($.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),$.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){$.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}),$.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)},bind:function(t,e,i){return this.on(t,null,e,i)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,i,s){return this.on(e,t,i,s)},undelegate:function(t,e,i){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",i)}});var li=$.now(),ui=/\?/;$.parseJSON=function(t){return JSON.parse(t+"")},$.parseXML=function(t){var e,i;
  if(!t||"string"!=typeof t)return null;try{i=new DOMParser,e=i.parseFromString(t,"text/xml")}catch(s){e=void 0}return(!e||e.getElementsByTagName("parsererror").length)&&$.error("Invalid XML: "+t),e};var ci,di,pi=/#.*$/,fi=/([?&])_=[^&]*/,gi=/^(.*?):[ \t]*([^\r\n]*)$/gm,mi=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,yi=/^(?:GET|HEAD)$/,vi=/^\/\//,xi=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,bi={},wi={},Ti="*/".concat("*");try{di=location.href}catch(Si){di=J.createElement("a"),di.href="",di=di.href}ci=xi.exec(di.toLowerCase())||[],$.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:di,type:"GET",isLocal:mi.test(ci[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ti,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":$.parseJSON,"text xml":$.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?F(F(t,$.ajaxSettings),e):F($.ajaxSettings,t)},ajaxPrefilter:I(bi),ajaxTransport:I(wi),ajax:function(t,e){function i(t,e,i,o){var h,u,y,v,b,T=e;2!==x&&(x=2,a&&clearTimeout(a),s=void 0,r=o||"",w.readyState=t>0?4:0,h=t>=200&&300>t||304===t,i&&(v=N(c,w,i)),v=U(c,v,w,h),h?(c.ifModified&&(b=w.getResponseHeader("Last-Modified"),b&&($.lastModified[n]=b),b=w.getResponseHeader("etag"),b&&($.etag[n]=b)),204===t||"HEAD"===c.type?T="nocontent":304===t?T="notmodified":(T=v.state,u=v.data,y=v.error,h=!y)):(y=T,(t||!T)&&(T="error",0>t&&(t=0))),w.status=t,w.statusText=(e||T)+"",h?f.resolveWith(d,[u,T,w]):f.rejectWith(d,[w,T,y]),w.statusCode(m),m=void 0,l&&p.trigger(h?"ajaxSuccess":"ajaxError",[w,c,h?u:y]),g.fireWith(d,[w,T]),l&&(p.trigger("ajaxComplete",[w,c]),--$.active||$.event.trigger("ajaxStop")))}"object"==typeof t&&(e=t,t=void 0),e=e||{};var s,n,r,o,a,h,l,u,c=$.ajaxSetup({},e),d=c.context||c,p=c.context&&(d.nodeType||d.jquery)?$(d):$.event,f=$.Deferred(),g=$.Callbacks("once memory"),m=c.statusCode||{},y={},v={},x=0,b="canceled",w={readyState:0,getResponseHeader:function(t){var e;if(2===x){if(!o)for(o={};e=gi.exec(r);)o[e[1].toLowerCase()]=e[2];e=o[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===x?r:null},setRequestHeader:function(t,e){var i=t.toLowerCase();return x||(t=v[i]=v[i]||t,y[t]=e),this},overrideMimeType:function(t){return x||(c.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>x)for(e in t)m[e]=[m[e],t[e]];else w.always(t[w.status]);return this},abort:function(t){var e=t||b;return s&&s.abort(e),i(0,e),this}};if(f.promise(w).complete=g.add,w.success=w.done,w.error=w.fail,c.url=((t||c.url||di)+"").replace(pi,"").replace(vi,ci[1]+"//"),c.type=e.method||e.type||c.method||c.type,c.dataTypes=$.trim(c.dataType||"*").toLowerCase().match(pe)||[""],null==c.crossDomain&&(h=xi.exec(c.url.toLowerCase()),c.crossDomain=!(!h||h[1]===ci[1]&&h[2]===ci[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ci[3]||("http:"===ci[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=$.param(c.data,c.traditional)),B(bi,c,e,w),2===x)return w;l=c.global,l&&0===$.active++&&$.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!yi.test(c.type),n=c.url,c.hasContent||(c.data&&(n=c.url+=(ui.test(n)?"&":"?")+c.data,delete c.data),c.cache===!1&&(c.url=fi.test(n)?n.replace(fi,"$1_="+li++):n+(ui.test(n)?"&":"?")+"_="+li++)),c.ifModified&&($.lastModified[n]&&w.setRequestHeader("If-Modified-Since",$.lastModified[n]),$.etag[n]&&w.setRequestHeader("If-None-Match",$.etag[n])),(c.data&&c.hasContent&&c.contentType!==!1||e.contentType)&&w.setRequestHeader("Content-Type",c.contentType),w.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+Ti+"; q=0.01":""):c.accepts["*"]);for(u in c.headers)w.setRequestHeader(u,c.headers[u]);if(c.beforeSend&&(c.beforeSend.call(d,w,c)===!1||2===x))return w.abort();b="abort";for(u in{success:1,error:1,complete:1})w[u](c[u]);if(s=B(wi,c,e,w)){w.readyState=1,l&&p.trigger("ajaxSend",[w,c]),c.async&&c.timeout>0&&(a=setTimeout(function(){w.abort("timeout")},c.timeout));try{x=1,s.send(y,i)}catch(T){if(!(2>x))throw T;i(-1,T)}}else i(-1,"No Transport");return w},getJSON:function(t,e,i){return $.get(t,e,i,"json")},getScript:function(t,e){return $.get(t,void 0,e,"script")}}),$.each(["get","post"],function(t,e){$[e]=function(t,i,s,n){return $.isFunction(i)&&(n=n||s,s=i,i=void 0),$.ajax({url:t,type:e,dataType:n,data:i,success:s})}}),$.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){$.fn[e]=function(t){return this.on(e,t)}}),$._evalUrl=function(t){return $.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},$.fn.extend({wrapAll:function(t){var e;return $.isFunction(t)?this.each(function(e){$(this).wrapAll(t.call(this,e))}):(this[0]&&(e=$(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return this.each($.isFunction(t)?function(e){$(this).wrapInner(t.call(this,e))}:function(){var e=$(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)})},wrap:function(t){var e=$.isFunction(t);return this.each(function(i){$(this).wrapAll(e?t.call(this,i):t)})},unwrap:function(){return this.parent().each(function(){$.nodeName(this,"body")||$(this).replaceWith(this.childNodes)}).end()}}),$.expr.filters.hidden=function(t){return t.offsetWidth<=0&&t.offsetHeight<=0},$.expr.filters.visible=function(t){return!$.expr.filters.hidden(t)};var Ai=/%20/g,_i=/\[\]$/,Ci=/\r?\n/g,Pi=/^(?:submit|button|image|reset|file)$/i,Mi=/^(?:input|select|textarea|keygen)/i;$.param=function(t,e){var i,s=[],n=function(t,e){e=$.isFunction(e)?e():null==e?"":e,s[s.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=$.ajaxSettings&&$.ajaxSettings.traditional),$.isArray(t)||t.jquery&&!$.isPlainObject(t))$.each(t,function(){n(this.name,this.value)});else for(i in t)G(i,t[i],e,n);return s.join("&").replace(Ai,"+")},$.fn.extend({serialize:function(){return $.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=$.prop(this,"elements");return t?$.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!$(this).is(":disabled")&&Mi.test(this.nodeName)&&!Pi.test(t)&&(this.checked||!Ae.test(t))}).map(function(t,e){var i=$(this).val();return null==i?null:$.isArray(i)?$.map(i,function(t){return{name:e.name,value:t.replace(Ci,"\r\n")}}):{name:e.name,value:i.replace(Ci,"\r\n")}}).get()}}),$.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(t){}};var Oi=0,Ei={},ki={0:200,1223:204},Di=$.ajaxSettings.xhr();t.ActiveXObject&&$(t).on("unload",function(){for(var t in Ei)Ei[t]()}),q.cors=!!Di&&"withCredentials"in Di,q.ajax=Di=!!Di,$.ajaxTransport(function(t){var e;return q.cors||Di&&!t.crossDomain?{send:function(i,s){var n,r=t.xhr(),o=++Oi;if(r.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(n in t.xhrFields)r[n]=t.xhrFields[n];t.mimeType&&r.overrideMimeType&&r.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(n in i)r.setRequestHeader(n,i[n]);e=function(t){return function(){e&&(delete Ei[o],e=r.onload=r.onerror=null,"abort"===t?r.abort():"error"===t?s(r.status,r.statusText):s(ki[r.status]||r.status,r.statusText,"string"==typeof r.responseText?{text:r.responseText}:void 0,r.getAllResponseHeaders()))}},r.onload=e(),r.onerror=e("error"),e=Ei[o]=e("abort");try{r.send(t.hasContent&&t.data||null)}catch(a){if(e)throw a}},abort:function(){e&&e()}}:void 0}),$.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(t){return $.globalEval(t),t}}}),$.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),$.ajaxTransport("script",function(t){if(t.crossDomain){var e,i;return{send:function(s,n){e=$("<script>").prop({async:!0,charset:t.scriptCharset,src:t.url}).on("load error",i=function(t){e.remove(),i=null,t&&n("error"===t.type?404:200,t.type)}),J.head.appendChild(e[0])},abort:function(){i&&i()}}}});var Ri=[],Li=/(=)\?(?=&|$)|\?\?/;$.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Ri.pop()||$.expando+"_"+li++;return this[t]=!0,t}}),$.ajaxPrefilter("json jsonp",function(e,i,s){var n,r,o,a=e.jsonp!==!1&&(Li.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Li.test(e.data)&&"data");return a||"jsonp"===e.dataTypes[0]?(n=e.jsonpCallback=$.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Li,"$1"+n):e.jsonp!==!1&&(e.url+=(ui.test(e.url)?"&":"?")+e.jsonp+"="+n),e.converters["script json"]=function(){return o||$.error(n+" was not called"),o[0]},e.dataTypes[0]="json",r=t[n],t[n]=function(){o=arguments},s.always(function(){t[n]=r,e[n]&&(e.jsonpCallback=i.jsonpCallback,Ri.push(n)),o&&$.isFunction(r)&&r(o[0]),o=r=void 0}),"script"):void 0}),$.parseHTML=function(t,e,i){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(i=e,e=!1),e=e||J;var s=oe.exec(t),n=!i&&[];return s?[e.createElement(s[1])]:(s=$.buildFragment([t],e,n),n&&n.length&&$(n).remove(),$.merge([],s.childNodes))};var Ii=$.fn.load;$.fn.load=function(t,e,i){if("string"!=typeof t&&Ii)return Ii.apply(this,arguments);var s,n,r,o=this,a=t.indexOf(" ");return a>=0&&(s=$.trim(t.slice(a)),t=t.slice(0,a)),$.isFunction(e)?(i=e,e=void 0):e&&"object"==typeof e&&(n="POST"),o.length>0&&$.ajax({url:t,type:n,dataType:"html",data:e}).done(function(t){r=arguments,o.html(s?$("<div>").append($.parseHTML(t)).find(s):t)}).complete(i&&function(t,e){o.each(i,r||[t.responseText,e,t])}),this},$.expr.filters.animated=function(t){return $.grep($.timers,function(e){return t===e.elem}).length};var Bi=t.document.documentElement;$.offset={setOffset:function(t,e,i){var s,n,r,o,a,h,l,u=$.css(t,"position"),c=$(t),d={};"static"===u&&(t.style.position="relative"),a=c.offset(),r=$.css(t,"top"),h=$.css(t,"left"),l=("absolute"===u||"fixed"===u)&&(r+h).indexOf("auto")>-1,l?(s=c.position(),o=s.top,n=s.left):(o=parseFloat(r)||0,n=parseFloat(h)||0),$.isFunction(e)&&(e=e.call(t,i,a)),null!=e.top&&(d.top=e.top-a.top+o),null!=e.left&&(d.left=e.left-a.left+n),"using"in e?e.using.call(t,d):c.css(d)}},$.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){$.offset.setOffset(this,t,e)});var e,i,s=this[0],n={top:0,left:0},r=s&&s.ownerDocument;if(r)return e=r.documentElement,$.contains(e,s)?(typeof s.getBoundingClientRect!==_e&&(n=s.getBoundingClientRect()),i=j(r),{top:n.top+i.pageYOffset-e.clientTop,left:n.left+i.pageXOffset-e.clientLeft}):n},position:function(){if(this[0]){var t,e,i=this[0],s={top:0,left:0};return"fixed"===$.css(i,"position")?e=i.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),$.nodeName(t[0],"html")||(s=t.offset()),s.top+=$.css(t[0],"borderTopWidth",!0),s.left+=$.css(t[0],"borderLeftWidth",!0)),{top:e.top-s.top-$.css(i,"marginTop",!0),left:e.left-s.left-$.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||Bi;t&&!$.nodeName(t,"html")&&"static"===$.css(t,"position");)t=t.offsetParent;return t||Bi})}}),$.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,i){var s="pageYOffset"===i;$.fn[e]=function(n){return me(this,function(e,n,r){var o=j(e);return void 0===r?o?o[i]:e[n]:void(o?o.scrollTo(s?t.pageXOffset:r,s?r:t.pageYOffset):e[n]=r)},e,n,arguments.length,null)}}),$.each(["top","left"],function(t,e){$.cssHooks[e]=T(q.pixelPosition,function(t,i){return i?(i=w(t,e),We.test(i)?$(t).position()[e]+"px":i):void 0})}),$.each({Height:"height",Width:"width"},function(t,e){$.each({padding:"inner"+t,content:e,"":"outer"+t},function(i,s){$.fn[s]=function(s,n){var r=arguments.length&&(i||"boolean"!=typeof s),o=i||(s===!0||n===!0?"margin":"border");return me(this,function(e,i,s){var n;return $.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(n=e.documentElement,Math.max(e.body["scroll"+t],n["scroll"+t],e.body["offset"+t],n["offset"+t],n["client"+t])):void 0===s?$.css(e,i,o):$.style(e,i,s,o)},e,r?s:void 0,r,null)}})}),$.fn.size=function(){return this.length},$.fn.andSelf=$.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return $});var Fi=t.jQuery,Ni=t.$;return $.noConflict=function(e){return t.$===$&&(t.$=Ni),e&&t.jQuery===$&&(t.jQuery=Fi),$},typeof e===_e&&(t.jQuery=t.$=$),$})},{}],15:[function(t,e,i){(function(){var t=this,s=t._,n={},r=Array.prototype,o=Object.prototype,a=Function.prototype,h=r.push,l=r.slice,u=r.concat,c=o.toString,d=o.hasOwnProperty,p=r.forEach,f=r.map,g=r.reduce,m=r.reduceRight,y=r.filter,v=r.every,x=r.some,b=r.indexOf,w=r.lastIndexOf,T=Array.isArray,S=Object.keys,A=a.bind,_=function(t){return t instanceof _?t:this instanceof _?void(this._wrapped=t):new _(t)};"undefined"!=typeof i?("undefined"!=typeof e&&e.exports&&(i=e.exports=_),i._=_):t._=_,_.VERSION="1.6.0";var C=_.each=_.forEach=function(t,e,i){if(null==t)return t;if(p&&t.forEach===p)t.forEach(e,i);else if(t.length===+t.length){for(var s=0,r=t.length;r>s;s++)if(e.call(i,t[s],s,t)===n)return}else for(var o=_.keys(t),s=0,r=o.length;r>s;s++)if(e.call(i,t[o[s]],o[s],t)===n)return;return t};_.map=_.collect=function(t,e,i){var s=[];return null==t?s:f&&t.map===f?t.map(e,i):(C(t,function(t,n,r){s.push(e.call(i,t,n,r))}),s)};var P="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(t,e,i,s){var n=arguments.length>2;if(null==t&&(t=[]),g&&t.reduce===g)return s&&(e=_.bind(e,s)),n?t.reduce(e,i):t.reduce(e);if(C(t,function(t,r,o){n?i=e.call(s,i,t,r,o):(i=t,n=!0)}),!n)throw new TypeError(P);return i},_.reduceRight=_.foldr=function(t,e,i,s){var n=arguments.length>2;if(null==t&&(t=[]),m&&t.reduceRight===m)return s&&(e=_.bind(e,s)),n?t.reduceRight(e,i):t.reduceRight(e);var r=t.length;if(r!==+r){var o=_.keys(t);r=o.length}if(C(t,function(a,h,l){h=o?o[--r]:--r,n?i=e.call(s,i,t[h],h,l):(i=t[h],n=!0)}),!n)throw new TypeError(P);return i},_.find=_.detect=function(t,e,i){var s;return M(t,function(t,n,r){return e.call(i,t,n,r)?(s=t,!0):void 0}),s},_.filter=_.select=function(t,e,i){var s=[];return null==t?s:y&&t.filter===y?t.filter(e,i):(C(t,function(t,n,r){e.call(i,t,n,r)&&s.push(t)}),s)},_.reject=function(t,e,i){return _.filter(t,function(t,s,n){return!e.call(i,t,s,n)},i)},_.every=_.all=function(t,e,i){e||(e=_.identity);var s=!0;return null==t?s:v&&t.every===v?t.every(e,i):(C(t,function(t,r,o){return(s=s&&e.call(i,t,r,o))?void 0:n}),!!s)};var M=_.some=_.any=function(t,e,i){e||(e=_.identity);var s=!1;return null==t?s:x&&t.some===x?t.some(e,i):(C(t,function(t,r,o){return s||(s=e.call(i,t,r,o))?n:void 0}),!!s)};_.contains=_.include=function(t,e){return null==t?!1:b&&t.indexOf===b?-1!=t.indexOf(e):M(t,function(t){return t===e})},_.invoke=function(t,e){var i=l.call(arguments,2),s=_.isFunction(e);return _.map(t,function(t){return(s?e:t[e]).apply(t,i)})},_.pluck=function(t,e){return _.map(t,_.property(e))},_.where=function(t,e){return _.filter(t,_.matches(e))},_.findWhere=function(t,e){return _.find(t,_.matches(e))},_.max=function(t,e,i){if(!e&&_.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.max.apply(Math,t);var s=-1/0,n=-1/0;return C(t,function(t,r,o){var a=e?e.call(i,t,r,o):t;a>n&&(s=t,n=a)}),s},_.min=function(t,e,i){if(!e&&_.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.min.apply(Math,t);var s=1/0,n=1/0;return C(t,function(t,r,o){var a=e?e.call(i,t,r,o):t;n>a&&(s=t,n=a)}),s},_.shuffle=function(t){var e,i=0,s=[];return C(t,function(t){e=_.random(i++),s[i-1]=s[e],s[e]=t}),s},_.sample=function(t,e,i){return null==e||i?(t.length!==+t.length&&(t=_.values(t)),t[_.random(t.length-1)]):_.shuffle(t).slice(0,Math.max(0,e))};var O=function(t){return null==t?_.identity:_.isFunction(t)?t:_.property(t)};_.sortBy=function(t,e,i){return e=O(e),_.pluck(_.map(t,function(t,s,n){return{value:t,index:s,criteria:e.call(i,t,s,n)}}).sort(function(t,e){var i=t.criteria,s=e.criteria;if(i!==s){if(i>s||void 0===i)return 1;if(s>i||void 0===s)return-1}return t.index-e.index}),"value")};var E=function(t){return function(e,i,s){var n={};return i=O(i),C(e,function(r,o){var a=i.call(s,r,o,e);t(n,a,r)}),n}};_.groupBy=E(function(t,e,i){_.has(t,e)?t[e].push(i):t[e]=[i]}),_.indexBy=E(function(t,e,i){t[e]=i}),_.countBy=E(function(t,e){_.has(t,e)?t[e]++:t[e]=1}),_.sortedIndex=function(t,e,i,s){i=O(i);for(var n=i.call(s,e),r=0,o=t.length;o>r;){var a=r+o>>>1;i.call(s,t[a])<n?r=a+1:o=a}return r},_.toArray=function(t){return t?_.isArray(t)?l.call(t):t.length===+t.length?_.map(t,_.identity):_.values(t):[]},_.size=function(t){return null==t?0:t.length===+t.length?t.length:_.keys(t).length},_.first=_.head=_.take=function(t,e,i){return null==t?void 0:null==e||i?t[0]:0>e?[]:l.call(t,0,e)},_.initial=function(t,e,i){return l.call(t,0,t.length-(null==e||i?1:e))},_.last=function(t,e,i){return null==t?void 0:null==e||i?t[t.length-1]:l.call(t,Math.max(t.length-e,0))},_.rest=_.tail=_.drop=function(t,e,i){return l.call(t,null==e||i?1:e)},_.compact=function(t){return _.filter(t,_.identity)};var k=function(t,e,i){return e&&_.every(t,_.isArray)?u.apply(i,t):(C(t,function(t){_.isArray(t)||_.isArguments(t)?e?h.apply(i,t):k(t,e,i):i.push(t)}),i)};_.flatten=function(t,e){return k(t,e,[])},_.without=function(t){return _.difference(t,l.call(arguments,1))},_.partition=function(t,e){var i=[],s=[];return C(t,function(t){(e(t)?i:s).push(t)}),[i,s]},_.uniq=_.unique=function(t,e,i,s){_.isFunction(e)&&(s=i,i=e,e=!1);var n=i?_.map(t,i,s):t,r=[],o=[];return C(n,function(i,s){(e?s&&o[o.length-1]===i:_.contains(o,i))||(o.push(i),r.push(t[s]))}),r},_.union=function(){return _.uniq(_.flatten(arguments,!0))},_.intersection=function(t){var e=l.call(arguments,1);return _.filter(_.uniq(t),function(t){return _.every(e,function(e){return _.contains(e,t)})})},_.difference=function(t){var e=u.apply(r,l.call(arguments,1));return _.filter(t,function(t){return!_.contains(e,t)})},_.zip=function(){for(var t=_.max(_.pluck(arguments,"length").concat(0)),e=new Array(t),i=0;t>i;i++)e[i]=_.pluck(arguments,""+i);return e},_.object=function(t,e){if(null==t)return{};for(var i={},s=0,n=t.length;n>s;s++)e?i[t[s]]=e[s]:i[t[s][0]]=t[s][1];return i},_.indexOf=function(t,e,i){if(null==t)return-1;var s=0,n=t.length;if(i){if("number"!=typeof i)return s=_.sortedIndex(t,e),t[s]===e?s:-1;s=0>i?Math.max(0,n+i):i}if(b&&t.indexOf===b)return t.indexOf(e,i);for(;n>s;s++)if(t[s]===e)return s;return-1},_.lastIndexOf=function(t,e,i){if(null==t)return-1;var s=null!=i;if(w&&t.lastIndexOf===w)return s?t.lastIndexOf(e,i):t.lastIndexOf(e);for(var n=s?i:t.length;n--;)if(t[n]===e)return n;return-1},_.range=function(t,e,i){arguments.length<=1&&(e=t||0,t=0),i=arguments[2]||1;for(var s=Math.max(Math.ceil((e-t)/i),0),n=0,r=new Array(s);s>n;)r[n++]=t,t+=i;return r};var D=function(){};_.bind=function(t,e){var i,s;if(A&&t.bind===A)return A.apply(t,l.call(arguments,1));if(!_.isFunction(t))throw new TypeError;return i=l.call(arguments,2),s=function(){if(!(this instanceof s))return t.apply(e,i.concat(l.call(arguments)));D.prototype=t.prototype;var n=new D;D.prototype=null;var r=t.apply(n,i.concat(l.call(arguments)));return Object(r)===r?r:n}},_.partial=function(t){var e=l.call(arguments,1);return function(){for(var i=0,s=e.slice(),n=0,r=s.length;r>n;n++)s[n]===_&&(s[n]=arguments[i++]);for(;i<arguments.length;)s.push(arguments[i++]);return t.apply(this,s)}},_.bindAll=function(t){var e=l.call(arguments,1);if(0===e.length)throw new Error("bindAll must be passed function names");return C(e,function(e){t[e]=_.bind(t[e],t)}),t},_.memoize=function(t,e){var i={};return e||(e=_.identity),function(){var s=e.apply(this,arguments);return _.has(i,s)?i[s]:i[s]=t.apply(this,arguments)}},_.delay=function(t,e){var i=l.call(arguments,2);return setTimeout(function(){return t.apply(null,i)},e)},_.defer=function(t){return _.delay.apply(_,[t,1].concat(l.call(arguments,1)))},_.throttle=function(t,e,i){var s,n,r,o=null,a=0;i||(i={});var h=function(){a=i.leading===!1?0:_.now(),o=null,r=t.apply(s,n),s=n=null};return function(){var l=_.now();a||i.leading!==!1||(a=l);var u=e-(l-a);return s=this,n=arguments,0>=u?(clearTimeout(o),o=null,a=l,r=t.apply(s,n),s=n=null):o||i.trailing===!1||(o=setTimeout(h,u)),r}},_.debounce=function(t,e,i){var s,n,r,o,a,h=function(){var l=_.now()-o;e>l?s=setTimeout(h,e-l):(s=null,i||(a=t.apply(r,n),r=n=null))};return function(){r=this,n=arguments,o=_.now();var l=i&&!s;return s||(s=setTimeout(h,e)),l&&(a=t.apply(r,n),r=n=null),a}},_.once=function(t){var e,i=!1;return function(){return i?e:(i=!0,e=t.apply(this,arguments),t=null,e)}},_.wrap=function(t,e){return _.partial(e,t)},_.compose=function(){var t=arguments;return function(){for(var e=arguments,i=t.length-1;i>=0;i--)e=[t[i].apply(this,e)];return e[0]}},_.after=function(t,e){return function(){return--t<1?e.apply(this,arguments):void 0}},_.keys=function(t){if(!_.isObject(t))return[];if(S)return S(t);var e=[];for(var i in t)_.has(t,i)&&e.push(i);return e},_.values=function(t){for(var e=_.keys(t),i=e.length,s=new Array(i),n=0;i>n;n++)s[n]=t[e[n]];return s},_.pairs=function(t){for(var e=_.keys(t),i=e.length,s=new Array(i),n=0;i>n;n++)s[n]=[e[n],t[e[n]]];return s},_.invert=function(t){for(var e={},i=_.keys(t),s=0,n=i.length;n>s;s++)e[t[i[s]]]=i[s];return e},_.functions=_.methods=function(t){var e=[];for(var i in t)_.isFunction(t[i])&&e.push(i);return e.sort()},_.extend=function(t){return C(l.call(arguments,1),function(e){if(e)for(var i in e)t[i]=e[i]}),t},_.pick=function(t){var e={},i=u.apply(r,l.call(arguments,1));return C(i,function(i){i in t&&(e[i]=t[i])}),e},_.omit=function(t){var e={},i=u.apply(r,l.call(arguments,1));for(var s in t)_.contains(i,s)||(e[s]=t[s]);return e},_.defaults=function(t){return C(l.call(arguments,1),function(e){if(e)for(var i in e)void 0===t[i]&&(t[i]=e[i])}),t},_.clone=function(t){return _.isObject(t)?_.isArray(t)?t.slice():_.extend({},t):t},_.tap=function(t,e){return e(t),t};var R=function(t,e,i,s){if(t===e)return 0!==t||1/t==1/e;if(null==t||null==e)return t===e;t instanceof _&&(t=t._wrapped),e instanceof _&&(e=e._wrapped);var n=c.call(t);if(n!=c.call(e))return!1;switch(n){case"[object String]":return t==String(e);case"[object Number]":return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case"[object Date]":case"[object Boolean]":return+t==+e;case"[object RegExp]":return t.source==e.source&&t.global==e.global&&t.multiline==e.multiline&&t.ignoreCase==e.ignoreCase}if("object"!=typeof t||"object"!=typeof e)return!1;for(var r=i.length;r--;)if(i[r]==t)return s[r]==e;var o=t.constructor,a=e.constructor;if(o!==a&&!(_.isFunction(o)&&o instanceof o&&_.isFunction(a)&&a instanceof a)&&"constructor"in t&&"constructor"in e)return!1;i.push(t),s.push(e);var h=0,l=!0;if("[object Array]"==n){if(h=t.length,l=h==e.length)for(;h--&&(l=R(t[h],e[h],i,s)););}else{for(var u in t)if(_.has(t,u)&&(h++,!(l=_.has(e,u)&&R(t[u],e[u],i,s))))break;if(l){for(u in e)if(_.has(e,u)&&!h--)break;l=!h}}return i.pop(),s.pop(),l};_.isEqual=function(t,e){return R(t,e,[],[])},_.isEmpty=function(t){if(null==t)return!0;if(_.isArray(t)||_.isString(t))return 0===t.length;for(var e in t)if(_.has(t,e))return!1;return!0},_.isElement=function(t){return!(!t||1!==t.nodeType)},_.isArray=T||function(t){return"[object Array]"==c.call(t)},_.isObject=function(t){return t===Object(t)},C(["Arguments","Function","String","Number","Date","RegExp"],function(t){_["is"+t]=function(e){return c.call(e)=="[object "+t+"]"}}),_.isArguments(arguments)||(_.isArguments=function(t){return!(!t||!_.has(t,"callee"))}),"function"!=typeof/./&&(_.isFunction=function(t){return"function"==typeof t}),_.isFinite=function(t){return isFinite(t)&&!isNaN(parseFloat(t))},_.isNaN=function(t){return _.isNumber(t)&&t!=+t},_.isBoolean=function(t){return t===!0||t===!1||"[object Boolean]"==c.call(t)},_.isNull=function(t){return null===t},_.isUndefined=function(t){return void 0===t},_.has=function(t,e){return d.call(t,e)},_.noConflict=function(){return t._=s,this},_.identity=function(t){return t},_.constant=function(t){return function(){return t}},_.property=function(t){return function(e){return e[t]}},_.matches=function(t){return function(e){if(e===t)return!0;for(var i in t)if(t[i]!==e[i])return!1;return!0}},_.times=function(t,e,i){for(var s=Array(Math.max(0,t)),n=0;t>n;n++)s[n]=e.call(i,n);return s},_.random=function(t,e){return null==e&&(e=t,t=0),t+Math.floor(Math.random()*(e-t+1))},_.now=Date.now||function(){return(new Date).getTime()};var L={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};L.unescape=_.invert(L.escape);var I={escape:new RegExp("["+_.keys(L.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(L.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(t){_[t]=function(e){return null==e?"":(""+e).replace(I[t],function(e){return L[t][e]})}}),_.result=function(t,e){if(null==t)return void 0;var i=t[e];return _.isFunction(i)?i.call(t):i},_.mixin=function(t){C(_.functions(t),function(e){var i=_[e]=t[e];_.prototype[e]=function(){var t=[this._wrapped];return h.apply(t,arguments),G.call(this,i.apply(_,t))}})};var B=0;_.uniqueId=function(t){var e=++B+"";return t?t+e:e},_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var F=/(.)^/,N={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},U=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(t,e,i){var s;i=_.defaults({},i,_.templateSettings);var n=new RegExp([(i.escape||F).source,(i.interpolate||F).source,(i.evaluate||F).source].join("|")+"|$","g"),r=0,o="__p+='";t.replace(n,function(e,i,s,n,a){return o+=t.slice(r,a).replace(U,function(t){return"\\"+N[t]}),i&&(o+="'+\n((__t=("+i+"))==null?'':_.escape(__t))+\n'"),s&&(o+="'+\n((__t=("+s+"))==null?'':__t)+\n'"),n&&(o+="';\n"+n+"\n__p+='"),r=a+e.length,e}),o+="';\n",i.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{s=new Function(i.variable||"obj","_",o)}catch(a){throw a.source=o,a}if(e)return s(e,_);var h=function(t){return s.call(this,t,_)};return h.source="function("+(i.variable||"obj")+"){\n"+o+"}",h},_.chain=function(t){return _(t).chain()};var G=function(t){return this._chain?_(t).chain():t};_.mixin(_),C(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=r[t];_.prototype[t]=function(){var i=this._wrapped;return e.apply(i,arguments),"shift"!=t&&"splice"!=t||0!==i.length||delete i[0],G.call(this,i)}}),C(["concat","join","slice"],function(t){var e=r[t];_.prototype[t]=function(){return G.call(this,e.apply(this._wrapped,arguments))}}),_.extend(_.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return _})}).call(this)},{}],"bogey-pong":[function(t,e){var i=t("./lib/pong"),s="iVBORw0KGgoAAAANSUhEUgAAAeAAAAEOCAIAAADe+FMwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNkY3NDFGOTE0ODIxMUU0QTNDRUNBREU4QjcwNDFGNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNkY3NDFGQTE0ODIxMUU0QTNDRUNBREU4QjcwNDFGNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2Rjc0MUY3MTQ4MjExRTRBM0NFQ0FERThCNzA0MUY0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI2Rjc0MUY4MTQ4MjExRTRBM0NFQ0FERThCNzA0MUY0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jEaj2AAA9yxJREFUeNrsvQl0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";
  e.exports={bogey:{name:"Pong",thumbnail:"data:image/png;base64,"+s,run:function(t){var e=new i(t);t.on("request",function(t){e.request(t)}),t.on("pause",function(){e.pause()}),t.on("play",function(){e.unpause()}),t.on("speedUp",function(){e.speedUp()}),t.on("slowDown",function(){e.slowDown()}),t.on("defaultSpeed",function(){e.defaultSpeed()})}}}},{"./lib/pong":6}]},{},["bogey-pong"]);