require "JS&B Library"

NewAudio.CreateChannel("Song")
NewAudio.PlaySound("Song", "Zef - Tension", false, 1)
NewAudio.Pause("Song")
Black = CreateSprite("Pixel", "Top")
Black.color = {0,0,0}
Black.Scale(640, 480)
Black.MoveTo(320, 240)
Cargador = CreateSprite("Tension Level/Arrow","Bottom")
Cargador.Set("Tension Level/CircleEye")
Cargador.Set("Tension Level/Engranaje")
Cargador.Set("Tension Level/Engrane")
Cargador.Set("Tension Level/Line")
Cargador.Set("Tension Level/Riel")
Cargador.Set("Tension Level/RielInv")
Cargador.Set("Tension Level/Semicircle")
Cargador.Set("Tension Level/Sierra")
Cargador.Set("Tension Level/Song")
Cargador.Remove()
Cargador = nil

timer = -240
Empezar = 120
phases = {0,0,0,0,0}
Old = 1
CheckPoints = {}

SetMaxHits(12)
SetPPCollision(true)

function Update()
	SongTime = NewAudio.GetPlayTime("Song")
	Player.sprite.alpha = 0
	if not Pause then
		timer = timer + 1
		if timer > -210 and timer <= -150 then
			Black.alpha = (-150 - timer)/60
		elseif timer > -90 and timer <= -60 then
			if not TituloSong then
				TituloSong = CreateSprite("Tension Level/Song","Top")
				VersionLevel = CreateSprite("Tension Level/Version","Top")
				Advice = CreateSprite("Advice "..GetAlMightyGlobal("Idioma"),"BelowPlayer")
				Advice.MoveTo(320, 240)
				VersionLevel.color = {0.5,0.5,0.5}
				Advice.color = {0.75,0.75,0.75}
			end
			TituloSong.MoveTo(648.5 - 100*math.sin(math.rad(90/30*(timer + 90))), 45.5)
			TituloSong.alpha = 1/30*(timer + 90)
			VersionLevel.MoveTo(-45.5 + 100*math.sin(math.rad(90/30*(timer + 90))), 17.5)
			VersionLevel.alpha = 1/30*(timer + 90)
			Advice.alpha = 1/30*(timer + 90)
		elseif timer > 60 and timer <= 90 and TituloSong then
			if not Spawned then
				Spawned = true
				SpawnMeter(297.1)
			end
			TituloSong.MoveTo(548.5 + 100/30*(timer - 60), 45.5)
			TituloSong.alpha = 1 - 1/30*(timer - 60)
			VersionLevel.MoveTo(54.5 - 100*math.sin(math.rad(90/30*(timer - 60))), 17.5)
			VersionLevel.alpha = 1 - 1/30*(timer - 60)
			Advice.alpha = 1 - 1/30*(timer - 60)
			if timer == 90 then
				TituloSong.Remove()
				VersionLevel.Remove()
				Advice.Remove()
				TituloSong = nil
				VersionLevel = nil
				Advice = nil
			end
		end
		if timer == 60 then
			Eye1 = CreateProjectileAbs("JS&B Library Sprites/Circle", 320, 240)
			Eye1.SetVar("SpeedRot", 1)
			Eye1.SetVar("NoDamage", 40)
			Eye1.sprite.color = {1,1,1}
			Eye1.sprite.Scale(0,0)
			Eye1.SetVar("X", 320)
			Eye1.SetVar("Y", 240)
			table.insert(Bullets, Eye1)
		elseif timer > 60 and timer <= 80 then
			Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/5*timer)))/255, (183.5 - 71.5*math.cos(math.rad(360/5*timer)))/255}
			Eye1.sprite.Scale(25*math.sin(math.rad(90/20*(timer - 60)))/480, 25*math.sin(math.rad(90/20*(timer - 60)))/480)
		elseif timer > 80 and timer <= 100 then
			Eye1.sprite.Scale(25*math.cos(math.rad(90/20*(timer - 80)))/480, 25*math.cos(math.rad(90/20*(timer - 80)))/480)
			if timer == 100 then
				Engrane = CreateProjectileAbs("Tension Level/Engrane", 320, 240)
				Engrane.SetVar("NoDamage", 1)
				Engrane.SetVar("SpeedRot", 1)
				Engrane.sprite.Scale(0,0)
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.SetVar("X", 320)
				Engrane.SetVar("Y", 240)
				table.insert(Bullets, Engrane)
				Eye1.sprite.SendToTop()
			end
		elseif timer > 100 and timer <= 120 then
			Eye1.sprite.Scale(25*math.sin(math.rad(90/20*(timer - 100)))/480, 25*math.sin(math.rad(90/20*(timer - 100)))/480)
			Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/5*timer)))/255, (183.5 - 71.5*math.cos(math.rad(360/5*timer)))/255}
			Engrane.sprite.Scale(160*math.sin(math.rad(90/20*(timer - 100)))/480, 160*math.sin(math.rad(90/20*(timer - 100)))/480)
			if timer == 107 then
				local randomizador = math.random(200, 280)
				math.randomseed(0)
				table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 240), VelRot = 10, Misiles = 16, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(510, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 0, Eliminate = 0.55})
			elseif timer == 120 then
				NewAudio.Unpause("Song")
			end
		elseif timer > 120 then
			if NewAudio.isStopped("Song") then
				DespawnMeter()
				if not wait then
					wait = 0
				end
				wait = wait + 1
				if wait > 120 and wait <= 180 then
					Black.alpha = (wait - 120)/60
				elseif wait == 300 then
					EndAll = true
				end
			end
			if SongTime > 0.72 + 0.88*phases[1] and phases[1] < 5 then
				math.randomseed(phases[1]*10)
				local randomizador = math.random(200, 280)
				if phases[1]%2 == 1 then
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 16, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(510, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 0.72 + 0.88*phases[1], Eliminate = 1.47 + 0.88*phases[1]})
				else
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", -20, 0), VelRot = 10, Misiles = 16, ScaleLimit = 40, PX = -20, PY = randomizador, X = math.random(50, 130) + 20, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 0.72 + 0.88*phases[1], Eliminate = 1.47 + 0.88*phases[1]})
				end
				phases[1] = phases[1] + 1
				if backwards then
					phases[1] = -1
				end
			elseif SongTime > 5.27 and phases[1] == 5 then
				Eye1.SetVar("SpeedRot", 0)
				Engrane.SetVar("SpeedRot", 0)
				Eye1.sprite.rotation = 0
				Diff = 45 - Engrane.sprite.rotation%45
				Fijo = Engrane.sprite.rotation
				phases[1] = 6
				if backwards then
					phases[1] = -1
				end
			elseif phases[1] == 6 then
				if SongTime > 5.27 then
					if SongTime <= 5.47 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/255}
						Eye1.sprite.Scale((30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/480, (30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/480)
						Engrane.sprite.Scale((165 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/480, (165 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.27))))/480)
						Engrane.sprite.rotation = Fijo + Diff/0.2*(SongTime - 5.27)
					elseif not backwards then
						Eye1.sprite.color = {1, 32/255, 112/255}
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.Scale(25/480, 25/480)
						Engrane.sprite.Scale(160/480, 160/480)
						Engrane.sprite.rotation = 0
						phases[1] = 7
					end
				elseif backwards then
					Eye1.SetVar("SpeedRot", 1)
					Engrane.SetVar("SpeedRot", 1)
					Eye1.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.Scale(25/480, 25/480)
					Engrane.sprite.Scale(160/480, 160/480)
					Engrane.sprite.rotation = Fijo
					phases[1] = -1
				end
			elseif phases[1] == 7 then
				if not Riel1 and not Riel2 then
					Riel1 = CreateProjectileAbs("Tension Level/Riel", 0, 0)
					Riel1.SetVar("NoDamage", 1)
					Riel1.sprite.color = {1, 32/255, 112/255}
					Riel1.SetVar("SpeedRot", 0)
					Riel1.SetVar("X", 330)
					Riel1.SetVar("Y", 45)
					table.insert(Bullets, Riel1)
					Riel2 = CreateProjectileAbs("Tension Level/RielInv", 0, 0)
					Riel2.SetVar("NoDamage", 1)
					Riel2.sprite.color = {1, 32/255, 112/255}
					Riel2.SetVar("SpeedRot", 0)
					Riel2.SetVar("X", 330)
					Riel2.SetVar("Y", 435)
					table.insert(Bullets, Riel2)
				end
				if not Eye2 then
					Eye2 = CreateProjectileAbs("JS&B Library Sprites/Circle", 0, 0)
					Eye2.SetVar("NoDamage", 1)
					Eye2.sprite.Scale(25/480, 25/480)
					Eye2.sprite.color = {1, 32/255, 112/255}
					Eye2.SetVar("SpeedRot", 0)
					Eye2.SetVar("X", 320)
					Eye2.SetVar("Y", 240)
					table.insert(Bullets, Eye2)
				end
				if SongTime > 5.57 then
					if SongTime <= 5.67 then
						Eye1.SetVar("X", 320 - 20*math.sin(math.rad(90/0.1*(SongTime - 5.57))))
						Eye2.SetVar("X", 320 + 20*math.sin(math.rad(90/0.1*(SongTime - 5.57))))
					elseif not backwards then
						Eye1.SetVar("X", 300)
						Eye2.SetVar("X", 340)
						phases[1] = 8
					end
				elseif backwards then
					Riel1.SetVar("Remove", true)
					Riel2.SetVar("Remove", true)
					Eye1.SetVar("X", 320)
					Eye2.SetVar("Remove", true)
					Eye2 = nil
					phases[1] = 6
				end
			elseif phases[1] == 8 then
				Eye1.sprite.rotation = -22.5
				Eye2.sprite.rotation = 22.5
				if SongTime > 5.87 then
					Eye1.sprite.Set("Tension Level/Semicircle")
					Eye2.sprite.Set("Tension Level/Semicircle")
					Eye1.SetVar("Y", 237)
					Eye2.SetVar("Y", 237)
					if SongTime <= 6.07 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/255}
						Eye1.sprite.Scale((30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/480, (30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/480)
						Eye2.sprite.Scale((30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/480, (30 - 5*math.cos(math.rad(360/0.2*(SongTime - 5.87))))/480)
					elseif not backwards then
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.Scale(25/480, 25/480)
						Eye2.sprite.Scale(25/480, 25/480)
						phases[1] = 9
					end
				elseif backwards then
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.Scale(25/480, 25/480)
					Eye2.sprite.Scale(25/480, 25/480)
					Eye1.sprite.Set("JS&B Library Sprites/Circle")
					Eye2.sprite.Set("JS&B Library Sprites/Circle")
					Eye1.SetVar("Y", 240)
					Eye2.SetVar("Y", 240)
					phases[1] = 7
				end
			elseif phases[1] == 9 then
				if SongTime > 6.17 then
					if SongTime <= 6.47 then
						Engrane.SetVar("X", 557 - 237*math.cos(math.rad(90/0.3*(SongTime - 6.17))))
						Engrane.sprite.rotation = -180/0.3*(SongTime - 6.17)
					elseif not backwards then
						Engrane.sprite.rotation = 0
						Engrane.SetVar("X", 557)
						phases[1] = 10
					end
				elseif backwards then
					Engrane.SetVar("X", 320)
					Engrane.sprite.rotation = 0
					phases[1] = 8
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
			elseif phases[1] == 10 then
				if SongTime > 6.77 then
					if SongTime <= 6.92 then
						Engrane.SetVar("Y", 161 + 79*math.cos(math.rad(90/0.15*(SongTime - 6.77))))
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255}
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.15*(SongTime - 6.77))))/255}
					elseif not backwards then
						Engrane.SetVar("Y", 161)
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						phases[1] = 11
					end
				elseif backwards then
					Engrane.SetVar("Y", 240)
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					phases[1] = 9
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") - 3)
				Eye2.SetVar("Y", Engrane.GetVar("Y") - 3)
			elseif phases[1] == 11 then
				if SongTime > 6.92 then
					if SongTime <= 7.25 then
						Eye1.SetVar("X", Engrane.GetVar("X") - 20 - 6*math.sin(math.rad(90/0.33*(SongTime - 6.92))))
						Eye1.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90/0.33*(SongTime - 6.92))))
						Eye2.SetVar("X", Engrane.GetVar("X") + 20 - 6*math.sin(math.rad(90/0.33*(SongTime - 6.92))))
						Eye2.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90/0.33*(SongTime - 6.92))))
					elseif not backwards then
						Eye1.SetVar("X", Engrane.GetVar("X") - 26)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("X", Engrane.GetVar("X") + 14)
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						phases[1] = 12
					end
				elseif backwards then
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye1.SetVar("Y", Engrane.GetVar("Y") - 3)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					Eye2.SetVar("Y", Engrane.GetVar("Y") - 3)
					phases[1] = 10
				end
			elseif phases[1] == 12 then
				if SongTime > 7.55 then
					if SongTime <= 8.8 then
						Engrane.SetVar("X", -103 + 660*math.cos(math.rad(90/1.25*(SongTime - 7.55))))
						Engrane.sprite.rotation = 495 - 495*math.cos(math.rad(90/1.25*(SongTime - 7.55)))
					elseif not backwards then
						Engrane.SetVar("X", -103)
						Engrane.SetVar("Y", 319)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 13
					end
				elseif backwards then
					Engrane.SetVar("X", 557)
					Engrane.sprite.rotation = 0
					phases[1] = 11
				end
				if not rango or rango <= 2 - 2*math.cos(math.rad(90/0.5*math.min((SongTime - 7.55), 0.5))) then
					shakescreen = 9
					rango = 2 - 2*math.cos(math.rad(90/0.5*math.min((SongTime - 7.55), 0.5)))
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 26)
				Eye2.SetVar("X", Engrane.GetVar("X") + 14)
			elseif phases[1] == 13 then
				if SongTime > 9.33 then
					if SongTime <= 10.68 then
						Engrane.SetVar("X", -103 + 840/1.35*(SongTime - 9.33))
						Engrane.sprite.rotation = 630/1.35*(SongTime - 9.33)
					elseif not backwards then
						Engrane.SetVar("X", 737)
						Engrane.SetVar("Y", 161)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 14
					end
				elseif backwards then
					Engrane.SetVar("X", 737)
					Engrane.SetVar("Y", 161)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					phases[1] = 12
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 14)
				Eye2.SetVar("X", Engrane.GetVar("X") + 26)
			elseif phases[1] == 14 then
				if SongTime > 11.05 then
					if SongTime <= 12.4 then
						Engrane.SetVar("X", 733 - 840/1.35*(SongTime - 11.05))
						Engrane.sprite.rotation = 630/1.35*(SongTime - 11.05)
					elseif not backwards then
						Engrane.SetVar("X", -107)
						Engrane.SetVar("Y", 161)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 15
					end
				elseif backwards then
					Engrane.SetVar("X", 763)
					Engrane.SetVar("Y", 319)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					phases[1] = 13
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 26)
				Eye2.SetVar("X", Engrane.GetVar("X") + 14)
			elseif phases[1] == 15 then
				if SongTime > 12.76 then
					if SongTime <= 14.11 then
						Engrane.SetVar("X", -103 + 840/1.35*(SongTime - 12.76))
						Engrane.sprite.rotation = -630/1.35*(SongTime - 12.76)
					elseif not backwards then
						Engrane.SetVar("X", -103)
						Engrane.sprite.rotation = 0
						Scroll = {X = -2, Y = 0}
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						phases[1] = 16
					end
				elseif backwards then
					Engrane.SetVar("X", 767)
					Engrane.SetVar("Y", 161)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					phases[1] = 14
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 14)
				Eye2.SetVar("X", Engrane.GetVar("X") + 26)
			elseif phases[1] == 16 then
				if not Auxiliar then
					if SongTime > 21.3 and not backwards then
						Auxiliar = 0
					elseif backwards then
						Auxiliar = -120
					end
					Engrane.SetVar("Y", 319)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
				end
				if SongTime > 21.3 then
					if SongTime <= 22.65 then
						Engrane.SetVar("X", Riel1.GetVar("X") - 330 + Auxiliar + (733 - 840/1.35*(SongTime - 21.3)))
						Engrane.sprite.rotation = -630/1.35*(SongTime - 21.3)
					elseif not backwards then
						Engrane.SetVar("X", -107)
						Engrane.SetVar("Y", 161)
						Auxiliar = nil
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 17
					end
				elseif backwards then
					Engrane.SetVar("X", 767)
					Engrane.SetVar("Y", 161)
					Auxiliar = nil
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					if SongTime <= 14.11 then
						Scroll = nil
						Riel1.SetVar("X", 330)
						Riel2.SetVar("X", 330)
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						phases[1] = 15
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 26)
				Eye2.SetVar("X", Engrane.GetVar("X") + 14)
			elseif phases[1] == 17 then
				if not Auxiliar then
					if not backwards then
						Auxiliar = 0
					else
						Auxiliar = -120
					end
				end
				if SongTime > 23.01 then
					if SongTime <= 24.36 then
						Engrane.SetVar("X", Riel1.GetVar("X") - 330 + Auxiliar + (-103 + 1020/1.35*(SongTime - 23.01)))
						Engrane.sprite.rotation = -765/1.35*(SongTime - 23.01)
					elseif not backwards then
						Engrane.SetVar("X", -107)
						Engrane.SetVar("Y", 161)
						Auxiliar = nil
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 18
					end
				elseif backwards then
					Engrane.SetVar("X", 767)
					Auxiliar = nil
					Engrane.sprite.rotation = 0
					phases[1] = 16
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 14)
				Eye2.SetVar("X", Engrane.GetVar("X") + 26)
			elseif phases[1] == 18 then
				if not Auxiliar then
					if not backwards then
						Auxiliar = 0
					else
						Auxiliar = -120
					end
				end
				if SongTime > 24.72 then
					if SongTime <= 25.92 then
						Engrane.SetVar("X", Riel1.GetVar("X") - 330 + Auxiliar + (733 - 840/1.2*(SongTime - 24.72)))
						Engrane.sprite.rotation = 630/1.2*(SongTime - 24.72)
					elseif not backwards then
						Engrane.SetVar("X", -107)
						Auxiliar = nil
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						Engrane.sprite.rotation = 0
						phases[1] = 19
					end
				elseif backwards then
					Engrane.SetVar("X", 767)
					Engrane.SetVar("Y", 161)
					Auxiliar = nil
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					phases[1] = 17
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 26)
				Eye2.SetVar("X", Engrane.GetVar("X") + 14)
			elseif phases[1] == 19 then
				if SongTime > 26 then
					if SongTime < 26.2 then
						Riel1.sprite.alpha = 1 - 1*math.sin(math.rad(90/0.2*(SongTime - 26)))
						Riel2.sprite.alpha = 1 - 1*math.sin(math.rad(90/0.2*(SongTime - 26)))
						Riel1.SetVar("Y", 45 - 100*math.sin(math.rad(90/0.2*(SongTime - 26))))
						Riel2.SetVar("Y", 435 + 100*math.sin(math.rad(90/0.2*(SongTime - 26))))
					elseif not backwards then
						Engrane.SetVar("SpeedRot", 1)
						Engrane.SetVar("X", 320)
						Engrane.SetVar("Y", 540)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						Eye1.SetVar("Y", Engrane.GetVar("Y") - 3)
						Eye2.SetVar("Y", Engrane.GetVar("Y") - 3)
						Eye1.sprite.Set("Tension Level/Line")
						Eye2.sprite.Set("Tension Level/Line")
						Riel1.SetVar("Remove", true)
						Riel2.SetVar("Remove", true)
						for i=1,2 do
							local Misil = CreateProjectileAbs("Pixel", 0, 0)
							local Warning = CreateSprite("Pixel","BelowPlayer")
							Misil.sprite.color = {1, 32/255, 112/255}
							Warning.color = {1, 32/255, 112/255}
							table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
						end
						phases[1] = 20
					end
				elseif SongTime <= 25.92 and backwards then
					Riel1.sprite.alpha = 1
					Riel2.sprite.alpha = 1
					Riel1.SetVar("Y", 45)
					Riel2.SetVar("Y", 435)
					Engrane.SetVar("X", 767)
					Engrane.SetVar("Y", 161)
					Eye1.sprite.Set("Tension Level/Semicircle")
					Eye2.sprite.Set("Tension Level/Semicircle")
					Auxiliar = nil
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					Engrane.sprite.rotation = 0
					Engrane.SetVar("SpeedRot", 0)
					phases[1] = 18
				end
			elseif phases[1] == 20 then
				if not Sierra and not backwards and not FirstTime and phases[2] >= 6 then
					Sierra = CreateProjectileAbs("Tension Level/Sierra", 0, 0)
					Sierra.SetVar("NoDamage", 1)
					Sierra.SetVar("SpeedRot", 5)
					Sierra.SetVar("X", 320)
					Sierra.SetVar("Y", 240)
					Sierra.sprite.color = {1, 32/255, 112/255}
					Sierra.sprite.Scale(100/480, 100/480)
					table.insert(Bullets, Sierra)
				end
				if SongTime > 27 then
					if SongTime <= 27.25 then
						Eye1.sprite.Set("Tension Level/CircleEye")
						Eye2.sprite.Set("Tension Level/CircleEye")
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(1080/0.25*(SongTime - 27))))/255, (183.5 - 71.5*math.cos(math.rad(1080/0.25*(SongTime - 27))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(1080/0.25*(SongTime - 27))))/255, (183.5 - 71.5*math.cos(math.rad(1080/0.25*(SongTime - 27))))/255}
						if Sierra and Sierra.isactive then
							Sierra.sprite.Scale((100 + 100*math.sin(math.rad(90/0.25*(SongTime - 27))))/480, (100 + 100*math.sin(math.rad(90/0.25*(SongTime - 27))))/480)
						end
						Engrane.sprite.Scale((160 + 40*math.sin(math.rad(90/0.25*(SongTime - 27))))/480, (160 + 40*math.sin(math.rad(90/0.25*(SongTime - 27))))/480)
						if backwards and not SecondTime then
							Sierra = CreateProjectileAbs("Tension Level/Sierra", 0, 0)
							Sierra.SetVar("NoDamage", 1)
							Sierra.SetVar("SpeedRot", 5)
							Sierra.SetVar("X", 320)
							Sierra.SetVar("Y", 240)
							Sierra.sprite.color = {1, 32/255, 112/255}
							Sierra.sprite.Scale(200/480, 200/480)
							table.insert(Bullets, Sierra)
							SecondTime = true
						end
						if backwards then
							Engrane.sprite.Set("Tension Level/Engrane")
						end
					elseif SongTime <= 27.5 then
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						Engrane.SetVar("SpeedRot", 5)
						if not backwards then
							Engrane.sprite.Set("Tension Level/Sierra")
						else
							Engrane.sprite.Set("Tension Level/Engrane")
						end
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(1080/0.25*(SongTime - 27.25))))/255, (183.5 - 71.5*math.cos(math.rad(1080/0.25*(SongTime - 27.25))))/255}
						Engrane.sprite.Scale((200 - 40*math.sin(math.rad(90/0.25*(SongTime - 27.25))))/480, (200 - 40*math.sin(math.rad(90/0.25*(SongTime - 27.25))))/480)
						if not FirstTime and not backwards then
							if Sierra then
								Sierra.SetVar("Remove", true)
							end
							Engrane.sprite.rotation = Sierra.sprite.rotation
							FirstTime = true
						elseif backwards and not SecondTime then
							Sierra = CreateProjectileAbs("Tension Level/Sierra", 0, 0)
							Sierra.SetVar("NoDamage", 1)
							Sierra.SetVar("SpeedRot", 5)
							Sierra.SetVar("X", 320)
							Sierra.SetVar("Y", 240)
							Sierra.sprite.color = {1, 32/255, 112/255}
							Sierra.sprite.Scale(200/480, 200/480)
							table.insert(Bullets, Sierra)
							SecondTime = true
						end
					elseif not backwards then
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
						Engrane.SetVar("SpeedRot", 5)
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						Engrane.sprite.Scale(160/480, 160/480)
						if not FirstTime and Sierra then
							Sierra.SetVar("Remove", true)
						end
						Sierra = nil
						FirstTime = nil
						Engrane.sprite.Set("Tension Level/Sierra")
						Direccion = 4
						phases[1] = 21
					end
				elseif backwards then
					Eye1.sprite.Set("Tension Level/Line")
					Eye2.sprite.Set("Tension Level/Line")
					Engrane.SetVar("SpeedRot", 1)
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					Sierra.SetVar("Remove", true)
					Engrane.sprite.Set("Tension Level/Engrane")
					if (not Riel1 or not Riel1.isactive) and (not Riel2 or not Riel2.isactive) then
						Riel1 = CreateProjectileAbs("Tension Level/Riel", 0, 0)
						Riel1.SetVar("NoDamage", 1)
						Riel1.sprite.color = {1, 32/255, 112/255}
						Riel1.SetVar("SpeedRot", 0)
						Riel1.SetVar("X", 330)
						Riel1.SetVar("Y", -55)
						table.insert(Bullets, Riel1)
						Riel2 = CreateProjectileAbs("Tension Level/RielInv", 0, 0)
						Riel2.SetVar("NoDamage", 1)
						Riel2.sprite.color = {1, 32/255, 112/255}
						Riel2.SetVar("SpeedRot", 0)
						Riel2.SetVar("X", 330)
						Riel2.SetVar("Y", 535)
						table.insert(Bullets, Riel2)
					end
					phases[1] = 19
				end
			elseif phases[1] == 21 then
				if SongTime > 27.5 then
					if SongTime <= 39.99 then
						if Direccion == 1 then
							Engrane.SetVar("X", math.max(math.min(Engrane.GetVar("X") + 4*NewAudio.GetPitch("Song"), 520), 120))
							Engrane.SetVar("Y", math.max(math.min(Engrane.GetVar("Y") + 4*NewAudio.GetPitch("Song"), 420), 60))
							if Engrane.GetVar("X") >= 520 or Engrane.GetVar("X") <= 120 then
								Direccion = 2
							elseif Engrane.GetVar("Y") >= 420 or Engrane.GetVar("Y") <= 60 then
								Direccion = 4
							end
						elseif Direccion == 2 then
							Engrane.SetVar("X", math.min(math.max(Engrane.GetVar("X") - 4*NewAudio.GetPitch("Song"), 120), 520))
							Engrane.SetVar("Y", math.max(math.min(Engrane.GetVar("Y") + 4*NewAudio.GetPitch("Song"), 420), 60))
							if Engrane.GetVar("X") >= 520 or Engrane.GetVar("X") <= 120 then
								Direccion = 1
							elseif Engrane.GetVar("Y") >= 420 or Engrane.GetVar("Y") <= 60 then
								Direccion = 3
							end
						elseif Direccion == 3 then
							Engrane.SetVar("X", math.min(math.max(Engrane.GetVar("X") - 4*NewAudio.GetPitch("Song"), 120), 520))
							Engrane.SetVar("Y", math.min(math.max(Engrane.GetVar("Y") - 4*NewAudio.GetPitch("Song"), 60), 420))
							if Engrane.GetVar("X") >= 520 or Engrane.GetVar("X") <= 120 then
								Direccion = 4
							elseif Engrane.GetVar("Y") >= 420 or Engrane.GetVar("Y") <= 60 then
								Direccion = 2
							end
						elseif Direccion == 4 then
							Engrane.SetVar("X", math.max(math.min(Engrane.GetVar("X") + 4*NewAudio.GetPitch("Song"), 520), 120))
							Engrane.SetVar("Y", math.min(math.max(Engrane.GetVar("Y") - 4*NewAudio.GetPitch("Song"), 60), 420))
							if Engrane.GetVar("X") >= 520 or Engrane.GetVar("X") <= 120 then
								Direccion = 3
							elseif Engrane.GetVar("Y") >= 420 or Engrane.GetVar("Y") <= 60 then
								Direccion = 1
							end
						end
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
					elseif not backwards then
						Diff = 480 - Engrane.GetVar("Y")
						phases[1] = 22
					end
				elseif backwards then
					Engrane.SetVar("X", 320)
					Engrane.SetVar("Y", 240)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					Eye1.SetVar("Y", Engrane.GetVar("Y"))
					Eye2.SetVar("Y", Engrane.GetVar("Y"))
					phases[1] = 20
				end
			elseif phases[1] == 22 then
				if SongTime > 39.99 then
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 40.19 then
						if not WarningsT then
							WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Semicircle","BelowPlayer")}
							WarningsT[1].color = {1, 32/255, 112/255}
							WarningsT[2].color = {1, 32/255, 112/255}
							WarningsT[1].Scale(160, 480)
							WarningsT[2].Scale(160/480, 160/480)
							WarningsT[1].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y") + 240})
							WarningsT[2].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y") - 40})
						end
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 39.9))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 39.9))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 39.9))))/480)
						Extra = nil
					elseif SongTime > 40.62 and SongTime <= 41.14 then
						Engrane.SetVar("Y", 480 - Diff/2 - Diff/2*math.cos(math.rad(180/0.52*(SongTime - 40.62))))
						Extra = -10 + 10*math.cos(math.rad(180/0.52*(SongTime - 40.62)))
					elseif SongTime > 41.14 and (not backwards or (not WarningsT and backwards)) then
						if not backwards then
							Engrane.SetVar("Y", 480)
							Extra = -20
							if WarningsT then
								WarningsT[1].Remove()
								WarningsT[2].Remove()
								WarningsT = nil
							end
							Diff2 = 320 - Engrane.GetVar("X")
							phases[1] = 23
						else
							WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Semicircle","BelowPlayer")}
							WarningsT[1].color = {1, 32/255, 112/255}
							WarningsT[2].color = {1, 32/255, 112/255}
							WarningsT[1].Scale(160, 480)
							WarningsT[2].Scale(160/480, 160/480)
							WarningsT[1].SetVar("Pos", {Engrane.GetVar("X"), 480 - Diff + 240})
							WarningsT[2].SetVar("Pos", {Engrane.GetVar("X"), 480 - Diff - 40})
						end
					end
					if WarningsT then
						WarningsT[1].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 39.99)))
						WarningsT[2].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 39.99)))
					end
				elseif backwards then
					if WarningsT then
						WarningsT[1].Remove()
						WarningsT[2].Remove()
						WarningsT = nil
					end
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					Engrane.SetVar("Y", 480 - Diff)
					Extra = nil
					phases[1] = 21
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				Eye1.SetVar("Y", Engrane.GetVar("Y") + (Extra or 0))
				Eye2.SetVar("Y", Engrane.GetVar("Y") + (Extra or 0))
			elseif phases[1] == 23 then
				if SongTime > 41.14 then
					if SongTime <= 41.58 then
						Engrane.SetVar("X", 320 - Diff2/2 - Diff2/2*math.cos(math.rad(180/0.44*(SongTime - 41.14))))
					elseif not backwards then
						Engrane.SetVar("X", 320)
						phases[1] = 24
					end
				elseif backwards then
					Engrane.SetVar("X", 320 - Diff2)
					phases[1] = 22
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
			elseif phases[1] == 24 then
				if not Sierra then
					Sierra = true
					for i=0,3 do
						local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", 320, 620 + 120*i)
						Bullet.SetVar("NoDamage", 1)
						Bullet.SetVar("SpeedRot", -5)
						Bullet.SetVar("Colita", true)
						Bullet.SetVar("Absoluto", true)
						Bullet.SetVar("X", 320)
						Bullet.SetVar("Ini", -420 + 120*i)
						Bullet.SetVar("Y", 620 + 120*i)
						Bullet.sprite.color = {1, 32/255, 112/255}
						Bullet.sprite.Scale(120/480, 120/480)
						table.insert(Bullets, Bullet)
					end
				end
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 41.58 then
					if SongTime > 41.64 and SongTime <= 41.84 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 41.64))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 41.64))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 41.64))))/480)
					elseif SongTime > 41.84 and SongTime <= 43.05 then
						Engrane.SetVar("Y", -560 + 1040*math.cos(math.rad(90/1.21*(SongTime - 41.84))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 1040*math.cos(math.rad(90/1.21*(SongTime - 41.84))))
							end
						end
					elseif SongTime > 43.05 and not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
							end
						end
						Engrane.SetVar("X", 490)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 25
					end
				elseif backwards then
					Engrane.SetVar("Y", 480)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Sierra = nil
					phases[1] = 23
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 320 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y"))))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") - 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") - 20)
			elseif phases[1] == 25 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 43.05 then
					if SongTime <= 43.4 then
						Engrane.SetVar("Y", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 43.05))))
					elseif SongTime <= 43.6 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 43.4))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 43.4))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 43.4))))/480)
					elseif SongTime <= 44.81 then
						Engrane.SetVar("Y", 1040 - 1040*math.cos(math.rad(90/1.21*(SongTime - 43.6))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960 - 1040*math.cos(math.rad(90/1.21*(SongTime - 43.6))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960)
							end
						end
						Engrane.SetVar("X", 150)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 26
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 320)
					Engrane.SetVar("Y", -560)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 24
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 490 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y") + 180)))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") + 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") + 20)
			elseif phases[1] == 26 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 44.81 then
					if SongTime <= 45.16 then
						Engrane.SetVar("Y", 560 - 80*math.sin(math.rad(90/0.35*(SongTime - 44.81))))
					elseif SongTime <= 45.36 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 45.16))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 45.16))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 45.16))))/480)
					elseif SongTime <= 46.57 then
						Engrane.SetVar("Y", -560 + 1040*math.cos(math.rad(90/1.21*(SongTime - 45.36))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 1040*math.cos(math.rad(90/1.21*(SongTime - 45.36))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
							end
						end
						Engrane.SetVar("X", 490)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 27
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 490)
					Engrane.SetVar("Y", 1040)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 25
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 150 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y"))))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") - 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") - 20)
			elseif phases[1] == 27 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 46.57 then
					if SongTime <= 46.92 then
						Engrane.SetVar("Y", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 46.57))))
					elseif SongTime <= 47.12 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 46.92))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 46.92))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 46.92))))/480)
					elseif SongTime <= 48.33 then
						Engrane.SetVar("Y", 1040 - 1040*math.cos(math.rad(90/1.21*(SongTime - 47.12))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960 - 1040*math.cos(math.rad(90/1.21*(SongTime - 47.12))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960)
							end
						end
						Engrane.SetVar("X", 235)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 28
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 150)
					Engrane.SetVar("Y", -560)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 26
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 490 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y") + 180)))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") + 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") + 20)
			elseif phases[1] == 28 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 48.33 then
					if SongTime <= 48.68 then
						Engrane.SetVar("Y", 560 - 80*math.sin(math.rad(90/0.35*(SongTime - 48.33))))
					elseif SongTime <= 48.88 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 48.68))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 48.68))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 48.68))))/480)
					elseif SongTime <= 50.09 then
						Engrane.SetVar("Y", -560 + 1040*math.cos(math.rad(90/1.21*(SongTime - 48.88))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 1040*math.cos(math.rad(90/1.21*(SongTime - 48.88))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
							end
						end
						Engrane.SetVar("X", 405)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 29
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 490)
					Engrane.SetVar("Y", 1040)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 27
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 235 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y"))))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") - 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") - 20)
			elseif phases[1] == 29 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 50.09 then
					if SongTime <= 50.44 then
						Engrane.SetVar("Y", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 50.09))))
					elseif SongTime <= 50.64 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 50.44))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 50.44))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 50.44))))/480)
					elseif SongTime <= 51.85 then
						Engrane.SetVar("Y", 1040 - 1040*math.cos(math.rad(90/1.21*(SongTime - 50.64))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960 - 1040*math.cos(math.rad(90/1.21*(SongTime - 50.64))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 960)
							end
						end
						Engrane.SetVar("X", 150)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 30
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 235)
					Engrane.SetVar("Y", -560)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 28
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 405 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y") + 180)))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") + 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") + 20)
			elseif phases[1] == 30 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 51.85 then
					if SongTime <= 52.2 then
						Engrane.SetVar("Y", 560 - 80*math.sin(math.rad(90/0.35*(SongTime - 51.85))))
					elseif SongTime <= 52.4 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 52.2))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 52.2))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 52.2))))/480)
					elseif SongTime <= 53.61 then
						Engrane.SetVar("Y", -560 + 1040*math.cos(math.rad(90/1.21*(SongTime - 52.4))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") + 1040*math.cos(math.rad(90/1.21*(SongTime - 52.4))))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Colita") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						Sierra = nil
						Engrane.SetVar("X", 320)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						phases[1] = 31
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Colita") then
							Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini"))
						end
					end
					Engrane.SetVar("X", 405)
					Engrane.SetVar("Y", 1040)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 29
				end
				for i=1,#Bullets do
					if Bullets[i].GetVar("Colita") then
						Bullets[i].SetVar("X", 150 + 20*math.sin(math.rad(90/120*Bullets[i].GetVar("Y"))))
					end
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") - 20)
				Eye2.SetVar("Y", Engrane.GetVar("Y") - 20)
			elseif phases[1] == 31 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 53.61 then
					if not WarningsT and not backwards then
						WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("JS&B Library Sprites/Eye","BelowPlayer")}
						for i=1,#WarningsT do
							WarningsT[i].color = {1,32/255,112/255}
						end
						WarningsT[4].rotation = -90
						WarningsT[5].rotation = 180
						WarningsT[6].rotation = 90
						WarningsT[7].rotation = 180
						WarningsT[8].rotation = 90
						WarningsT[10].rotation = -90
						WarningsT[1].Scale(640, 120)
						WarningsT[2].Scale(120, 480)
						for i=3,10 do
							WarningsT[i].Scale(0.5, 0.5)
						end
						WarningsT[11].Scale(640/480, 640/480)
						WarningsT[1].SetVar("Pos", {320, 240})
						WarningsT[2].SetVar("Pos", {320, 240})
						WarningsT[3].SetVar("Pos", {320, 100})
						WarningsT[4].SetVar("Pos", {180, 240})
						WarningsT[5].SetVar("Pos", {320, 380})
						WarningsT[6].SetVar("Pos", {460, 240})
						WarningsT[7].SetVar("Pos", {320, -20})
						WarningsT[8].SetVar("Pos", {60, 240})
						WarningsT[9].SetVar("Pos", {320, 500})
						WarningsT[10].SetVar("Pos", {580, 240})
						WarningsT[11].SetVar("Pos", {320, 240})
					end
					if SongTime <= 53.96 then
						Engrane.SetVar("Y", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 53.61))))
					elseif SongTime <= 54.16 then
						Eye1.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255}
						Eye2.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255}
						Engrane.sprite.color = {1, (143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255, (183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 53.96))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 53.96))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 53.96))))/480)
					elseif SongTime <= 54.57 then
						Engrane.SetVar("Y", 120 - 120*math.cos(math.rad(180/0.41*(SongTime - 54.16))))
						Extra2 = 20*math.cos(math.rad(90/1.21*(SongTime - 54.16)))
					elseif not backwards then
						Engrane.SetVar("X", 320)
						Engrane.SetVar("Y", 240)
						Eye1.SetVar("X", Engrane.GetVar("X") - 20)
						Eye2.SetVar("X", Engrane.GetVar("X") + 20)
						Extra2 = 0
						phases[1] = 32
					end
					if WarningsT then
						for i=1,#WarningsT do
							WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 55.37)))
						end
					end
				elseif backwards then
					if not Sierra then
						Sierra = true
						for i=0,3 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", 320, 620 + 120*i)
							Bullet.SetVar("NoDamage", 1)
							Bullet.SetVar("SpeedRot", -5)
							Bullet.SetVar("Colita", true)
							Bullet.SetVar("Absoluto", true)
							Bullet.SetVar("X", 320)
							Bullet.SetVar("Ini", -420 + 120*i)
							Bullet.SetVar("Y", 620 + 120*i)
							Bullet.sprite.color = {1, 32/255, 112/255}
							Bullet.sprite.Scale(120/480, 120/480)
							table.insert(Bullets, Bullet)
						end
					end
					if WarningsT then
						for i=1,#WarningsT do
							WarningsT[i - tableaux].Remove()
							table.remove(WarningsT, i - tableaux)
							tableaux = tableaux + 1
						end
						tableaux = 0
					end
					Engrane.SetVar("X", 150)
					Engrane.SetVar("Y", -560)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 30
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y") + (Extra2 or 20))
				Eye2.SetVar("Y", Engrane.GetVar("Y") + (Extra2 or 20))
			elseif phases[1] == 32 then
				Eye1.sprite.color = {1, 32/255, 112/255}
				Eye2.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.color = {1, 32/255, 112/255}
				Engrane.sprite.Scale(160/480, 160/480)
				if SongTime > 54.57 then
					if SongTime > 54.77 and not Sierra and not backwards then
						Sierra = true
						for i=0,7 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1, 32/255, 112/255}
							Spruait.SetVar("X", 320)
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Rueda", true)
							if i <= 3 then
								Spruait.SetVar("Direction", -1)
							else
								Spruait.SetVar("Direction", 1)
							end
							Spruait.SetVar("Ang", 90*i)
							if i <= 3 then
								Spruait.SetVar("Lenght", 140)
							else
								Spruait.SetVar("Lenght", 260)
							end
							Spruait.SetVar("NoDamage", 1)
							table.insert(Bullets, Spruait)
						end
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Eye", 0, 0)
						Spruait.sprite.Scale(1920/480, 1920/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("X", 320)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 0)
						Laterales = {CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000)}
						for i=1,4 do
							Laterales[i].SetVar("NoDamage", 1)
							Laterales[i].SetVar("SpeedRot", 0)
							Laterales[i].sprite.color = {1, 32/255, 112/255}
							Laterales[i].sprite.Scale(2000, 2000)
							table.insert(Bullets, Laterales[i])
						end
						Laterales[1].SetVar("X", Spruait.GetVar("X") + 1960)
						Laterales[1].SetVar("Y", Spruait.GetVar("Y"))
						Laterales[2].SetVar("X", Spruait.GetVar("X"))
						Laterales[2].SetVar("Y", Spruait.GetVar("Y") + 1960)
						Laterales[3].SetVar("X", Spruait.GetVar("X") - 1960)
						Laterales[3].SetVar("Y", Spruait.GetVar("Y"))
						Laterales[4].SetVar("X", Spruait.GetVar("X"))
						Laterales[4].SetVar("Y", Spruait.GetVar("Y") - 1960)
						Spruait.SetVar("Circulo", true)
						table.insert(Bullets, Spruait)
					elseif SongTime <= 54.77 and backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Remove", true)
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						if Laterales then
							Laterales[1].SetVar("Remove", true)
							Laterales[2].SetVar("Remove", true)
							Laterales[3].SetVar("Remove", true)
							Laterales[4].SetVar("Remove", true)
						end
						Laterales = nil
						Sierra = nil
					end
					if SongTime <= 54.77 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].sprite.Scale((40 + 80*math.cos(math.rad(90/0.2*(SongTime - 54.57))))/480, (40 + 80*math.cos(math.rad(90/0.2*(SongTime - 54.57))))/480)
							end
						end
						Engrane.sprite.Scale((160 - 10/0.2*(SongTime - 54.57))/480, (160 - 10/0.2*(SongTime - 54.57))/480)
						Eye1.sprite.Set("Tension Level/Line")
						Eye2.sprite.Set("Tension Level/Line")
					elseif SongTime <= 55.17 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						Engrane.sprite.Set("Tension Level/Engrane")
						Engrane.SetVar("SpeedRot", 2)
						Eye1.sprite.Set("Tension Level/CircleEye")
						Eye2.sprite.Set("Tension Level/CircleEye")
						Engrane.sprite.Scale((165 - 15*math.cos(math.rad(180/0.4*(SongTime - 54.77))))/480, (165 - 15*math.cos(math.rad(180/0.4*(SongTime - 54.77))))/480)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", 320 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(90/0.4*(SongTime - 54.77)))*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 240 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(90/0.4*(SongTime - 54.77)))*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", Engrane.GetVar("X"))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y"))
								Bullets[i].sprite.Scale((1280 - 642*math.sin(math.rad(90/0.4*(SongTime - 54.77))))/480, (1280 - 642*math.sin(math.rad(90/0.4*(SongTime - 54.77))))/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
						if not rango or rango <= 2 then
							shakescreen = 1
							rango = 2
						end
					elseif SongTime <= 55.37 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", 320 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 240 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", Engrane.GetVar("X"))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y"))
								Bullets[i].sprite.Scale(638/480, 638/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
						Engrane.sprite.Scale((160 + 20*math.cos(math.rad(90/0.2*(SongTime - 55.17))))/480, (160 + 20*math.cos(math.rad(90/0.2*(SongTime - 55.17))))/480)
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 55.17))))/255}
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						if WarningsT and not backwards then
							for i=1,#WarningsT do
								WarningsT[i - tableaux].Remove()
								table.remove(WarningsT, i - tableaux)
								tableaux = tableaux + 1
							end
							tableaux = 0
							WarningsT = nil
						end
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", 320 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 240 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							end
						end
						Engrane.sprite.Set("Tension Level/Engrane")
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
						phases[1] = 33
					end
				elseif backwards then
					Eye1.sprite.Set("Tension Level/Semicircle")
					Eye2.sprite.Set("Tension Level/Semicircle")
					Engrane.SetVar("X", 320)
					Engrane.SetVar("Y", 240)
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
					phases[1] = 31
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
				if WarningsT then
					for i=1,#WarningsT do
						WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 55.37)))
					end
				end
			elseif phases[1] == 33 then
				if SongTime > 55.37 then
					if SongTime <= 68.7 then
						Engrane.SetVar("Y", 240 + 10*math.sin(math.rad(360*5/13.33*(SongTime - 55.37))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", Engrane.GetVar("X") + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y") + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", Engrane.GetVar("X"))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y"))
								Bullets[i].sprite.Scale(638/480, 638/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", Engrane.GetVar("X") + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y") + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", Engrane.GetVar("X"))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y"))
								Bullets[i].sprite.Scale(638/480, 638/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
						phases[1] = 34
					end
				elseif backwards then
					if not WarningsT then
						WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("Tension Level/Arrow","BelowPlayer"), CreateSprite("JS&B Library Sprites/Eye","BelowPlayer")}
						for i=1,#WarningsT do
							WarningsT[i].color = {1,32/255,112/255}
						end
						WarningsT[4].rotation = -90
						WarningsT[5].rotation = 180
						WarningsT[6].rotation = 90
						WarningsT[7].rotation = 180
						WarningsT[8].rotation = 90
						WarningsT[10].rotation = -90
						WarningsT[1].Scale(640, 120)
						WarningsT[2].Scale(120, 480)
						for i=3,10 do
							WarningsT[i].Scale(0.5, 0.5)
						end
						WarningsT[11].Scale(640/480, 640/480)
						WarningsT[1].SetVar("Pos", {320, 240})
						WarningsT[2].SetVar("Pos", {320, 240})
						WarningsT[3].SetVar("Pos", {320, 100})
						WarningsT[4].SetVar("Pos", {180, 240})
						WarningsT[5].SetVar("Pos", {320, 380})
						WarningsT[6].SetVar("Pos", {460, 240})
						WarningsT[7].SetVar("Pos", {320, -20})
						WarningsT[8].SetVar("Pos", {60, 240})
						WarningsT[9].SetVar("Pos", {320, 500})
						WarningsT[10].SetVar("Pos", {580, 240})
						WarningsT[11].SetVar("Pos", {320, 240})
					end
					Engrane.SetVar("Y", 240)
					phases[1] = 32
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 34 then
				if SongTime > 68.7 then
					if SongTime <= 80.72 then
						Engrane.SetVar("Y", 240 + 60*math.sin(math.rad(360*4/12.07*(SongTime - 68.7))))
						Engrane.SetVar("X", 320 + 120*math.sin(math.rad(360*2/12.07*(SongTime - 68.7))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", Engrane.GetVar("X") + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y") + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang") + 360*Bullets[i].GetVar("Direction")*4/25.35*(SongTime - 55.37))))
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", Engrane.GetVar("X"))
								Bullets[i].SetVar("Y", Engrane.GetVar("Y"))
								Bullets[i].sprite.Scale(638/480, 638/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
					elseif SongTime <= 80.92 then
						Engrane.SetVar("Y", 240)
						Engrane.SetVar("X", 440 - 120*math.cos(math.rad(180*(SongTime - 80.72))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("X", 320 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 240 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].sprite.Scale((120 - 80*math.sin(math.rad(90/0.2*(SongTime - 80.72))))/480, (120 - 80*math.sin(math.rad(90/0.2*(SongTime - 80.72))))/480)
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("X", 320)
								Bullets[i].SetVar("Y", 240)
								Bullets[i].sprite.Scale((1280 - 642*math.cos(math.rad(90/0.2*(SongTime - 80.72))))/480, (1280 - 642*math.cos(math.rad(90/0.2*(SongTime - 80.72))))/480)
								Laterales[1].SetVar("X", Bullets[i].GetVar("X") + 1000 + Bullets[i].sprite.xscale*240)
								Laterales[1].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[2].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[2].SetVar("Y", Bullets[i].GetVar("Y") + 1000 + Bullets[i].sprite.yscale*240)
								Laterales[3].SetVar("X", Bullets[i].GetVar("X") - 1000 - Bullets[i].sprite.xscale*240)
								Laterales[3].SetVar("Y", Bullets[i].GetVar("Y"))
								Laterales[4].SetVar("X", Bullets[i].GetVar("X"))
								Laterales[4].SetVar("Y", Bullets[i].GetVar("Y") - 1000 - Bullets[i].sprite.yscale*240)
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 440 - 120*math.cos(math.rad(180*(SongTime - 80.72))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Remove", true)
							elseif Bullets[i].GetVar("Circulo") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						Laterales[1].SetVar("Remove", true)
						Laterales[2].SetVar("Remove", true)
						Laterales[3].SetVar("Remove", true)
						Laterales[4].SetVar("Remove", true)
						Laterales = nil
						Sierra = nil
						Extra = nil
						Eye1.sprite.Set("Tension Level/Line")
						Eye2.sprite.Set("Tension Level/Line")
						phases[1] = 35
					end
				elseif backwards then
					Engrane.SetVar("X", 320)
					Engrane.SetVar("Y", 240)
					phases[1] = 33
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 35 then
				if SongTime > 80.92 then
					if not WarningsT then
						WarningsT = {CreateSprite("JS&B Library Sprites/Circle","BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole","BelowBullet"), CreateSprite("JS&B Library Sprites/Hole","BelowBullet"), CreateSprite("Tension Level/Riel","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet"), CreateSprite("JS&B Library Sprites/Saw","BelowBullet")}
						for i=1,#WarningsT do
							WarningsT[i].color = {1, 32/255, 112/255}
							WarningsT[i].SetVar("Normal", true)
						end
						WarningsT[1].SetVar("Pos", {560, 240})
						WarningsT[4].SetVar("Pos", {264, -68.5})
						for i=5,#WarningsT do
							WarningsT[i].SetVar("Pos", {600 - 80*(i - 5), 520})
							WarningsT[i].Scale(120/480, 120/480)
						end
						WarningsT[2].SetVar("Normal", nil)
						WarningsT[3].SetVar("Normal", nil)
						WarningsT[1].Scale(440/480, 440/480)
						WarningsT[2].Scale(80/480, 80/480)
						WarningsT[3].Scale(80/480, 80/480)
						WarningsT[4].Scale(440/160, 440/160)
						Diff = Engrane.sprite.rotation%45
						Engrane.SetVar("SpeedRot", 0)
					end
					if not Sierra then
						Riel3 = CreateProjectileAbs("Tension Level/Riel", 0, 0)
						Riel3.SetVar("NoDamage", 1)
						Riel3.sprite.color = {1,32/255,112/255}
						Riel3.sprite.Scale(440/160, 440/160)
						Riel3.SetVar("X", 264)
						Riel3.SetVar("Y", -168.5)
						Riel3.SetVar("SpeedRot", 0)
						Riel3.SetVar("Absoluto", true)
						table.insert(Bullets, Riel3)
						for i=0,8 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
							Spruait.SetVar("NoDamage", 1)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.SetVar("Sierras", true)
							Spruait.SetVar("Ini", 600 - 80*i)
							Spruait.SetVar("X", 600 - 80*i)
							Spruait.SetVar("Y", 600)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Absoluto", true)
							table.insert(Bullets, Spruait)
						end
						for i=0,4 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
							Spruait.SetVar("NoDamage", 1)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.SetVar("Obstaculo", true)
							Spruait.SetVar("Ini", -160 - 1120*i)
							Spruait.SetVar("X", -160 - 1120*i)
							Spruait.SetVar("Ang", 135*i)
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Absoluto", true)
							table.insert(Bullets, Spruait)
						end
						for i=0,3 do
							for j=0,2 do
								Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
								Spruait.SetVar("NoDamage", 1)
								Spruait.sprite.color = {1,32/255,112/255}
								Spruait.sprite.Scale(120/480, 120/480)
								Spruait.SetVar("Rueda", true)
								Spruait.SetVar("Ini", -640 - 1120*i)
								Spruait.SetVar("X", -640 - 1120*i)
								Spruait.SetVar("Ang", 360/3*j)
								if i%2 == 0 then
									Spruait.SetVar("Direccion", -1)
								else 
									Spruait.SetVar("Direccion", 1)
								end
								Spruait.SetVar("Y", 240)
								Spruait.SetVar("SpeedRot", 5)
								Spruait.SetVar("Absoluto", true)
								table.insert(Bullets, Spruait)
							end
						end
						Sierra = true
					end
					if SongTime <= 81.72 then
						Engrane.SetVar("X", 440 - 120*math.cos(math.rad(180*(SongTime - 80.72))))
						Engrane.sprite.rotation = Diff*math.cos(math.rad(90*(SongTime - 80.72)))
					elseif SongTime <= 82.32 then
						Engrane.sprite.rotation = 0
						if SongTime <= 82.12 then
							WarningsT[2].Scale((80 + 410*math.sin(math.rad(90/0.2*(SongTime - 81.72))))/480, (80 + 410*math.sin(math.rad(90/0.2*(SongTime - 81.72))))/480)
						end
						if SongTime > 81.82 and SongTime <= 82.22 then
							WarningsT[3].Scale((80 + 410*math.sin(math.rad(90/0.2*(SongTime - 81.82))))/480, (80 + 410*math.sin(math.rad(90/0.2*(SongTime - 81.82))))/480)
						end
						if SongTime > 81.92 then
							Eye1.sprite.Set("JS&B Library Sprites/Circle")
							Eye2.sprite.Set("JS&B Library Sprites/Circle")
							for i=1,#Bullets do
								if Bullets[i].GetVar("Sierras") then
									Bullets[i].sprite.Scale((120 + 20*math.sin(math.rad(180/0.2*math.min(SongTime - 81.92, 0.2))))/480, (120 + 20*math.sin(math.rad(180/0.2*math.min(SongTime - 81.92, 0.2))))/480)
									Bullets[i].sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*math.min(SongTime - 81.92, 0.2))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*math.min(SongTime - 81.92, 0.2))))/255}
									Bullets[i].SetVar("Y", 520)
								end
							end
							Riel3.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*math.min(SongTime - 81.92, 0.2))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*math.min(SongTime - 81.92, 0.2))))/255}
							Riel3.SetVar("Y", -168.5 + 100*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))
							Extra = 20 + 40*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2)))
							Eye1.sprite.Scale((25 + 44*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480, (25 + 44*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480)
							Eye2.sprite.Scale((25 + 44*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480, (25 + 44*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480)
							Engrane.sprite.Scale((160 + 280*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480, (160 + 280*math.sin(math.rad(90/0.2*math.min(SongTime - 81.92, 0.2))))/480)
						end
						if SongTime > 82.12 then
							Extra = 60*math.cos(math.rad(90/0.2*(SongTime - 82.12)))
							Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255}
							Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255}
							Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 82.12))))/255}
						end
					elseif not backwards then
						Eye1.SetVar("Absoluto", true)
						Eye2.SetVar("Absoluto", true)
						Engrane.SetVar("Absoluto", true)
						Engrane.SetVar("X", 560)
						Eye1.sprite.Set("JS&B Library Sprites/Circle")
						Eye2.sprite.Set("JS&B Library Sprites/Circle")
						Engrane.sprite.Scale(440/480, 440/480)
						Eye1.sprite.Scale(69/480, 69/480)
						Eye2.sprite.Scale(69/480, 69/480)
						Engrane.sprite.color = {1,32/255,112/255}
						Eye1.sprite.color = {1,32/255,112/255}
						Eye2.sprite.color = {1,32/255,112/255}
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].sprite.Scale(120/480, 120/480)
								Bullets[i].sprite.color = {1,32/255,112/255}
								Bullets[i].SetVar("Y", 520)
							end
						end
						Riel3.sprite.color = {1,32/255,112/255}
						Riel3.SetVar("Y", -68.5)
						for i=1,#WarningsT do
							WarningsT[i - tableaux].Remove()
							table.remove(WarningsT, i - tableaux)
							tableaux = tableaux + 1
						end
						WarningsT = nil
						tableaux = 0
						Extra = 0
						Scroll = {X = 3.5, Y = 0}
						AuxiliarE = 0
						AuxiliarR = 0
						AuxiliarS = 0
						phases[1] = 36
					end
					if WarningsT then
						for i=1,#WarningsT do
							if WarningsT[i].GetVar("Normal") then
								WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 80.92)))
							else
								WarningsT[i].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
							end
						end
					end
				elseif backwards then
					Engrane.SetVar("SpeedRot", 2)
					Eye1.sprite.Set("Tension Level/Semicircle")
					Eye2.sprite.Set("Tension Level/Semicircle")
					if WarningsT then
						for i=1,#WarningsT do
							WarningsT[i].Remove()
						end
					end
					WarningsT = nil
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") or Bullets[i].GetVar("Obstaculo") or Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Riel3.SetVar("Remove", true)
					Sierra = true
					for i=0,7 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("X", 320)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rueda", true)
						if i <= 3 then
							Spruait.SetVar("Direction", -1)
						else
							Spruait.SetVar("Direction", 1)
						end
						Spruait.SetVar("Ang", 90*i)
						if i <= 3 then
							Spruait.SetVar("Lenght", 140)
						else
							Spruait.SetVar("Lenght", 260)
						end
						Spruait.SetVar("NoDamage", 1)
						table.insert(Bullets, Spruait)
					end
					Spruait = CreateProjectileAbs("JS&B Library Sprites/Eye", 0, 0)
					Spruait.sprite.Scale(1920/480, 1920/480)
					Spruait.sprite.color = {1, 32/255, 112/255}
					Spruait.SetVar("X", 320)
					Spruait.SetVar("Y", 240)
					Spruait.SetVar("NoDamage", 1)
					Spruait.SetVar("SpeedRot", 0)
					Spruait.SetVar("Laterales", {CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000), CreateProjectileAbs("Pixel", 2000, 2000)})
					for i=1,4 do
						Spruait.GetVar("Laterales")[i].sprite.color = {1, 32/255, 112/255}
						Spruait.GetVar("Laterales")[i].sprite.Scale(2000, 2000)
					end
					Spruait.GetVar("Laterales")[1].MoveToAbs(Spruait.GetVar("X") + 1960, Spruait.GetVar("Y"))
					Spruait.GetVar("Laterales")[2].MoveToAbs(Spruait.GetVar("X"), Spruait.GetVar("Y") + 1960)
					Spruait.GetVar("Laterales")[3].MoveToAbs(Spruait.GetVar("X") - 1960, Spruait.GetVar("Y"))
					Spruait.GetVar("Laterales")[4].MoveToAbs(Spruait.GetVar("X"), Spruait.GetVar("Y") - 1960)
					for i=1,4 do
						Spruait.GetVar("Laterales")[i].SetVar("NoDamage", 1)
					end
					Spruait.SetVar("Circulo", true)
					table.insert(Bullets, Spruait)
					Engrane.SetVar("X", 320)
					Engrane.SetVar("Y", 240)
					phases[1] = 34
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - (Extra or 20))
				Eye2.SetVar("X", Engrane.GetVar("X") + (Extra or 20))
			elseif phases[1] >= 36 and phases[1] <= 66 then
				if SongTime > 82.32 then
					Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
					Engrane.sprite.rotation = 0
					if SongTime > 82.65 + 0.85*(phases[1] - 36) and SongTime <= 82.85 + 0.85*(phases[1] - 36) then
						Engrane.SetVar("X", Engrane.GetVar("X") - 60*440/160 + 60*440/160*math.cos(math.rad(90/0.2*(SongTime - (82.65 + 0.85*(phases[1] - 36))))))
						Engrane.sprite.rotation = -45*math.cos(math.rad(90/0.2*(SongTime - (82.65 + 0.85*(phases[1] - 36)))))
					elseif SongTime > 82.85 + 0.85*(phases[1] - 36) then
						if phases[1] == 41 or phases[1] == 57 then
							if not ExtendidoExtra then
								AuxiliarE = AuxiliarE - 60*440/160
								Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
								table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), Time = 5, VelRot = 10, Misiles = 12, ScaleLimit = 40, PX = Engrane.GetVar("X"), PY = 240, X = 0, Y = 0, Stay = 0, Appear = 82.85 + 0.85*(phases[1] - 36), Eliminate = 82.85 + 0.85*(phases[1] - 36), Front = true, NoLag = true})
								if not rango or rango <= 5 then
									shakescreen = 0
									rango = 5
								end
								ExtendidoExtra = true
							end
							if SongTime <= 83.05 + 0.85*(phases[1] - 36) then
								Engrane.SetVar("X", Engrane.GetVar("X") - 60*440/160 + 60*440/160*math.cos(math.rad(90/0.2*(SongTime - (82.85 + 0.85*(phases[1] - 36))))))
								Engrane.sprite.rotation = -45*math.cos(math.rad(90/0.2*(SongTime - (82.85 + 0.85*(phases[1] - 36)))))
							else
								AuxiliarE = AuxiliarE - 60*440/160
								Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
								table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), Time = 5, VelRot = 10, Misiles = 12, ScaleLimit = 40, PX = Engrane.GetVar("X"), PY = 240, X = 0, Y = 0, Stay = 0, Appear = 83.05 + 0.85*(phases[1] - 36), Eliminate = 83.05 + 0.85*(phases[1] - 36), Front = true, NoLag = true})
								phases[1] = phases[1] + 1
								if not rango or rango <= 5 then
									shakescreen = 0
									rango = 5
								end
								ExtendidoExtra = nil
							end
						else
							AuxiliarE = AuxiliarE - 60*440/160
							Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
							table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), Time = 5, VelRot = 10, Misiles = 12, ScaleLimit = 40, PX = Engrane.GetVar("X"), PY = 240, X = 0, Y = 0, Stay = 0, Appear = 82.85 + 0.85*(phases[1] - 36), Eliminate = 82.85 + 0.85*(phases[1] - 36), Front = true, NoLag = true})
							phases[1] = phases[1] + 1
							if not rango or rango <= 5 then
								shakescreen = 0
								rango = 5
							end
						end
					elseif SongTime <= 82 + 0.85*(phases[1] - 36) then
						if phases[1] == 41 or phases[1] == 57 then
							if not ExtendidoExtra then
								AuxiliarE = AuxiliarE + 60*440/160
								Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
								if not rango or rango <= 5 then
									shakescreen = 0
									rango = 5
								end
								ExtendidoExtra = true
							end
							if SongTime > 82.85 + 0.85*(phases[1] - 36) then
								Engrane.SetVar("X", Engrane.GetVar("X") - 60*440/160 + 60*440/160*math.cos(math.rad(90/0.2*(SongTime - (82.85 + 0.85*(phases[1] - 36))))))
								Engrane.sprite.rotation = -45*math.cos(math.rad(90/0.2*(SongTime - (82.85 + 0.85*(phases[1] - 36)))))
							else
								AuxiliarE = AuxiliarE + 60*440/160
								Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
								phases[1] = phases[1] - 1
								if not rango or rango <= 5 then
									shakescreen = 0
									rango = 5
								end
								ExtendidoExtra = nil
							end
						else
							AuxiliarE = AuxiliarE + 60*440/160
							Engrane.SetVar("X", 560 + 210*(SongTime - 82.32) + AuxiliarE)
							phases[1] = phases[1] - 1
							if not rango or rango <= 5 then
								shakescreen = 0
								rango = 5
							end
						end
					end
					Riel3.SetVar("X", 264 + 210*(SongTime - 82.32) + AuxiliarR)
					if Riel3.GetVar("X") >= 264 + 60*440/160 then
						AuxiliarR = AuxiliarR - 60*440/160
					elseif Riel3.GetVar("X") <= 264 - 60*440/160 then
						AuxiliarR = AuxiliarR + 60*440/160
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 210*(SongTime - 82.32) + AuxiliarS)
						elseif Bullets[i].GetVar("Obstaculo") then
							Bullets[i].SetVar("Ang", Bullets[i].GetVar("Ang") + 3*NewAudio.GetPitch("Song"))
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 210*(SongTime - 82.32))
							Bullets[i].SetVar("Y", 270 + 140*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
						elseif Bullets[i].GetVar("Rueda") then
							Bullets[i].SetVar("Ang", Bullets[i].GetVar("Ang") + 1.5*Bullets[i].GetVar("Direccion")*NewAudio.GetPitch("Song"))
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 210*(SongTime - 82.32) + 140*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							Bullets[i].SetVar("Y", 270 + 140*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
						end
					end
					for i=1,#Bullets do
						while Bullets[i].GetVar("Sierras") and Bullets[i].GetVar("X") >= 680 and not backwards do
							AuxiliarS = AuxiliarS - 80
							break
						end
						while Bullets[i].GetVar("Sierras") and Bullets[i].GetVar("X") <= -40 and backwards do
							AuxiliarS = AuxiliarS + 80
							break
						end
					end
					if phases[1] == 67 then
						Extra = 0
						Scroll = nil
						WarningsT = {CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer")}
						WarningsT[1].color = {1,32/255,112/255}
						WarningsT[1].Scale(80/480, 80/480)
						WarningsT[2].color = {1,32/255,112/255}
						WarningsT[2].Scale(80/480, 80/480)
						WarningsT[1].SetVar("Pos", {Engrane.GetVar("X"), 240})
						WarningsT[2].SetVar("Pos", {Engrane.GetVar("X"), 240})
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") or Bullets[i].GetVar("Obstaculo") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						for i=0,8 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
							Spruait.SetVar("NoDamage", 1)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.SetVar("Sierras2", true)
							Spruait.SetVar("Ini", 600 - 80*i)
							Spruait.SetVar("X", 600 - 80*i)
							Spruait.SetVar("Y", -40)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Absoluto", true)
							table.insert(Bullets, Spruait)
						end
					end
				elseif backwards then
					Engrane.SetVar("X", 560)
					phases[1] = 35
				end
				Eye1.SetVar("X", Engrane.GetVar("X"))
				Eye2.SetVar("X", Engrane.GetVar("X"))
			elseif phases[1] == 67 then
				if SongTime > 108.97 then
					if SongTime <= 109.17 then
						Extra = 60*math.sin(math.rad(90/0.2*(SongTime - 108.17)))
					else
						Extra = 60
					end
					if SongTime > 109.27 and WarningsT then
						WarningsT[1].Scale((80 + 410*math.sin(math.rad(180/0.4*math.min(SongTime - 109.27, 0.4))))/480, (80 + 410*math.sin(math.rad(180/0.4*math.min(SongTime - 109.27, 0.4))))/480)
					end
					if SongTime > 109.37 and WarningsT then
						WarningsT[2].Scale((80 + 410*math.sin(math.rad(180/0.4*math.min(SongTime - 109.37, 0.4))))/480, (80 + 410*math.sin(math.rad(180/0.4*math.min(SongTime - 109.37, 0.4))))/480)
					end
					if SongTime > 109.67 then
						Engrane.sprite.Scale((160 + 280*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480, (160 + 280*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480)
						Eye1.sprite.Scale((25 + 44*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480, (25 + 44*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480)
						Eye2.sprite.Scale((25 + 44*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480, (25 + 44*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))/480)
						Extra = 20 + 40*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2)))
						Riel3.SetVar("Y", -168.5 + 100*math.cos(math.rad(90/0.2*math.min(SongTime - 109.67, 0.2))))
					end
					if SongTime > 109.87 then
						if WarningsT and not backwards then
							for i=1,#WarningsT do
								WarningsT[i].Remove()
							end
						end
						WarningsT = nil
						Engrane.sprite.rotation = 45*math.sin(math.rad(90/0.2*(SongTime - 109.87)))
						Engrane.SetVar("X", 582 - 2*math.sin(math.rad(90/0.2*(SongTime - 109.87))))
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 109.87))))/255}
					end
					if SongTime > 110.07 and not backwards then
						if WarningsT then
							for i=1,#WarningsT do
								WarningsT[i].Remove()
							end
						end
						WarningsT = nil
						Extra = 20
						Engrane.SetVar("X", 580)
						Engrane.SetVar("SpeedRot", 2)
						Engrane.sprite.rotation = 0
						Engrane.sprite.color = {1,32/255,112/255}
						Eye1.sprite.color = {1,32/255,112/255}
						Eye2.sprite.color = {1,32/255,112/255}
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
						Engrane.sprite.Scale(160/480, 160/480)
						Eye1.sprite.Scale(25/480, 25/480)
						Eye2.sprite.Scale(25/480, 25/480)
						Direccion = 1
						phases[1] = 68
					end
				elseif backwards then
					for i=0,3 do
						for j=0,2 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
							Spruait.SetVar("NoDamage", 1)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.SetVar("Rueda", true)
							Spruait.SetVar("Ini", -640 - 1120*i)
							Spruait.SetVar("X", -640 - 1120*i)
							Spruait.SetVar("Ang", 360/3*j)
							if i%2 == 0 then
								Spruait.SetVar("Direccion", -1)
							else 
								Spruait.SetVar("Direccion", 1)
							end
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Absoluto", true)
							table.insert(Bullets, Spruait)
						end
					end
					for i=0,4 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
						Spruait.SetVar("NoDamage", 1)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", -160 - 1120*i)
						Spruait.SetVar("X", -160 - 1120*i)
						Spruait.SetVar("Ang", 135*i)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Absoluto", true)
						table.insert(Bullets, Spruait)
					end
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					Scroll = {X = 3.5, Y = 0}
					phases[1] = 66
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - Extra)
				Eye2.SetVar("X", Engrane.GetVar("X") + Extra)
			elseif phases[1] == 68 then
				if SongTime > 110.07 then
					if SongTime <= 122.26 then
						if Direccion == 1 then
							Engrane.SetVar("X", math.max(math.min(Engrane.GetVar("X") + 4*NewAudio.GetPitch("Song"), 580), 60))
							Engrane.SetVar("Y", math.max(math.min(Engrane.GetVar("Y") + 4*NewAudio.GetPitch("Song"), 400), 80))
							if Engrane.GetVar("X") >= 580 or Engrane.GetVar("X") <= 60 then
								Direccion = 2
							elseif Engrane.GetVar("Y") >= 400 or Engrane.GetVar("Y") <= 80 then
								Direccion = 4
							end
						elseif Direccion == 2 then
							Engrane.SetVar("X", math.min(math.max(Engrane.GetVar("X") - 4*NewAudio.GetPitch("Song"), 60), 580))
							Engrane.SetVar("Y", math.max(math.min(Engrane.GetVar("Y") + 4*NewAudio.GetPitch("Song"), 400), 80))
							if Engrane.GetVar("X") >= 580 or Engrane.GetVar("X") <= 60 then
								Direccion = 1
							elseif Engrane.GetVar("Y") >= 400 or Engrane.GetVar("Y") <= 80 then
								Direccion = 3
							end
						elseif Direccion == 3 then
							Engrane.SetVar("X", math.min(math.max(Engrane.GetVar("X") - 4*NewAudio.GetPitch("Song"), 60), 580))
							Engrane.SetVar("Y", math.min(math.max(Engrane.GetVar("Y") - 4*NewAudio.GetPitch("Song"), 80), 400))
							if Engrane.GetVar("X") >= 580 or Engrane.GetVar("X") <= 60 then
								Direccion = 4
							elseif Engrane.GetVar("Y") >= 400 or Engrane.GetVar("Y") <= 80 then
								Direccion = 2
							end
						elseif Direccion == 4 then
							Engrane.SetVar("X", math.max(math.min(Engrane.GetVar("X") + 4*NewAudio.GetPitch("Song"), 580), 60))
							Engrane.SetVar("Y", math.min(math.max(Engrane.GetVar("Y") - 4*NewAudio.GetPitch("Song"), 80), 400))
							if Engrane.GetVar("X") >= 580 or Engrane.GetVar("X") <= 60 then
								Direccion = 3
							elseif Engrane.GetVar("Y") >= 400 or Engrane.GetVar("Y") <= 80 then
								Direccion = 1
							end
						end
					elseif not backwards then
						Diff = {-Engrane.GetVar("X"), 240 - Engrane.GetVar("Y")}
						Engrane.SetVar("SpeedRot", 3)
						Extra = 0
						Extra2 = 20
						Sierra = nil
						phases[1] = 69
					end
				elseif backwards then
					WarningsT = {CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer")}
					WarningsT[1].color = {1,32/255,112/255}
					WarningsT[1].Scale(80/480, 80/480)
					WarningsT[2].color = {1,32/255,112/255}
					WarningsT[2].Scale(80/480, 80/480)
					WarningsT[1].SetVar("Pos", {Engrane.GetVar("X"), 240})
					WarningsT[2].SetVar("Pos", {Engrane.GetVar("X"), 240})
					Engrane.SetVar("X", 580)
					Engrane.SetVar("Y", 240)
					phases[1] = 67
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 69 then
				if not WarningsT and not backwards and SongTime <= 123.54 then
					WarningsT = {CreateSprite("Pixel", "BelowPlayer"), CreateSprite("Tension Level/Semicircle", "BelowPlayer")}
					WarningsT[1].Scale(math.abs(Diff[1]) + 10, 160)
					WarningsT[1].SetVar("Pos", {Engrane.GetVar("X") - WarningsT[1].xscale/2, Engrane.GetVar("Y")})
					WarningsT[1].color = {1, 32/255, 112/255}
					WarningsT[2].Scale(160/480, 160/480)
					WarningsT[2].rotation = 90
					WarningsT[2].color = {1, 32/255, 112/255}
					WarningsT[2].SetVar("Pos", {Engrane.GetVar("X") + 40, Engrane.GetVar("Y")})
				end
				if not Sierra then
					for i=0,3 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(160/480, 160/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("Follow", true)
						Spruait.SetVar("Ini", -140 - 140*i)
						Spruait.SetVar("X", -100)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("SpeedRot", 0)
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("Index", i)
						table.insert(Bullets, Spruait)
					end
					Sierra = true
				end
				if SongTime > 122.26 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 122.46 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 122.26))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 122.26))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 122.26))))/480)
					end
					if SongTime > 123.12 and SongTime <= 123.54 then
						Extra = 14*math.sin(math.rad(90/0.42*(SongTime - 123.12)))
						Extra2 = 20 - 5*math.sin(math.rad(90/0.42*(SongTime - 123.12)))
						Engrane.SetVar("X", -Diff[1]/2 - Diff[1]/2*math.cos(math.rad(180/0.42*(SongTime - 123.12))))
					elseif SongTime > 123.54 and SongTime <= 123.96 then
						Extra = 14
						Extra2 = 15
						Engrane.SetVar("X", 0)
						Engrane.SetVar("Y", 240 - Diff[2]/2 - Diff[2]/2*math.cos(math.rad(180/0.42*(SongTime - 123.54))))
					elseif SongTime > 123.96 and SongTime < 125.36 then
						Extra = 14
						Extra2 = 15
						Engrane.SetVar("X", 0)
						Engrane.SetVar("Y", 240)
					end
					if SongTime > 123.96 and SongTime <= 124.16 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 123.96))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 123.96))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 123.96))))/480)
					elseif SongTime > 124.16 and SongTime <= 125.36 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 124.16))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								else
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 124.16))))
							end
						end
					elseif SongTime > 125.36 then
						Engrane.SetVar("X", 1360)
						Engrane.SetVar("Y", 380)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
								Bullets[i].SetVar("Y", 380)
							end
						end
						phases[1] = 70
					end
					if SongTime > 123.54 and WarningsT and not backwards then
						WarningsT[1].Remove()
						WarningsT[2].Remove()
						WarningsT = nil
					elseif SongTime <= 123.54 and not WarningsT and backwards then
						WarningsT = {CreateSprite("Pixel", "BelowPlayer"), CreateSprite("Tension Level/Semicircle", "BelowPlayer")}
						WarningsT[1].Scale(math.abs(Diff[1]) + 10, 160)
						WarningsT[1].SetVar("Pos", {WarningsT[1].xscale/2 - 10, 240 - Diff[2]})
						WarningsT[1].color = {1, 32/255, 112/255}
						WarningsT[2].Scale(160/480, 160/480)
						WarningsT[2].rotation = 90
						WarningsT[2].color = {1, 32/255, 112/255}
						WarningsT[2].SetVar("Pos", {math.abs(Diff[1]) + 40, 240 - Diff[2]})
					end
					if phases[1] == 70 then
						if WarningsT then
							WarningsT[1].Remove()
							WarningsT[2].Remove()
						end
						WarningsT = nil
					end
				elseif SongTime <= 122.26 and backwards then
					if WarningsT then
						WarningsT[1].Remove()
						WarningsT[2].Remove()
					end
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					Engrane.SetVar("X", -Diff[1])
					Engrane.SetVar("Y", 240 - Diff[2])
					Extra = 0
					Extra2 = 20
					WarningsT = nil
					phases[1] = 68
				end
				if WarningsT then
					for i=1,#WarningsT do
						WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 122.26)))
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") + Extra - Extra2)
				Eye2.SetVar("X", Engrane.GetVar("X") + Extra + Extra2)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 70 then
				if SongTime > 125.36 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 125.71 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 125.36))))
					elseif SongTime <= 125.91 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 125.71))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 125.71))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 125.71))))/480)
					elseif SongTime <= 127.11 then
						Engrane.SetVar("X", -720 + 1360*math.cos(math.rad(90/1.2*(SongTime - 125.91))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								else
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20 + 1360*math.cos(math.rad(90/1.2*(SongTime - 125.91))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", -720)
						Engrane.SetVar("Y", 100)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
								Bullets[i].SetVar("Y", 100)
							end
						end
						phases[1] = 71
					end
				elseif backwards then
					Engrane.SetVar("X", 1360)
					Engrane.SetVar("Y", 240)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
							Bullets[i].SetVar("Y", 240)
						end
					end
					phases[1] = 69
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 29)
				Eye2.SetVar("X", Engrane.GetVar("X") + 1)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 71 then
				if SongTime > 127.11 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 127.46 then
						Engrane.SetVar("X", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 127.11))))
					elseif SongTime <= 127.66 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 127.46))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 127.46))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 127.46))))/480)
					elseif SongTime <= 128.86 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 127.66))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								else
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 127.66))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 1360)
						Engrane.SetVar("Y", 310)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
								Bullets[i].SetVar("Y", 310)
							end
						end
						phases[1] = 72
					end
				elseif backwards then
					Engrane.SetVar("X", -720)
					Engrane.SetVar("Y", 380)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
							Bullets[i].SetVar("Y", 380)
						end
					end
					phases[1] = 70
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 1)
				Eye2.SetVar("X", Engrane.GetVar("X") + 29)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 72 then
				if SongTime > 128.86 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 129.21 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 128.86))))
					elseif SongTime <= 129.41 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 129.21))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 129.21))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 129.21))))/480)
					elseif SongTime <= 130.61 then
						Engrane.SetVar("X", -720 + 1360*math.cos(math.rad(90/1.2*(SongTime - 129.41))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								else
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20 + 1360*math.cos(math.rad(90/1.2*(SongTime - 129.41))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", -720)
						Engrane.SetVar("Y", 170)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
								Bullets[i].SetVar("Y", 170)
							end
						end
						phases[1] = 73
					end
				elseif backwards then
					Engrane.SetVar("X", 1360)
					Engrane.SetVar("Y", 100)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
							Bullets[i].SetVar("Y", 100)
						end
					end
					phases[1] = 71
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 29)
				Eye2.SetVar("X", Engrane.GetVar("X") + 1)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 73 then
				if SongTime > 130.61 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 130.96 then
						Engrane.SetVar("X", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 130.61))))
					elseif SongTime <= 131.16 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 130.96))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 130.96))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 130.96))))/480)
					elseif SongTime <= 132.36 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 131.16))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								else
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 131.16))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 1360)
						Engrane.SetVar("Y", 380)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
								Bullets[i].SetVar("Y", 380)
							end
						end
						phases[1] = 74
					end
				elseif backwards then
					Engrane.SetVar("X", -720)
					Engrane.SetVar("Y", 310)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
							Bullets[i].SetVar("Y", 310)
						end
					end
					phases[1] = 72
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 1)
				Eye2.SetVar("X", Engrane.GetVar("X") + 29)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 74 then
				if SongTime > 132.36 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 132.71 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 132.36))))
					elseif SongTime <= 132.91 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 132.71))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 132.71))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 132.71))))/480)
					elseif SongTime <= 134.11 then
						Engrane.SetVar("X", -720 + 1360*math.cos(math.rad(90/1.2*(SongTime - 132.91))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								else
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20 + 1360*math.cos(math.rad(90/1.2*(SongTime - 132.91))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", -720)
						Engrane.SetVar("Y", 100)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
								Bullets[i].SetVar("Y", 100)
							end
						end
						phases[1] = 75
					end
				elseif backwards then
					Engrane.SetVar("X", 1360)
					Engrane.SetVar("Y", 170)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360)
							Bullets[i].SetVar("Y", 170)
						end
					end
					phases[1] = 73
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 29)
				Eye2.SetVar("X", Engrane.GetVar("X") + 1)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 75 then
				if not Sierra then
					for i=0,3 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(160/480, 160/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("Follow", true)
						Spruait.SetVar("Index", i)
						Spruait.SetVar("Ini", -140 - 140*i)
						Spruait.SetVar("X", -100)
						Spruait.SetVar("Y", 100)
						Spruait.SetVar("NoDamage", 1)
						if i%2 == 0 then
							Spruait.sprite.rotation = Engrane.sprite.rotation + 22.5
							Spruait.SetVar("SpeedRot", -3)
						else
							Spruait.sprite.rotation = Engrane.sprite.rotation
							Spruait.SetVar("SpeedRot", 3)
						end
						table.insert(Bullets, Spruait)
					end
					Sierra = true
				end
				if SongTime > 134.11 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 134.46 then
						Engrane.SetVar("X", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 134.11))))
					elseif SongTime <= 134.66 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 134.46))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 134.46))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 134.46))))/480)
					elseif SongTime <= 135.86 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 134.66))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								if Bullets[i].GetVar("Index")%2 == 0 then
									Bullets[i].sprite.rotation = -Engrane.sprite.rotation + 22.5
									Bullets[i].SetVar("SpeedRot", -3)
								else
									Bullets[i].sprite.rotation = Engrane.sprite.rotation
									Bullets[i].SetVar("SpeedRot", 3)
								end
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 134.66))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 1360)
						Engrane.SetVar("Y", 240)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						Extra = 14
						Extra2 = 15
						Sierra = nil
						phases[1] = 76
					end
				elseif backwards then
					Engrane.SetVar("X", -720)
					Engrane.SetVar("Y", 380)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 20)
							Bullets[i].SetVar("Y", 380)
						end
					end
					phases[1] = 74
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 1)
				Eye2.SetVar("X", Engrane.GetVar("X") + 29)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 76 then
				if not WarningsT then
					WarningsT = {CreateSprite("JS&B Library Sprites/Circle","BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole","BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole","BelowPlayer")}
					WarningsT[1].color = {1,32/255,112/255}
					WarningsT[2].color = {1,32/255,112/255}
					WarningsT[3].color = {1,32/255,112/255}
					WarningsT[1].Scale(440/480, 440/480)
					WarningsT[2].Scale(100/480, 100/480)
					WarningsT[3].Scale(100/480, 100/480)
					WarningsT[1].SetVar("Pos", {80, 240})
					WarningsT[2].SetVar("Follow", true)
					WarningsT[3].SetVar("Follow", true)
				end
				if SongTime > 135.86 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 136.21 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 135.86))))
					elseif SongTime <= 136.41 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 136.21))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 136.21))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 136.21))))/480)
					elseif SongTime <= 137.01 then
						Engrane.SetVar("X", 360 + 280*math.cos(math.rad(180/0.6*(SongTime - 136.41))))
						Extra = 7 + 7*math.cos(math.rad(180/0.6*(SongTime - 136.41)))
						Extra2 = 17.5 - 2.5*math.cos(math.rad(180/0.6*(SongTime - 136.41)))
					elseif not backwards then
						Eye1.sprite.Set("Tension Level/Line")
						Eye2.sprite.Set("Tension Level/Line")
						Engrane.SetVar("X", 80)
						Engrane.SetVar("Y", 240)
						Extra = 0
						Extra2 = 20
						phases[1] = 77
					end
				elseif backwards then
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					Engrane.SetVar("X", 1360)
					Engrane.SetVar("Y", 100)
					phases[1] = 75
				end
				if WarningsT then
					for i=1,#WarningsT do
						if WarningsT[i].GetVar("Follow") then
							WarningsT[i].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
						else
							WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 135.86)))
						end
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - Extra - Extra2)
				Eye2.SetVar("X", Engrane.GetVar("X") - Extra + Extra2)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 77 then
				if not WarningsT then
					WarningsT = {CreateSprite("JS&B Library Sprites/Circle","BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole","BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole","BelowPlayer")}
					WarningsT[1].color = {1,32/255,112/255}
					WarningsT[2].color = {1,32/255,112/255}
					WarningsT[3].color = {1,32/255,112/255}
					WarningsT[1].Scale(440/480, 440/480)
					WarningsT[2].Scale(80/480, 80/480)
					WarningsT[3].Scale(80/480, 80/480)
					WarningsT[1].SetVar("Pos", {80, 240})
					WarningsT[2].SetVar("Follow", true)
					WarningsT[3].SetVar("Follow", true)
				end
				if SongTime > 137.01 then
					if SongTime <= 137.61 then
						if SongTime <= 137.41 then
							WarningsT[2].Scale((80 + 410*math.sin(math.rad(180/0.4*(SongTime - 137.01))))/480, (80 + 410*math.sin(math.rad(180/0.4*(SongTime - 137.01))))/480)
						end
						if SongTime > 137.11 and SongTime <= 137.51 then
							WarningsT[3].Scale((80 + 410*math.sin(math.rad(180/0.4*(SongTime - 137.11))))/480, (80 + 410*math.sin(math.rad(180/0.4*(SongTime - 137.11))))/480)
						end
						if SongTime > 137.21 and SongTime <= 137.41 then
							Engrane.SetVar("SpeedRot", 0)
							Engrane.sprite.Set("Tension Level/Sierra")
							Eye1.sprite.Set("JS&B Library Sprites/Circle")
							Eye2.sprite.Set("JS&B Library Sprites/Circle")
							Engrane.sprite.Scale((160 + 280*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480, (160 + 280*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480)
							Eye1.sprite.Scale((25 + 44*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480, (25 + 44*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480)
							Eye2.sprite.Scale((25 + 44*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480, (25 + 44*math.sin(math.rad(90/0.2*(SongTime - 137.21))))/480)
							Extra2 = 20 + 40*math.sin(math.rad(90/0.2*(SongTime - 137.21)))
						elseif SongTime > 137.41 then
							Engrane.SetVar("SpeedRot", 0)
							Engrane.sprite.Set("Tension Level/Sierra")
							Eye1.sprite.Set("JS&B Library Sprites/Circle")
							Eye2.sprite.Set("JS&B Library Sprites/Circle")
							Engrane.sprite.Scale(440/480, 440/480)
							Eye1.sprite.Scale(69/480, 69/480)
							Eye2.sprite.Scale(69/480, 69/480)
							Extra2 = 60
						end
						if SongTime > 137.41 then
							Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255}
							Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255}
							Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 137.41))))/255}
							Extra2 = 60*math.cos(math.rad(90/0.2*(SongTime - 137.41)))
						end
					elseif not backwards then
						Engrane.SetVar("SpeedRot", -5)
						Engrane.sprite.Set("Tension Level/Sierra")
						Eye1.sprite.Set("JS&B Library Sprites/Circle")
						Eye2.sprite.Set("JS&B Library Sprites/Circle")
						Engrane.sprite.Scale(440/480, 440/480)
						Eye1.sprite.Scale(69/480, 69/480)
						Eye2.sprite.Scale(69/480, 69/480)
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						Extra2 = 0
						Auxiliar = {0, 0}
						Scroll = {X = -3, Y = 0}
						Engrane.SetVar("Absoluto", true)
						Eye1.SetVar("Absoluto", true)
						Eye2.SetVar("Absoluto", true)
						for i=1,#WarningsT do
							WarningsT[i].Remove()
						end
						WarningsT = nil
						for i=0,4 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1, 32/255, 112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("Lenght", 240 - 120*i)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Rotation", {0, -1.5})
							Spruait.SetVar("Rueda", true)
							Spruait.SetVar("Ini", 940)
							Spruait.SetVar("X", 940)
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("PosY", 240)
							table.insert(Bullets, Spruait)
						end
						Extra = 0
						phases[1] = 78
					end
				elseif backwards then
					Extra = 0
					Extra2 = 20
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					phases[1] = 76
				end
				if WarningsT then
					for i=1,#WarningsT do
						if WarningsT[i].GetVar("Follow") then
							WarningsT[i].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
						else
							WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 135.86)))
						end
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - Extra2)
				Eye2.SetVar("X", Engrane.GetVar("X") + Extra2)
			elseif phases[1] >= 78 and phases[1] < 183 then
				if SongTime > 137.61 then
					if SongTime > 137.68 + 0.855*(phases[1] - 78) - Extra and phases[1] < 183 then
						table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), Time = 5, VelRot = 10, Misiles = 12, ScaleLimit = 40, PX = Engrane.GetVar("X"), PY = 240, X = 0, Y = 0, Stay = 0, Appear = 137.68 + 0.855*(phases[1] - 78) - Extra, Eliminate = 137.68 + 0.855*(phases[1] - 78) - Extra, Front = true, NoLag = true})
						phases[1] = phases[1] + 1
						if phases[1] == 83 or phases[1] == 124 or phases[1] == 141 or phases[1] == 150 then
							Extra = Extra + 0.2
						elseif phases[1] == 84 or phases[1] == 125 or phases[1] == 142 or phases[1] == 151 then
							Extra = Extra + 0.655
						end
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") then
							Bullets[i]["Rotation"][1] = Bullets[i].GetVar("Rotation")[1] + Bullets[i].GetVar("Rotation")[2]*NewAudio.GetPitch("Song")
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Rotation")[1])) - 3*60*(SongTime - 137.61))
							Bullets[i].SetVar("Y", Bullets[i].GetVar("PosY") + 10*math.sin(math.rad(180*SongTime)) + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Rotation")[1])))
						elseif Bullets[i].GetVar("Obstaculo") or Bullets[i].GetVar("Movible") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 3*60*(SongTime - 137.61))
							if Bullets[i].GetVar("Movible") then
								Bullets[i]["Rotation"][1] = Bullets[i].GetVar("Rotation")[1] + Bullets[i].GetVar("Rotation")[2]*NewAudio.GetPitch("Song")
								Bullets[i].SetVar("Y", 240 + 170*Bullets[i].GetVar("Movible")*math.sin(math.rad(Bullets[i].GetVar("Rotation")[1])))
							end
						end
					end
					if Engrane.GetVar("X") > 0 then
						Engrane.SetVar("X", math.max(Engrane.GetVar("X") - 3, 0))
					end
					Engrane.SetVar("Y", 240 + 10*math.sin(math.rad(180*(SongTime - 137.61))))
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") and Bullets[i].GetVar("X") <= -40 and not backwards then
							Auxiliar[1] = Auxiliar[1] + 80
							break
						elseif Bullets[i].GetVar("Sierras") and Bullets[i].GetVar("X") >= 680 and backwards then
							Auxiliar[1] = Auxiliar[1] - 80
							break
						end
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras2") and Bullets[i].GetVar("X") <= -40 and not backwards then
							Auxiliar[2] = Auxiliar[2] + 80
							break
						elseif Bullets[i].GetVar("Sierras2") and Bullets[i].GetVar("X") >= 680 and backwards then
							Auxiliar[2] = Auxiliar[2] - 80
							break
						end
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("X") - 3*NewAudio.GetPitch("Song") + Auxiliar[1])
						elseif Bullets[i].GetVar("Sierras2") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("X") - 3*NewAudio.GetPitch("Song") + Auxiliar[2])
						end
					end
					Auxiliar = {0, 0}
					if phases[1] == 183 then
						Diff = 240 - Engrane.GetVar("Y")
						Extra = 0
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[1] = 77
				end
				Eye1.SetVar("X", Engrane.GetVar("X"))
				Eye2.SetVar("X", Engrane.GetVar("X"))
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 183 then
				if SongTime > 225.13 then
					if SongTime <= 225.53 then
						Extra = 60*math.sin(math.rad(90/0.4*(SongTime - 225.13)))
						Engrane.SetVar("Y", 240 + Diff - Diff/0.4*(SongTime - 225.13))
					else
						Extra = 60
						Engrane.SetVar("Y", 240)
					end
					if SongTime > 225.63 and not WarningsT then
						WarningsT = {CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer"), CreateSprite("JS&B Library Sprites/Hole", "BelowPlayer"), CreateSprite("JS&B Library Sprites/Circle", "BelowPlayer")}
						WarningsT[1].color = {1, 32/255, 112/255}
						WarningsT[2].color = {1, 32/255, 112/255}
						WarningsT[3].color = {1, 32/255, 112/255}
						WarningsT[1].Scale(80/480, 80/480)
						WarningsT[2].Scale(80/480, 80/480)
						WarningsT[3].Scale(160/480, 160/480)
						WarningsT[1].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
						WarningsT[2].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
						WarningsT[3].SetVar("Pos", {640, 321})
						WarningsT[3].SetVar("Ignore", true)
					end
					if SongTime > 225.63 and SongTime <= 226.03 then
						WarningsT[1].Scale((80 + 410*math.sin(math.rad(180/0.4*(SongTime - 225.63))))/480, (80 + 410*math.sin(math.rad(180/0.4*(SongTime - 225.63))))/480)
					elseif WarningsT then
						WarningsT[1].Scale(80/480, 80/480)
					end
					if SongTime > 225.73 and SongTime <= 226.13 then
						WarningsT[2].Scale((80 + 410*math.sin(math.rad(180/0.4*(SongTime - 225.73))))/480, (80 + 410*math.sin(math.rad(180/0.4*(SongTime - 225.73))))/480)
					elseif WarningsT then
						WarningsT[2].Scale(80/480, 80/480)
					end
					if SongTime > 226.03 and SongTime <= 226.23 then
						Engrane.sprite.Scale((440 - 280*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480, (440 - 280*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480)
						Eye1.sprite.Scale((69 - 44*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480, (69 - 44*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480)
						Eye2.sprite.Scale((69 - 44*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480, (69 - 44*math.sin(math.rad(90/0.2*(SongTime - 226.03))))/480)
						Engrane.SetVar("SpeedRot", -5)
						Extra = 60 - 40*math.sin(math.rad(90/0.2*(SongTime - 226.03)))
					elseif SongTime > 226.23 and SongTime <= 226.43 then
						Engrane.sprite.Set("Tension Level/Engrane")
						Engrane.SetVar("SpeedRot", 0)
						Engrane.sprite.rotation = 0
						Engrane.sprite.Scale(160/480, 160/480)
						Eye1.sprite.Scale(25/480, 25/480)
						Eye2.sprite.Scale(25/480, 25/480)
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255,(183.5 - 71.5*math.cos(math.rad(720/0.2*(SongTime - 226.23))))/255}
						Extra = 20
					elseif SongTime > 226.43 then
						Engrane.sprite.Scale(160/480, 160/480)
						Eye1.sprite.Scale(25/480, 25/480)
						Eye2.sprite.Scale(25/480, 25/480)
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.Set("Tension Level/Semicircle")
						Eye2.sprite.Set("Tension Level/Semicircle")
						Extra = 20
						Extra2 = 0
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") or Bullets[i].GetVar("Sierras2") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						for i=1,#WarningsT do
							WarningsT[i].Remove()
						end
						WarningsT = {CreateSprite("JS&B Library Sprites/Circle", "BelowPlayer")}
						WarningsT[1].Scale(160/480, 160/480)
						WarningsT[1].color = {1, 32/255, 112/255}
						WarningsT[1].alpha = 0.1
						WarningsT[1].SetVar("Pos", {640, 321})
						WarningsT[1].SetVar("Ignore", true)
						phases[1] = 184
					end
				elseif backwards then
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					Engrane.sprite.Scale(440/480, 440/480)
					Engrane.SetVar("SpeedRot", -5)
					Engrane.sprite.Set("Tension Level/Sierra")
					Eye1.sprite.Scale(69/480, 69/480)
					Eye2.sprite.Scale(69/480, 69/480)
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Extra = 0
					phases[1] = 182
				end
				if WarningsT then
					for i=1,#WarningsT do
						if not WarningsT[i].GetVar("Ignore") then
							WarningsT[i].SetVar("Pos", {Engrane.GetVar("X"), Engrane.GetVar("Y")})
						else
							WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 225.63)))
						end
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - Extra)
				Eye2.SetVar("X", Engrane.GetVar("X") + Extra)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 184 then
				if SongTime > 226.43 then
					if SongTime > 226.69 and SongTime <= 226.89 then
						Engrane.SetVar("Y", 159 + 81*math.cos(math.rad(90/0.2*(SongTime - 226.69))))
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 226.69))))/255}
					elseif SongTime > 226.89 and not backwards then
						for i=1,#WarningsT do
							WarningsT[i].Remove()
						end
						WarningsT = nil
						Engrane.SetVar("Y", 159)
						Engrane.SetVar("Grupo", 1)
						Engrane.SetVar("Ini", 0)
						for i=0,6 do
							Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
							Spruait.sprite.Scale(160/480, 160/480)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("SpeedRot", 0)
							Spruait.SetVar("Ini", -300*i)
							Spruait.SetVar("X", -300*i)
							Spruait.SetVar("Y", 159)
							Spruait.SetVar("Grupo", 1)
							table.insert(Bullets, Spruait)
						end
						Engrane.sprite.color = {1, 32/255, 112/255}
						Eye1.sprite.color = {1, 32/255, 112/255}
						Eye2.sprite.color = {1, 32/255, 112/255}
						if not rango or rango <= 10 then
							shakescreen = 0
							rango = 10
						end
						Diff = 0
						phases[1] = 185
					end
				elseif backwards then
					Engrane.SetVar("Y", 240)
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					for i=0,8 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
						Spruait.SetVar("NoDamage", 1)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.SetVar("Sierras", true)
						Spruait.SetVar("Ini", 600 - 80*i)
						Spruait.SetVar("X", 600 - 80*i)
						Spruait.SetVar("Y", 600)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Absoluto", true)
						table.insert(Bullets, Spruait)
					end
					for i=0,8 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0)
						Spruait.SetVar("NoDamage", 1)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.SetVar("Sierras2", true)
						Spruait.SetVar("Ini", 600 - 80*i)
						Spruait.SetVar("X", 600 - 80*i)
						Spruait.SetVar("Y", -40)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Absoluto", true)
						table.insert(Bullets, Spruait)
					end
					phases[1] = 183
				end
				if WarningsT then
					for i=1,#WarningsT do
						WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 225.63)))
					end
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] >= 185 and phases[1] < 218 then
				if SongTime > 226.89 then
					if SongTime > 227.51 + 0.85*(phases[1] - 185) - Diff and SongTime <= 227.71 + 0.85*(phases[1] - 185) - Diff then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 60 - 60*math.cos(math.rad(90/0.2*(SongTime - (227.51 + 0.85*(phases[1] - 185) - Diff)))))
								Bullets[i].sprite.rotation = 45*math.cos(math.rad(90/0.2*(SongTime - (227.51 + 0.85*(phases[1] - 185) - Diff))))
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 60 + 60*math.cos(math.rad(90/0.2*(SongTime - (227.51 + 0.85*(phases[1] - 185) - Diff)))))
								Bullets[i].sprite.rotation = 45*math.cos(math.rad(90/0.2*(SongTime - (227.51 + 0.85*(phases[1] - 185) - Diff))))
							end
						end
					elseif SongTime > 227.71 + 0.85*(phases[1] - 185) - Diff and not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
								Bullets[i].sprite.rotation = 0
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
								Bullets[i].sprite.rotation = 0
							end
						end
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						if phases[1] == 188 or phases[1] == 205 then
							Diff = Diff + 0.2
						elseif phases[1] == 189 or phases[1] == 206 then
							Diff = Diff + 0.65
						end
						phases[1] = phases[1] + 1
						if phases[1] == 218 then
							Engrane.SetVar("Grupo", nil)
							Diff = 0
						end
					elseif SongTime <= 227.51 + 0.85*(phases[1] - 185) - Diff and backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].sprite.rotation = 0
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].sprite.rotation = 0
							end
						end
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						phases[1] = math.max(phases[1] - 1, 185)
						if phases[1] == 188 or phases[1] == 205 then
							Diff = Diff - 0.2
						elseif phases[1] == 189 or phases[1] == 206 then
							Diff = Diff - 0.65
						end
					end
				elseif backwards then
					Engrane.SetVar("Grupo", nil)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Grupo") == 1 then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Engrane.SetVar("X", 0)
					WarningsT = {CreateSprite("JS&B Library Sprites/Circle", "BelowPlayer")}
					WarningsT[1].Scale(160/480, 160/480)
					WarningsT[1].color = {1, 32/255, 112/255}
					WarningsT[1].alpha = 0.1
					WarningsT[1].SetVar("Pos", {640, 321})
					WarningsT[1].SetVar("Ignore", true)
					phases[1] = 184
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 14 - 6*math.cos(math.rad(90/0.4*math.min(SongTime - 226.89, 0.4))))
				Eye2.SetVar("X", Engrane.GetVar("X") + 26 - 6*math.cos(math.rad(90/0.4*math.min(SongTime - 226.89, 0.4))))
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] >= 218 and phases[1] < 245 then
				if SongTime > 253.72 then
					if SongTime <= 253.92 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") then
								Bullets[i].sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 253.72))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 253.72))))/255}
							end
						end
					elseif SongTime > 254.12 + 0.85*(phases[1] - 218) - Diff and SongTime <= 254.32 + 0.85*(phases[1] - 218) - Diff then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") then
								Bullets[i].sprite.color = {1,32/255,112/255}
							end
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 60 + 60*math.cos(math.rad(90/0.2*(SongTime - (254.12 + 0.85*(phases[1] - 218) - Diff)))))
								Bullets[i].sprite.rotation = -45*math.cos(math.rad(90/0.2*(SongTime - (254.12 + 0.85*(phases[1] - 218) - Diff))))
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 60 - 60*math.cos(math.rad(90/0.2*(SongTime - (254.12 + 0.85*(phases[1] - 218) - Diff)))))
								Bullets[i].sprite.rotation = -45*math.cos(math.rad(90/0.2*(SongTime - (254.12 + 0.85*(phases[1] - 218) - Diff))))
							end
						end
					elseif SongTime > 254.32 + 0.85*(phases[1] - 218) - Diff and not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
								Bullets[i].sprite.rotation = 0
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
								Bullets[i].sprite.rotation = 0
							end
						end
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						if phases[1] == 222 or phases[1] == 231 or phases[1] == 240 then
							Diff = Diff + 0.2
						elseif phases[1] == 223 or phases[1] == 232 or phases[1] == 241 then
							Diff = Diff + 0.65
						end
						phases[1] = phases[1] + 1
					elseif SongTime <= 254.12 + 0.85*(phases[1] - 218) - Diff and backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].sprite.rotation = 0
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Ini", Bullets[i].GetVar("Ini") - 60)
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 60)
								Bullets[i].sprite.rotation = 0
							end
						end
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						phases[1] = math.max(phases[1] - 1, 218)
						if phases[1] == 222 or phases[1] == 231 or phases[1] == 240 then
							Diff = Diff - 0.2
						elseif phases[1] == 223 or phases[1] == 232 or phases[1] == 241 then
							Diff = Diff - 0.65
						end
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Grupo") then
							Bullets[i].sprite.color = {1,32/255,112/255}
						end
					end
					Engrane.SetVar("Grupo", 1)
					Diff = 1.7
					phases[1] = 184
				end
			elseif phases[1] == 245 then
				if SongTime > 274.2 then
					if SongTime <= 274.4 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") then
								Bullets[i].sprite.Scale((160 - 160*math.sin(math.rad(90/0.2*(SongTime - 274.2))))/480, (160 - 160*math.sin(math.rad(90/0.2*(SongTime - 274.2))))/480)
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						Riel.SetVar("Remove", true)
						Riel2.SetVar("Remove", true)
						Riel = nil
						Riel2 = nil
						phases[1] = 246
					end
				elseif backwards then
					phases[1] = 244
				end
			elseif phases[1] == 246 then
				if SongTime > 274.4 then
					if SongTime <= 292.4 then
						Engrane.SetVar("Y", 240 + 10*math.sin(math.rad(180*(SongTime - 274.4))))
					elseif not backwards then
						Engrane.SetVar("Y", 240)
						phases[1] = 247
					end
				elseif backwards then
					for i=0,6 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(160/480, 160/480)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 0)
						Spruait.SetVar("Ini", -300*i)
						Spruait.SetVar("X", -300*i)
						Spruait.SetVar("Y", 159)
						Spruait.SetVar("Grupo", 1)
						table.insert(Bullets, Spruait)
					end
					for i=0,6 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(160/480, 160/480)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 0)
						Spruait.SetVar("Ini", 640 + 300*i)
						Spruait.SetVar("X", 760 + 300*i)
						Spruait.SetVar("Y", 321)
						Spruait.SetVar("Grupo", 2)
						table.insert(Bullets, Spruait)
					end
					phases[1] = 245
				end
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[1] == 247 or phases[1] == 248 then
				if SongTime > 293.27 then
					if phases[1] == 247 then
						for i=1,8 do
							local Misil = CreateProjectileAbs("Pixel", -100, -100)
							local Warning = CreateSprite("Pixel","BelowPlayer")
							Misil.sprite.color = {1, 32/255, 112/255}
							Misil.SetVar("NoDamage", 1)
							Warning.color = {1, 32/255, 112/255}
							table.insert(Barras3, {Bullet = Misil, Warn = Warning, Follow = true, Grosor = 20, Ang = 45*i, Vel = -0.5, Lenght = {Current = 70, Increment = 50}, Inicial = 293.27, Appear = 294.9, Disappear = 296.27})
						end
						phases[1] = 248
					elseif SongTime > 296.37 then
						Extra = 20
						phases[1] = 249
					end
				elseif backwards then
					phases[1] = 246
				end
			elseif phases[1] == 249 then
				if SongTime > 296.37 then
					if SongTime <= 296.57 then
						Engrane.sprite.Scale(160*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480, 160*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480)
						Eye1.sprite.Scale(25*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480, 25*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480)
						Eye2.sprite.Scale(25*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480, 25*math.cos(math.rad(90/0.2*(SongTime - 296.37)))/480)
						Extra = 20*math.cos(math.rad(90/0.2*(SongTime - 296.37)))
					elseif not backwards then
						Engrane.sprite.Scale(0, 0)
						Eye1.sprite.Scale(0, 0)
						Eye2.sprite.Scale(0, 0)
						Extra = 0
						phases[1] = 250
					end
				elseif backwards then
					for i=1,8 do
						local Misil = CreateProjectileAbs("Pixel", -100, -100)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Misil.SetVar("NoDamage", 1)
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras3, {Bullet = Misil, Warn = Warning, Follow = true, Grosor = 20, Ang = 45*i, Vel = -0.5, Lenght = {Current = 70, Increment = 50}, Inicial = 293.27, Appear = 294.9, Disappear = 296.27})
					end
					phases[1] = 248
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - Extra)
				Eye2.SetVar("X", Engrane.GetVar("X") + Extra)
			elseif phases[1] == 250 then
				if SongTime > 297 then
					--End Level
				elseif backwards then
					phases[1] = 249
				end
			end
			if phases[2] == 0 then
				if SongTime > 2.17 and not backwards then
					math.randomseed(348)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 16, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(510, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 2.17, Eliminate = 2.92})
					phases[2] = 1
				elseif backwards then
					phases[2] = -1
				end
			elseif phases[2] == 1 then
				if SongTime > 4.27 and not backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = 50 + 380*(i-1), Grosor = 120, Direction = 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 4.27, Appear = 5.27, Disappear = 6.3, Shake = true})
					end
					phases[2] = 2
				elseif SongTime <= 6.4 and backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = 50 + 380*(i-1), Grosor = 120, Direction = 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 4.27, Appear = 5.27, Disappear = 6.3, Shake = true})
					end
					phases[2] = 0
				end
			elseif phases[2] == 2 then
				if SongTime > 8.8 then
					if not rango or rango <= 2 then
						shakescreen = 9
						rango = 2
					end
					if SongTime > 13.79 and not backwards then
						phases[2] = 3
					end
				elseif backwards then
					if not rango or rango <= 2 then
						shakescreen = 9
						rango = 2
					end
					phases[2] = 1
				end
			elseif phases[2] == 3 then
				if SongTime > 13.79 then
					if not rango or rango <= 2 then
						shakescreen = 9
						rango = 2
					end
					if SongTime <= 20.48 then
						if timer%20 == 0 then
							math.randomseed(timer*10000)
							local Misil = CreateProjectileAbs("Pixel", 0, 0)
							Misil.sprite.Scale(20,20)
							Misil.sprite.color = {1, 32/255, 112/255}
							Misil.sprite.rotation = math.random(360)
							if not backwards then
								table.insert(Fall, {Bullet = Misil, PX = math.random(15, 660), PY = 430, Vel = -2, VelRot = math.random(-3, 3)})
							else
								table.insert(Fall, {Bullet = Misil, PX = math.random(-15, 645), PY = -20, PYIni = 430, Vel = -11.2, VelRot = math.random(-3, 3)})
							end
						end
					elseif not backwards then
						if not rango or rango <= 2 then
							shakescreen = 9
							rango = 2
						end
						phases[2] = 4
					end
				elseif backwards then
					phases[2] = 2
				end
			elseif phases[2] == 4 then
				if SongTime > 20.48 then
					if not rango or rango <= 2 then
						shakescreen = 9
						rango = 2
					end
					if SongTime > 26 and not backwards then
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						Scroll = nil
						phases[2] = 5
					end
				elseif backwards then
					if not rango or rango <= 2 then
						shakescreen = 9
						rango = 2
					end
					phases[2] = 3
				end
			elseif phases[2] == 5 then
				Engrane.SetVar("X", 320)
				Eye1.SetVar("X", Engrane.GetVar("X") - 20)
				Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				if SongTime > 26 and not backwards then
					if SongTime <= 27 then
						Engrane.SetVar("Y", 600 - 360*math.sin(math.rad(90*(SongTime - 26))))
						Eye1.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90*(SongTime - 26))))
						Eye2.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90*(SongTime - 26))))
					else
						Engrane.SetVar("Y", 240)
						Engrane.SetVar("SpeedRot", 10)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						phases[2] = 6
					end
				elseif SongTime <= 27 and backwards then
					if SongTime > 26 then
						if not LaseresRev2 then
							for i=1,2 do
								local Misil = CreateProjectileAbs("Pixel", 0, 0)
								local Warning = CreateSprite("Pixel","BelowPlayer")
								Misil.sprite.color = {1, 32/255, 112/255}
								Warning.color = {1, 32/255, 112/255}
								table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
							end
							LaseresRev2 = true
						end
						Engrane.SetVar("Y", 600 - 360*math.sin(math.rad(90*(SongTime - 26))))
						Eye1.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90*(SongTime - 26))))
						Eye2.SetVar("Y", Engrane.GetVar("Y") - 3 + 3*math.sin(math.rad(90*(SongTime - 26))))
					else
						Engrane.SetVar("Y", 600)
						Engrane.SetVar("SpeedRot", 10)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						if not rango or rango <= 5 then
							shakescreen = 0
							rango = 5
						end
						Scroll = {X = -2, Y = 0}
						phases[2] = 4
					end
				end
			elseif phases[2] == 6 then
				if SongTime > 27.2 and not backwards then
					for i=1,18 do
						if i > 4 and i <= 14 and (i%6 == 5 or i%6 == 2) then
							local Warn = CreateSprite("Pixel","BelowPlayer")
							Warn.color = {1, 32/255, 112/255}
							Warn.alpha = 0.4
							if i%6 == 5 then
								table.insert(Generator, {Trail = Warn, Distancia = 1680, Movement = 270, PX = 320, PY = -60 + 120*i, Rate = 180, Direction = 0, Appear = 27.2, Eliminate = 54.96, Spawner = {X = -380, Y = 0, Rot = -5, Vel = 3, Eliminate = {Right = 700, Left = -60, Up = 1/0, Down = -1/0}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							else
								table.insert(Generator, {Trail = Warn, Distancia = 1680, Movement = 270, PX = 320, PY = -60 + 120*i, Rate = 180, Direction = 180, Appear = 27.2, Eliminate = 54.96, Spawner = {X = 380, Y = 0, Rot = 5, Vel = 3, Eliminate = {Right = 700, Left = -60, Up = 1/0, Down = -1/0}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							end
						else
							Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0, "BelowBullet")
							Bullet.SetVar("NoDamage", 1)
							Bullet.SetVar("SpeedRot", -5)
							Bullet.SetVar("Sierras", true)
							Bullet.SetVar("Absoluto", true)
							Bullet.SetVar("X", 0)
							Bullet.SetVar("Ini", -60 + 120*i)
							Bullet.SetVar("Y", -60 + 120*i)
							Bullet.sprite.color = {1, 32/255, 112/255}
							Bullet.sprite.Scale(120/480, 120/480)
							table.insert(Bullets, Bullet)
							Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", 0, 0, "BelowBullet")
							Bullet.SetVar("NoDamage", 1)
							Bullet.SetVar("SpeedRot", 5)
							Bullet.SetVar("Sierras", true)
							Bullet.SetVar("Absoluto", true)
							Bullet.SetVar("X", 640)
							Bullet.SetVar("Ini", -60 + 120*i)
							Bullet.SetVar("Y", -60 + 120*i)
							Bullet.sprite.color = {1, 32/255, 112/255}
							Bullet.sprite.Scale(120/480, 120/480)
							table.insert(Bullets, Bullet)
						end
					end
					phases[2] = 7
				elseif SongTime <= 27.2 and backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Engrane.SetVar("Absoluto", nil)
					Eye1.SetVar("Absoluto", nil)
					Eye2.SetVar("Absoluto", nil)
					Scroll = nil
					phases[2] = 5
				end
			elseif phases[2] == 7 then
				if SongTime > 27.45 and not backwards then
					Engrane.SetVar("Absoluto", true)
					Eye1.SetVar("Absoluto", true)
					Eye2.SetVar("Absoluto", true)
					Scroll = {X = 0, Y = -1}
					phases[2] = 8
				elseif SongTime <= 27.55 and backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Engrane.SetVar("Absoluto", nil)
					Eye1.SetVar("Absoluto", nil)
					Eye2.SetVar("Absoluto", nil)
					Scroll = nil
					phases[2] = 5
				end
			elseif phases[2] == 8 then
				if SongTime > 27.45 then
					if SongTime <= 27.55 and not LaseresRev2 then
						for i=1,2 do
							local Misil = CreateProjectileAbs("Pixel", 0, 0)
							local Warning = CreateSprite("Pixel","BelowPlayer")
							Misil.sprite.color = {1, 32/255, 112/255}
							Warning.color = {1, 32/255, 112/255}
							table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
						end
						LaseresRev2 = true
					end
					if SongTime <= 54.96 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") - 1680/27.51*(SongTime - 27.45))
							end
						end
					elseif not backwards then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Sierras") then
								Bullets[i].SetVar("Y", Bullets[i].GetVar("Ini") - 1680)
							end
						end
						Scroll = nil
						phases[2] = 9
					end
				elseif backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 50 + 540*(i-1), Grosor = 120, Direction = 1 + 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 26.2, Appear = 27, Disappear = 27.45, Absoluto = true, Shake = true})
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Sierras") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					Engrane.SetVar("Absoluto", nil)
					Eye1.SetVar("Absoluto", nil)
					Eye2.SetVar("Absoluto", nil)
					Scroll = nil
					phases[2] = 5
				end
			elseif phases[2] >= 9 and phases[2] <= 52 then
				if SongTime > 55.41 + 0.86*(phases[2] - 9) and phases[2] <= 24 and not backwards then
					if not rango or rango <= 10 then
						movement = {0, "Down"}
						rango = 10
					end
					phases[2] = phases[2] + 1
				elseif SongTime > 68.69 + 0.43*(phases[2] - 25) and not backwards then
					if not rango or rango <= 20 then
						movement = {0, "Down"}
						rango = 20
					end
					phases[2] = phases[2] + 1
				elseif SongTime <= 54.96 and backwards then
					for i=1,18 do
						if i > 4 and i <= 14 and (i%6 == 5 or i%6 == 2) then
							local Warn = CreateSprite("Pixel","BelowPlayer")
							Warn.color = {1, 32/255, 112/255}
							Warn.alpha = 0.4
							if i%6 == 5 then
								table.insert(Generator, {Trail = Warn, Distancia = 1680, Movement = 270, PX = 320, PY = -60 + 120*i, Rate = 180, Direction = 0, Appear = 27.2, Eliminate = 54.96, Spawner = {X = -380, Y = 0, Rot = -5, Vel = 3, Eliminate = {Right = 700, Left = -60, Up = 1/0, Down = -1/0}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							else
								table.insert(Generator, {Trail = Warn, Distancia = 1680, Movement = 270, PX = 320, PY = -60 + 120*i, Rate = 180, Direction = 180, Appear = 27.2, Eliminate = 54.96, Spawner = {X = 380, Y = 0, Rot = 5, Vel = 3, Eliminate = {Right = 700, Left = -60, Up = 1/0, Down = -1/0}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							end
						end
					end
					Scroll = {X = 0, Y = -1}
					phases[2] = 8
				end
			elseif phases[2] >= 53 and phases[2] < 85 then
				patron = {50, 240, 120, 610, 480, 200, 600, 80, 140, 570, 320, 410, 10, 630, 380, 510, 80, 200, 470, 300, 600, 240, 390, 40, 560, 300, 100, 440, 320, 180, 490, 60}
				if SongTime > 109.5 + 0.86*(phases[2] - 53) and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = patron[phases[2] - 52], Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 109.5 + 0.86*(phases[2] - 53), Appear = 110.25 + 0.86*(phases[2] - 53), Disappear = 110.75 + 0.86*(phases[2] - 53)})
					phases[2] = phases[2] + 1
				elseif SongTime <= 110.85 - 0.86*(phases[2] - 53) and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = patron[phases[2] - 52], Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 109.5 + 0.86*(phases[2] - 53), Appear = 110.25 + 0.86*(phases[2] - 53), Disappear = 110.75 + 0.86*(phases[2] - 53)})
					phases[2] = phases[2] - 1
				elseif SongTime <= 68.69 and backwards then
					phases[2] = 52
				end
			elseif phases[2] >= 85 and phases[2] < 98 then
				patron = {240, 300, 120, 440, 170, 220, 290, 240, 350, 310, 60, 130, 390, 280}
				if SongTime > 151.07 and not backwards then
					if SongTime > 151.07 + 0.9333333*(phases[2] - 85) then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 30*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 30)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 650, Y = patron[phases[2] - 84], Eliminate = {Right = 730, Left = -90, Up = 480, Down = 0}, Direction = 2, Height = 15, Vel = 8, Pulse = 10/480, Scale = 16/480, Espaciado = 12, Rateo = 8})
						phases[2] = phases[2] + 1
					end
				elseif backwards then
					phases[2] = 84
				end
			elseif phases[2] >= 98 and phases[2] < 162 then
				patron = {120, 300, 410, 450, 210, 30, 70, 120, 340, 170, 230, 410, 350, 430, 140, 50, 240, 450, 300, 380, 120, 200, 70, 140, 340, 290, 170, 40, 90, 390, 270, 340, 120, 70, 300, 410, 450, 210, 30, 70, 120, 340, 170, 230, 410, 350, 430, 140, 50, 240, 450, 300, 380, 120, 200, 70, 140, 340, 290, 170, 40, 90, 390, 270, 340, 120}
				if SongTime > 163.96 then
					if SongTime > 198.33 + 0.43*(phases[2] - 98) and not backwards then
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron[phases[2] - 97], Grosor = 10, Direction = 2, Phase = 0, Intensidad = 20, Inicial = 198.33 + 0.43*(phases[2] - 98), Appear = 199.08 + 0.43*(phases[2] - 98), Disappear = 199.58 + 0.43*(phases[2] - 98)})
						phases[2] = phases[2] + 1
					elseif SongTime < 199.68 + 0.43*(phases[2] - 98) and backwards then
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron[phases[2] - 97], Grosor = 10, Direction = 2, Phase = 0, Intensidad = 20, Inicial = 198.33 + 0.43*(phases[2] - 98), Appear = 199.08 + 0.43*(phases[2] - 98), Disappear = 199.58 + 0.43*(phases[2] - 98)})
						phases[2] = phases[2] - 1
					end
				elseif backwards then
					phases[2] = 79
				end
			elseif phases[2] == 162 then
				if SongTime > 233.28 then
					if SongTime <= 294 then
						if timer%20 == 0 then
							math.randomseed(timer*10000)
							local Misil = CreateProjectileAbs("Pixel", 0, 0)
							Misil.sprite.Scale(20,20)
							Misil.sprite.color = {1, 32/255, 112/255}
							Misil.sprite.rotation = math.random(360)
							if not backwards then
								table.insert(Fall, {Bullet = Misil, PX = math.random(10, 630), PY = 500, Vel = -2, VelRot = math.random(-3, 3), Front = true})
							else
								table.insert(Fall, {Bullet = Misil, PX = math.random(10, 630), PY = -20, PYIni = 430, Vel = -11.2, VelRot = math.random(-3, 3), Front = true})
							end
						end
					elseif not backwards then
						phases[2] = 163
					end
				elseif backwards then
					phases[2] = 161
				end
			end
			if phases[3] >= 0 and phases[3] < 14 then
				if backwards then
					phases[3] = -1
				end
				if SongTime > 13.41 + 0.88*phases[3] and not backwards then
					math.randomseed(phases[3]*75)
					local randomizador = math.random(200, 280)
					if phases[3]%2 == 0 then
						table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(560, 640) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 13.41 + 0.88*phases[3], Eliminate = 14.16 + 0.88*phases[3]})
					else
						table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", -20, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = -20, PY = randomizador, X = math.random(100, 180) + 20, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 13.41 + 0.88*phases[3], Eliminate = 14.16 + 0.88*phases[3]})
					end
					phases[3] = phases[3] + 1
				end
			elseif phases[3] == 14 then
				if SongTime > 25 and not backwards then
					if not WarningsT then
						WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Semicircle","BelowPlayer")}
						WarningsT[1].color = {1, 32/255, 112/255}
						WarningsT[2].color = {1, 32/255, 112/255}
						WarningsT[1].Scale(160, 260)
						WarningsT[2].Scale(160/480, 160/480)
						WarningsT[1].SetVar("Pos", {320, 370})
						WarningsT[2].SetVar("Pos", {320, 200})
					end
					if SongTime <= 27 then
						WarningsT[1].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 27)))
						WarningsT[2].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 27)))
					else
						WarningsT[1].Remove()
						WarningsT[2].Remove()
						WarningsT = nil
						phases[3] = 15
					end
				elseif SongTime < 27 and backwards then
					if not WarningsT then
						WarningsT = {CreateSprite("Pixel","BelowPlayer"), CreateSprite("Tension Level/Semicircle","BelowPlayer")}
						WarningsT[1].color = {1, 32/255, 112/255}
						WarningsT[2].color = {1, 32/255, 112/255}
						WarningsT[1].Scale(160, 260)
						WarningsT[2].Scale(160/480, 160/480)
						WarningsT[1].SetVar("Pos", {320, 370})
						WarningsT[2].SetVar("Pos", {320, 200})
					end
					if SongTime >= 25 then
						WarningsT[1].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 27)))
						WarningsT[2].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 27)))
					else
						WarningsT[1].Remove()
						WarningsT[2].Remove()
						WarningsT = nil
						phases[3] = -1
					end
				end
			elseif phases[3] == 15 then
				if SongTime > 29.59 and not backwards then
					math.randomseed(231)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(540, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 29.59, Eliminate = 30.34})
					phases[3] = 16
				elseif SongTime < 28 and backwards then
					phases[3] = 14
				end
			elseif phases[3] == 16 then
				if SongTime > 31.31 and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 300, Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 31.31, Appear = 32.06, Disappear = 32.56})
					phases[3] = 17
				elseif SongTime < 32.66 and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 300, Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 31.31, Appear = 32.06, Disappear = 32.56})
					phases[3] = 14
				end
			elseif phases[3] == 17 then
				if SongTime > 36.43 and not backwards then
					math.randomseed(458)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", -20, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = -20, PY = randomizador, X = math.random(50, 100) + 20, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 36.43, Eliminate = 37.18})
					phases[3] = 18
				elseif SongTime < 36.43 and backwards then
					phases[3] = 16
				end
			elseif phases[3] == 18 then
				if SongTime > 38.15 and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 440, Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 38.15, Appear = 38.9, Disappear = 39.4})
					phases[3] = 19
				elseif SongTime < 39.5 and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = 440, Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 38.15, Appear = 38.9, Disappear = 39.4})
					phases[3] = 16
				end
			elseif phases[3] == 19 then
				if SongTime > 43.73 and not backwards then
					math.randomseed(458)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(540, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 43.73, Eliminate = 44.48})
					phases[3] = 20
				elseif SongTime < 43.73 and backwards then
					phases[3] = 18
				end
			elseif phases[3] == 20 then
				if SongTime > 47.15 and not backwards then
					math.randomseed(458)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", -20, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = -20, PY = randomizador, X = math.random(50, 100) + 20, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 47.15, Eliminate = 47.9})
					phases[3] = 21
				elseif SongTime < 47.15 and backwards then
					phases[3] = 18
				end
			elseif phases[3] == 21 then
				if SongTime > 50.59 and not backwards then
					math.randomseed(458)
					local randomizador = math.random(200, 280)
					table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 10, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(540, 590) - 660, Y = math.random(150, 330) - randomizador, Stay = 10, Appear = 50.59, Eliminate = 51.34})
					phases[3] = 22
				elseif SongTime <= 50.59 and backwards then
					phases[3] = 18
				end
			elseif phases[3] >= 22 and phases[3] <= 23 then
				if SongTime > 59.49 + 6.85*(phases[3] - 22) and not backwards then
					if not rango or rango <= 10 then
						movement = {0, "Down"}
						rango = 10
					end
					phases[3] = phases[3] + 1
				elseif SongTime <= 50.59 and backwards then
					phases[3] = 18
				end
			elseif phases[3] >= 24 and phases[3] < 55 then
				patron2 = {240, 70, 180, 430, 30, 130, 450, 340, 200, 400, 360, 120, 190, 270, 60, 350, 240, 430, 80, 300, 200, 130, 450, 30, 230, 170, 40, 240, 320, 120, 80}
				if SongTime > 109.93 + 0.86*(phases[3] - 24) and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron2[phases[3] - 23], Grosor = 20, Direction = 2*(phases[3]%2), Phase = 0, Intensidad = 20, Inicial = 109.93 + 0.86*(phases[3] - 24), Appear = 110.68 + 0.86*(phases[3] - 24), Disappear = 111.18 + 0.86*(phases[3] - 24)})
					phases[3] = phases[3] + 1
				elseif SongTime <= 111.18 + 0.86*(phases[3] - 24) and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron2[phases[3] - 23], Grosor = 20, Direction = 2*(phases[3]%2), Phase = 0, Intensidad = 20, Inicial = 109.93 + 0.86*(phases[3] - 24), Appear = 110.68 + 0.86*(phases[3] - 24), Disappear = 111.18 + 0.86*(phases[3] - 24)})
					phases[3] = phases[3] - 1
				elseif SongTime <= 68.69 and backwards then
					phases[3] = 23
				end
			elseif phases[3] == 55 then
				if SongTime > 141 and not backwards then
					for i=0,1 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", -1 + 2*i)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 1800)
						Spruait.SetVar("X", 1800)
						Spruait.SetVar("Y", 480*i)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 56
				elseif SongTime <= 141 and backwards then
					phases[3] = 54
				end
			elseif phases[3] == 56 then
				if SongTime > 146 and not backwards then
					for i=0,3 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rotation", {0, 3})
						Spruait.SetVar("Movible", 1*((i%2)*2 - 1))
						Spruait.SetVar("Ini", 2200 + 180*i)
						Spruait.SetVar("X", 2200 + 180*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[3] = 57
				elseif SongTime <= 146 and backwards then
					phases[3] = 55
				end
			elseif phases[3] == 57 then
				if SongTime > 151 and not backwards then
					for i=0,3 do
						local Warn = CreateSprite("Pixel","BelowPlayer")
						Warn.color = {1, 32/255, 112/255}
						Warn.alpha = 0.4
						if i%2 == 0 then
							table.insert(Generator, {Trail = Warn, Distancia = 1800, Movement = 180, Timer = -30*i, PX = 700 + 200*i, PY = 240, Rate = 120, Direction = 110, Appear = 151, Eliminate = 161, Spawner = {X = 104, Y = -300, Rot = -5, Vel = 3, Eliminate = {Right = 1/0, Left = -60, Up = 540, Down = -60}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
						else
							table.insert(Generator, {Trail = Warn, Distancia = 1800, Movement = 180, Timer = -30*i, PX = 700 + 200*i, PY = 240, Rate = 120, Direction = 250, Appear = 151, Eliminate = 161, Spawner = {X = 104, Y = 300, Rot = 5, Vel = 3, Eliminate = {Right = 1/0, Left = -60, Up = 540, Down = -60}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
						end
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Obstaculo") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[3] = 58
				elseif SongTime <= 151 and backwards then
					for i=0,4 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("Lenght", 240 - 120*i)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rotation", {0, -1.5})
						Spruait.SetVar("Rueda", true)
						Spruait.SetVar("Ini", 940)
						Spruait.SetVar("X", 940)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("PosY", 240)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 56
				end
			elseif phases[3] == 58 then
				if SongTime > 156 and not backwards then
					for i=0,3 do
						for j=0,2 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1, 32/255, 112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("Lenght", 160)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Rotation", {60*i + 120*j, -1.5*((i%2)*2 - 1)})
							Spruait.SetVar("Rueda", true)
							Spruait.SetVar("Ini", 4100 + 300*i)
							Spruait.SetVar("X", 4100 + 300*i)
							Spruait.SetVar("Y", 240)
							if i == 0 then
								Spruait.SetVar("PosY", 0)
							elseif i == 1 then
								Spruait.SetVar("PosY", 480)
							elseif i == 2 then
								Spruait.SetVar("PosY", 120)
							elseif i == 3 then
								Spruait.SetVar("PosY", 360)
							end
							table.insert(Bullets, Spruait)
						end
					end
					for i=1,#Bullets do
						if Bullets[i].GetVar("Movible") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[3] = 59
				elseif SongTime <= 156 and backwards then
					for i=0,1 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", -1 + 2*i)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 1800)
						Spruait.SetVar("X", 1800)
						Spruait.SetVar("Y", 480*i)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 57
				end
			elseif phases[3] == 59 then
				if SongTime > 161 and not backwards then
					for i=0,5 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 5400 + 400*i)
						Spruait.SetVar("X", 5400 + 400*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rotation", {90*i, 3})
						Spruait.SetVar("Movible", 1*((i%2)*2 - 1))
						Spruait.SetVar("Ini", 5600 + 400*i)
						Spruait.SetVar("X", 5600 + 400*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 60
				elseif SongTime <= 161 and backwards then
					for i=0,3 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rotation", {0, 3})
						Spruait.SetVar("Movible", 1*((i%2)*2 - 1))
						Spruait.SetVar("Ini", 2200 + 180*i)
						Spruait.SetVar("X", 2200 + 180*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 58
				end
			elseif phases[3] == 60 then
				if SongTime > 166 and not backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[3] = 61
				elseif SongTime <= 166 and backwards then
					if #Generator <= 0 then
						for i=0,3 do
							local Warn = CreateSprite("Pixel","BelowPlayer")
							Warn.color = {1, 32/255, 112/255}
							Warn.alpha = 0.4
							if i%2 == 0 then
								table.insert(Generator, {Trail = Warn, Distancia = 1800, Movement = 180, Timer = -30*i, PX = 700 + 200*i, PY = 240, Rate = 120, Direction = 110, Appear = 151, Eliminate = 161, Spawner = {X = 104, Y = -300, Rot = -5, Vel = 3, Eliminate = {Right = 1/0, Left = -60, Up = 540, Down = -60}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							else
								table.insert(Generator, {Trail = Warn, Distancia = 1800, Movement = 180, Timer = -30*i, PX = 700 + 200*i, PY = 240, Rate = 120, Direction = 250, Appear = 151, Eliminate = 161, Spawner = {X = 104, Y = 300, Rot = 5, Vel = 3, Eliminate = {Right = 1/0, Left = -60, Up = 540, Down = -60}, Scale = 120/480, Sprite = "JS&B Library Sprites/Saw"}})
							end
						end
					end
					phases[3] = 59
				end
			elseif phases[3] == 61 then
				if SongTime > 184 and not backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Obstaculo") or Bullets[i].GetVar("Movible") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					for i=0,1 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(460/480, 460/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", -1 + 2*i)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 9300 + 500*i)
						Spruait.SetVar("X", 9300 + 500*i)
						Spruait.SetVar("Y", 140 + 200*i)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 62
				elseif SongTime <= 184 and backwards then
					for i=0,3 do
						for j=0,2 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1, 32/255, 112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("Lenght", 160)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Rotation", {60*i + 120*j, -1.5*((i%2)*2 - 1)})
							Spruait.SetVar("Rueda", true)
							Spruait.SetVar("Ini", 4100 + 300*i)
							Spruait.SetVar("X", 4100 + 300*i)
							Spruait.SetVar("Y", 240)
							if i == 0 then
								Spruait.SetVar("PosY", 0)
							elseif i == 1 then
								Spruait.SetVar("PosY", 480)
							elseif i == 2 then
								Spruait.SetVar("PosY", 120)
							elseif i == 3 then
								Spruait.SetVar("PosY", 360)
							end
							table.insert(Bullets, Spruait)
						end
					end
					phases[3] = 60
				end
			elseif phases[3] == 62 then
				if SongTime > 194 and not backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Obstaculo") then
							Bullets[i].SetVar("Obstaculo", true)
						end
					end
					phases[3] = 63
				elseif SongTime <= 194 and backwards then
					for i=0,5 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 5400 + 400*i)
						Spruait.SetVar("X", 5400 + 400*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", 5)
						Spruait.SetVar("Rotation", {90*i, 3})
						Spruait.SetVar("Movible", 1*((i%2)*2 - 1))
						Spruait.SetVar("Ini", 5600 + 400*i)
						Spruait.SetVar("X", 5600 + 400*i)
						Spruait.SetVar("Y", 240)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 61
				end
			elseif phases[3] == 63 then
				if SongTime > 224.7 and not backwards then
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = 50 + 380*(i-1), Grosor = 120, Direction = 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 224.7, Appear = 226, Disappear = 226.45, Absoluto = true, Shake = true})
					end
					phases[3] = 64
				elseif SongTime <= 204 and backwards then
					for i=0,1 do
						Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
						Spruait.sprite.Scale(460/480, 460/480)
						Spruait.sprite.color = {1, 32/255, 112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("SpeedRot", -1 + 2*i)
						Spruait.SetVar("Obstaculo", true)
						Spruait.SetVar("Ini", 9300 + 500*i)
						Spruait.SetVar("X", 9300 + 500*i)
						Spruait.SetVar("Y", 140 + 200*i)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 62
				end
			elseif phases[3] == 64 then
				if SongTime > 226 then
					if not backwards then
						Riel = CreateProjectileAbs("Tension Level/Riel", -100, -100)
						Riel2 = CreateProjectileAbs("Tension Level/RielInv", -100, -100)
						Riel.sprite.color = {1, 32/255, 112/255}
						Riel2.sprite.color = {1, 32/255, 112/255}
						Riel.SetVar("X", 312.5)
						Riel2.SetVar("X", 353)
						Riel.SetVar("Y", 45)
						Riel2.SetVar("Y", 435)
						Riel.SetVar("SpeedRot", 0)
						Riel2.SetVar("SpeedRot", 0)
						Riel.SetVar("NoDamage", 1)
						Riel2.SetVar("NoDamage", 1)
						table.insert(Bullets, Riel)
						table.insert(Bullets, Riel2)
						Scroll = nil
						Extra3 = 0
						for i=0,6 do
							Spruait = CreateProjectileAbs("Tension Level/Engranaje", -100, -100)
							Spruait.sprite.Scale(160/480, 160/480)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("SpeedRot", 0)
							Spruait.SetVar("Ini", 640 + 300*i)
							Spruait.SetVar("X", 760 + 300*i)
							Spruait.SetVar("Y", 321)
							Spruait.SetVar("Grupo", 2)
							table.insert(Bullets, Spruait)
						end
						phases[3] = 65
					end
				elseif backwards then
					if Riel and Riel2 then
						Riel.SetVar("Remove", true)
						Riel2.SetVar("Remove", true)
						Riel = nil
						Riel2 = nil
					end
					Scroll = {X = -3, Y = 0}
					phases[3] = 63
				end
			elseif phases[3] == 65 then
				if SongTime > 226.55 then
					if SongTime > 226.69 and SongTime <= 226.89 then
						Riel2.SetVar("X", 233 + Extra3 + 120*math.cos(math.rad(90/0.2*(SongTime - 226.69))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") + 120*math.cos(math.rad(90/0.2*(SongTime - 226.69))))
							end
						end
					elseif SongTime > 226.89 then
						Riel2.SetVar("X", 353)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
							end
						end
						phases[3] = 66
					end
					if Riel2.GetVar("X") <= 293 then
						Extra3 = Extra3 + 60
					elseif Riel2.GetVar("X") > 413 then
						Extra3 = Extra3 - 60
					end
				elseif backwards then
					for i=1,#Bullets do
						if Bullets[i].GetVar("Grupo") == 2 then
							Bullets[i].SetVar("Remove", true)
						end
					end
					for i=1,2 do
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = 50 + 380*(i-1), Grosor = 120, Direction = 2*(i-1), Phase = 0, Intensidad = 10, Inicial = 224.7, Appear = 226, Disappear = 226.45, Absoluto = true, Shake = true})
					end
					phases[3] = 64
				end
			elseif phases[3] == 66 then
				if SongTime > 226.89 then
					Riel.sprite.color = {1,32/255,112/255}
					Riel2.sprite.color = {1,32/255,112/255}
					if SongTime > 239.92 and SongTime <= 240.12 then
						Riel.SetVar("Y", -55 + 100*math.cos(math.rad(90/0.2*(SongTime - 239.92))))
						Riel2.SetVar("Y", 535 - 100*math.cos(math.rad(90/0.2*(SongTime - 239.92))))
						Riel.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 239.92))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 239.92))))/255}
						Riel2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 239.92))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 239.92))))/255}
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Y", 59 + 100*math.cos(math.rad(90/0.2*(SongTime - 239.92))))
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Y", 421 - 100*math.cos(math.rad(90/0.2*(SongTime - 239.92))))
							end
						end
					elseif SongTime > 240.12 then
						Riel.SetVar("Y", -55)
						Riel2.SetVar("Y", 535)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Y", 59)
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Y", 421)
							end
						end
						phases[3] = 67
					end
				elseif backwards then
					Riel.SetVar("Y", 45)
						Riel2.SetVar("Y", 435)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Grupo") == 1 then
								Bullets[i].SetVar("Y", 159)
							elseif Bullets[i].GetVar("Grupo") == 2 then
								Bullets[i].SetVar("Y", 321)
							end
						end
					phases[3] = 65
				end
			elseif phases[3] >= 67 and phases[3] < 71 then
				patron3 = {{800, 1/0, -300, 2}, {-160, 940, -1/0, 0}}
				if SongTime > 240.12 then
					if SongTime > 240.12 + 1.7*(phases[3] - 67) and not backwards then
						if phases[3] == 67 then
							local Misiles = {}
							for i=0,4 do
								local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
								Bullet.sprite.color = {1,32/255,112/255}
								Bullet.SetVar("Ang", 180 + 20*i)
								Bullet.SetVar("Rot", 5)
								Bullet.SetVar("Incremento", 0)
								table.insert(Misiles, Bullet)
							end
							table.insert(Snake, {Bullets = Misiles, X = 800, Y = 240, Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 32, NoAnim = true})
						elseif phases[3] == 68 then
							local Misiles = {}
							for i=0,4 do
								local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
								Bullet.sprite.color = {1,32/255,112/255}
								Bullet.SetVar("Ang", 20*i)
								Bullet.SetVar("Rot", 5)
								Bullet.SetVar("Incremento", 0)
								table.insert(Misiles, Bullet)
							end
							table.insert(Snake, {Bullets = Misiles, X = -160, Y = 240, Eliminate = {Right = 940, Left = -1/0, Up = 1/0, Down = -1/0}, Direction = 0, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 32, NoAnim = true})
						elseif phases[3] >= 69 then
							local Misiles = {}
							for i=0,4 do
								local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
								Bullet.sprite.color = {1,32/255,112/255}
								Bullet.SetVar("Ang", 180 + 20*i)
								Bullet.SetVar("Rot", 5)
								Bullet.SetVar("Incremento", 0)
								table.insert(Misiles, Bullet)
							end
							table.insert(Snake, {Bullets = Misiles, X = patron3[phases[3] - 68][1], Y = 240, Eliminate = {Right = patron3[phases[3] - 68][2], Left = patron3[phases[3] - 68][3], Up = 1/0, Down = -1/0}, Direction = patron3[phases[3] - 68][4], Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 32, NoAnim = true})
							Misiles = {}
							for i=0,4 do
								local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
								Bullet.sprite.color = {1,32/255,112/255}
								Bullet.SetVar("Ang", 20*i)
								Bullet.SetVar("Rot", 5)
								Bullet.SetVar("Incremento", 0)
								table.insert(Misiles, Bullet)
							end
							table.insert(Snake, {Bullets = Misiles, X = patron3[phases[3] - 68][1], Y = 240, Eliminate = {Right = patron3[phases[3] - 68][2], Left = patron3[phases[3] - 68][3], Up = 1/0, Down = -1/0}, Direction = patron3[phases[3] - 68][4], Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 32, NoAnim = true})
						end
						phases[3] = phases[3] + 1
					end
				elseif backwards then
					phases[3] = 66
				end
			elseif phases[3] >= 71 and phases[3] < 87 then
				patron = {50, 240, 120, 610, 480, 200, 600, 80, 140, 570, 320, 410, 10, 630, 380, 510}
				if SongTime > 246.23 + 0.43*(phases[3] - 71) and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = patron[phases[3] - 70], Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 246.23 + 0.43*(phases[3] - 71), Appear = 246.98 + 0.43*(phases[3] - 71), Disappear = 247.48 + 0.43*(phases[3] - 71)})
					phases[3] = phases[3] + 1
					if phases[3] == 87 then
						Engrane.sprite.Set("Tension Level/Sierra")
						Engrane.SetVar("SpeedRot", 5)
						Engrane.SetVar("Y", 240)
						for i=1,5 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("Follow", true)
							Spruait.SetVar("Ini", 640 + 120*i)
							Spruait.SetVar("X", 640 + 120*i)
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("SpeedRot", 5)
							table.insert(Bullets, Spruait)
						end
					end
				elseif SongTime <= 247.58 - 0.43*(phases[3] - 71) and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = patron[phases[3] - 70], Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 246.23 + 0.43*(phases[3] - 71), Appear = 246.98 + 0.43*(phases[3] - 71), Disappear = 247.48 + 0.43*(phases[3] - 71)})
					phases[3] = phases[3] - 1
				elseif SongTime <= 246.23 and backwards then
					phases[3] = 70
				end
			elseif phases[3] == 87 then
				if SongTime > 253.97 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 254.32 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 253.97))))
					elseif SongTime <= 254.52 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 254.32))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 254.32))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 254.32))))/480)
					elseif SongTime <= 255.72 then
						Engrane.SetVar("X", -720 + 1360*math.cos(math.rad(90/1.2*(SongTime - 254.52))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360 + 1360*math.cos(math.rad(90/1.2*(SongTime - 254.52))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", -720)
						Engrane.SetVar("Y", 170)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360)
								Bullets[i].SetVar("Y", 170)
							end
						end
						phases[3] = 88
					end
				elseif backwards then
					Engrane.sprite.Set("Tension Level/Engrane")
					Engrane.SetVar("SpeedRot", 0)
					Engrane.SetVar("X", 800)
					Engrane.SetVar("Y", 240)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("Remove", true)
						end
					end
					phases[3] = 86
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 29)
				Eye2.SetVar("X", Engrane.GetVar("X") + 1)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 88 then
				if SongTime > 255.72 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 256.07 then
						Engrane.SetVar("X", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 255.72))))
					elseif SongTime <= 256.27 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 256.07))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 256.07))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 256.07))))/480)
					elseif SongTime <= 257.47 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 256.27))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360*math.cos(math.rad(90/1.2*(SongTime - 256.27))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 1360)
						Engrane.SetVar("Y", 310)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
								Bullets[i].SetVar("Y", 310)
							end
						end
						phases[3] = 89
					end
				elseif backwards then
					Engrane.SetVar("X", -720)
					Engrane.SetVar("Y", 240)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360)
							Bullets[i].SetVar("Y", 240)
						end
					end
					phases[3] = 87
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 1)
				Eye2.SetVar("X", Engrane.GetVar("X") + 29)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 89 then
				if SongTime > 257.47 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 257.82 then
						Engrane.SetVar("X", 720 - 80*math.sin(math.rad(90/0.35*(SongTime - 257.47))))
					elseif SongTime <= 258.02 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 257.82))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 257.82))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 257.82))))/480)
					elseif SongTime <= 259.22 then
						Engrane.SetVar("X", -720 + 1360*math.cos(math.rad(90/1.2*(SongTime - 258.02))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360 + 1360*math.cos(math.rad(90/1.2*(SongTime - 258.02))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", -720)
						Engrane.SetVar("Y", 240)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360)
								Bullets[i].SetVar("Y", 240)
							end
						end
						phases[3] = 90
					end
				elseif backwards then
					Engrane.SetVar("X", 1360)
					Engrane.SetVar("Y", 170)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini"))
							Bullets[i].SetVar("Y", 170)
						end
					end
					phases[3] = 88
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 29)
				Eye2.SetVar("X", Engrane.GetVar("X") + 1)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 90 then
				if SongTime > 259.22 then
					Engrane.sprite.color = {1, 32/255, 112/255}
					Eye1.sprite.color = {1, 32/255, 112/255}
					Eye2.sprite.color = {1, 32/255, 112/255}
					Engrane.sprite.Scale(160/480, 160/480)
					if SongTime <= 259.57 then
						Engrane.SetVar("X", -80 + 80*math.sin(math.rad(90/0.35*(SongTime - 259.22))))
					elseif SongTime <= 259.77 then
						Engrane.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255}
						Eye1.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255}
						Eye2.sprite.color = {1,(143.5 - 111.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255,(183.5 - 71.5*math.cos(math.rad(360/0.2*(SongTime - 259.57))))/255}
						Engrane.sprite.Scale((160 + 20*math.sin(math.rad(180/0.2*(SongTime - 259.57))))/480, (160 + 20*math.sin(math.rad(180/0.2*(SongTime - 259.57))))/480)
					elseif SongTime <= 260.97 then
						Engrane.SetVar("X", 1360 - 1360*math.cos(math.rad(90/1.2*(SongTime - 259.77))))
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360*math.cos(math.rad(90/1.2*(SongTime - 259.77))))
							end
						end
					elseif not backwards then
						Engrane.SetVar("X", 800)
						Engrane.SetVar("Y", 240)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Follow") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						phases[3] = 91
					end
				elseif backwards then
					Engrane.SetVar("X", -720)
					Engrane.SetVar("Y", 310)
					for i=1,#Bullets do
						if Bullets[i].GetVar("Follow") then
							Bullets[i].SetVar("X", Bullets[i].GetVar("Ini") - 1360)
							Bullets[i].SetVar("Y", 310)
						end
					end
					phases[3] = 89
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 1)
				Eye2.SetVar("X", Engrane.GetVar("X") + 29)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 91 then
				if SongTime > 260.97 then
					if SongTime <= 264.13 then
						Engrane.SetVar("X", 720 - 800/3.14*(SongTime - 260.97))
						Engrane.SetVar("Y", 240 + 30*math.sin(math.rad(360*3/3.14*(SongTime - 260.97))))
					elseif not backwards then
						Engrane.SetVar("X", -80)
						phases[3] = 92
					end
				elseif backwards then
					Engrane.SetVar("X", -200)
					Engrane.SetVar("Y", 240)
					for i=1,5 do
						Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
						Spruait.sprite.Scale(120/480, 120/480)
						Spruait.sprite.color = {1,32/255,112/255}
						Spruait.SetVar("NoDamage", 1)
						Spruait.SetVar("Follow", true)
						Spruait.SetVar("Ini", 640 + 120*i)
						Spruait.SetVar("X", 640 + 120*i)
						Spruait.SetVar("Y", 240)
						Spruait.SetVar("SpeedRot", 5)
						table.insert(Bullets, Spruait)
					end
					phases[3] = 90
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 28)
				Eye2.SetVar("X", Engrane.GetVar("X") + 12)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 92 then
				if SongTime > 264.13 then
					if SongTime <= 267.27 then
						Engrane.SetVar("X", -80 + 800/3.14*(SongTime - 264.13))
						Engrane.SetVar("Y", 240 + 30*math.sin(math.rad(360*3/3.14*(SongTime - 264.13))))
					elseif not backwards then
						Engrane.SetVar("X", 720)
						Engrane.sprite.Set("Tension Level/Engrane")
						Engrane.SetVar("SpeedRot", 2)
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						for i=0,2 do
							Spruait = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Spruait.sprite.Scale(120/480, 120/480)
							Spruait.sprite.color = {1,32/255,112/255}
							Spruait.SetVar("Rueda", true)
							Spruait.SetVar("Ang", 0)
							Spruait.SetVar("NoDamage", 1)
							Spruait.SetVar("X", 700)
							Spruait.SetVar("Y", 240)
							Spruait.SetVar("SpeedRot", 5)
							Spruait.SetVar("Lenght", -120 + 120*i)
							table.insert(Bullets, Spruait)
						end
						phases[3] = 93
					end
				elseif backwards then
					Engrane.SetVar("X", -80)
					phases[3] = 91
				end
				Eye1.SetVar("X", Engrane.GetVar("X") - 12)
				Eye2.SetVar("X", Engrane.GetVar("X") + 28)
				Eye1.SetVar("Y", Engrane.GetVar("Y"))
				Eye2.SetVar("Y", Engrane.GetVar("Y"))
			elseif phases[3] == 93 then
				if SongTime > 267.27 then
					if SongTime <= 270.41 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Ang", -1080/3.14*(SongTime - 267.27))
								Bullets[i].SetVar("X", 700 - 760/3.14*(SongTime - 267.27) + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 140 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							end
						end
					elseif not backwards then
						WarningsT = {CreateSprite("Pixel", "BelowPlayer"), CreateSprite("Tension Level/Semicircle", "BelowPlayer")}
						WarningsT[1].Scale(160, 240)
						WarningsT[2].Scale(160/480, 160/480)
						WarningsT[1].color = {1,32/255,112/255}
						WarningsT[2].color = {1,32/255,112/255}
						WarningsT[1].alpha = 0.1
						WarningsT[2].alpha = 0.1
						WarningsT[1].SetVar("Pos", {320, 360})
						WarningsT[2].SetVar("Pos", {320, 200})
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Ang", 0)
								Bullets[i].SetVar("X", -60 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 140 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							end
						end
						phases[3] = 94
					end
				elseif backwards then
					Engrane.SetVar("X", 720)
					Engrane.sprite.Set("Tension Level/Sierra")
					Engrane.SetVar("SpeedRot", 5)
					phases[3] = 92
				end
			elseif phases[3] == 94 then
				if SongTime > 270.41 then
					if SongTime <= 273.55 then
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Ang", -1080/3.14*(SongTime - 270.41))
								Bullets[i].SetVar("X", -60 + 760/3.14*(SongTime - 270.41) + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
								Bullets[i].SetVar("Y", 340 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
							end
						end
					elseif not backwards then
						for i=1,#WarningsT do
							WarningsT[i].Remove()
						end
						WarningsT = nil
						for i=1,#Bullets do
							if Bullets[i].GetVar("Rueda") then
								Bullets[i].SetVar("Remove", true)
							end
						end
						phases[3] = 95
					end
				elseif backwards then
					for i=1,#WarningsT do
						WarningsT[i].Remove()
					end
					WarningsT = nil
					for i=1,#Bullets do
						if Bullets[i].GetVar("Rueda") then
							Bullets[i].SetVar("Ang", 0)
							Bullets[i].SetVar("X", -60 + Bullets[i].GetVar("Lenght")*math.sin(math.rad(Bullets[i].GetVar("Ang"))))
							Bullets[i].SetVar("Y", 140 + Bullets[i].GetVar("Lenght")*math.cos(math.rad(Bullets[i].GetVar("Ang"))))
						end
					end
					phases[3] = 93
				end
				if WarningsT then
					for i=1,#WarningsT do
						WarningsT[i].alpha = 0.2 - 0.1*math.cos(math.rad(360/0.5*(SongTime - 270.41)))
					end
				end
			elseif phases[3] >= 95 and phases[3] < 139 then
				patron2 = {210, 30, 110, 340, 160, 230, 310, 240, 200, 300, 100, 40, 180, 225, 340, 90, 210, 30, 110, 340, 160, 230, 310, 240, 200, 300, 100, 40, 180, 225, 340, 90, 210, 30, 110, 340, 160, 230, 310, 240, 200, 300, 100, 40, 180}
				if SongTime > 273.55 then
					if SongTime >= 273.66 + 0.43*(phases[3] - 95) and not backwards then
						local Misil = CreateProjectileAbs("Pixel", -100, -100)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Misil.SetVar("NoDamage", 1)
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras2, {Bullet = Misil, Warn = Warning, Follow = true, Grosor = 20, Ang = patron2[phases[3] - 94], Inicial = 273.66 + 0.43*(phases[3] - 95), Appear = 274.41 + 0.43*(phases[3] - 95), Disappear = 274.91 + 0.43*(phases[3] - 95)})
						phases[3] = phases[3] + 1
					elseif SongTime <= 275.01 + 0.43*(phases[3] - 95) and backwards then
						local Misil = CreateProjectileAbs("Pixel", -100, -100)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Misil.SetVar("NoDamage", 1)
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras2, {Bullet = Misil, Warn = Warning, Follow = true, Grosor = 20, Ang = patron2[phases[3] - 94], Inicial = 273.66 + 0.43*(phases[3] - 95), Appear = 274.41 + 0.43*(phases[3] - 95), Disappear = 274.91 + 0.43*(phases[3] - 95)})
						phases[3] = phases[3] - 1
					end
				elseif backwards then
					phases[3] = 94
				end
			end
			if phases[4] >= 0 and phases[4] < 32 then
				math.randomseed(phases[4]*4)
				if SongTime > 27.23 + 0.86*phases[4] and not backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = math.random(70, 570), Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 27.23 + 0.86*phases[4], Appear = 27.98 + 0.86*phases[4], Disappear = 28.48 + 0.86*phases[4]})
					phases[4] = phases[4] + 1
				elseif SongTime < 28.58 + 0.86*phases[4] and backwards then
					local Misil = CreateProjectileAbs("Pixel", 0, 0)
					local Warning = CreateSprite("Pixel","BelowPlayer")
					Misil.sprite.color = {1, 32/255, 112/255}
					Warning.color = {1, 32/255, 112/255}
					table.insert(Barras, {Bullet = Misil, Warn = Warning, PX = math.random(70, 570), Grosor = 20, Direction = 3, Phase = 0, Intensidad = 20, Inicial = 27.23 + 0.86*phases[4], Appear = 27.98 + 0.86*phases[4], Disappear = 28.48 + 0.86*phases[4]})
					phases[4] = phases[4] - 1
				end
			elseif phases[4] >= 32 and phases[4] < 80 then
				patron3 = {170, 300, 60, 240, 430, 120, 380, 280, 130, 400, 250, 310, 180, 70, 210, 420, 350, 300, 200, 400, 140, 290, 260, 370, 140, 220, 310, 390, 260, 140, 190, 400, 200, 320, 240, 100, 60, 230, 430, 150, 30, 170, 340, 180, 250, 340, 360, 240}
				if SongTime > 110.25 and not backwards then
					if SongTime > 110.25 + 0.43*(phases[4] - 32) and phases[4] < 64 then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 20)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = -10 + 660*(phases[4]%2), Y = patron3[phases[4] - 31], Eliminate = {Right = 730, Left = -90, Up = 480, Down = 0}, Direction = 2*(phases[4]%2), Height = 15, Vel = 2, Pulse = 10/480, Scale = 16/480, Espaciado = 12, Rateo = 3})
						phases[4] = phases[4] + 1
					elseif SongTime > 123.96 + 0.86*(phases[4] - 64) and phases[4] >= 64 then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 20)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = -10 + 660*(phases[4]%2), Y = patron3[phases[4] - 31], Eliminate = {Right = 730, Left = -90, Up = 480, Down = 0}, Direction = 2*(phases[4]%2), Height = 15, Vel = 2, Pulse = 10/480, Scale = 16/480, Espaciado = 12, Rateo = 3})
						phases[4] = phases[4] + 1
					end
				elseif backwards then
					phases[4] = 31
				end
			elseif phases[4] >= 80 and phases[4] < 112 then
				patron2 = {120, 300, 410, 450, 210, 30, 70, 120, 340, 170, 230, 410, 350, 430, 140, 50, 240, 450, 300, 380, 120, 200, 70, 140, 340, 290, 170, 40, 90, 390, 270, 340, 120}
				if SongTime > 163.96 then
					if SongTime > 163.96 + 0.43*(phases[4] - 80) and not backwards then
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron2[phases[4] - 79], Grosor = 10, Direction = 2, Phase = 0, Intensidad = 20, Inicial = 163.96 + 0.43*(phases[4] - 80), Appear = 164.71 + 0.43*(phases[4] - 80), Disappear = 165.21 + 0.43*(phases[4] - 80)})
						phases[4] = phases[4] + 1
					elseif SongTime < 165.31 + 0.43*(phases[4] - 80) and backwards then
						local Misil = CreateProjectileAbs("Pixel", 0, 0)
						local Warning = CreateSprite("Pixel","BelowPlayer")
						Misil.sprite.color = {1, 32/255, 112/255}
						Warning.color = {1, 32/255, 112/255}
						table.insert(Barras, {Bullet = Misil, Warn = Warning, PY = patron2[phases[4] - 79], Grosor = 10, Direction = 2, Phase = 0, Intensidad = 20, Inicial = 163.96 + 0.43*(phases[4] - 80), Appear = 164.71 + 0.43*(phases[4] - 80), Disappear = 165.21 + 0.43*(phases[4] - 80)})
						phases[4] = phases[4] - 1
					end
				elseif backwards then
					phases[4] = 79
				end
			elseif phases[4] >= 112 and phases[4] < 115 then
				patron2 = {125, 355, 240}
				if SongTime > 178.43 and not backwards then
					if SongTime > 178.43 + 1.7*(phases[4] - 112) then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 180 + 180*(phases[4] - 111) + 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 0)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 800, Y = patron2[phases[4] - 111], Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						if phases[4] == 114 then
							local Misiles = {}
							for i=0,4 do
								local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
								Bullet.sprite.color = {1,32/255,112/255}
								Bullet.SetVar("Ang", 180*(phases[4] - 111) + 20*i)
								Bullet.SetVar("Rot", 5)
								Bullet.SetVar("Incremento", 0)
								table.insert(Misiles, Bullet)
							end
							table.insert(Snake, {Bullets = Misiles, X = 800, Y = patron2[phases[4] - 111], Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						end
						phases[4] = phases[4] + 1
					end
				elseif backwards then
					phases[4] = 111
				end
			elseif phases[4] == 115 then
				if SongTime > 183.53 and not backwards then
					if SongTime > 183.53 then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 0)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 800, Y = 125, Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 180 + 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 0)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 800, Y = 355, Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						phases[4] = 116
					end
				elseif backwards then
					phases[4] = 114
				end
			elseif phases[4] >= 116 and phases[4] < 120 then
				patron2 = {{240, 240}, {125, 355}, {355, 125}, {240, 240}}
				if SongTime > 192.15 and not backwards then
					if SongTime > 192.15 + 1.7*(phases[4] - 116) then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 180 + 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 0)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 800, Y = patron2[phases[4] - 115][1], Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 0)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 800, Y = patron2[phases[4] - 115][2], Eliminate = {Right = 1/0, Left = -300, Up = 1/0, Down = -1/0}, Direction = 2, Height = 80, Vel = 4, Pulse = 20/480, Scale = 120/480, Espaciado = 40, Rateo = 1, Retroceder = 36, NoAnim = true})
						phases[4] = phases[4] + 1
					end
				elseif backwards then
					phases[4] = 115
				end
			elseif phases[4] >= 120 and phases[4] < 148 then
				patron = {240, 300, 120, 440, 170, 220, 290, 240, 350, 310, 60, 130, 390, 280, 80, 300, 120, 440, 170, 220, 290, 240, 350, 310, 60, 130, 390, 280}
				if SongTime > 198.99 and not backwards then
					if SongTime > 198.99 + 0.9333333*(phases[4] - 120) then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 30*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 30)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = 650, Y = patron[phases[4] - 119], Eliminate = {Right = 730, Left = -90, Up = 480, Down = 0}, Direction = 2, Height = 15, Vel = 8, Pulse = 10/480, Scale = 16/480, Espaciado = 12, Rateo = 4})
						phases[4] = phases[4] + 1
					end
				elseif backwards then
					phases[4] = 119
				end
			elseif phases[4] == 148 then
				if SongTime > 271.98 then
					Engrane.SetVar("X", 320)
					if SongTime <= 273.55 then
						Engrane.SetVar("Y", 560 - 320*math.sin(math.rad(90/1.57*(SongTime - 271.98))))
						Eye1.SetVar("Y", Engrane.GetVar("Y") - 10 + 10*math.sin(math.rad(90/1.57*(SongTime - 271.98))))
						Eye2.SetVar("Y", Engrane.GetVar("Y") - 10 + 10*math.sin(math.rad(90/1.57*(SongTime - 271.98))))
					elseif not backwards then
						Engrane.SetVar("Y", 240)
						Eye1.SetVar("Y", Engrane.GetVar("Y"))
						Eye2.SetVar("Y", Engrane.GetVar("Y"))
						phases[4] = 149
					end
					Eye1.SetVar("X", Engrane.GetVar("X") - 20)
					Eye2.SetVar("X", Engrane.GetVar("X") + 20)
				elseif backwards then
					phases[4] = 147
				end
			elseif phases[4] >= 149 and phases[4] < 193 then
				patron3 = {170, 300, 60, 240, 430, 120, 380, 280, 130, 400, 250, 310, 180, 70, 210, 420, 350, 300, 200, 400, 140, 290, 260, 370, 140, 220, 310, 390, 260, 140, 190, 400, 200, 320, 240, 100, 60, 230, 430, 150, 30, 170, 340, 180}
				if SongTime > 274.41 then
					if SongTime > 274.41 + 0.43*(phases[4] - 149) then
						local Misiles = {}
						for i=0,4 do
							local Bullet = CreateProjectileAbs("JS&B Library Sprites/Saw", -100, -100)
							Bullet.sprite.color = {1,32/255,112/255}
							Bullet.SetVar("Ang", 20*i)
							Bullet.SetVar("Rot", 5)
							Bullet.SetVar("Incremento", 20)
							table.insert(Misiles, Bullet)
						end
						table.insert(Snake, {Bullets = Misiles, X = -10 + 660*(phases[4]%2), Y = patron3[phases[4] - 148], Eliminate = {Right = 730, Left = -90, Up = 480, Down = 0}, Direction = 2*(phases[4]%2), Height = 15, Vel = 2, Pulse = 10/480, Scale = 16/480, Espaciado = 12, Rateo = 3})
						phases[4] = phases[4] + 1
					end
				elseif backwards then
					phases[4] = 148
				end
			end
			if phases[5] < 23 then
				if SongTime > 274.1 + 0.86*phases[5] then
					local randomizador = math.random(200, 280)
					if phases[5]%2 == 0 then
						table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 8, ScaleLimit = 40, PX = 660, PY = randomizador, X = math.random(510, 590) - 660, Y = 240 - randomizador, Stay = 10, Appear = 274.1 + 0.86*phases[5], Eliminate = 274.85 + 0.86*phases[5]})
					else
						table.insert(Explotions, {Bullet = CreateProjectileAbs("JS&B Library Sprites/Explosive", 660, 0), VelRot = 10, Misiles = 8, ScaleLimit = 40, PX = -20, PY = randomizador, X = math.random(50, 130) + 20, Y = 240 - randomizador, Stay = 10, Appear = 274.1 + 0.86*phases[5], Eliminate = 274.85 + 0.86*phases[5]})
					end
					phases[5] = phases[5] + 1
				end
			end
			if Riel1 and Riel2 then
				if Riel1.GetVar("X") <= 270 then
					Riel1.SetVar("X", Riel1.GetVar("X") + 60)
					Riel2.SetVar("X", Riel2.GetVar("X") + 60)
					if Auxiliar then
						Auxiliar = Auxiliar - 60
					end
				end
				if Riel1.GetVar("X") > 330 then
					Riel1.SetVar("X", Riel1.GetVar("X") - 60)
					Riel2.SetVar("X", Riel2.GetVar("X") - 60)
					if Auxiliar then
						Auxiliar = Auxiliar + 60
					end
				end
			end
		end
		if Engrane then
			Engrane.sprite.SendToTop()
		end
		if Eye1 then
			Eye1.sprite.SendToTop()
		end
		if Eye2 then
			Eye2.sprite.SendToTop()
		end
		for i=1,#Explotions do
			local Datos = Explotions[i]
			if not Datos.Bullet.isactive and Datos.Front then
				for j=1,#Datos.Explosives do
					local Misil = Datos.Explosives[j]
					Misil.Bullet.sprite.SendToTop()
				end
			end
		end
		for i=1,#Fall do
			local Datos = Fall[i]
			if Datos.Front then
				Datos.Bullet.sprite.SendToTop()
			end
		end
		for i=1,#Barras2 do
			local Datos = Barras2[i - tableaux]
			if Datos.Follow then
				Datos.PX = Engrane.GetVar("X")
				Datos.PY = Engrane.GetVar("Y")
			end
		end
		for i=1,#Barras3 do
			local Datos = Barras3[i - tableaux]
			if Datos.Follow then
				Datos.PX = Engrane.GetVar("X")
				Datos.PY = Engrane.GetVar("Y")
			end
		end
		if WarningsT then
			for i=1,#WarningsT do
				WarningsT[i].MoveTo(WarningsT[i].GetVar("Pos")[1], WarningsT[i].GetVar("Pos")[2])
			end
		end
		if shakescreen and rango then
			math.randomseed(timer*135)
		end
		if Efectos then
			math.randomseed(timer)
		end
		for i=1,#Explotions do
			local Datos = Explotions[i - tableaux]
			if Datos.Bullet.isactive then
				if SongTime >= Datos.Eliminate or SongTime < Datos.Appear then
					if not backwards then
						math.randomseed(package.loaded.os.time())
					elseif Datos.Explosives then
						if #Datos.Explosives > 0 then
							math.randomseed(package.loaded.os.time())
						end
					end
				end
			end
		end
		tableaux = 0
		JSB()
		if (shakescreen or movement) and rango then
			if WarningsT then
				for i=1,#WarningsT do
					WarningsT[i].MoveTo(WarningsT[i].GetVar("Pos")[1] + intensidad[1], WarningsT[i].GetVar("Pos")[2] + intensidad[2])
				end
			end
		end
		Black.SendToTop()
		if Input.GetKey("P") == 1 then
			Pause = 0
			if not NewAudio.isStopped("Song") then
				Detenido = true
				NewAudio.Pause("Song")
			end
		end
	else
		if Pause == 0 then
			if not Text and not Option1 and not Option2 then
				Text = CreateSprite("Menu/"..GetAlMightyGlobal("Idioma").."/Pausa","Top")
				Option1 = CreateSprite("Menu/"..GetAlMightyGlobal("Idioma").."/Continuar","Top")
				Option2 = CreateSprite("Menu/"..GetAlMightyGlobal("Idioma").."/Quitar","Top")
				Text.MoveTo(320, 260)
				Option1.MoveTo(170, 200)
				Option2.MoveTo(470, 200)
			end
			Black.alpha = Black.alpha + 0.02
			Text.alpha = Black.alpha*2
			Option1.alpha = Black.alpha*2
			Option2.alpha = Black.alpha*2
			if Black.alpha >= 0.5 then
				Pause = 1
				Audio.PlaySound("pip")
			end
		elseif Pause == 1 then
			Option1.color = {1,1,0}
			Option2.color = {1,1,1}
			if Input.Right == 1 then
				Pause = 2
				Audio.PlaySound("pip")
			elseif Input.Confirm == 1 then
				Audio.PlaySound("confirm")
				Option1.color = {1,1,1}
				Option2.color = {1,1,1}
				Pause = 3
			end
		elseif Pause == 2 then
			Option1.color = {1,1,1}
			Option2.color = {1,1,0}
			if Input.Left == 1 then
				Pause = 1
				Audio.PlaySound("pip")
			elseif Input.Confirm == 1 then
				Audio.PlaySound("confirm")
				Option1.color = {1,1,1}
				Option2.color = {1,1,1}
				Pause = 4
			end
		elseif Pause == 3 then
			Black.alpha = Black.alpha - 0.02
			Text.alpha = Black.alpha*2
			Option1.alpha = Black.alpha*2
			Option2.alpha = Black.alpha*2
			if Black.alpha <= 0 then
				Text.Remove()
				Option1.Remove()
				Option2.Remove()
				Text = nil
				Option1 = nil
				Option2 = nil
				if Detenido then
					NewAudio.Unpause("Song")
					Detenido = nil
				end
				Pause = nil
			end
		elseif Pause == 4 then
			Black.alpha = Black.alpha + 0.02
			Text.alpha = Text.alpha - 0.04
			Option1.alpha = Text.alpha
			Option2.alpha = Text.alpha
			if Black.alpha >= 1 then
				if not wait2 then
					wait2 = 0
				end
				wait2 = wait2 + 1
				if wait2 == 60 then
					Text.Remove()
					Option1.Remove()
					Option2.Remove()
					Text = nil
					Option1 = nil
					Option2 = nil
					Pause = 5
					EndAll = true
				end
			end
		end
	end
	if EndAll then
		RemoveAll()
		if WarningsT then
			for i=1,#WarningsT do
				WarningsT[i].Remove()
			end
		end
		Black.Remove()
		if TituloSong then
			TituloSong.Remove()
		end
		if VersionLevel then
			VersionLevel.Remove()
		end
		if Advice then
			Advice.Remove()
		end
		NewAudio.Stop("Song")
		NewAudio.DestroyChannel("Song")
		Encounter["nextwaves"] = {"Menu"}
		SetRealGlobal("Extras", 3)
		State("ACTIONSELECT")
		State("DEFENDING")
	end
end

function Reset()
	timer = 30
	phases = {0,0,0,0,0}
	Eye1 = nil
	Eye2 = nil
	Engrane = nil
	Riel1 = nil
	Riel2 = nil
	Auxiliar = nil
	Sierra = nil
	Extra = nil
	Extra2 = nil
	Extra3 = nil
	Scroll = nil
	Trailer = nil
	Laterales = nil
	if WarningsT then
		for i=1,#WarningsT do
			WarningsT[i - tableaux].Remove()
			table.remove(WarningsT, i - tableaux)
			tableaux = tableaux + 1
		end
		tableaux = 0
		WarningsT = nil
	end
	hits = 0
end

function OnHit(bullet)
	if (not bullet.GetVar("NoDamage") or (bullet.GetVar("NoDamage") and bullet.GetVar("NoDamage") < 0)) and not murio and not damaged and not Dash then
		hits = hits + 1
		if hits >= maxhits then
			Audio.PlaySound("dead2")
			murio = true
		else
			Audio.PlaySound("hit")
			HurtAnim = math.atan2(PosY-bullet.absy,PosX-bullet.absx)/math.pi*180
		end
		Muerte.alpha = 1
		Muerte.color = {1,32/255,112/255}
		damaged = 0
	end
end