switch (basisImageViewIndex)
					{// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Get XScaleFactor To Scale On PostPattern2D Like RainbowHorizontal Has
					case 0: tertiaryPW.setColor( x, y, buddhism.BuddhismForRaster( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, sliderInterval, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, lengthOfColorBar, spiralFactor, numberOfSpirals, suckInExponentialness, suckInDivisor, halfSreenDiagionalLength, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalBasisImagePR.getColor( x, y ), finalBackgroundBasisImagePR, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textOutlineBlendingToBasisInvert, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, basisOverlaySperateTextColorCurrent, basisOverlaySperateBackgroundColorCurrent, textColorOverlay, backgroundColorOverlay, showBasisOverlayForText, showBasisOverlayForBackground, basisOverlaySeperateTextFade, basisOverlaySeperateBackgroundFade, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;// Don't Change Object To It To Make This Work Because It Could Be ARGB Or RGB
					case 1: tertiaryPW.setColor( x, y, magiElite.MagiEliteForRaster( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, spiralFactor, shrunkenFactor, numberOfSpirals, halfSreenDiagionalLength, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalBasisImagePR.getColor( x, y ), finalBackgroundBasisImagePR.getColor( x, y ), finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textOutlineBlendingToBasisInvert, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, basisOverlaySperateTextColorCurrent, basisOverlaySperateBackgroundColorCurrent, textColorOverlay, backgroundColorOverlay, showBasisOverlayForText, showBasisOverlayForBackground, basisOverlaySeperateTextFade, basisOverlaySeperateBackgroundFade, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 2: tertiaryPW.setColor( x, y, fwaSplashLogo.FwaLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalBasisImagePR.getColor( x, y ), finalBackgroundBasisImagePR.getColor( x, y ), finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textOutlineBlendingToBasisInvert, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, basisOverlaySperateTextColorCurrent, basisOverlaySperateBackgroundColorCurrent, textColorOverlay, backgroundColorOverlay, showBasisOverlayForText, showBasisOverlayForBackground, basisOverlaySeperateTextFade, basisOverlaySeperateBackgroundFade, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 3: tertiaryPW.setColor( x, y, fwaFlagSplashLogo.FwaFlagLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalBasisImagePR.getColor( x, y ), finalBackgroundBasisImagePR.getColor( x, y ), finalCurrentBrowserImagePR.getColor( x, y ), /*tertiaryBackUpWorkAroundImagePR.getColor( x, y ),*/ Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textOutlineBlendingToBasisInvert, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, basisOverlaySperateTextColorCurrent, basisOverlaySperateBackgroundColorCurrent, textColorOverlay, backgroundColorOverlay, showBasisOverlayForText, showBasisOverlayForBackground, basisOverlaySeperateTextFade, basisOverlaySeperateBackgroundFade, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;////
					case 4: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowHorizontal( videoSequenceLoopQuantity, tertiaryXslider, 0 * tertiaryXslider, x, y, - videoSequenceLoopQuantity, videoSequenceLoopQuantity, rainbowWidth, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) );	Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;//, reversalOfBackgroundEffectsMaster//Simple Double Slider 1 Rotation Rainbow Clock With Browser Support And For Below Block////////
					case 5: videoSplittingQuantity = 4;//For ColorTooSimilar->ColorSlider->TransparencySlider->RainbowSoftColor Diagnostics For At Least 24 Frames From RainbowSetup.Setup: fRateDivisor = 24;
					if ( tertiaryXslider < videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.ColorTooSimilar( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity ) );
					else if ( tertiaryXslider < 2 * videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.ColorSlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ) ) );
					else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.TransparencySlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), .5, 1 ) );
					else
						tertiaryPW.setColor( x, y, diagnostics.RainbowSoftColor( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), vibrantColorCombos.ImperialFXcolors, vibrantColorCombos.ImperialColorsNum, 0, 1 ) );// */
					Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;//Add RainbowPostPattern2D 6-?
					case 6: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowClock( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, x, y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, numberOfRainbowHands, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 7: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowRing( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, x, y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, numberOfRingsVertically, innerCutOffRadius, outerCutOffRadius, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 8: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowStrobe( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, x, y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, halfSreenDiagionalLength * Dim.width / Dim.height, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 9: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowSpiral( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, x, y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, halfSreenDiagionalLength, spiralFactor, numberOfSpirals, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 10: tertiaryPW.setColor( x, y, rainbowPostPattern2D.CheapRainbowFractal( videoSequenceLoopQuantity, tertiaryXslider + 0 * videoSequenceLoopQuantity / 2, 0.001 * 0.055555555555555 * Dim.height * ( tertiaryXslider + 1 * 9.25 * videoSequenceLoopQuantity / 24 ), x, y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 11: tertiaryPW.setColor( x, y, pattern2D.FullSelector( selection, subSelection, videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, (int)(x-HalfedDim.width), (int)(y-HalfedDim.height), videoSequenceLoopQuantity, videoSequenceLoopQuantity, Dim, HalfedDim, colorSet, innerCutOffRadius, outerCutOffRadius, spiralFactor, numberOfSpirals, halfSreenDiagionalLength, exponentValue, colorFlipper, reversedColors, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;//tertiaryPW.setColor( x, y, pattern2D.SimpleCustomColor( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth(),  x, thirdScreen.getBounds().getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.ImperialFXcolors, false, true, false ) ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 12: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowExponentiator( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					case 13: tertiaryPW.setColor( x, y, rainbowPostPattern2D.RainbowDoubleExponentiator( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, reversedColors, reverseRainbow, brightnessMultiplyer, gradations, opacityBefore, opacityAfter, blockAdjustment, finalCurrentBrowserImagePR.getColor( x, y ), Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme, colorSet ) ); Platform.runLater( () -> { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Interrupted."); } } ); break;
					}// */																																
				



package rainbowPackage;

//import javafx.scene.paint.Paint.*;
import javafx.scene.image.PixelReader;
//import rainbowPackage.vibrantColors;
//import rainbowPackage.vibrantColorCombos;
//import rainbowPackage.rainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public class Buddhism //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1, colorBarDistance = 0;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public ArrayReverser arrayReverser = new ArrayReverser();
	//public rainbowSoftColorCodesSets rainbowSoftColorCodesSets = new rainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public IndependentTextBackgroundColorPasser independentTextBackgroundColorPasser = new IndependentTextBackgroundColorPasser();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	final int maxIndexOfVerticalColorBars = 17, maxIndexOfHorizontalColorBars = 3;
	int colorBarIndex = 0, colorBarCheck = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public Buddhism()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Buddhism( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public Buddhism( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	public final Color BuddhismForRaster(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double SliderInterval, double FullSliderRunThrough, int x, int y, double RepeatFactor, double LengthOfColorBar, double SpiralFactor, double NumberOfSpirals, double SuckInExponentialness, double SuckInDivisor, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, PixelReader BackgroundBasisPR, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean OverlayColorScheme )
	{//SliderInterval May Not Be Needed
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		//double radialDistance = Math.pow(Math.pow(halfedDim.width + 1, 2) + Math.pow(halfedDim.height + 1, 2), 0.5);//, rainbowIntervalVariable = 0;
		//double fullAngle = Math.PI * radialDistance;
		//double colorDisplacement = 0;
		//double chrysanthemumRadius = 60;
		//double radialVariableDistance = 0;//Comment Out For  Ghetto Many Rainbow Clocks
		//double angleVariableStill = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableStill = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		//double angleVariableTransitioning = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableTransitioning = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		int outerRingThickness = 72 * Dim.height / 1080; int middleRingThickness = 20 * Dim.height / 1080; int innerRingThickness = 18 * Dim.height / 1080;// int outerRingRadius = 293; int middleRingRadius = 88; int innerRingRadius = 66;


		//boolean someTargetColorInTheCenterHit = false, wheelTipsHit = false;//greenBlueGreenUsed = false, otherBrowserColorHit = false,	makePixelTransparent = false, aWheelDiamondHit = false;
		//aColorBarHit = false;
		//System.out.println("x: " + x + " y: " + y + " BasisPRColor: " + BasisPRColor );
		//int transparentNum = 0;

		Color BrowserPRcolor = BrowserPRColor;

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPR.getColor( x, y ), BrowserPRcolor, Reversed, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		//System.out.println("Got To Buddhism Basis Pixel If-Tree. x: " + x + " y: " + y + " fxColor: " + fxColor );
		//System.out.println("x: " + x + " y: " + y);
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfVerticalColorBars; colorBarIndex++ )
		{
			//System.out.println("x: " + x + " y: " + y + " BasisPRColor: " + BasisPRColor + " Color: " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			//tempTransparencySlider = rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex);
			//System.out.println("x: " + x + " y: " + y + " BasisPRColor: " + BasisPRColor);
			//System.out.println("colorBarIndex: " + colorBarIndex);
			//System.out.println("rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex): " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			//System.out.println("rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum(): " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum());
			//System.out.println( fxColor == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )//Left Side Bars
			{
				//System.out.println("x: " + x + " y: " + y + " fxColor: " + fxColor + " Color: " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
				colorBarDistance = 0;// #################################################################################################																									----===| COMMENTS BELOW SHOULD WORK!!!!! |===----
				for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck++ )//for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck++)->colorBarDistance++;->MarkerInLength:colorBarDistance To Give Rainbow Picture Frame Look
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				colorBarDistance = LengthOfColorBar + colorBarDistance;
				/*for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck-- )//for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck++)->colorBarDistance++;->MarkerInLength:colorBarDistance To Give Rainbow Picture Frame Look
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )
						colorBarDistance--;
					else
						break;
				}
				colorBarDistance = LengthOfColorBar + colorBarDistance;// */
				if ( colorBarIndex == 17 )
					// HERE TOO ABOUT SHOULD WORK.
					//colorBarDistance = colorBarDistance - 8 * Dim.width / 1920;
					//Check Below -`V
					colorBarDistance = colorBarDistance - Dim.width / 1920;//For Cool Flippy Single Bar Color Changing Effect Square LengthOfColorBar
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				//rainbowSoftColor.set( pattern2D.ToFXColor() );//Old
				//rainbowSoftColor = new RainbowSoftColor(  vibrantColors.Red );//TESTING ONLY
				//pattern2D.set( vibrantColors.Maroon );//TESTING ONLY
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getBlue() )//Right Side Bars
			{
				colorBarDistance = 0;
				for ( colorBarCheck = x; colorBarCheck <= Dim.width; colorBarCheck++ )
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( colorBarIndex == 17 )
					colorBarDistance = colorBarDistance + 8 * Dim.width / 1920;
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWYellowDark, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverseBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Past blackRed");
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfHorizontalColorBars; colorBarIndex++ )
		{
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )//Top Side Bars
			{
				colorBarDistance = 0;
				/*for ( colorBarCheck = y; colorBarCheck >= 0; colorBarCheck-- )
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )
						colorBarDistance--;
					else
						break;
				}
				colorBarDistance = LengthOfColorBar + colorBarDistance;// */
				for ( colorBarCheck = y; colorBarCheck >= 0; colorBarCheck++ )
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				colorBarDistance = LengthOfColorBar + colorBarDistance;
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, - LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )//Bottom Bars

			{
				colorBarDistance = 0;
				for ( colorBarCheck = y; colorBarCheck <= Dim.height; colorBarCheck++ )
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWYellowDark, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * LocationOfStillMovement / FullSliderRunThrough, LengthOfColorBar * LocationOfColorMovement / FullSliderRunThrough, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverseBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Pale");
		if ( fxColor.getOpacity() == vibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.OxylBlue.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * LocationOfStillMovement / 2 - Math.PI / 2, Math.PI * LocationOfColorMovement / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * LocationOfStillMovement / 2 - Math.PI / 2, Math.PI * LocationOfColorMovement / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * LocationOfStillMovement / 2 - Math.PI / 2, Math.PI * LocationOfColorMovement / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * LocationOfStillMovement / 2 - Math.PI / 2, Math.PI * LocationOfColorMovement / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWYellowDark, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * LocationOfStillMovement / 2 - Math.PI / 2, Math.PI * LocationOfColorMovement / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverseBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else//CHECK FOR FIX FROM FwaFlagLogoSplash
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWYellowDark, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverseBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getBlue() )
		{
			if ( ( y - halfedDim.height ) < - halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10 ) 
					eightColorDiamondsIndexStill = 1;
				else if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 2;
				else if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 8;
			}
			else if ( ( y - halfedDim.height ) > halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10)
					eightColorDiamondsIndexStill = 5;
				else
					if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )	
						eightColorDiamondsIndexStill = 4;
					else
						if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
							eightColorDiamondsIndexStill = 6;
			}
			else
				if ( x - halfedDim.width > 0 )
					eightColorDiamondsIndexStill = 3;
				else
					if ( x - halfedDim.width < 0 )
						eightColorDiamondsIndexStill = 7;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexStill;
			eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8 * LocationOfStillMovement / FullSliderRunThrough;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8 * LocationOfColorMovement / FullSliderRunThrough;
			while ( eightColorDiamondsIndexStill < 0 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill + 8;
			while ( eightColorDiamondsIndexStill > 8 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8;
			while ( eightColorDiamondsIndexMoving < 0 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving + 8;
			while ( eightColorDiamondsIndexMoving > 8 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8;
			eightColorDiamondsIndex = ( eightColorDiamondsIndexStill + eightColorDiamondsIndexMoving ) / 2;//CHECK ME MAY BE - Instead Of +
			while ( eightColorDiamondsIndex < 0 )
				eightColorDiamondsIndex = eightColorDiamondsIndex + 8;
			while ( eightColorDiamondsIndex >= 8 )
				eightColorDiamondsIndex = eightColorDiamondsIndex - 8;
			eightColorDiamondsIndex = (int)Math.floor( eightColorDiamondsIndex );
			if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
					BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
					BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
					BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )
			{
				rainbowSoftColor = new RainbowSoftColor( rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamondsArray( (int)( 7 - eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, magentaNum );
			}
			else
			{
				rainbowSoftColor = new RainbowSoftColor( rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamondsArray( (int)( eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, wheelDiamondsArrayNum[eightColorDiamondsIndex] );
			}
		}
		else if ( fxColor.getOpacity() == vibrantColors.NeonGreen.getOpacity() && 
				fxColor.getRed() == vibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == vibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == vibrantColors.NeonGreen.getBlue() )
		{
			if ( !displayType.AccessLaterReversed() )
				rainbowSoftColor = new RainbowSoftColor( vibrantColors.OxylBlue );
			else if ( !InvertInsteadOfReverse )
				rainbowSoftColor = new RainbowSoftColor( vibrantColors.Green );
			else
				rainbowSoftColor = new RainbowSoftColor( vibrantColors.DarkPink );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				rainbowSoftColor.set( rainbowSoftColor.ToFXColor().invert() );
			/*rgb = rainbowSoftColor.ToRGB();
			argb = rainbowSoftColor.ToARGB();
			fxColor = rainbowSoftColor.ToFXColor();
			return fxColor;// */
			pattern2D.set( rainbowSoftColor.ToFXColor() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getBlue() )
		{
			//wheelTipsHit = true;
			if ( ( LocationOfStillMovement + LocationOfColorMovement ) / 2 <= FullSliderRunThrough - 8.468 * SliderInterval )//CHECK ME FOR WORKING PROPERLY MAY NEED '-'
			{
				/*if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.AccessLaterReversed() )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Red );
				else if ( !InvertInsteadOfReverse )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Green );
				else
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.OxylBlue );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				/*//rgb = rainbowSoftColor.ToRGB();
				//argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				/*if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.AccessLaterReversed() )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Green );
				else if ( !InvertInsteadOfReverse )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Red );
				else
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Pink );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getBlue() )
		{
			//pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * LocationOfStillMovement / FullSliderRunThrough, outerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getOpacity() &&
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * LocationOfStillMovement / FullSliderRunThrough, middleRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * LocationOfStillMovement / FullSliderRunThrough, middleRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * LocationOfStillMovement / FullSliderRunThrough, middleRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * LocationOfStillMovement / FullSliderRunThrough, middleRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * LocationOfStillMovement / FullSliderRunThrough, middleRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * LocationOfStillMovement / FullSliderRunThrough, innerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * LocationOfStillMovement / FullSliderRunThrough, innerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * LocationOfStillMovement / FullSliderRunThrough, innerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else 
				if ( !displayType.AccessLaterReversed() )
				pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * LocationOfStillMovement / FullSliderRunThrough, innerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * LocationOfStillMovement / FullSliderRunThrough, innerRingThickness * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getBlue() )
		{
			//pattern2D.RainbowClockGradated( ColorsFactor / RepeatFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, RepeatFactor, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, - Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, - Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, - Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, - Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * LocationOfStillMovement / 4 - Math.PI / 4, - Math.PI * LocationOfColorMovement / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//CHECK FOR FIX FROM FwaFlagLogoSplash
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( Math.pow(Math.pow(x - halfedDim.width, 2) + Math.pow( y - halfedDim.height * 0.9963, 2), 0.5) <= 47 * Dim.height / 1080 )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, colorBarDistance, LengthOfColorBar, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		//else
		//	someTargetColorInTheCenterHit = false;
		//End Of Basis Image Switch System
		/*if (otherBrowserColorHit == true)
			return ( BrowserPRcolor );
		else
			if (makePixelTransparent == true)
				return ( fxColor.TRANSPARENT );*/
		//if ( aWheelDiamondHit == true )	
		//else if ( wheelTipsHit == true)
		//else
		//{
		/*someTargetColorHit = false;
		if ( displayType.AccessLaterReversed() != Reversed )
		{
			//pattern2D.set( fxColor.invert() );//pattern2D.set( fxColor.invert() );//pattern2D.set( vibrantColors.NeonGreen );
			//return pattern2D.ToFXColor();
			//pattern2D.set( vibrantColors.Gold );
			if ( !OverlayColorScheme )
				pattern2D.set( fxColor );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			/*
					// tempColor = fxColor;
					fxColor = ColorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
							fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
							fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
							fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
							&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
							fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
							fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
							fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
							&& InvertBasisFromBackground )
						{
							fxColor = fxColor.invert();
							rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
							rgb = rainbowSoftColor.ToRGB();
							argb = rainbowSoftColor.ToARGB();
							fxColor = rainbowSoftColor.ToFXColor();
							return fxColor;
						}
						else
							if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPRColor , 
							{
								rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
								rgb = rainbowSoftColor.ToRGB();
								argb = rainbowSoftColor.ToARGB();
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}
							else
							{
								rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
								rgb = rainbowSoftColor.ToRGB();
								argb = rainbowSoftColor.ToARGB();
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}// #/
			//rainbowSoftColor.set(fxColor);
			//rgb = rainbowSoftColor.ToRGB();
			//argb = rainbowSoftColor.ToARGB();
			//fxColor = rainbowSoftColor.ToFXColor();
			//return fxColor;
		}
		else if ( !someTargetColorHit )
		{
			//pattern2D.set( fxColor );

			//return pattern2D.ToFXColor();
			/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
			rgb = rainbowSoftColor.ToRGB();
			argb = rainbowSoftColor.ToARGB();
			fxColor = rainbowSoftColor.ToFXColor();// #/
			//return fxColor;// #/
			//pattern2D.set( vibrantColors.Silver );
			if ( !OverlayColorScheme )
				pattern2D.set( fxColor );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		//}
		//System.out.println("Got Past Buddhism Basis Pixel If-Tree");
		///pattern2D.SimpleRainbow(ColorsFactor / SliderInterval, coreVariable, LocationOfColorMovement, LengthOfColorBar, RepeatFactor / SliderInterval);
		//pattern2D.set( vibrantColors.Bronze );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		/*rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// #/
		pattern2D.set( fxColor );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		return colorDecide.NextColorDecide ( BackgroundBasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		else
		{
			someTargetColorHit = false;
			pattern2D.set( fxColor );
			if ( !( TextOutlineBlendingToBasisInvert && displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
				if ( InvertBasisPicture && displayType.AccessLaterReversed() == Reversed )
				{
					tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateBackgroundFade )
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					//fxColor = transparencySlider.ToFXColor();
					rainbowSoftColor.set( fxColor );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPR.getColor( x, y ), fxColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else if ( InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				{
					//tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor.invert(), BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				//else// if ( !InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				//	pattern2D.set( pattern2D.ToFXColor().invert() );
				//if ( ( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) || ( !displayType.AccessLaterReversed() && InvertInsteadOfReverse ) )
				//{
				else if ( displayType.AccessLaterReversed() == Reversed )
				{
					//tempColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor().invert(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					tempColor = pattern2D.ToFXColor();
					if ( !BasisOverlaySeperateBackgroundFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false ) );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//tempColor = pattern2D.ToFXColor();
					//pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else// if ( displayType.AccessLaterReversed() != Reversed )
				{
					if ( ShowBasisOverlayForText && !( displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
						tempColor = pattern2D.ToFXColor().invert();
					else
						tempColor = pattern2D.ToFXColor();
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
			else if ( !InvertBasisPicture )
			{
				fxColor = pattern2D.ToFXColor().invert();
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( pattern2D.ToFXColor(), fxColor ) )
				{
					fxColor = pattern2D.ToFXColor().invert();
					pattern2D.set( fxColor );
				}
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//return vibrantColors.Gold;
		
		//pattern2D.set( fxColor );
		//rainbowSoftColor.set( pattern2D.ToFXColor() );
		//return pattern2D.ToFXColor();
		//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		//return vibrantColors.Silver;
		//}

	}

	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}


	/*public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}// */
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}




package rainbowPackage;

//import javafx.scene.paint.Paint.*;
//import javafx.scene.image.PixelReader;
//import rainbowPackage.vibrantColors;
//import rainbowPackage.vibrantColorCombos;
//import rainbowPackage.RainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public class FwaFlagSplashLogo //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public ArrayReverser arrayReverser = new ArrayReverser();
	//public RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public IndependentTextBackgroundColorPasser independentTextBackgroundColorPasser = new IndependentTextBackgroundColorPasser();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public FwaFlagSplashLogo()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public FwaFlagSplashLogo( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public FwaFlagSplashLogo( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}


	public final Color FwaFlagLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double ringSize = 0.087989867382;//50 833 = 783  47 1835 = 1788 //0.175979734764//0.087989867382

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		//rainbowSoftColor = new RainbowSoftColor( DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed ) );// reversalOfBackgroundEffectsSlave ) );
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );// reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{//RainbowStrobeGradated
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, false, true,  false, ReversedRainbow )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, 0 * LocationOfStillMovement * RepeatFactor / FullSliderRunThrough, LocationOfColorMovement * RepeatFactor / FullSliderRunThrough, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, 0 * LocationOfStillMovement * RepeatFactor / FullSliderRunThrough, LocationOfColorMovement * RepeatFactor / FullSliderRunThrough, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowStrobeVaryated( ColorsFactor, 0 * LocationOfStillMovement * RepeatFactor / FullSliderRunThrough, LocationOfColorMovement * RepeatFactor / FullSliderRunThrough, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, 0 * LocationOfStillMovement * RepeatFactor / FullSliderRunThrough, LocationOfColorMovement * RepeatFactor / FullSliderRunThrough, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowStrobeVaryated( ColorsFactor, 0 * LocationOfStillMovement * RepeatFactor / FullSliderRunThrough, LocationOfColorMovement * RepeatFactor / FullSliderRunThrough, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154//RainbowRingGradated																																																																														/#(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. #/
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowRingVaryated( ringSize * halfedDim.height * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - halfedDim.width + 11.) * Dim.height / 3576., ( y - halfedDim.height + 1. - 8. ) * Dim.height / 1566., ringSize * halfedDim.height, 0, 99999, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowRingVaryated( ringSize * halfedDim.height * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - halfedDim.width + 11.) * Dim.height / 3576., ( y - halfedDim.height + 1. - 8. ) * Dim.height / 1566., ringSize * halfedDim.height, 0, 99999, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.RainbowRingVaryated( ringSize * halfedDim.height * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - halfedDim.width + 11.) * Dim.height / 3576., ( y - halfedDim.height + 1. - 8. ) * Dim.height / 1566., ringSize * halfedDim.height, 0, 99999, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowRingVaryated( ringSize * halfedDim.height * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - halfedDim.width + 11.) * Dim.height / 3576., ( y - halfedDim.height + 1. - 8. ) * Dim.height / 1566., ringSize * halfedDim.height, 0, 99999, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowRingVaryated( ringSize * halfedDim.height * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - halfedDim.width + 11.) * Dim.height / 3576., ( y - halfedDim.height + 1. - 8. ) * Dim.height / 1566., ringSize * halfedDim.height, 0, 99999, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//243 1679
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true,  false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.OxylBlueRedFX, true,  false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteBlackFX, true,  false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )//243 1679
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.GreenPurpleFX, true,  false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.OxylBlueRedFX, true,  false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//400 1525 //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., false
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )//400 1525 //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., false
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			//pattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
			//pattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.SkyBlue, vibrantColors.Brown );
			else
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.BrightBlue, vibrantColors.NeonGreen );
			pattern2D.set( transparencySlider.ToFXColor() );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			// */
			/*
					//System.out.println( "After x: " + x +  " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					}
					pattern2D.set( tempColorFader.fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		}
		else if ( fxColor.getOpacity() == vibrantColors.NonHotPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.NonHotPink.getRed() &&
				fxColor.getGreen() == vibrantColors.NonHotPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.NonHotPink.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true,  false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true,  false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return vibrantColors.NeonGreen.ToFXColor();
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			pattern2D.set( fxColor );
			if ( !( TextOutlineBlendingToBasisInvert && displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
				if ( InvertBasisPicture && displayType.AccessLaterReversed() == Reversed )
				{
					tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateBackgroundFade )
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					//fxColor = transparencySlider.ToFXColor();
					rainbowSoftColor.set( fxColor );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, fxColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else if ( InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				{
					//tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor.invert(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				//else// if ( !InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				//	pattern2D.set( pattern2D.ToFXColor().invert() );
				//if ( ( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) || ( !displayType.AccessLaterReversed() && InvertInsteadOfReverse ) )
				//{
				else if ( displayType.AccessLaterReversed() == Reversed )
				{
					//tempColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor().invert(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					tempColor = pattern2D.ToFXColor();
					if ( !BasisOverlaySeperateBackgroundFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false ) );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//tempColor = pattern2D.ToFXColor();
					//pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else// if ( displayType.AccessLaterReversed() != Reversed )
				{
					if ( ShowBasisOverlayForText && !( displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
						tempColor = pattern2D.ToFXColor().invert();
					else
						tempColor = pattern2D.ToFXColor();
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
			else if ( !InvertBasisPicture )
			{
				fxColor = pattern2D.ToFXColor().invert();
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( pattern2D.ToFXColor(), fxColor, ColorDifference ) )
				{
					fxColor = pattern2D.ToFXColor().invert();
					pattern2D.set( fxColor );
				}
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//return vibrantColors.Gold;
		
		//pattern2D.set( fxColor );
		//rainbowSoftColor.set( pattern2D.ToFXColor() );
		//return pattern2D.ToFXColor();
		//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		//return vibrantColors.Silver;
		//}
	}

	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	/*public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}// */
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}






package rainbowPackage;

//import javafx.scene.paint.Paint.*;
//import javafx.scene.image.PixelReader;
//import rainbowPackage.vibrantColors;
//import rainbowPackage.vibrantColorCombos;
//import rainbowPackage.RainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public class FwaSplashLogo //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public ArrayReverser arrayReverser = new ArrayReverser();
	//public RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public IndependentTextBackgroundColorPasser independentTextBackgroundColorPasser = new IndependentTextBackgroundColorPasser();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	//final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public FwaSplashLogo()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public FwaSplashLogo( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public FwaSplashLogo( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}


	public final Color FwaLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double ringSize = 0.087989867382;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );//reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, true, false, ReversedRainbow )WNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//243 1679
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RedOxylNeonGreenBlueFX, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteBlackFX, true, false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )//243 1679
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.PurpleGreenFX, true, false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RedOxylBlueFX, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//400 1525
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )//10 23
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
			else
				if ( !displayType.AccessLaterReversed() )//400 1525
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ),  OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			transparencySlider.TransparencySliderFunction(1., .5, pattern2D.ToFXColor(), vibrantColors.Magenta );
			pattern2D.set( transparencySlider.ToFXColor() );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//pattern2D.TransparencySliderFunction(1., .5, BrightnessMultiplyer, Gradations, pattern2D.ToFXColor(), vibrantColors.Magenta, OpacityBefore, OpacityAfter);
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
			else
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				transparencySlider.set( transparencySlider.ToFXColor().invert() );
			pattern2D.set( transparencySlider.ToFXColor() );
			//pattern2D.TransparencySliderFunction(1., .5, BrightnessMultiplyer, Gradations, vibrantColors.Green, vibrantColors.Pink, OpacityBefore, OpacityAfter);
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		/*else
		{
			someTargetColorHit = false;
			if ( !OverlayColorScheme )
				if ( displayType.AccessLaterReversed() != Reversed )
			{
				//pattern2D.set( fxColor.invert() );//pattern2D.set( fxColor.invert() );//pattern2D.set( vibrantColors.NeonGreen );
				//return pattern2D.ToFXColor();
				//pattern2D.set( vibrantColors.Gold );
				//pattern2D.set( fxColor );
				pattern2D.set( fxColor );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		pattern2D.set( fxColor );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//return pattern2D.ToFXColor();
		//rainbowSoftColor.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		//pattern2D.set( rainbowSoftColor.ToFXColor() );
		/*rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// #/
		return colorDecide.NextColorDecide ( BackgroundBasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		else
		{
			someTargetColorHit = false;
			pattern2D.set( fxColor );
			if ( !( TextOutlineBlendingToBasisInvert && displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
				if ( InvertBasisPicture && displayType.AccessLaterReversed() == Reversed )
				{
					tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateBackgroundFade )
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					//fxColor = transparencySlider.ToFXColor();
					rainbowSoftColor.set( fxColor );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, fxColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else if ( InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				{
					//tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor.invert(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				//else// if ( !InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				//	pattern2D.set( pattern2D.ToFXColor().invert() );
				//if ( ( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) || ( !displayType.AccessLaterReversed() && InvertInsteadOfReverse ) )
				//{
				else if ( displayType.AccessLaterReversed() == Reversed )
				{
					//tempColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor().invert(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					tempColor = pattern2D.ToFXColor();
					if ( !BasisOverlaySeperateBackgroundFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false ) );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//tempColor = pattern2D.ToFXColor();
					//pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else// if ( displayType.AccessLaterReversed() != Reversed )
				{
					if ( ShowBasisOverlayForText && !( displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
						tempColor = pattern2D.ToFXColor().invert();
					else
						tempColor = pattern2D.ToFXColor();
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
			else if ( !InvertBasisPicture )
			{
				fxColor = pattern2D.ToFXColor().invert();
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( pattern2D.ToFXColor(), fxColor ) )
				{
					fxColor = pattern2D.ToFXColor().invert();
					pattern2D.set( fxColor );
				}
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//return vibrantColors.Gold;
		
			/*else
			{
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( pattern2D.ToFXColor(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, !Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				fxColorArray[0] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
				fxColorArray[1] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( fxColorArray[0], fxColorArray[1], ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
					return fxColorArray[1];
				else
				{
					rainbowSoftColor.RainbowSoftColorFunction( 2, 1, fxColorArray[0], fxColorArray[1] );
					if( InvertBasisFromBackground )
					{
						rainbowSoftColor = new RainbowSoftColor( fxColorArray[1] );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through NextColorDecide Jump Past This then And Goto Next else
						rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						if ( !colorTooSimilarFunction.ColorTooSimilarFunction( fxColorArray[1], rainbowSoftColor.ToFXColor(), ColorDifference ) )
							return fxColor;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return InitialColorContrastingChoice;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( ColorTooSimilarReplacementColor, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return ColorTooSimilarReplacementColor;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( vibrantColors.SimpleBlue, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( vibrantColors.SimpleBlue );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return vibrantColors.SimpleBlue;
					}
					else
					{
						rainbowSoftColor = new RainbowSoftColor( vibrantColors.SimpleRed );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return vibrantColors.SimpleRed;
					}
				}// */
				/*else//Trying To Get HalfGray To Flash But Can't Use Because It Would Mess With Trying To Fade Out Background To Gray To Eliminate Text Read.
				{
				 BackgroundColorOverlay )	
						fxColorArray[0] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColorArray[0] = pattern2D.ToFXColor();
					if ( TextColorOverlay )
					{
						fxColorArray[1] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
						pattern2D.set( fxColorArray[1] );
					}
					else
						fxColorArray[1] = pattern2D.ToFXColor();
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColorArray[0], BackgroundBasisPRColor, fxColorArray[1], BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}*/
		//	}
			//pattern2D.set( fxColor );
			//rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return pattern2D.ToFXColor();
			//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
			//return vibrantColors.Silver;
		//}
	}

	//DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! 
	public final Color FwaFlagLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean OverlayColorScheme )
	{//DON"T USE ME !!!!!
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double ringSize = 0.087989867382;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		//rainbowSoftColor = new RainbowSoftColor( DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed ) );// reversalOfBackgroundEffectsSlave ) );
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );// reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{//RainbowStrobeGradated
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim, halfedDim, -HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleRainbow( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleRainbowReverse( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor, 1880. * XScaleFactor, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ) );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154//RainbowRingGradated
			if ( !OverlayColorScheme )
				pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//243 1679
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.OxylBlueNeonGreenRedFX, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.WhiteBlackFX,  OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )//400 1525 //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., false
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, RepeatFactor / ColorsFactor * Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, RepeatFactor / ColorsFactor * Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWPinkCenter, true, false, ReversedRainbow ) /*vibrantColorCombos.HalfGrayToDarkGreyFX*/, !displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockVaryated( ColorsFactor / RepeatFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, RepeatFactor / ColorsFactor * Math.PI / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			//pattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
			//pattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( transparencySlider.ToFXColor() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

			/*
					//System.out.println( "After x: " + x +  " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					}
					pattern2D.set( tempColorFader.fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		}
		else if ( fxColor.getOpacity() == vibrantColors.NonHotPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.NonHotPink.getRed() &&
				fxColor.getGreen() == vibrantColors.NonHotPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.NonHotPink.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleRainbow( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleRainbowReverse( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ) );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return vibrantColors.NeonGreen.ToFXColor();
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		/*else
		{
			someTargetColorHit = false;
			if ( !OverlayColorScheme )
				if ( displayType.AccessLaterReversed() != Reversed )
			{
				//pattern2D.set( fxColor.invert() );//pattern2D.set( fxColor.invert() );
				//pattern2D.set( vibrantColors.Gold );
				//rainbowSoftColor.set( pattern2D.ToFXColor() );
				//return pattern2D.ToFXColor();// #/
				pattern2D.set( fxColor );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//pattern2D.set( fxColor );
		//rainbowSoftColor.set( pattern2D.ToFXColor() );
		//return pattern2D.ToFXColor();
		//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		pattern2D.set( fxColor );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		/*rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// #/
		return colorDecide.NextColorDecide ( BackgroundBasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		else
		{
			someTargetColorHit = false;
			pattern2D.set( fxColor );
			if ( !( TextOutlineBlendingToBasisInvert && displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
				if ( InvertBasisPicture && displayType.AccessLaterReversed() == Reversed )
				{
					tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateBackgroundFade )
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					//fxColor = transparencySlider.ToFXColor();
					rainbowSoftColor.set( fxColor );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, fxColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else if ( InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				{
					//tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor.invert(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				//else// if ( !InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				//	pattern2D.set( pattern2D.ToFXColor().invert() );
				//if ( ( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) || ( !displayType.AccessLaterReversed() && InvertInsteadOfReverse ) )
				//{
				else if ( displayType.AccessLaterReversed() == Reversed )
				{
					//tempColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor().invert(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					tempColor = pattern2D.ToFXColor();
					if ( !BasisOverlaySeperateBackgroundFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false ) );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//tempColor = pattern2D.ToFXColor();
					//pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else// if ( displayType.AccessLaterReversed() != Reversed )
				{
					if ( ShowBasisOverlayForText && !( displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
						tempColor = pattern2D.ToFXColor().invert();
					else
						tempColor = pattern2D.ToFXColor();
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
			else if ( !InvertBasisPicture )
			{
				fxColor = pattern2D.ToFXColor().invert();
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( pattern2D.ToFXColor(), fxColor ) )
				{
					fxColor = pattern2D.ToFXColor().invert();
					pattern2D.set( fxColor );
				}
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//return vibrantColors.Gold;
		
		//pattern2D.set( fxColor );
		//rainbowSoftColor.set( pattern2D.ToFXColor() );
		//return pattern2D.ToFXColor();
		//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		//return vibrantColors.Silver;
		//}
	}


	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	/*public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}// */
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}






package rainbowPackage;

//import javafx.scene.paint.Paint.*;
//import javafx.scene.image.PixelReader;
//import rainbowPackage.vibrantColors;
//import rainbowPackage.vibrantColorCombos;
//import rainbowPackage.rainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public class MagiElite //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public ArrayReverser arrayReverser = new ArrayReverser();
	//public rainbowSoftColorCodesSets rainbowSoftColorCodesSets = new rainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public IndependentTextBackgroundColorPasser independentTextBackgroundColorPasser = new IndependentTextBackgroundColorPasser();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public MagiElite( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public MagiElite( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public MagiElite()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	public final Color MagiEliteForRaster(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );

		//boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		final double chrysanthemumRadius = 0.055555555555555 * Dim.height, chrysanthemumInnerRadius = 0.0083333333333333 * Dim.height, chrysanthemumYDisplacement = 0.0231481481481481 * Dim.height, chrysanthemumRidgeAltitude = 0.175979734764 * chrysanthemumInnerRadius;//, chrysanthemumNumberOfPedals = 16;

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, laterReversed, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		if ( Math.pow( Math.pow( x - halfedDim.width, 2) + Math.pow( y - halfedDim.height + chrysanthemumYDisplacement, 2), 0.5 ) <= chrysanthemumRadius )
		{//902 //1019
			someTargetColorInTheCenterHit = true;
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getBlue() )
			{
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
					else
						pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
					else
						pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getBlue() )
			{
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getBlue() )
			{
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse);
					else
						pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
					else
						pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverseBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getBlue() )
			{
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, 0.001 * chrysanthemumRadius * LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, RepeatFactor, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, 0.001 * chrysanthemumRadius * LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, RepeatFactor, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, 0.001 * chrysanthemumRadius * LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, RepeatFactor, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, 0.001 * chrysanthemumRadius * LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, RepeatFactor, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, 0.001 * chrysanthemumRadius * LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, RepeatFactor, Dim.width, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getBlue() )
			{
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					if ( !displayType.AccessLaterReversed() )
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
				if ( fxColor.getOpacity() == vibrantColors.SimpleBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.SimpleBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.SimpleBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.SimpleBlue.getBlue() )
				{//951 To 969
					if ( !OverlayColorScheme )
						if ( !displayType.AccessLaterReversed() )
							pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						else if ( !InvertInsteadOfReverse )
							pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						else
							pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					else
						if ( !displayType.AccessLaterReversed() )
							pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						else
							pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
						pattern2D.set( pattern2D.ToFXColor().invert() );
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else
				{
					someTargetColorInTheCenterHit = false;
					if ( fxColor.getOpacity() == vibrantColors.SkyBlue.getOpacity() &&
							fxColor.getRed() == vibrantColors.SkyBlue.getRed() &&
							fxColor.getGreen() == vibrantColors.SkyBlue.getGreen() &&
							fxColor.getBlue() == vibrantColors.SkyBlue.getBlue() )
					{
						if ( !OverlayColorScheme )
							if ( !displayType.AccessLaterReversed() )
								pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
							else if ( !InvertInsteadOfReverse )
								pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
							else
								pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );								
						else
							if ( !displayType.AccessLaterReversed() )
								pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
							else
								pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
							pattern2D.set( pattern2D.ToFXColor().invert() );
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
						return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					}
				}	
		}//if ( someTargetColorInTheCenterHit == false )
		else if ( fxColor.getOpacity() == vibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.OxylBlue.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.SkyBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.SkyBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.SkyBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.SkyBlue.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width, y - halfedDim.height, 0.1759797347638206 * halfedDim.height, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width, y - halfedDim.height, 0.1759797347638206 * halfedDim.height, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				else
					pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width, y - halfedDim.height, 0.1759797347638206 * halfedDim.height, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width, y - halfedDim.height, 0.1759797347638206 * halfedDim.height, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				else
					pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width, y - halfedDim.height, 0.1759797347638206 * halfedDim.height, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.NeonGreen.getOpacity() &&
				fxColor.getRed() == vibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == vibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == vibrantColors.NeonGreen.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.HalfGrey.getOpacity() &&
				fxColor.getRed() == vibrantColors.HalfGrey.getRed() &&
				fxColor.getGreen() == vibrantColors.HalfGrey.getGreen() &&
				fxColor.getBlue() == vibrantColors.HalfGrey.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.DarkPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.DarkPink.getRed() &&
				fxColor.getGreen() == vibrantColors.DarkPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.DarkPink.getBlue() )//neonGreenNum)
		{//pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.ToRGB()[0] * 65536 + (int)color.ToRGB()[1] * 256 + (int)color.ToRGB()[2]));//setArgb // */
			greenBlueGreenUsed = true;
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width, y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolors, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width, y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolorsReverse, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width, y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.FireFXcolors, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width, y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolors, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width, y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolorsReverse, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, 2 * Math.PI, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Pink.getOpacity() &&
				fxColor.getRed() == vibrantColors.Pink.getRed() &&
				fxColor.getGreen() == vibrantColors.Pink.getGreen() &&
				fxColor.getBlue() == vibrantColors.Pink.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed());
			else
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, Adjusted, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		/*else
		{
			displayType.AccessSomeTargetColorHit() = false;
			if ( displayType.AccessLaterReversed() != Reversed )
				//{
			{
				//pattern2D.set( fxColor.invert() );//pattern2D.set( fxColor.invert() );//pattern2D.set( vibrantColors.NeonGreen );
				//pattern2D.set( vibrantColors.Gold );
				if ( !OverlayColorScheme )
					pattern2D.set( fxColor );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				//return pattern2D.ToFXColor();
				//pattern2D.set( vibrantColors.Gold );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}/*
											// tempColor = fxColor;
											fxColor = ColorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
											if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
													fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
													fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
													fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
													&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
													fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
													fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
													fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
													&& InvertBasisFromBackground )
												{
													fxColor = fxColor.invert();
													rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
													rgb = rainbowSoftColor.ToRGB();
													argb = rainbowSoftColor.ToARGB();
													fxColor = rainbowSoftColor.ToFXColor();
													return fxColor;
												}
												else
													if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPRColor , 
													{
														rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
														rgb = rainbowSoftColor.ToRGB();
														argb = rainbowSoftColor.ToARGB();
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}
													else
													{
														rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
														rgb = rainbowSoftColor.ToRGB();
														argb = rainbowSoftColor.ToARGB();
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}// #/
			//}
			else
			{
				//pattern2D.set( fxColor );
				//return pattern2D.ToFXColor();
				//pattern2D.set( vibrantColors.Silver );
				pattern2D.set( fxColor );
				if ( !OverlayColorScheme )
					if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// #/
				//pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( BackgroundBasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}//End Of Basis Image Switch System */
		/*if ( greenBlueGreenUsed == false )
			if ( someTargetColorHit == true)//numberOfClockHandsForOrderOfMagi //greenBlueGreenUsed
			{
				//	if ( coreVariable >= colorDisplacementVariable && coreVariable < (numberOfColorsInTheRainbow - 1) * colorIntervalVariable + colorDisplacement)//For Purple Outside Ring
				//{//Retain Below If Else And Use New Variable Names And Equate Them With If Switch Below New Variable Name Comment Above // Make html Text Flip shitBrownNum Color!
				if ( BrowserPRColor == vibrantColors.Magenta.ToFXColor() )//shitBrownNum )//BrowserPR.getArgb(x, y) == magentaNum )// == magecoreVariable// == webBlackNum
					if ( coreVariable < colorIntervalVariable + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, purple, blue);
					else if ( coreVariable < ( 2 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, blue, teal);
					else if ( coreVariable < ( 3 * colorIntervalVariable + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, teal, pink);
					else if ( coreVariable < ( 4 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, pink, yellow);
					else if ( coreVariable < ( 5 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, yellow, orange);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, orange, red);
				else//
					if ( coreVariable < colorIntervalVariable + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, red, orange);
					else if ( coreVariable < ( 2 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, orange, yellow);
					else if ( coreVariable < ( 3 * colorIntervalVariable + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, yellow, green);
					else if ( coreVariable < ( 4 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, green, teal);
					else if ( coreVariable < ( 5 * colorIntervalVariable + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, teal, blue);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, blue, purple);//
				pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.ToRGB()[0] * 65536 + (int)color.ToRGB()[1] * 256 + (int)color.ToRGB()[2]));//setArgb
			}
			else
				if ( BrowserPRColor != vibrantColors.Magenta )//shitBrownNum )
					pw.setArgb( x, y, BasisPRColor );
				else
					pw.setArgb( x, y, neonGreen);//shitBrownNum);//PRColor );// */

		//pattern2D.SimpleRainbow(ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor);
		//rainbowSoftColor.RainbowSoftColorRainbowFunction(Math.abs( ColorsFactor ), sliderValue);//1st Square In SimpleDiagnosticsClass.java
		//rainbowSoftColor.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		///pattern2D.set( vibrantColors.Bronze );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
		/*rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// #/
		if ( !OverlayColorScheme )
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, rainbowSoftColor.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		else
		{
			someTargetColorHit = false;
			pattern2D.set( fxColor );
			if ( !( TextOutlineBlendingToBasisInvert && displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
				if ( InvertBasisPicture && displayType.AccessLaterReversed() == Reversed )
				{
					tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateBackgroundFade )
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					//fxColor = transparencySlider.ToFXColor();
					rainbowSoftColor.set( fxColor );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, fxColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else if ( InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				{
					//tempColor = pattern2D.ToFXColor().invert();
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor.invert(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				//else// if ( !InvertBasisPicture && displayType.AccessLaterReversed() != Reversed )
				//	pattern2D.set( pattern2D.ToFXColor().invert() );
				//if ( ( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) || ( !displayType.AccessLaterReversed() && InvertInsteadOfReverse ) )
				//{
				else if ( displayType.AccessLaterReversed() == Reversed )
				{
					//tempColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor().invert(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					tempColor = pattern2D.ToFXColor();
					if ( !BasisOverlaySeperateBackgroundFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BasisOverlaySperateBackgroundColor, true, TextColorOverlay, false ) );
					//pattern2D.set( pattern2D.ToFXColor().invert() );
					//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
					//tempColor = pattern2D.ToFXColor();
					//pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, true, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else// if ( displayType.AccessLaterReversed() != Reversed )
				{
					if ( ShowBasisOverlayForText && !( displayType.AccessTextTransitionFactor() > 0.01 && displayType.AccessTextTransitionFactor() < 0.99 ) )
						tempColor = pattern2D.ToFXColor().invert();
					else
						tempColor = pattern2D.ToFXColor();
					//fxColor = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					if ( !BasisOverlaySeperateTextFade )
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
					else
						pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
					tempColor = pattern2D.ToFXColor();
					pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), tempColor, fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, true, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
			else if ( !InvertBasisPicture )
			{
				fxColor = pattern2D.ToFXColor().invert();
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( fxColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				if ( !BasisOverlaySeperateTextFade )
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true ) );
				else
					pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, BasisOverlaySperateTextColor, BackgroundColorToOverlay, BackgroundColorOverlay, true, true ) );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( pattern2D.ToFXColor(), fxColor ) )
				{
					fxColor = pattern2D.ToFXColor().invert();
					pattern2D.set( fxColor );
				}
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( BasisPRColor, BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, false, false, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		return vibrantColors.Gold;
		
			/*else
			{
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				return colorDecide.NextColorDecide ( pattern2D.ToFXColor(), BackgroundBasisPRColor, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, !Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				fxColorArray[0] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
				fxColorArray[1] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( fxColorArray[0], fxColorArray[1], ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
					return fxColorArray[1];
				else
				{
					rainbowSoftColor.RainbowSoftColorFunction( 2, 1, fxColorArray[0], fxColorArray[1] );
					if( InvertBasisFromBackground )
					{
						rainbowSoftColor = new RainbowSoftColor( fxColorArray[1] );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through NextColorDecide Jump Past This then And Goto Next else
						rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						if ( !colorTooSimilarFunction.ColorTooSimilarFunction( fxColorArray[1], rainbowSoftColor.ToFXColor(), ColorDifference ) )
							return fxColor;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return InitialColorContrastingChoice;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( ColorTooSimilarReplacementColor, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return ColorTooSimilarReplacementColor;
					}
					else if ( !colorTooSimilarFunction.ColorTooSimilarFunction( vibrantColors.SimpleBlue, rainbowSoftColor.ToFXColor(), ColorDifference ) )
					{
						rainbowSoftColor = new RainbowSoftColor( vibrantColors.SimpleBlue );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return vibrantColors.SimpleBlue;
					}
					else
					{
						rainbowSoftColor = new RainbowSoftColor( vibrantColors.SimpleRed );
						//rgb = rainbowSoftColor.rgb;
						//argb = rainbowSoftColor.argb;
						fxColor = rainbowSoftColor.ToFXColor();
						return vibrantColors.SimpleRed;
					}
				}// */
				/*else//Trying To Get HalfGray To Flash But Can't Use Because It Would Mess With Trying To Fade Out Background To Gray To Eliminate Text Read.
				{
				 BackgroundColorOverlay )	
						fxColorArray[0] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, false );
					else
						fxColorArray[0] = pattern2D.ToFXColor();
					if ( TextColorOverlay )
					{
						fxColorArray[1] = independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, true );
						pattern2D.set( fxColorArray[1] );
					}
					else
						fxColorArray[1] = pattern2D.ToFXColor();
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColorArray[0], BackgroundBasisPRColor, fxColorArray[1], BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}*/
		//	}
			//pattern2D.set( fxColor );
			//rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return pattern2D.ToFXColor();
			//pattern2D.set( vibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPRColor.getRed(), 255 * BasisPRColor.getGreen(), 255 * BasisPRColor.getBlue(), BasisPRColor.getOpacity() } );
			//return vibrantColors.Silver;
		//}
		//return vibrantColors.Bronze;
	}

	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, boolean ReversedRainbow, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlayCurrent, Color BackgroundColorToOverlayCurrent, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	/*public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}// */
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}





package rainbowPackage;

//import javafx.scene.paint.Paint.*;
import javafx.scene.image.PixelReader;
//import rainbowPackage.vibrantColors;
//import rainbowPackage.vibrantColorCombos;
//import rainbowPackage.rainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public class RainbowSoft2D //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public ArrayReverser arrayReverser = new ArrayReverser();
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public ColorSlider tempColorSlider = new ColorSlider();
	public TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	public double colorBeingChecked = 0, opacityBeingChecked = 1;
	public ColorFader tempColorFader = new ColorFader();
	public ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public rainbowSoftColorCodesSets rainbowSoftColorCodesSets = new rainbowSoftColorCodesSets();
	public double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public DisplayType displayType = new DisplayType();
	public ColorDecide colorDecide = new ColorDecide();
	public Dimension halfedDim = new Dimension();
	public boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public RainbowSoft2D( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public RainbowSoft2D( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public RainbowSoft2D()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	public Color RainbowClock(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, int x, int y, double RepeatFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BrowserPR, /*PixelWriter BrowserPW,*/ Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )//Basic Example Of How Colors Change Then Go Through Final String Based Choice ReProcessing. Figure This Function Entirely Before Moving On If Analyzing RainbowSoft2D.
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		someTargetColorHit = true; browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPR.getColor( x, y ), laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPR.getColor( x, y ), displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) );   //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPR.getColor( x, y ), laterReversed )
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper( 1.5 * LocationOfColorMovement / RepeatFactor ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement / RepeatFactor }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;
		if ( displayType.AccessLaterReversed() != Reversed )
		{
			//transparencySlider.TransparencySliderFunction( RepeatFactor, LocationOfColorMovement, vibrantColors.Magenta, vibrantColors.ClearMagenta );
			//transparencySlider.set( vibrantColors.Magenta );
			/*if ( LocationOfColorMovement / RepeatFactor < 0.5)//UnComment Below To colorDecide.NextColorDecide To Get Text Fade In Back And Fourth
				transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper ( 1 - 6 * LocationOfColorMovement / RepeatFactor ) } );//1. - LocationOfColorMovement / RepeatFactor } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement / RepeatFactor }
			else
				transparencySlider.set( new double[]{ 255. * BrowserPR.getColor( x, y ).getRed(), 255. * BrowserPR.getColor( x, y ).getGreen(), 255. * BrowserPR.getColor( x, y ).getBlue(), tempTransparencySlider.OpacityValueFitterCapper ( 2 * LocationOfColorMovement / RepeatFactor - 1 ) } );
			BrowserPW.setColor( x, y, transparencySlider.ToFXColor() );// */
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, RepeatFactor, vibrantColorCombos.RainbowFXcolorsWPinkCenter, false );//Simple Double Slider 1 Rotation Rainbow Clock
			//System.out.println( "arrayReverser.Length(): " + arrayReverser.Length() );
			//tempTransparencySlider.CombineColors( pattern2D.ToFXColor(), transparencySlider.ToFXColor() );
			return colorDecide.NextColorDecide ( vibrantColors.Black, vibrantColors.Black, pattern2D.ToFXColor(), BrowserPR.getColor( x, y ) /*tempTransparencySlider.ToFXColor()*/, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			//System.out.println( "laterReversed != Reversed: " + ( laterReversed != Reversed ) );
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement,  x - halfedDim.width, y - halfedDim.height, RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed() );//Simple Double Slider 1 Rotation Rainbow Clock Reversed
			return colorDecide.NextColorDecide ( vibrantColors.Black, vibrantColors.Black, pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
	}

	public Color Buddhism(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double SliderInterval, double FullSliderRunThrough, int x, int y, double RepeatFactor, double LengthOfColorBar, double SpiralFactor, double NumberOfSpirals, double SuckInExponentialness, double SuckInDivisor, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{//SliderInterval May Not Be Needed
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		//double radialDistance = Math.pow(Math.pow(halfedDim.width + 1, 2) + Math.pow(halfedDim.height + 1, 2), 0.5);//, rainbowIntervalVariable = 0;
		//double fullAngle = Math.PI * radialDistance;
		//double colorDisplacement = 0;
		//double chrysanthemumRadius = 60;
		//double radialVariableDistance = 0;//Comment Out For  Ghetto Many Rainbow Clocks
		//double angleVariableStill = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableStill = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		//double angleVariableTransitioning = 0;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals
		//double radiusVariableTransitioning = 0;//radialVariableDistance + colorDisplacement + angle;//Remove + angle And Add xSlider To Make Rainbow Clock
		int outerRingThickness = 72 * Dim.height / 1080; int middleRingThickness = 20 * Dim.height / 1080; int innerRingThickness = 18 * Dim.height / 1080;// int outerRingRadius = 293; int middleRingRadius = 88; int innerRingRadius = 66;


		//boolean someTargetColorInTheCenterHit = false, wheelTipsHit = false;//greenBlueGreenUsed = false, otherBrowserColorHit = false,	makePixelTransparent = false, aWheelDiamondHit = false;
		//aColorBarHit = false;
		//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ) );
		//int transparentNum = 0;

		Color BrowserPRcolor = BrowserPR.getColor( x, y );

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPRcolor, Reversed, false, true ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		//System.out.println("Got To Buddhism Basis Pixel If-Tree. x: " + x + " y: " + y + " fxColor: " + fxColor );
		//System.out.println("x: " + x + " y: " + y);
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfHorizontalColorBars; colorBarIndex++)
		{
			//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ) + " Color: " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			//tempTransparencySlider = rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex);
			//System.out.println("x: " + x + " y: " + y + " BasisPR.getColor( x, y ): " + BasisPR.getColor( x, y ));
			//System.out.println("colorBarIndex: " + colorBarIndex);
			//System.out.println("rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex): " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			//System.out.println("rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum(): " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).ToARGBcolorNum());
			//System.out.println( fxColor == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )//Left Side Bars
			{
				//System.out.println("x: " + x + " y: " + y + " fxColor: " + fxColor + " Color: " + rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex) );
				colorBarDistance = 0;
				for ( colorBarCheck = x; colorBarCheck >= 0; colorBarCheck--)
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackBlue(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( colorBarIndex == 17 )
					colorBarDistance = colorBarDistance + 8 * Dim.width / 1920;//For Cool Flippy Single Bar Color Changing Effect Square LengthOfColorBar
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, - LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );

				else 
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, - LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				//rainbowSoftColor = new RainbowSoftColor(  vibrantColors.Red );//TESTING ONLY
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getBlue() )//Right Side Bars
			{
				colorBarDistance = 0;
				for ( colorBarCheck = x; colorBarCheck <= Dim.width; colorBarCheck++)
				{
					if ( BackgroundBasisPR.getColor( colorBarCheck, y ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getOpacity() && 
							BackgroundBasisPR.getColor( colorBarCheck, y ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( colorBarCheck, y ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackRed(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( colorBarIndex == 17 )
					colorBarDistance = colorBarDistance + 8 * Dim.width / 1920;
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleRainbow( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Past blackRed");
		for ( colorBarIndex = 0; colorBarIndex <= maxIndexOfVerticalColorBars; colorBarIndex++)
		{
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )//Top Side Bars
			{
				colorBarDistance = 0;
				for ( colorBarCheck = y; colorBarCheck >= 0; colorBarCheck--)
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackGreen(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( LengthOfColorBar * ColorsFactor / RepeatFactor, - LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() && 
					fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )//Bottom Bars

			{
				colorBarDistance = 0;
				for ( colorBarCheck = y; colorBarCheck <= Dim.height; colorBarCheck++)
				{
					if ( BackgroundBasisPR.getColor( x, colorBarCheck ).getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getOpacity() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getRed() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getGreen() &&
							BackgroundBasisPR.getColor( x, colorBarCheck ).getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.blackPurple(colorBarIndex).getBlue() )
						colorBarDistance++;
					else
						break;
				}
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleRainbow( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, LengthOfColorBar * coreVariableStill / FullSliderRunThrough, LengthOfColorBar * coreTranisitionVariable / FullSliderRunThrough, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		//System.out.println("Got Pale");
		if ( fxColor.getOpacity() == vibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.OxylBlue.getBlue() )
		{
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 2 * RepeatFactor ), Math.PI * coreVariableStill / 2 - Math.PI / 2, Math.PI * coreTranisitionVariable / 2 - Math.PI / 2, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 2 * ColorsFactor ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelRods().getBlue() )
		{
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), Math.PI * coreVariableStill / 4 - Math.PI / 4, Math.PI * coreTranisitionVariable / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//CHECK FOR FIX FROM FwaFlagLogoSplash
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamonds().getBlue() )
		{
			if ( ( y - halfedDim.height ) < - halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10 ) 
					eightColorDiamondsIndexStill = 1;
				else if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 2;
				else if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )
					eightColorDiamondsIndexStill = 8;
			}
			else if ( ( y - halfedDim.height ) > halfedDim.height / 10)
			{
				if ( ( x - halfedDim.width ) < halfedDim.height / 10 && ( x - halfedDim.width ) > - halfedDim.height / 10)
					eightColorDiamondsIndexStill = 5;
				else
					if ( ( x - halfedDim.width ) - ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) - ( y - halfedDim.height ) > - halfedDim.height / 10 )	
						eightColorDiamondsIndexStill = 4;
					else
						if ( ( x - halfedDim.width ) + ( y - halfedDim.height ) < halfedDim.height / 10 && ( x - halfedDim.width ) + ( y - halfedDim.height ) > - halfedDim.height / 10 )
							eightColorDiamondsIndexStill = 6;
			}
			else
				if ( x - halfedDim.width > 0 )
					eightColorDiamondsIndexStill = 3;
				else
					if ( x - halfedDim.width < 0 )
						eightColorDiamondsIndexStill = 7;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexStill;
			eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8 * LocationOfStillMovement / FullSliderRunThrough;
			eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8 * LocationOfColorMovement / FullSliderRunThrough;
			while ( eightColorDiamondsIndexStill < 0 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill + 8;
			while ( eightColorDiamondsIndexStill > 8 )
				eightColorDiamondsIndexStill = eightColorDiamondsIndexStill - 8;
			while ( eightColorDiamondsIndexMoving < 0 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving + 8;
			while ( eightColorDiamondsIndexMoving > 8 )
				eightColorDiamondsIndexMoving = eightColorDiamondsIndexMoving - 8;
			eightColorDiamondsIndex = ( eightColorDiamondsIndexStill + eightColorDiamondsIndexMoving ) / 2;//CHECK ME MAY BE - Instead Of +
			while ( eightColorDiamondsIndex < 0 )
				eightColorDiamondsIndex = eightColorDiamondsIndex + 8;
			while ( eightColorDiamondsIndex >= 8 )
				eightColorDiamondsIndex = eightColorDiamondsIndex - 8;
			eightColorDiamondsIndex = (int)Math.floor( eightColorDiamondsIndex );
			if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
					BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
					BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
					BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )
			{
				rainbowSoftColor = new RainbowSoftColor( rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamondsArray( (int)( 7 - eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, magentaNum );
			}
			else
			{
				rainbowSoftColor = new RainbowSoftColor( rainbowSoftColorCodesSets.buddhismSchemeSet.wheelDiamondsArray( (int)( eightColorDiamondsIndex ) ) );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				//pw.setArgb( x, y, wheelDiamondsArrayNum[eightColorDiamondsIndex] );
			}
		}
		else if ( fxColor.getOpacity() == vibrantColors.NeonGreen.getOpacity() && 
				fxColor.getRed() == vibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == vibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == vibrantColors.NeonGreen.getBlue() )
		{
			if ( !displayType.AccessLaterReversed() )
				rainbowSoftColor = new RainbowSoftColor( vibrantColors.OxylBlue );
			else
				rainbowSoftColor = new RainbowSoftColor( vibrantColors.NeonGreen );
			/*rgb = rainbowSoftColor.ToRGB();
			argb = rainbowSoftColor.ToARGB();
			fxColor = rainbowSoftColor.ToFXColor();
			return fxColor;// */
			pattern2D.set( rainbowSoftColor.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelEnds().getBlue() )
		{
			//wheelTipsHit = true;
			if ( ( coreVariableStill + coreTranisitionVariable ) / 2 <= FullSliderRunThrough - 8.468 * SliderInterval )//CHECK ME FOR WORKING PROPERLY MAY NEED '-'
			{
				/*if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.AccessLaterReversed() )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Red );
				else
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Green );
				/*//rgb = rainbowSoftColor.ToRGB();
				//argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
			{
				/*if ( BrowserPRcolor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
						BrowserPRcolor.getRed() == vibrantColors.Magenta.getRed() && 
						BrowserPRcolor.getGreen() == vibrantColors.Magenta.getGreen() && 
						BrowserPRcolor.getBlue() == vibrantColors.Magenta.getBlue() )//shitBrownNum )// */
				if ( !displayType.AccessLaterReversed() )
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Green );
				else
					rainbowSoftColor = new RainbowSoftColor( vibrantColors.Red );
				/*rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelOuterRing().getBlue() )
		{
			//pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * coreVariableStill / FullSliderRunThrough, outerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			pattern2D.RainbowDiskGradated( outerRingThickness * ColorsFactor / RepeatFactor, outerRingThickness * coreVariableStill / FullSliderRunThrough, outerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, outerRingThickness, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getOpacity() &&
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelMiddleRing().getBlue() )
		{
			pattern2D.RainbowDiskGradated( middleRingThickness * ColorsFactor / RepeatFactor, middleRingThickness * coreVariableStill / FullSliderRunThrough, middleRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, middleRingThickness, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelInnerRing().getBlue() )
		{
			pattern2D.RainbowDiskGradated( innerRingThickness * ColorsFactor / RepeatFactor, innerRingThickness * coreVariableStill / FullSliderRunThrough, innerRingThickness * coreTranisitionVariable / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, innerRingThickness, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getOpacity() && 
				fxColor.getRed() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getRed() &&
				fxColor.getGreen() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getGreen() &&
				fxColor.getBlue() == rainbowSoftColorCodesSets.buddhismSchemeSet.wheelTips().getBlue() )
		{
			//pattern2D.RainbowClockGradated( ColorsFactor / RepeatFactor, - coreVariableStill, - coreTranisitionVariable, x - halfedDim.width, y - halfedDim.height, RepeatFactor, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			pattern2D.RainbowClockGradated( Math.PI * ColorsFactor / ( 8 * RepeatFactor ), - Math.PI * coreVariableStill / 4 - Math.PI / 4, - Math.PI * coreTranisitionVariable / 4 - Math.PI / 4, x - halfedDim.width, y - halfedDim.height, Math.PI * RepeatFactor / ( 8 * ColorsFactor ), displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//CHECK FOR FIX FROM FwaFlagLogoSplash
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

		}
		else
			if ( Math.pow(Math.pow(x - halfedDim.width, 2) + Math.pow( y  - halfedDim.height + 1, 2), 0.5) <= 47 * Dim.height / 1080 )
			{
				pattern2D.RainbowSpiralGradated(HalfSreenDiagionalLength * ColorsFactor / RepeatFactor, HalfSreenDiagionalLength * LocationOfStillMovement / FullSliderRunThrough, HalfSreenDiagionalLength * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height, HalfSreenDiagionalLength * RepeatFactor / ColorsFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				//pattern2D.SimpleRainbowReverse( LengthOfColorBar * ColorsFactor / RepeatFactor, coreVariableStill, coreTranisitionVariable, colorBarDistance, LengthOfColorBar * RepeatFactor / ColorsFactor, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		//else
		//	someTargetColorInTheCenterHit = false;
		//End Of Basis Image Switch System
		/*if (otherBrowserColorHit == true)
			return ( BrowserPRcolor );
		else
			if (makePixelTransparent == true)
				return ( fxColor.TRANSPARENT );*/
		//if ( aWheelDiamondHit == true )	
		//else if ( wheelTipsHit == true)
		//else
		//{
		someTargetColorHit = false;
		if ( displayType.AccessLaterReversed() != Reversed )
		{
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			/*
					// tempColor = fxColor;
					fxColor = colorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
							fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
							fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
							fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
							&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
							fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
							fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
							fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
							&& InvertBasisFromBackground )
						{
							fxColor = fxColor.invert();
							rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
							rgb = rainbowSoftColor.ToRGB();
							argb = rainbowSoftColor.ToARGB();
							fxColor = rainbowSoftColor.ToFXColor();
							return fxColor;
						}
						else
							if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPR.getColor( x, y ) , 
							{
								rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
								rgb = rainbowSoftColor.ToRGB();
								argb = rainbowSoftColor.ToARGB();
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}
							else
							{
								rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
								rgb = rainbowSoftColor.ToRGB();
								argb = rainbowSoftColor.ToARGB();
								fxColor = rainbowSoftColor.ToFXColor();
								return fxColor;
							}// */
			//rainbowSoftColor.set(fxColor);
			//rgb = rainbowSoftColor.ToRGB();
			//argb = rainbowSoftColor.ToARGB();
			//fxColor = rainbowSoftColor.ToFXColor();
			//return fxColor;
		}
		else if ( !someTargetColorHit )
		{
			/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
			rgb = rainbowSoftColor.ToRGB();
			argb = rainbowSoftColor.ToARGB();
			fxColor = rainbowSoftColor.ToFXColor();// */
			//return fxColor;// */
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		//}
		//System.out.println("Got Past Buddhism Basis Pixel If-Tree");
		///pattern2D.SimpleRainbow(ColorsFactor / SliderInterval, coreVariable, coreTranisitionVariable, LengthOfColorBar, RepeatFactor / SliderInterval);
		rainbowSoftColor.set( vibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color MagiElite(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double chrysanthemumRadius = 0.055555555555555 * Dim.height, chrysanthemumInnerRadius = 0.0083333333333333 * Dim.height, chrysanthemumYDisplacement = 0.0231481481481481 * Dim.height;//, chrysanthemumNumberOfPedals = 16;

		//boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed, false, true ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		if ( Math.pow( Math.pow( x - halfedDim.width, 2) + Math.pow( y  - halfedDim.height + chrysanthemumYDisplacement, 2), 0.5 ) <= chrysanthemumRadius )
		{//902 //1019
			someTargetColorInTheCenterHit = true;
			if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.black6().getBlue() )
			{
				pattern2D.RainbowDiskGradated(0.175979734764 * chrysanthemumRadius * ColorsFactor / RepeatFactor, 0.175979734764 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough,  x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 0.175979734764 * chrysanthemumRadius, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white1().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / 3., ( y - halfedDim.height + chrysanthemumYDisplacement ) / 3., 2 * chrysanthemumRadius, SpiralFactor, NumberOfSpirals, 2 * chrysanthemumRadius, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white2().getBlue() )
			{
				if ( !displayType.AccessLaterReversed() )
					pattern2D.SimpleRainbow( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleRainbowReverse( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white3().getBlue() )
			{
				pattern2D.RainbowCheapFractalGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 2 * chrysanthemumRadius, 2 * chrysanthemumRadius, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getOpacity() &&
					fxColor.getRed() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getRed() &&
					fxColor.getGreen() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getGreen() &&
					fxColor.getBlue() == rainbowSoftColorCodesSets.magiEliteSchemeSet.white4().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( ( 2 * chrysanthemumRadius ) * ColorsFactor / RepeatFactor, ( 2 * chrysanthemumRadius ) * LocationOfStillMovement / FullSliderRunThrough, ( 2 * chrysanthemumRadius ) * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 2 * chrysanthemumRadius, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
				if ( fxColor.getOpacity() == vibrantColors.SimpleBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.SimpleBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.SimpleBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.SimpleBlue.getBlue() )
				{//951 To 969
					pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else
				{
					someTargetColorInTheCenterHit = false;
					if ( fxColor.getOpacity() == vibrantColors.SkyBlue.getOpacity() &&
							fxColor.getRed() == vibrantColors.SkyBlue.getRed() &&
							fxColor.getGreen() == vibrantColors.SkyBlue.getGreen() &&
							fxColor.getBlue() == vibrantColors.SkyBlue.getBlue() )
					{
						pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					}
				}	
		}//if ( someTargetColorInTheCenterHit == false )
		else if ( fxColor.getOpacity() == vibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.OxylBlue.getBlue() )
		{
			pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, FullSliderRunThrough, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.SkyBlue.getOpacity() &&
				fxColor.getRed() == vibrantColors.SkyBlue.getRed() &&
				fxColor.getGreen() == vibrantColors.SkyBlue.getGreen() &&
				fxColor.getBlue() == vibrantColors.SkyBlue.getBlue() )
		{
			pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{
			pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width,  y - halfedDim.height, 0.1759797347638206 * halfedDim.height, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.NeonGreen.getOpacity() &&
				fxColor.getRed() == vibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == vibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == vibrantColors.NeonGreen.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.HalfGrey.getOpacity() &&
				fxColor.getRed() == vibrantColors.HalfGrey.getRed() &&
				fxColor.getGreen() == vibrantColors.HalfGrey.getGreen() &&
				fxColor.getBlue() == vibrantColors.HalfGrey.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.DarkPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.DarkPink.getRed() &&
				fxColor.getGreen() == vibrantColors.DarkPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.DarkPink.getBlue() )//neonGreenNum)
		{//pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.ToRGB()[0] * 65536 + (int)color.ToRGB()[1] * 256 + (int)color.ToRGB()[2]));//setArgb // */
			greenBlueGreenUsed = true;
			if ( !displayType.AccessLaterReversed() )
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolors, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), vibrantColorCombos.GreenBlueGreenFXcolorsReverse, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			//pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Pink.getOpacity() &&
				fxColor.getRed() == vibrantColors.Pink.getRed() &&
				fxColor.getGreen() == vibrantColors.Pink.getGreen() &&
				fxColor.getBlue() == vibrantColors.Pink.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )
				pattern2D.SimpleRainbow( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.AccessLaterReversed() != Reversed )
				//{
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			/*
											// tempColor = fxColor;
											fxColor = colorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
											if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
													fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
													fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
													fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
													&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
													fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
													fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
													fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
													&& InvertBasisFromBackground )
												{
													fxColor = fxColor.invert();
													rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
													rgb = rainbowSoftColor.ToRGB();
													argb = rainbowSoftColor.ToARGB();
													fxColor = rainbowSoftColor.ToFXColor();
													return fxColor;
												}
												else
													if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPR.getColor( x, y ) , 
													{
														rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
														rgb = rainbowSoftColor.ToRGB();
														argb = rainbowSoftColor.ToARGB();
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}
													else
													{
														rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
														rgb = rainbowSoftColor.ToRGB();
														argb = rainbowSoftColor.ToARGB();
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}// */
			//}
			else
			{
				/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				pattern2D.set( rainbowSoftColor.ToFXColor() );
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}//End Of Basis Image Switch System
		/*if ( greenBlueGreenUsed == false )
			if ( someTargetColorHit == true)//numberOfClockHandsForOrderOfMagi  //greenBlueGreenUsed
			{
				//	if ( coreVariable >= colorDisplacementVariable && coreVariable < (numberOfColorsInTheRainbow - 1) * colorIntervalVariable  + colorDisplacement)//For Purple Outside Ring
				//{//Retain Below If Else And Use New Variable Names And Equate Them With If Switch Below New Variable Name Comment Above // Make html Text Flip shitBrownNum Color!
				if ( BrowserPR.getColor( x, y ) == vibrantColors.Magenta.ToFXColor() )//shitBrownNum )//BrowserPR.getArgb(x, y) == magentaNum )// == magecoreVariable// == webBlackNum
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, purple, blue);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, blue, teal);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, teal, pink);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, pink, yellow);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, yellow, orange);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, orange, red);
				else//
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, red, orange);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, orange, yellow);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, yellow, green);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, green, teal);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, teal, blue);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, blue, purple);//
				pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.ToRGB()[0] * 65536 + (int)color.ToRGB()[1] * 256 + (int)color.ToRGB()[2]));//setArgb
			}
			else
				if ( BrowserPR.getColor( x, y ) != vibrantColors.Magenta )//shitBrownNum )
					pw.setArgb( x, y, BasisPR.getColor( x, y ) );
				else
					pw.setArgb( x, y, neonGreen);//shitBrownNum);//pr.getColor( x, y ) );// */

		//pattern2D.SimpleRainbow(ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor);
		//rainbowSoftColor.RainbowSoftColorRainbowFunction(Math.abs( ColorsFactor ), sliderValue);//1st Square In SimpleDiagnosticsClass.java
		rainbowSoftColor.set( vibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
	}


	public Color FwaLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double ringSize = 0.175979734764;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{
			pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )
				pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsWPinkCenter, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154
			pattern2D.RainbowRingGradated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - ( Dim.width / 2. + 11. ) * XScaleFactor) * Dim.height / 1788., ( y - Dim.height / 2. + ( 1. - 8. ) ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )//243 1679
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222. * XScaleFactor, 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.WhiteBlackFX, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )//400 1525
				pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else//10 23
				pattern2D.SimpleCustomColor( 1125. * XScaleFactor * ColorsFactor / RepeatFactor, - 1125. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1125. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 381. * XScaleFactor, 1125. * XScaleFactor, BrightnessMultiplyer, Gradations, vibrantColorCombos.WhiteBlackFX, OpacityBefore, OpacityAfter, Adjusted );
			transparencySlider.TransparencySliderFunction(1., .5, pattern2D.ToFXColor(), vibrantColors.Magenta );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.AccessLaterReversed() != Reversed )
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}

		rainbowSoftColor.set( vibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color FwaFlagLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double HalfSreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		double ringSize = 0.175979734764;//50 833 = 783  47 1835 = 1788

		Dimension halfedDim = new Dimension();
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		//rainbowSoftColor = new RainbowSoftColor( DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );// reversalOfBackgroundEffectsSlave ) );
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed, false, true ) );// reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height ) * ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  ( x - Dim.width / 2. ) * Dim.height / 1788., ( y - Dim.height / 2. + 1. ) * Dim.height / 783., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{//RainbowStrobeGradated
			pattern2D.RainbowStrobeVaryated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )
				pattern2D.SimpleRainbow( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( 1880. * XScaleFactor * ColorsFactor / RepeatFactor, - 1880. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1880. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154//RainbowRingGradated
			pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2. * ColorsFactor / RepeatFactor, ringSize * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, ringSize * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 29.22094508301405, ( x - Dim.width / 2. + 11.) * Dim.height / 3576., ( y - Dim.height / 2. + 1. - 8. ) * Dim.height / 1566., ringSize * Dim.height / 2., 0, 99999/*(1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2. */, displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )//243 1679
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.BlackWhiteFX,  OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleCustomColor( 1436. * XScaleFactor  * ColorsFactor / RepeatFactor, - 1436. * XScaleFactor  * LocationOfStillMovement / FullSliderRunThrough, - 1436. * XScaleFactor  * LocationOfColorMovement / FullSliderRunThrough, x - 222., 1436. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.OxylBlueRedFX, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.AccessLaterReversed() )//400 1525 //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., false
				pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., vibrantColorCombos.RainbowFXcolors, displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX
				pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( LocationOfStillMovement / FullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / FullSliderRunThrough ) / 2., x - halfedDim.width, y - halfedDim.height, Math.PI / 2., vibrantColorCombos.RainbowFXcolorsReverse /*vibrantColorCombos.HalfGrayToDarkGreyFX*/, !displayType.AccessLaterReversed() );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			if ( !displayType.AccessLaterReversed() )
				transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			else
				transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
			pattern2D.set( transparencySlider.ToFXColor() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );

			/*
					//System.out.println( "After x: " + x +  " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					}
					pattern2D.set( tempColorFader.fxColor );
					rainbowSoftColor.set( pattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		}
		else if ( fxColor.getOpacity() == vibrantColors.NonHotPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.NonHotPink.getRed() &&
				fxColor.getGreen() == vibrantColors.NonHotPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.NonHotPink.getBlue() )
		{
			if ( !displayType.AccessLaterReversed() )
				pattern2D.SimpleRainbow( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.SimpleRainbowReverse( Dim.width * ColorsFactor / RepeatFactor, - Dim.width * LocationOfStillMovement / FullSliderRunThrough, - Dim.width * LocationOfColorMovement / FullSliderRunThrough, x, Dim.width );//, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			//return vibrantColors.NeonGreen.ToFXColor();
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.AccessLaterReversed() != Reversed )
				return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}

		rainbowSoftColor.set( vibrantColors.Maroon );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();// */
		return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
	}


	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed(), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.ToRGB();
		argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	/*public Color DisplayTypeDeterminer ( String TypeOfDisplay, Color BasisColor, Color BrowserColor, boolean Reversed )//Maybe Make Separate Class File After Finishing DisplayTypeDeterminer But Use This Internal One For Now //[]Make Seperate RainbowSoft2D Class For Getting With Individual FXColors Input The Following; ?Custom (Color)? Or Naitive Color (White And Transparent) No Color Too Similar (Black And Transparent) Too Similar Choice Color And Choice Difference Also With Native FullScreen Functionality For "FullDisplay" , "FullDisplayNoTextShownAtAll" , "FullDisplayBasisText" , "FullDisplayBasisBackround" , "FullDisplayBasisOnly" , "NoDisplay" , "TextDisplayOnly" , "BackgroundDisplayOnly" , "BasisTextDisplayOnly" , "BasisBackroundDisplayOnly"
	{//"FullDisplay", "SimplyBrowserShowing", "FullDisplayNoTextShownAtAll", "FullDisplayBasisText", "FullDisplayBasisBackround", "FullDisplayBasisOnly", "BasisBackroundDisplayOnly", "TextDisplayAndBrowser", "TextDisplayOnly", "BasisTextDisplayOnly", "BasisTextDisplayOnWhite", "BasisTextDisplayOnBlack", "NoDisplay", "BlackScreen"
		/* //if ( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) ||
				( BrowserColor.getOpacity() > 0. &&
				!(BrowserColor.getRed() == vibrantColors.getRed() && 
				BrowserColor.getGreen() == vibrantColors.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.getBlue() ) ) )
			browserHit = true;// #/
		if ( TypeOfDisplay == "SimplyBrowserShowing" )
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "FullDisplay" )
		{
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false;
				laterReversed = !Reversed;
				return BasisColor;
			}
			else if ( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
					BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
					BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() )
			{
				returnImmediately = true;
				return vibrantColors.OxylBlue0FF;
			}
			else if ( BrowserColor.getOpacity() > 0. &&
					!(BrowserColor.getRed() == vibrantColors.getRed() && 
					BrowserColor.getGreen() == vibrantColors.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.getBlue() ) )
			{
				returnImmediately = true;
				return BrowserColor;
			}
			else {
				returnImmediately = false; laterReversed = Reversed;
				return BasisColor;
			}
		}
		else if ( ( TypeOfDisplay ==  "FullDisplayBasisBackround" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "TextDisplayOnly"  || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" ) && ( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) )  )
		{
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false; laterReversed = !Reversed;
				return BasisColor;
			}
			else
			{
				returnImmediately = true; return vibrantColors.OxylBlue0FF;
			}
		}
		else if ( TypeOfDisplay == "FullDisplayNoTextShownAtAll" )
		{
			returnImmediately = false; laterReversed = Reversed;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "FullDisplayBasisBackround" )
		{
			returnImmediately = true;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" && BrowserColor.getOpacity() > 0.// && 
				//BrowserColor.getRed() != vibrantColors.getRed() && 
				//BrowserColor.getGreen() != vibrantColors.getGreen() && 
				//BrowserColor.getBlue() != vibrantColors.getBlue() )
				)
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "BlackScreen" )
		{
			returnImmediately = true;
			if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				return vibrantColors;
			else
				return vibrantColors.Black;
		}
		else if ( TypeOfDisplay == "NoDisplay" )
		{
			returnImmediately = true;
			return Color.TRANSPARENT;
		}
		else if ( ( TypeOfDisplay == "FullDisplayBasisText" || TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisTextDisplayOnly" || TypeOfDisplay == "BasisTextDisplayOnWhite" || TypeOfDisplay == "BasisTextDisplayOnBlack" ) && 
				( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() ) ||
						( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) ) )
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{
				returnImmediately = true;
				return vibrantColors.Magenta;
			}
			else
			{
				returnImmediately = true;
				return vibrantColors.OxylBlue0FF;
			}
		else if ( TypeOfDisplay == "FullDisplayBasisText" )
		{ returnImmediately = false;
		laterReversed = Reversed;
		return BasisColor; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnBlack" )
		{ returnImmediately = true;
		return vibrantColors.Black; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnWhite" )
		{ returnImmediately = true;
		return vibrantColors; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnly" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisBackroundDisplayOnly" )
		{ returnImmediately = true;
		return BasisColor; }
		returnImmediately = false;
		return vibrantColors.ShitBrown;
	}// */

	/*public Color DisplayTypeDeterminer ( String TypeOfDisplay, Color BasisColor, Color BackgroundBasisColor, Color BrowserColor, boolean Reversed /*boolean ReversalOfBackgroundEffectsMaster,#/ )//Maybe Make Separate Class File After Finishing DisplayTypeDeterminer But Use This Internal One For Now //[]Make Seperate RainbowSoft2D Class For Getting With Individual FXColors Input The Following; ?Custom (Color)? Or Naitive Color (White And Transparent) No Color Too Similar (Black And Transparent) Too Similar Choice Color And Choice Difference Also With Native FullScreen Functionality For "FullDisplay" , "FullDisplayNoTextShownAtAll" , "FullDisplayBasisText" , "FullDisplayBasisBackround" , "FullDisplayBasisOnly" , "NoDisplay" , "TextDisplayOnly" , "BackgroundDisplayOnly" , "BasisTextDisplayOnly" , "BasisBackroundDisplayOnly"
	{//"FullDisplay", "BackgroundToBasisFullDisplay", "FullDisplayNoTextShownAtAll", "FullDisplayBasisText", "FullDisplayBackgroundToBasisNoTextShownAtAll", "BackgroundToBasisFullDisplayBasisText", "FullDisplayBasisBackround", "FullDisplayBackroundToBasis", "FullDisplayBasisOnly", "FullDisplayBackroundToBasisOnly", "BasisBackroundDisplayOnly", "BackroundToBasisOnly", "TextDisplayOnly", "BasisTextDisplayOnly", "BasisTextDisplayOnWhite", "BasisTextDisplayOnBlack", "NoDisplay", "BlackScreen"
		/*if ( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() ) ||
				( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
				BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) ||
				( BrowserColor.getOpacity() > 0. &&
				!(BrowserColor.getRed() == vibrantColors.getRed() && 
				BrowserColor.getGreen() == vibrantColors.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.getBlue() ) ) )
			browserHit = true;// #/
		if ( TypeOfDisplay == "SimplyBrowserShowing" )
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "FullDisplay" || TypeOfDisplay == "BackgroundToBasisFullDisplay" )
		{
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
					BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
					BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false; laterReversed = !Reversed; //reversalOfBackgroundEffectsSlave = false;
				return BackgroundBasisColor;
			}
			else if ( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
					BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
					BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() )
			{ returnImmediately = true; return vibrantColors.OxylBlue0FF; }
			else if ( BrowserColor.getOpacity() > 0. &&
					!(BrowserColor.getRed() == vibrantColors.getRed() && 
					BrowserColor.getGreen() == vibrantColors.getGreen() && 
					BrowserColor.getBlue() == vibrantColors.getBlue() ) )
			{ returnImmediately = true; return BrowserColor; }
			else
			{
				laterReversed = Reversed; returnImmediately = false;
				if ( TypeOfDisplay == "FullDisplay" )
					return BasisColor;
				else
				{
					//reversalOfBackgroundEffectsSlave = false;
					return BackgroundBasisColor;
				}
			}
		}
		else if ( TypeOfDisplay == "FullDisplayNoTextShownAtAll" )
		{
			returnImmediately = false;
			//reversalOfBackgroundEffectsSlave = false;
			laterReversed = Reversed;
			return BasisColor;
		}
		else if ( TypeOfDisplay == "FullDisplayBackgroundToBasisNoTextShownAtAll" )
		{
			returnImmediately = false;
			laterReversed = Reversed;
			return BackgroundBasisColor;
		}
		else if ( ( TypeOfDisplay == "FullDisplayBasisBackround" || TypeOfDisplay == "FullDisplayBackroundToBasis" || TypeOfDisplay == "FullDisplayBackroundToBasisOnly" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				&& ( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
						|| ( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) )  )
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{
				returnImmediately = false;
				laterReversed = !Reversed;
				if ( TypeOfDisplay == "FullDisplayBackroundToBasis" )// || ReversalOfBackgroundEffectsMaster )
					return BackgroundBasisColor;
				else
				{	//reversalOfBackgroundEffectsSlave = false;
					return BasisColor; }
			}
			else
			{ returnImmediately = true; return vibrantColors.OxylBlue0FF; }
		else if ( TypeOfDisplay == "FullDisplayBasisBackround" )
		{ 
			returnImmediately = true;
			return BasisColor; }
		else if ( TypeOfDisplay == "FullDisplayBackroundToBasisOnly" )
		{
			returnImmediately = true;
			return BackgroundBasisColor; }
		else if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" && BrowserColor.getOpacity() > 0.// && 
				//BrowserColor.getRed() != vibrantColors.getRed() && 
				//BrowserColor.getGreen() != vibrantColors.getGreen() && 
				//BrowserColor.getBlue() != vibrantColors.getBlue() ) 
				)
		{
			returnImmediately = true;
			return BrowserColor;
		}
		else if ( TypeOfDisplay == "TextDisplayOnly" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" || TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayAndBrowserBlackShowingBackground" || TypeOfDisplay == "BlackScreen" )
		{
			returnImmediately = true;
			if ( TypeOfDisplay == "TextDisplayAndBrowser" || TypeOfDisplay == "TextDisplayOnlyWhiteShowingBackground" )
				return vibrantColors;
			else
				return vibrantColors.Black;
		}
		else if ( TypeOfDisplay == "NoDisplay" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( ( TypeOfDisplay == "FullDisplayBasisText" || TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BackgroundToBasisFullDisplayBasisText" || TypeOfDisplay == "BasisTextDisplayOnly" || TypeOfDisplay == "BasisTextDisplayOnWhite" || TypeOfDisplay == "BasisTextDisplayOnBlack" ) && 
				( ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
				BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
				BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
				BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() ) 
						|| ( BrowserColor.getOpacity() == vibrantColors.OxylBlue0FF.getOpacity() && 
						BrowserColor.getRed() == vibrantColors.OxylBlue0FF.getRed() && 
						BrowserColor.getGreen() == vibrantColors.OxylBlue0FF.getGreen() && 
						BrowserColor.getBlue() == vibrantColors.OxylBlue0FF.getBlue() ) ) )
			if ( BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
			BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
			BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
			BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
			{ returnImmediately = true; return vibrantColors.Magenta; }
			else
			{ returnImmediately = true; return vibrantColors.OxylBlue0FF; }
		else if ( TypeOfDisplay == "FullDisplayBasisText" )
		{ returnImmediately = false;
		//reversalOfBackgroundEffectsSlave = false;
		laterReversed = Reversed;
		return BasisColor; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnBlack" )
		{ returnImmediately = true;
		return vibrantColors.Black; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnWhite" )
		{ returnImmediately = true;
		return vibrantColors; }
		else if ( TypeOfDisplay == "BasisTextDisplayOnly" )
		{ returnImmediately = true;
		return Color.TRANSPARENT; }
		else if ( TypeOfDisplay == "FullDisplayBasisOnly" || TypeOfDisplay == "BasisBackroundDisplayOnly" )
		{ returnImmediately = true;
		return BasisColor; }
		else if ( TypeOfDisplay == "BackgroundToBasisFullDisplayBasisText" || TypeOfDisplay == "BackroundToBasisOnly" )
		{ returnImmediately = true;
		return BackgroundBasisColor; }
		returnImmediately = false;
		return vibrantColors.ShitBrown;
	}// */

	/*public Color colorDecide.NextColorDecide ( Color BasisColor, Color BackgroundBasisColor, Color PatternColor, Color BrowserColor, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean Reversed, boolean NextStepColorTooSimilarEffect, boolean InvertBasisFromBackground )
	{
		if ( someTargetColorHit )
		{
			if ( BasisColor.getOpacity() == BackgroundBasisColor.getOpacity() && 
					BasisColor.getRed() == BackgroundBasisColor.getRed() && 
					BasisColor.getGreen() == BackgroundBasisColor.getGreen() && 
					BasisColor.getBlue() == BackgroundBasisColor.getBlue() )
			{
				/*if ( browserHit && BrowserColor.getOpacity() == vibrantColors.Magenta.getOpacity() && 
						BrowserColor.getRed() == vibrantColors.Magenta.getRed() && 
						BrowserColor.getGreen() == vibrantColors.Magenta.getGreen() && 
						BrowserColor.getBlue() == vibrantColors.Magenta.getBlue() )
				{
					if ( !NextStepColorTooSimilarEffect )//!NextStepColorTooSimilarEffect For ShortCutting To Show Full Basis Below & Putting Browser Picture Over Anything And Stuff Like That Like An Emergency Auxiliary To Show Pixels. reversalOfBackgroundEffectsSlave Does Not Work When !NextStepColorTooSimilarEffect,
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.ToRGB();
						argb = rainbowSoftColor.ToARGB();
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return PatternColor;
					}
					else if ( !rainbowSoftColor.ColorTooSimilarFunction( BrowserColor, PatternColor, ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.ToRGB();
						argoftColor.ToARGB();
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return PatternColor;
					}
					else if( InvertBasisFromBackground  )//&& reversalOfBackgroundEffectsSlave )
					{
						rainbowSoftColor = new RainbowSoftColor( PatternColor );
						rgb = rainbowSoftColor.ToRGB();
						argb = rainbowSoftColor.ToARGB();
						fxColor = rainbowSoftColor.ToFXColor();
						fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through colorDecide.NextColorDecide Jump Past This then And Goto Next else
						rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
						rgb = rainbowSoftColor.ToRGB();
						argb = rainbowSoftColor.ToARGB();
						fxColor = rainbowSoftColor.ToFXColor();// [#]/
						return fxColor;
					}
					else
					{
						rainbowSoftColor.RainbowSoftColorFunction(2, 1, BrowserColor, PatternColor );
						if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
						{
							rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
							rgb = rainbowSoftColor.ToRGB();
							argb = rainbowSoftColor.ToARGB();
							fxColor = rainbowSoftColor.ToFXColor();// [#]/
							return InitialColorContrastingChoice;
						}
						else
						{
							rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
							rgb = rainbowSoftColor.ToRGB();
							argb = rainbowSoftColor.ToARGB();
							fxColor = rainbowSoftColor.ToFXColor();// [#]/
							return ColorTooSimilarReplacementColor;
						}
					}
				}
				else// #/
				//{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// [#]/
				return PatternColor;
				//}
			}
			else if ( laterReversed == Reversed )
			{
				rainbowSoftColor = new RainbowSoftColor( BasisColor );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return BasisColor;
			}
			else if ( !NextStepColorTooSimilarEffect )//!NextStepColorTooSimilarEffect For ShortCutting To Show Full Basis Below & Putting Browser Picture Over Anything And Stuff Like That Like An Emergency Auxiliary To Show Pixels. reversalOfBackgroundEffectsSlave Does Not Work When !NextStepColorTooSimilarEffect,
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return PatternColor;
			}
			else if ( !rainbowSoftColor.ColorTooSimilarFunction( BasisColor, PatternColor, ColorDifference ) )//&& reversalOfBackgroundEffectsSlave )
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return PatternColor;
			}
			else if( InvertBasisFromBackground  )//&& reversalOfBackgroundEffectsSlave )
			{
				rainbowSoftColor = new RainbowSoftColor( PatternColor );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();
				fxColor = fxColor.invert();//32 Bit Support Necessary To Maintain Cubical Cellular Modularity To Get This Reprocessed Through colorDecide.NextColorDecide Jump Past This then And Goto Next else
				rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
				rgb = rainbowSoftColor.ToRGB();
				argb = rainbowSoftColor.ToARGB();
				fxColor = rainbowSoftColor.ToFXColor();// #/
				return fxColor;
			}
			else
			{
				rainbowSoftColor.RainbowSoftColorFunction(2, 1, BasisColor, PatternColor );
				if ( !colorTooSimilarFunction.ColorTooSimilarFunction( InitialColorContrastingChoice, rainbowSoftColor.ToFXColor(), ColorDifference ) )
				{
					rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
					rgb = rainbowSoftColor.ToRGB();
					argb = rainbowSoftColor.ToARGB();
					fxColor = rainbowSoftColor.ToFXColor();// #/
					return InitialColorContrastingChoice;
				}
				else
				{
					rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
					rgb = rainbowSoftColor.ToRGB();
					argb = rainbowSoftColor.ToARGB();
					fxColor = rainbowSoftColor.ToFXColor();// #/
					return ColorTooSimilarReplacementColor;
				}
			}
		}
		else
		{
			rainbowSoftColor = new RainbowSoftColor( BackgroundBasisColor );
			rgb = rainbowSoftColor.ToRGB();
			argb = rainbowSoftColor.ToARGB();
			fxColor = rainbowSoftColor.ToFXColor();// #/
			return BackgroundBasisColor;
		}
		//rainbowSoftColor.set( vibrantColors.Maroon );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		//fxColor = rainbowSoftColor.ToFXColor();
		//return fxColor;// #/
	}// */

	public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In Reversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}
	public double ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )//31st Square DiagnosticsClass.java
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(ARGB[3])) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}





package rainbowPackage;

import java.awt.Dimension;

//import javafx.scene.paint.Paint.*;
import javafx.scene.paint.Color;

public class RainbowPattern2D //For All Rainbow Patterns To Be Displayed With RainbowSoftColor.java Functions Determining Rainbow/Custom Colors Variation
{//Initializers
	VibrantColors vibrantColors = new VibrantColors();
	VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	public double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public Color fxColor;
	//public Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	public double colorBeingChecked = 0, opacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, numberOfStillTransitions = 0, numberOfColorTransitions = 0;
	public RainbowSoftColor color = new RainbowSoftColor( new double[]{0,0,0,1} );
	public ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	public TrueArcTan trueArcTan = new TrueArcTan();
	
	public RainbowPattern2D( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		color = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public RainbowPattern2D( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		color = new RainbowSoftColor( ARGB );
		fxColor = color.ToFXColor();
	}
	public RainbowPattern2D()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		color = new RainbowSoftColor( rgb );
		fxColor = color.ToFXColor();
	}
	public Color ToFXColor ()//Returns Color In JavaFX
	{
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color ToFXColor ( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length <= 3 )
			argb[3] = 1;
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		color = new RainbowSoftColor( argb );
		fxColor = color.ToFXColor();
		return fxColor;
	}

	public Color RainbowSoftColorFunction(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, RainbowSoftColor ColorBefore, RainbowSoftColor ColorAfter)//1st Square In Diagnostics Which Will Stream Sliding Then Movement Then Double Sliding Then The Same For Rainbow Segments Then Full Rainbows Then Rainbow Ribbons And A Seperate Video For Oppisite Double Sliding With vibrantColorCombos.ImperialColors For //To Use This To Access ColorSlider{Location/ColorsLength How Much From ColorBefore To ColorAfter} Though This Function //Top Bar At Top In DiagnosticsClass.java
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter( ColorAfter.ToRGB()[z] + ColorBefore.ToRGB()[z] - ColorBefore.ToRGB()[z] * sliderValue/ColorsLength - ColorAfter.ToRGB()[z] * ( ColorsLength - sliderValue )/ColorsLength );
			argb[z] = ColorValueFitter( rgb[z] );
		}
		argb[3] = 1;
		color = new RainbowSoftColor( rgb );
		fxColor = color.ToFXColor();
		return fxColor;
	}

	public Color SimpleRainbow(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength)//2nd Square Make Simple Rainbow In The Same Fashion As Above, ColorsLength Length Of Rainbow Respective To Location //Choose ColorsLength To Be Same As RepeatLength For Best Rainbow //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowFunction(Math.abs( ColorsLength ), sliderValue);//1st Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbow(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations)//3rd Square Same As Above True And Not Mentioned Anymore BrightnessMultiplier From 0{Black}-1{Same-Color} How Dim, 1-255 How Bright To White. Graduations How Many Different Unadjusted Bars For Each Color //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//2nd Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbow(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, boolean Adjusted )//4th Square Now Adjusted To Look Better At The Cost Of Speed Gradations Choice //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftColorRainbowFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//3rd Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftColorRainbowFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//4th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbowReverse(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength)//5th Square Reverse Color Directions As Rainbow With Green Flipped With Hot Pink //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowFunctionReverse(Math.abs( ColorsLength ), sliderValue);//5th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbowReverse(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations )//6th Square Same As Above But Reversed //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//6th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbowReverse(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, boolean Adjusted )//7th Square Same Adjustment //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftColorRainbowFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//7th Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftColorRainbowFunctionReverseUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations);//8th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, Color[] FXcolorArray)//9th Square For Colors In JavaFX //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, FXcolorArray);//10th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double[][] RGBcolorArray)//8th Square Put Any Amount Of Custom Colors In RGB Format Not ARGB As Opacity Variabled Funtions And Transparency Slider Can Be Implimented Seperatly For That //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, RGBcolorArray);//9th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, Color[] FXcolorArray, boolean Reversed )//9th Square For Colors In JavaFX //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, FXcolorArray); //
		//color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, FXcolorArray);//1?th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double[][] ARGBcolorArray )//10th Square Things Should Follow For The Rest Of The Simple Linear Rainbows Until Opacity //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftCustomColorFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, ARGBcolorArray);//11th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double[][] ARGBcolorArray, boolean Adjusted )//11th Square 
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftCustomColorFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, ARGBcolorArray);//12th Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftCustomColorFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, ARGBcolorArray);//13th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, Color[] FXcolorArray )//12th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		//System.out.println( "2D FXcolors Brightnesses" + FXcolorSet[0][0].getBrightness() + FXcolorArray[1].getBrightness() + FXcolorArray[2].getBrightness() + FXcolorArray[3].getBrightness() + FXcolorArray[4].getBrightness() + FXcolorArray[5].getBrightness() );
		color.RainbowSoftCustomColorFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray);//14th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, Color[] FXcolorArray, boolean Adjusted )//13th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		//System.out.println( "2D FXcolors Brightnesses" + FXcolorArray[0].getBrightness() + FXcolorArray[1].getBrightness() + FXcolorArray[2].getBrightness() + FXcolorArray[3].getBrightness() + FXcolorArray[4].getBrightness() + FXcolorArray[5].getBrightness() );
		if ( Adjusted )
			color.RainbowSoftCustomColorFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray);//15th Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftCustomColorFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray);//16th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbow(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter )//14th Square Same As Above Except Opacity Goes From OpacityBefore To OpacityAfter From Red To Purple And For Reverse Purple To Pink To Red With Rainbow Colors In-between
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//17th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbow(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//15th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//18th Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//19th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbowReverse(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter )//16th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//20th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleRainbowReverse(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//17th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//21st Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);//22nd Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, double[][] RGBcolorArray, double OpacityBefore, double OpacityAfter, boolean Adjusted )//18th Square
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, RGBcolorArray, OpacityBefore, OpacityAfter);//23rd Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, RGBcolorArray, OpacityBefore, OpacityAfter);//24th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, Color[] FXcolorArray, double OpacityBefore, double OpacityAfter, boolean Adjusted )//19th Square Same Follows From Above To Here But Not The Next Function Which Is Not A Linear Rainbow //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Adjusted )
			color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);//25th Square In SimpleDiagnosticsClass.java
		else
			color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);//26th Square In SimpleDiagnosticsClass.java
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color SimpleCustomColor(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double MarkerInLength, double RepeatLength, double BrightnessMultiplyer, int Gradations, Color[] FXcolorArray, double OpacityBefore, double OpacityAfter, boolean Adjusted, boolean Reversed )//19th Square Same Follows From Above To Here But Not The Next Function Which Is Not A Linear Rainbow //
	{
		if ( LocationOfStillMovement == 0 )
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, MarkerInLength, LocationOfColorMovement, RepeatLength );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, MarkerInLength, LocationOfStillMovement, RepeatLength );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, MarkerInLength, LocationOfStillMovement, LocationOfColorMovement, RepeatLength );
		if ( Reversed )
			if ( Adjusted )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);//2?th Square In SimpleDiagnosticsClass.java
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);//2?th Square In SimpleDiagnosticsClass.java
		else
			if ( Adjusted )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);//25th Square In SimpleDiagnosticsClass.java
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);//26th Square In SimpleDiagnosticsClass.java
		
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDiskVaryated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, boolean Reversed)//20th Square Choose ColorsLength To Be Same As RepeatRadius Of Rainbow Disk Line With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable
	{//With NonPrePost Color Sliders; Also Looks Cool When Into RainbowSoftColorRainbowFunction -> ColorsLength / 6 //Also Looks Cool When RepeatRadius In Here Is Halfed //Also Looks Cool When While < & > Is Swapped //Below Add - Location; and No sliderValue + ColorsLength For Cool Defects
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse( ColorsLength, sliderValue ); //
		else
			color.RainbowSoftColorRainbowFunction( ColorsLength, sliderValue ); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDiskGradated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//21st Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDiskVaryated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, Color[] FXcolorArray, boolean Reversed)//22nd Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDiskGradated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//23rd Square Same As Above Super Function For Any Custom Colors Disks Which Is Last Rainbow Disk Function
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}

	public Color RainbowRingVaryated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, double InnerCutOffRadius, double OuterCutOffRadius, boolean Reversed)//24th Square Choose ColorsLength To Be Same As RepeatRadius Of Rainbow Disk Line With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable
	{//With NonPrePost Color Sliders; Also Looks Cool When Into RainbowSoftColorRainbowFunction -> ColorsLength / 6 //Also Looks Cool When RepeatRadius In Here Is Halfed //Also Looks Cool When While < & > Is Swapped //Below Add - Location; and No sliderValue + ColorsLength For Cool Defects
		if ( Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) < InnerCutOffRadius || Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) > OuterCutOffRadius )
		{
			color.set( vibrantColors.Clear );
			rgb = color.ToRGB();
			argb = color.ToARGB();
			fxColor = color.ToFXColor();
			return fxColor;
		}
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse( ColorsLength, sliderValue ); //
		else
			color.RainbowSoftColorRainbowFunction( ColorsLength, sliderValue ); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowRingGradated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, double InnerCutOffRadius, double OuterCutOffRadius, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//25th Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{
		if ( Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) < InnerCutOffRadius || Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) > OuterCutOffRadius )
		{
			color.set( vibrantColors.Clear );;
			rgb = color.ToRGB();
			argb = color.ToARGB();
			fxColor = color.ToFXColor();
			return fxColor;
		}
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowRingVaryated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, double InnerCutOffRadius, double OuterCutOffRadius, Color[] FXcolorArray, boolean Reversed)//26th Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		if ( Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) < InnerCutOffRadius || Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) > OuterCutOffRadius )
		{
			color.set( vibrantColors.Clear );;
			rgb = color.ToRGB();
			argb = color.ToARGB();
			fxColor = color.ToFXColor();
			return fxColor;
		}
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsLength ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowRingGradated(double ColorsLength, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatRadius, double InnerCutOffRadius, double OuterCutOffRadius, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//27th Square Same As Above Super Function For Any Custom Colors Disks Which Is Last Rainbow Disk Function
	{
		if ( Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) < InnerCutOffRadius || Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) > OuterCutOffRadius )
		{
			color.set( vibrantColors.Clear );;
			rgb = color.ToRGB();
			argb = color.ToARGB();
			fxColor = color.ToFXColor();
			return fxColor;
		}
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsLength, originalFormulaValue, LocationOfColorMovement, RepeatRadius );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsLength, originalFormulaValue, LocationOfStillMovement, RepeatRadius );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsLength, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatRadius );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsLength ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}

	public Color RainbowClockVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, boolean Reversed)//28th Square NumberOfClock Hands Will Provide A Disjointed Series Of Rainbow Triangles, ClockHandDisplacement = Math.PI For Normal Clock//Choose ColorsFactor To Be Same As RepeatFactor Of Rainbow Clock With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable //, double OneLessThanTheNumberOfClockHands, double ClockHandDisplacement
	{
		originalFormulaValue = trueArcTan.ArcTan(x, y) + Math.PI;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse(Math.abs( ColorsFactor ), sliderValue); //
		else
			color.RainbowSoftColorRainbowFunction(Math.abs( ColorsFactor ), sliderValue); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowClockGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//29th Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{//(NotNeeded)Longness Definitely Needed sliderValue = SliderFormulateJustMovingColors( ColorsFactor, ( 180 - ClockHandDisplacement * ( Math.PI - 3.14159265358979 ) / ( Math.PI - 3.1415926535897 ) * ( Math.PI - 3.141592653589 ) / ( Math.PI - 3.14159265358 ) * ( Math.PI - 3.1415926535 ) / ( Math.PI - 3.141592653 ) * ( Math.PI - 3.14159265 ) / ( Math.PI - 3.1415926 ) * ( Math.PI - 3.141592 ) / ( Math.PI - 3.14159 ) * ( Math.PI - 3.1415 ) / ( Math.PI - 3.141 ) * ( Math.PI - 3.14 ) / ( Math.PI - 3.1 ) * ( Math.PI - 3 ) ) * ( Math.atan2(x, y) + ClockHandDisplacement ) / OneLessThanTheNumberOfClockHands, Location, RepeatFactor );//Math.PI = 3.141592653589793 Points And Segments May Be A Key To Unraveling Pi In This Situation
		//(NotNeeded)sliderValue = SliderFormulateJustMovingColors( ColorsFactor, ( 180 - 10/* - ClockHandDisplacement * ( Math.PI - 3.14159265358979 ) / ( Math.PI - 3.1415926535897 ) * ( Math.PI - 3.141592653589 ) / ( Math.PI - 3.14159265358 ) * ( Math.PI - 3.1415926535 ) / ( Math.PI - 3.141592653 ) * ( Math.PI - 3.14159265 ) / ( Math.PI - 3.1415926 ) * ( Math.PI - 3.141592 ) / ( Math.PI - 3.14159 ) * ( Math.PI - 3.1415 ) / ( Math.PI - 3.141 ) * ( Math.PI - 3.14 ) / ( Math.PI - 3.1 ) * ( Math.PI - 3 ) */ ) * ( Math.atan2(x, y) + ClockHandDisplacement ) / OneLessThanTheNumberOfClockHands, Location, RepeatFactor );//Math.PI = 3.141592653589793 Points And Segments May Be A Key To Unraveling Pi In This Situation
		originalFormulaValue = trueArcTan.ArcTan(x, y) + Math.PI;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowClockVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Color[] FXcolorArray, boolean Reversed )//30th Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		originalFormulaValue = trueArcTan.ArcTan(x, y) + Math.PI;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowClockGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//31st Square Same As Above Super Function For Any Custom Colors Clocks Which Is Last Rainbow Disk Function
	{
		originalFormulaValue = trueArcTan.ArcTan(x, y) + Math.PI;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}

	//Search For Or Put In Accessing Class: //pattern2D.RainbowSpiralVaryated( fullAngle, xSlider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., fullAngle, 24.6, 1, halfSreenDiagionalLength, false );//For Proper Rainbow Hypnosis Spiral
	//pattern2D.RainbowSpiralVaryated( fullAngle, xSlider, ( x - HalfedDim.width ) / 10., ( y - HalfedDim.height ) / 10., fullAngle, 144, 10, halfSreenDiagionalLength, false );//For Proper Rainbow Rainbow Shrunken
	//pattern2D.RainbowSpiralVaryated( fullAngle * 6, xSlider * 6, ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., fullAngle, 88.8, 4, halfSreenDiagionalLength, false );//For Segment View
	//pattern2D.RainbowSpiralVaryated( fullAngle, xSlider * 3, ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., fullAngle * 3, 66.6, 3, halfSreenDiagionalLength, false );//For View Of More Length Than 1 Segment, Values Must Be Mulitples Of Eachother Somehow 3 In This Instance
	//pattern2D.RainbowSpiralVaryated( fullAngle, xSlider, ( x - HalfedDim.width ) / 1., ( y - HalfedDim.height ) / 1., fullAngle, 999, 1680, halfSreenDiagionalLength, false );//For Proper Rainbow PsychaHypnotic
	public Color RainbowSpiralVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed)//32nd Square SpiralFactor = 24.6 For HypnosisSpiral NumberOfSpirals = 1 x&y/3., For More Sprialing Increase Spiral Factor, For Ninja Shrunken; SpiralFactor = 88.8 & NumberOfSpirals = 10 x&y/10., For Universe Generator; SpiralFactor = 66.6 & NumberOfSpirals = 4 x&y/6.,, x->y Relative Factoring Causes Warping Effect, Choose ColorsFactor To Be Same As RepeatFactor Of Rainbow Clock With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable
	{//Make Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) Into Math.pow(Math.pow(HalfedDim.width + 1, 2) + Math.pow(HalfedDim.height + 1, 2), 0.5) Or To SpiralFactor For Ghetto Many Rainbow Clocks
		//System.out.println("x: " + x +" y: " + y);
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) * SpiralFactor + ( trueArcTan.ArcTan(x, y) - Math.PI ) * NumberOfSpirals * HalfSreenDiagionalLength;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse( ColorsFactor, sliderValue ); //
		else
			color.RainbowSoftColorRainbowFunction( ColorsFactor, sliderValue ); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowSpiralGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//33rd Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) * SpiralFactor + ( trueArcTan.ArcTan(x, y) - Math.PI ) * NumberOfSpirals * HalfSreenDiagionalLength;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowSpiralVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, Color[] FXcolorArray, boolean Reversed )//34th Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) * SpiralFactor + ( trueArcTan.ArcTan(x, y) - Math.PI ) * NumberOfSpirals * HalfSreenDiagionalLength;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowSpiralGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//35th Square Same As Above Super Function For Any Custom Colors Clocks Which Is Last Rainbow Disk Function
	{
		originalFormulaValue = Math.pow( Math.pow(x, 2) + Math.pow(y, 2), 0.5 ) * SpiralFactor + ( trueArcTan.ArcTan(x, y) - Math.PI ) * NumberOfSpirals * HalfSreenDiagionalLength;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowCheapFractalVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double DimWidth, boolean Reversed)//36th Square Choose ColorsFactor To Be Same As RepeatFactor Of Rainbow Clock With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable
	{//Try Instead For Double Trouble: originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 ) - ( y + 246 * LocationOfStillMovement ) - ( x + 24 * LocationOfStillMovement - 2 * DimWidth ) * Math.pow(LocationOfStillMovement , 1.20) / ( y + 0.5 );
		originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse( ColorsFactor, sliderValue ); //
		else
			color.RainbowSoftColorRainbowFunction( ColorsFactor, sliderValue ); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowCheapFractalGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double DimWidth, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//37th Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{
		originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowCheapFractalVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double DimWidth, Color[] FXcolorArray, boolean Reversed )//38th Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowCheapFractalGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double DimWidth, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//39th Square Same As Above Super Function For Any Custom Colors Clocks Which Is Last Rainbow Disk Function
	{
		originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowStrobeVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, Dimension HalfedDim, double HalfSreenDiagionalLength, boolean Reversed)//40th Square Choose ColorsFactor To Be Same As RepeatFactor Of Rainbow Clock With x & y Precentered Before Accessing This Function And Location Is The Connection To The xSlider Time Changing Variable
	{//Try Instead For Double Trouble: originalFormulaValue = - ( y + 246 * LocationOfColorMovement ) - ( x + 24 * LocationOfColorMovement - 2 * DimWidth ) * Math.pow( Math.abs( LocationOfColorMovement ) , 1.20) / ( y + 0.5 ) - ( y + 246 * LocationOfStillMovement ) - ( x + 24 * LocationOfStillMovement - 2 * DimWidth ) * Math.pow(LocationOfStillMovement , 1.20) / ( y + 0.5 );
		originalFormulaValue = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
		originalFormulaValue = ( originalFormulaValue * Math.tan( originalFormulaValue ) ) * HalfSreenDiagionalLength / 4.46783504 + LocationOfColorMovement;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		//aVariable = ( angleVariable * %/% Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1) %\% Math.tan( angleVariable ) %/%+ Math.PI%\% ) * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		originalFormulaValue = originalFormulaValue * 10;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Reversed )
			color.RainbowSoftColorRainbowFunctionReverse( ColorsFactor, sliderValue ); //
		else
			color.RainbowSoftColorRainbowFunction( ColorsFactor, sliderValue ); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowStrobeGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, Dimension HalfedDim, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//41st Square Same As Above Except Gradated Un/Adjusted With Opacity Changes
	{
		originalFormulaValue = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
		originalFormulaValue = ( originalFormulaValue * Math.tan( originalFormulaValue ) ) * HalfSreenDiagionalLength / 4.46783504 + LocationOfColorMovement;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		//aVariable = ( angleVariable * %/% Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1) %\% Math.tan( angleVariable ) %/%+ Math.PI%\% ) * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		originalFormulaValue = originalFormulaValue * 10;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowStrobeVaryated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, Dimension HalfedDim, double HalfSreenDiagionalLength, Color[] FXcolorArray, boolean Reversed )//42nd Square Same As Above Except With Any Amount Of Custom Colors And Not All Accouchriments As Below
	{
		originalFormulaValue = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
		originalFormulaValue = ( originalFormulaValue * Math.tan( originalFormulaValue ) ) * HalfSreenDiagionalLength / 4.46783504 + LocationOfColorMovement;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		//aVariable = ( angleVariable * %/% Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1) %\% Math.tan( angleVariable ) %/%+ Math.PI%\% ) * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		originalFormulaValue = originalFormulaValue * 10;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if (Reversed)
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true)); //
		else
			color.RainbowSoftCustomColorFunction(Math.abs( ColorsFactor ), sliderValue, FXcolorArray); //
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowStrobeGradated(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, Dimension HalfedDim, double HalfSreenDiagionalLength, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//43rd Square Same As Above Super Function For Any Custom Colors Clocks Which Is Last Rainbow Disk Function
	{
		originalFormulaValue = Math.atan2( (x - HalfedDim.width + 1) , (y - Dim.height * 4 / 3 + 1 ) );// For Rising Sun + 1
		originalFormulaValue = ( originalFormulaValue * Math.tan( originalFormulaValue ) ) * HalfSreenDiagionalLength / 4.46783504 + LocationOfColorMovement;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		//aVariable = ( angleVariable * %/% Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1) %\% Math.tan( angleVariable ) %/%+ Math.PI%\% ) * radialDistance / 4.46783504 + xSlider;// + Or - xSlider Determines Which Direction It Moves //For Infinite Number Theorem Good a = ( angle * %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider; //a = ( angle %/%Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 1)%\% Math.tan( angle ) + Math.PI ) * radialDistance / 4.46783504 - xSlider;//Use For Rainbow Spiral Multiply radialDistance By 10 To Increase The Number Of Spirals //Use This: "a = ( - angle + Math.PI ) * radialDistance;" Line For Rainbow Clock //a = ( - angle * Math.tan( angle ) + Math.PI ) * radialDistance - xSlider; For Infinite Number Theorem //a = ( - angle * Math.cos( angle ) * Math.sin( angle ) * Math.pow(radialVariableDistance, 2) + Math.PI ) * radialDistance - xSlider;
		originalFormulaValue = originalFormulaValue * 10;
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, double ExponentValue, double colorFlipper, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//44th Square Same As Above Super Function For Custom Color Exponentiator
	{
		originalFormulaValue = colorFlipper * ColorsFactor * ( ( Math.pow( 1 + x / Dim.width, ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 ) + y / Dim.height );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, double ExponentValue, double colorFlipper, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//45th Square Same As Above Super Function For Custom Color Exponentiator
	{
		originalFormulaValue = colorFlipper * ColorsFactor * ( ( Math.pow( 1 + x / Dim.width, ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 ) + y / Dim.height );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDoubleExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, double ExponentValue, double colorFlipper, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//46th Square Same As Above Super Function For Custom Color Exponentiator
	{
		originalFormulaValue = colorFlipper * ColorsFactor * ( ( Math.pow( 1 + x / Dim.width, ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 ) + Exponentiator ( ExponentValue, y * Dim.height / Dim.width, Dim.height * Dim.height / Dim.width ) );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftColorRainbowTransparencyFunctionReverseUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftColorRainbowTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}
	public Color RainbowDoubleExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, Dimension Dim, double ExponentValue, double colorFlipper, Color[] FXcolorArray, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )//47th Square Same As Above Super Function For Custom Color Exponentiator
	{
		originalFormulaValue = colorFlipper * ColorsFactor * ( ( Math.pow( 1 + x / Dim.width, ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 ) + Exponentiator ( ExponentValue, y * Dim.height / Dim.width, Dim.height * Dim.height / Dim.width ) );
		if ( LocationOfStillMovement == 0 )//Above Provides NonAligned RepeatFactor/ColorsLength != 1 For Shrinked[>1] And Abridged Rainbow[<1]
			sliderValue = SliderFormulateJustMovingColors( ColorsFactor, originalFormulaValue, LocationOfColorMovement, RepeatFactor );
		else
			if ( LocationOfColorMovement == 0)
				sliderValue = SliderFormulateSlidingTransitionsSameColors( ColorsFactor, originalFormulaValue, LocationOfStillMovement, RepeatFactor );
			else
				sliderValue = SliderFormulateDoubleSliding( ColorsFactor, originalFormulaValue, LocationOfStillMovement, LocationOfColorMovement, RepeatFactor );
		if ( Adjusted )
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		else
			if ( Reversed )
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray(FXcolorArray, false, true, true), OpacityBefore, OpacityAfter);
			else
				color.RainbowSoftCustomColorTransparencyFunctionUnAdjusted(Math.abs( ColorsFactor ), sliderValue, BrightnessMultiplyer, Gradations, FXcolorArray, OpacityBefore, OpacityAfter);
		rgb = color.ToRGB();
		argb = color.ToARGB();
		fxColor = color.ToFXColor();
		return fxColor;
	}

	public double Exponentiator(double ExponentValue, double SliderValue, double SliderRange )
	{
		return ( Math.pow( 1 + SliderValue / SliderRange, ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 );
	}
	public double Exponentiator(double ExponentValue, double SliderValue, double SliderStart, double SliderFinish )//48th Square With The 49th For To Be Built Tangent Based Sparkle And The 50th For Future Planned Radial Re-Rainbow Fan Out Where Rainbows Exponentiate Radially And Colors Fan Out With Longer Radial Position To Fan Out Exponentially...
	{
		return ( Math.pow( 1 + SliderValue / ( SliderFinish - SliderStart ), ExponentValue ) - 1 ) / ( Math.pow( 2, ExponentValue ) - 1 );
	}
	
	public Color Selector( String Selection, int SubSelection, double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, int x, int y, double RepeatFactor, double FullSliderRunThrough, Dimension Dim, Dimension HalfedDim, Color[][] FXcolorSet, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, double ExponentValue, double colorFlipper, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )
	{//"TransparencySliderFunction", "RainbowSoftColorFunction", "SimpleRainbow", "SimpleRainbowReverse", "SimpleCustomColor", "RainbowDiskVaryated", "RainbowDiskGradated", "RainbowRingVaryated", "RainbowRingGradated", "RainbowClockVaryated", "RainbowClockGradated", "RainbowSpiralVaryated", "RainbowSpiralGradated", "RainbowCheapFractalVaryated", "RainbowCheapFractalGradated", "RainbowStrobeVaryated", "RainbowStrobeGradated", "RainbowExponentiator", "RainbowDoubleExponentiator"
		if ( Selection == "TransparencySliderFunction" )
			return TransparencySliderFunction( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, x + HalfedDim.getWidth(), BrightnessMultiplyer, Gradations, FXcolorSet[0][0], FXcolorSet[0][1], OpacityBefore, OpacityAfter);
		else if ( Selection == "RainbowSoftColorFunction" )
			return RainbowSoftColorFunction( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, new RainbowSoftColor(FXcolorSet[0][0]), new RainbowSoftColor(FXcolorSet[0][1]));
		else if ( Selection == "SimpleRainbow" )
			return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "SimpleRainbowReverse" )
			return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "SimpleCustomColor" )
			return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, FXcolorSet[0], OpacityBefore, OpacityAfter, Adjusted, Reversed );
		else if ( Selection == "RainbowDiskVaryated" )
			return RainbowDiskVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed);
		else if ( Selection == "RainbowDiskGradated" )
			return RainbowDiskGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowRingVaryated" )
			return RainbowRingVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, FXcolorSet[0], Reversed);
		else if ( Selection == "RainbowRingGradated" )
			return RainbowRingGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowClockVaryated" )
			return RainbowClockVaryated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed );
		else if ( Selection == "RainbowClockGradated" )
			return RainbowClockGradated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowSpiralVaryated" )
			return RainbowSpiralVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, FXcolorSet[0], Reversed );
		else if ( Selection == "RainbowSpiralGradated" )
			return RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowCheapFractalVaryated" )
			return RainbowCheapFractalVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, FXcolorSet[0], Reversed );
		else if ( Selection == "RainbowCheapFractalGradated" )
			return RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowStrobeVaryated" )
			return RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, FXcolorSet[0], Reversed );
		else if ( Selection == "RainbowStrobeGradated" )
			return RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowExponentiator" )
			return RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else if ( Selection == "RainbowDoubleExponentiator" )
			return RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		else
			return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.FireFXcolors, OpacityBefore, OpacityAfter, Adjusted, Reversed );
	}
	public Color FullSelector( String Selection, int SubSelection, double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, int x, int y, double RepeatFactor, double FullSliderRunThrough, Dimension Dim, Dimension HalfedDim, Color[][] FXcolorSet, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, double ExponentValue, double colorFlipper, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted )
	{//"TransparencySliderFunction", "RainbowSoftColorFunction", "SimpleRainbow", "SimpleRainbowReverse", "SimpleCustomColor", "RainbowDiskVaryated", "RainbowDiskGradated", "RainbowRingVaryated", "RainbowRingGradated", "RainbowClockVaryated", "RainbowClockGradated", "RainbowSpiralVaryated", "RainbowSpiralGradated", "RainbowCheapFractalVaryated", "RainbowCheapFractalGradated", "RainbowStrobeVaryated", "RainbowStrobeGradated", "RainbowExponentiator", "RainbowDoubleExponentiator"
		if ( Selection == "TransparencySliderFunction" )
			switch (SubSelection)
			{
			case 0: return TransparencySliderFunction( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, x + HalfedDim.getWidth(), BrightnessMultiplyer, Gradations, FXcolorSet[0][0], FXcolorSet[0][1], OpacityBefore, OpacityAfter );
			case 1: return TransparencySliderFunction( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, x + HalfedDim.getWidth(), FXcolorSet[0][0], FXcolorSet[0][1] );
			}
		else if ( Selection == "RainbowSoftColorFunction" )
			return RainbowSoftColorFunction( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, new RainbowSoftColor(FXcolorSet[0][0]), new RainbowSoftColor(FXcolorSet[0][1]) );
		else if ( Selection == "SimpleRainbow" )
			switch (SubSelection)
			{
			case 0: return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter );
			case 2: return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, Adjusted );
			case 3: return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations );
			case 4: return SimpleRainbow( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough );
			}
		else if ( Selection == "SimpleRainbowReverse" )
			switch (SubSelection)
			{
			case 0: return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter );
			case 2: return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, Adjusted );
			case 3: return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations );
			case 4: return SimpleRainbowReverse( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough );
			}
		else if ( Selection == "SimpleCustomColor" )
			switch (SubSelection)
			{
			case 0: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, FXcolorSet[0], OpacityBefore, OpacityAfter, Adjusted, Reversed );
			case 1: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, FXcolorSet[0], OpacityBefore, OpacityAfter, Adjusted );
			case 2: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.ImperialColorsNum, OpacityBefore, OpacityAfter, Adjusted );
			case 3: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, FXcolorSet[0], Adjusted );
			case 4: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, FXcolorSet[0] );
			case 5: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.ImperialColorsNum, Adjusted );
			case 6: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.ImperialColorsNum );
			case 7: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed );
			case 8: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, vibrantColorCombos.ImperialColorsNum );
			case 9: return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0] );
			}
		else if ( Selection == "RainbowDiskVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowDiskVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed);
			case 1: return RainbowDiskVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, Reversed);
			}
		else if ( Selection == "RainbowDiskGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowDiskGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowDiskGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowRingVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowRingVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, FXcolorSet[0], Reversed);
			case 1: return RainbowRingVaryated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, Reversed);
			}
		else if ( Selection == "RainbowRingGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowRingGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowRingGradated( HalfedDim.getHeight() * ColorsFactor / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfStillMovement / FullSliderRunThrough, HalfedDim.getHeight() * LocationOfColorMovement / FullSliderRunThrough, x, y, HalfedDim.getHeight() * RepeatFactor / FullSliderRunThrough, InnerCutOffRadius, OuterCutOffRadius, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowClockVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowClockVaryated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed );
			case 1: return RainbowClockVaryated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, Reversed );
			}
		else if ( Selection == "RainbowClockGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowClockGradated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowClockGradated( 2 * Math.PI * ColorsFactor / FullSliderRunThrough, 2 * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2 * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x, y, 2 * Math.PI * RepeatFactor / FullSliderRunThrough, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowSpiralVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowSpiralVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, FXcolorSet[0], Reversed );
			case 1: return RainbowSpiralVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, Reversed );
			}
		else if ( Selection == "RainbowSpiralGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowCheapFractalVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowCheapFractalVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, FXcolorSet[0], Reversed );
			case 1: return RainbowCheapFractalVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, Reversed );
			}
		else if ( Selection == "RainbowCheapFractalGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, Dim.width, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowStrobeVaryated" )
			switch (SubSelection)
			{
			case 0: return RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, FXcolorSet[0], Reversed );
			case 1: return RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, Reversed );
			}
		else if ( Selection == "RainbowStrobeGradated" )
			switch (SubSelection)
			{
			case 0: return RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, HalfedDim, HalfSreenDiagionalLength, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowExponentiator" )
			switch (SubSelection)
			{
			case 0: return RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else if ( Selection == "RainbowDoubleExponentiator" )
			switch (SubSelection)
			{
			case 0: return RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, FXcolorSet[0], Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			case 1: return RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x + HalfedDim.getWidth(), y + HalfedDim.getHeight(), RepeatFactor, Dim, ExponentValue, colorFlipper, Reversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			}
		else
			return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.FireFXcolors, OpacityBefore, OpacityAfter, Adjusted, Reversed );
		return SimpleCustomColor( Dim.getWidth() * ColorsFactor / FullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / FullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / FullSliderRunThrough, x + HalfedDim.getWidth(), Dim.getWidth() * RepeatFactor / FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.FireFXcolors, false, true, true ), OpacityBefore, OpacityAfter, Adjusted, Reversed );
	}
	

	//Build SimpleRainbowPattern2DDiagnosticsClass.java First With Color To Similar Tested In ???27th??? Square In In SimpleDiagnosticsClass.java 3 Horizontal x 9 Vertical Under 3 Bars
	//Formula String At End Of Complex Labeled Objects Instead Of Simple Labeled Objects
	//Formula Solver Which Reads Formula String And Processes Formula Into Location Within Color Interval Or OutPuts Same Location With Console Readout "Formula Not Found, No Formula Used -> Variable Sent Through Formula Processor Without Change."
	//Build ComplexRainbowPattern2DDiagnosticsClass.java Before Testing More Than 1 Formula
	public double SliderFormulateJustMovingColors( double ColorsLength, double FormulaValue, double LocationOfColorMovement, double RepeatLength )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( ColorsLength < 0.0001 )
			ColorsLength = 0.0001;
		if ( RepeatLength < 0.0001 )
			RepeatLength = 0.0001;
		if ( RepeatLength == ColorsLength )
		{//AFTER DIAGNOSTICS FINISHED COMPLETELY Don't Do This As It Won't Fix Anomoles; Ctrl-f And Replace Relevant " < " With " <= " Then " > " With " >= " Copy And Paste Back To Get Rid Of Pixel Artifacts If They Happen On fRateDivisor >~192
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = - FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue < ColorsLength / 2 )//if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = - FormulaValue + LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				//return RepeatLength - FormulaValue;// */
				//return FormulaValue;
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue + LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue> 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{//NM Replace With The Code Below Below Function??? Work On Simplifying: FormulaValue = ColorsLength - FormulaValue;
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0  )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;
				if ( FormulaValue < ColorsLength / 2 )//if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength;
				return FormulaValue - ColorsLength;
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				FormulaValue = FormulaValue - ColorsLength / 2;//New
				if ( FormulaValue >= ColorsLength / 2 )
					return FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;
				//return 99;// */ Potential Problem
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
		}
		else
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfColorMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue < ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return FormulaValue - RepeatLength;// ( - )// */
			}//Work On Below
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfColorMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfColorMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				//Put In All 3 Places Maybe: FomulaValue = Formula Value + ColorsLength / 2 But That Happens At The Top
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfColorMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		return FormulaValue;
	}
	public double SliderFormulateSlidingTransitionsSameColors( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double RepeatLength )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( ColorsLength < 0.0001 )
			ColorsLength = 0.0001;
		if ( RepeatLength < 0.0001 )
			RepeatLength = 0.0001;
		//FormulaValue = FormulaValue - LocationOfStillMovement; //And Get Rid Of Other LocationOfStillMovement In Slider Formulate For Spinning Same Colors
		if ( RepeatLength == ColorsLength )
		{//WORK ON ALL 9
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				/*while ( LocationOfStillMovement < 0 )
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				while ( LocationOfStillMovement >= RepeatLength )
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				if ( FormulaValue >= LocationOfStillMovement )
					FormulaValue = FormulaValue - LocationOfStillMovement;//Uncomment For Cool Error */ 
				/*while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				//return RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = RepeatLength - FormulaValue;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( FormulaValue >= RepeatLength / 2 )//To Return For Just Blocky Rainbow Ends Showing
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;				
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				/*if ( FormulaValue < ColorsLength / 2 )//To Return For Just Blocky Rainbow Ends Showing
					FormulaValue = FormulaValue + 2 * RepeatLength;
				return FormulaValue - RepeatLength;// */
				//return ColorsLength - FormulaValue;
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{//WORK ON ALL 9
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement  * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;
				/*if ( FormulaValue < ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength;// */
				return FormulaValue - ColorsLength;
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement  * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				return FormulaValue - ColorsLength;
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement  * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;
				/*if ( FormulaValue >= ColorsLength / 2 )
					return FormulaValue + ColorsLength / 2;
				else//Check Into This !!!!
					return - FormulaValue - ColorsLength / 2;// */
				//return ColorsLength - FormulaValue;
			}
			else
			{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				//System.out.println("numberOfTransitions: " + numberOfTransitions);
				//return FormulaValue;
			}
		}
		else
		{//WORK ON ALL 9
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// ColorsLength / 2; // + RepeatLength
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = LocationOfStillMovement  + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfStillMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				/*if ( FormulaValue < ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength;// */
				//return RepeatLength - FormulaValue;// ( - )// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// ColorsLength / 2; // + RepeatLength
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfStillMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				return FormulaValue - RepeatLength;
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// ColorsLength / 2; // + RepeatLength
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = LocationOfStillMovement  + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfStillMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				/*if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
				////return RepeatLength - FormulaValue;
			}
			else
			{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// ColorsLength / 2; // + RepeatLength
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * ( RepeatLength + ColorsLength ) && LocationOfStillMovement - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfTransitions = numberOfTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//System.out.println("numberOfTransitions: " + numberOfTransitions);
			}
		}
		return FormulaValue;
	}
public double SliderFormulateDoubleSliding( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double LocationOfColorMovement, double RepeatLength )//Spinning In Terms Of Colors And Repeated Segments Spinning
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		numberOfStillTransitions = 0; numberOfColorTransitions = 0;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( ColorsLength < 0.0001 )
			ColorsLength = 0.0001;
		if ( RepeatLength < 0.0001 )
			RepeatLength = 0.0001;
		FormulaValue = FormulaValue + LocationOfColorMovement;
		if ( RepeatLength == ColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//numberOfStillTransitions = 0; numberOfColorTransitions = 0; //ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				/*if ( FormulaValue < ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength;// */
				//return FormulaValue - RepeatLength;// */
				//return RepeatLength - FormulaValue;
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				//return RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				/*if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
				////return RepeatLength - FormulaValue;
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				//if ( LocationOfStillMovement >= FormulaValue )
				//	FormulaValue = FormulaValue - LocationOfColorMovement + ( numberOfColorTransitions + 1 ) * RepeatLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				if ( FormulaValue >= LocationOfStillMovement )
					FormulaValue = FormulaValue - LocationOfStillMovement;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{//Perhaps Simplify ALL OF THESE -- -+ +- X On All 3
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement + ( numberOfColorTransitions + 1 ) * RepeatLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				/*if ( FormulaValue < ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength; 
				return FormulaValue - ColorsLength;// */
				//return ColorsLength - FormulaValue;
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement + ( numberOfColorTransitions + 1 ) * RepeatLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				//return ColorsLength - FormulaValue;
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				//FormulaValue = -FormulaValue / RepeatLength;//Critical Change
				/*FormulaValue = FormulaValue - ColorsLength / 2;//New
				if ( FormulaValue >= ColorsLength / 2 )
					return FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;// */
				//return ColorsLength - FormulaValue;
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				/*while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//return RepeatLength - FormulaValue;
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
				/*if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}// */
				//return RepeatLength - FormulaValue;
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				//numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < - 1001 * RepeatLength )
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * ( RepeatLength + ColorsLength ) && FormulaValue - 1001 * RepeatLength > ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement < - 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement + 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement > 1001 * RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - 1000 * RepeatLength;
					numberOfStillTransitions = numberOfStillTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement < 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfStillTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfStillTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				/*while ( LocationOfColorMovement < - 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement + 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions + 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement > 1001 * RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - 1000 * RepeatLength;
					numberOfColorTransitions = numberOfColorTransitions - 1000;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement < 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfColorTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfColorTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}// */
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfStillTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfStillTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue < - 1001 * ColorsLength )
					FormulaValue = FormulaValue + 1000 * ColorsLength;
				while ( FormulaValue > 1001 * ColorsLength )
					FormulaValue = FormulaValue - 1000 * ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				/*if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < - 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
					FormulaValue = FormulaValue + 1000 * RepeatLength;
				while ( FormulaValue > 1001 * RepeatLength )//For 1000 Times As Fast Initial LockDown
						FormulaValue = FormulaValue - 1000 * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		return FormulaValue;
	}
	
	
	
	
	//Fwa Splash Logo Before RainbowPostPattern2D.RainbowFlasher
	else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			//return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, null );
			//return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink, vibrantColors.SkyBlue } } );
			//if ( !OverlayColorScheme )
			//	return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.OxylBlue, vibrantColors.Purple }, { vibrantColors.Pink, vibrantColors.Green } } );
			//else
			//	return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.OxylBlue, vibrantColors.Purple } } );
		
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
			else
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				transparencySlider.set( transparencySlider.ToFXColor().invert() );
			postPattern2D.set( transparencySlider.ToFXColor() );
			tempColor = postPattern2D.ToFXColor();
			//postPattern2D.TransparencySliderFunction(1., .5, BrightnessMultiplyer, Gradations, vibrantColors.Green, vibrantColors.Pink, OpacityBefore, OpacityAfter);
			postPattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			if ( displayType.AccessTextTransitionFactor() > 0.001 )
			{
				fxColor = postPattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
					else if ( !InvertInsteadOfReverse )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Purple, vibrantColors.OxylBlue );
					else
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					if ( !displayType.AccessLaterReversed() )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
					else
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Purple, vibrantColors.OxylBlue );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( transparencySlider.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == Reversed ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
				postPattern2D.set( pattern2D.ToFXColor() );
			}
			rainbowSoftColor.set( postPattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		
		
		
		
		//Fwa Flag Logo Before RainbowPostPattern2D.RainbowFlasher
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			//return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, null );
			//return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink, vibrantColors.OxylBlue } } );
			//if ( !OverlayColorScheme )
			//	return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.White, vibrantColors.NeonGreen }, { vibrantColors.SkyBlue, vibrantColors.Brown } } );
			//else
			//	return postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfSreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.BrightBlue, vibrantColors.NeonGreen } } );
			
			if ( !OverlayColorScheme )
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			//postPattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
			//postPattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.SkyBlue, vibrantColors.Brown );
			else
				if ( !displayType.AccessLaterReversed() )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.BrightBlue, vibrantColors.NeonGreen );
			postPattern2D.set( transparencySlider.ToFXColor() );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == Reversed ) || ( InvertTextAlways && displayType.AccessLaterReversed() != Reversed ) )
				postPattern2D.set( postPattern2D.ToFXColor().invert() );
			tempColor = postPattern2D.ToFXColor();
			postPattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != Reversed ) );
			if ( displayType.AccessTextTransitionFactor() > 0.001 )
			{
				fxColor = postPattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !displayType.AccessLaterReversed() )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
					else if ( !InvertInsteadOfReverse )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.NeonGreen, vibrantColors.White );
					else
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Brown, vibrantColors.SkyBlue );
				else
					if ( !displayType.AccessLaterReversed() )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
					else
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.NeonGreen, vibrantColors.BrightBlue );
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( transparencySlider.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == Reversed ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
				postPattern2D.set( pattern2D.ToFXColor() );
			}
			rainbowSoftColor.set( postPattern2D.ToFXColor() );
			return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			// */
			/*
					//System.out.println( "After x: " + x + " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					}
					postPattern2D.set( tempColorFader.fxColor );
					rainbowSoftColor.set( postPattern2D.ToFXColor() );
					return colorDecide.NextColorDecide ( fxColor, BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), displayType.AccessLaterReversed() == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
		}
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		public double SliderFormulateJustMovingColors( double ColorsLength, double FormulaValue, double LocationOfColorMovement, double RepeatLength, double FullSliderRunThrough )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false, negitiveFullSliderRunThrough = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( FullSliderRunThrough < 0 )
			negitiveFullSliderRunThrough = true;
		if ( ColorsLength < 0.001 )
			ColorsLength = 0.001;
		if ( RepeatLength < 0.001 )
			RepeatLength = 0.001;
		if ( RepeatLength == ColorsLength )
		{//AFTER DIAGNOSTICS FINISHED COMPLETELY Don't Do This As It Won't Fix Anomoles; Ctrl-f And Replace Relevant " < " With " <= " Then " > " With " >= " Copy And Paste Back To Get Rid Of Pixel Artifacts If They Happen On fRateDivisor >~192
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				return  RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue - LocationOfColorMovement;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{//NM Replace With The Code Below Below Function??? Work On Simplifying: FormulaValue = ColorsLength - FormulaValue;
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				FormulaValue = ColorsLength - FormulaValue;//Critical Change
				while ( ColorsLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - ColorsLength;
				while ( ColorsLength - FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue + ColorsLength;
				if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength;
				return  FormulaValue - ColorsLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				FormulaValue = FormulaValue - ColorsLength / 2;//New
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;
				//return 99;// */ Potential Problem
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
		}
		else
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return FormulaValue - RepeatLength;// ( - )// */
			}//Work On Below
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				//Put In All 3 Places Maybe: FomulaValue = Formula Value + ColorsLength / 2 But That Happens At The Top
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		return FormulaValue;
	}
	public double SliderFormulateSlidingTransitionsSameColors( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double RepeatLength, double FullSliderRunThrough )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false, negitiveFullSliderRunThrough = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( FullSliderRunThrough < 0 )
			negitiveFullSliderRunThrough = true;
		if ( ColorsLength < 0.001 )
			ColorsLength = 0.001;
		if ( RepeatLength < 0.001 )
			RepeatLength = 0.001;
		//FormulaValue = FormulaValue - LocationOfStillMovement; //And Get Rid Of Other LocationOfStillMovement In Slider Formulate For Spinning Same Colors
		if ( RepeatLength == ColorsLength )
		{//WORK ON ALL 9
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				//if ( LocationOfStillMovement <= FormulaValue || LocationOfStillMovement <= RepeatLength - FormulaValue )
				if ( negitiveFullSliderRunThrough )
				{
					if ( LocationOfStillMovement <= FormulaValue )
						FormulaValue = - ( FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength );
					else
						FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				}
				else if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = - ( FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength );
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				/*if ( negitiveFullSliderRunThrough )Usefull Implimenting In All Pattern2D Formulates To Cause Just Solid Color Ends To Patternize
				{
					if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
						FormulaValue = FormulaValue + 2 * RepeatLength; 
					return  FormulaValue - RepeatLength;
				}
			}// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			//if ( LocationOfStillMovement >= FormulaValue || LocationOfStillMovement >= RepeatLength - FormulaValue )//Use This Line Instead Of Below To Do JustMovingColors Slide To Split At Rainbow Center: xSlider/2 To StillSingleSliders And It Can Be Done With Just PieceWise System Usage Too
			//if ( LocationOfStillMovement <= FormulaValue )//Use This Line Instead Of Below To Have Still Movement Opening Up Into DoubleStill Movement
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = - ( FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength );
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
			/*return  RepeatLength - FormulaValue;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = - ( FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength );
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			/*if ( negitiveFullSliderRunThrough )
			{
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + RepeatLength / 2;
					return FormulaValue;
				}
				return -FormulaValue;
			}// */
		}
		else
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			/*while ( LocationOfStillMovement <= 0 )
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				while ( LocationOfStillMovement >= RepeatLength )
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				if ( FormulaValue >= LocationOfStillMovement )
					FormulaValue = FormulaValue - LocationOfStillMovement;//Uncomment For Cool Error */ 
			/*while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
		}
	}
	else if ( RepeatLength < ColorsLength )	
	{
		if ( negativeRepeatLength && negativeColorsLength )
		{//WORK ON ALL 9
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = -FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement <= FormulaValue )
				FormulaValue = -FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			//FormulaValue = ColorsLength - FormulaValue;//Critical Change
			FormulaValue = FormulaValue - ColorsLength / 2;//New
			while ( ColorsLength - FormulaValue <= 0 )
				FormulaValue = FormulaValue - ColorsLength;
			while ( ColorsLength - FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue + ColorsLength;
			/*if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
				FormulaValue = FormulaValue + 2 * ColorsLength; 
			return  FormulaValue - ColorsLength;// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = -FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = -FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;
			/*if ( negitiveFullSliderRunThrough )
			{
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return -FormulaValue;
			}// */
		}
		else
		{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
				FormulaValue = FormulaValue - ColorsLength;// */
			//System.out.println("numberOfTransitions: " + numberOfTransitions);
			//return FormulaValue;
		}
	}
	else
	{//WORK ON ALL 9
		if ( negativeRepeatLength && negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
			FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
			FormulaValue = RepeatLength - FormulaValue;//Critical Change
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			/*if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
				FormulaValue = FormulaValue + 2 * RepeatLength; 
			return RepeatLength - FormulaValue;// ( - )// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = -FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
			//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
			FormulaValue = FormulaValue - ColorsLength / 2;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			/*if ( negitiveFullSliderRunThrough )
			{
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;
			}// */
		}
		else
		{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
			while ( LocationOfStillMovement <= 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
			//System.out.println("numberOfTransitions: " + numberOfTransitions);
		}
	}
	return FormulaValue;
}
public double SliderFormulateDoubleSliding( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double LocationOfColorMovement, double RepeatLength, double FullSliderRunThrough )//Spinning In Terms Of Colors And Repeated Segments Spinning
{//System.out.println("FormulaValue = " + FormulaValue);
	boolean negativeColorsLength = false, negativeRepeatLength = false, negitiveFullSliderRunThrough = false;
	numberOfStillTransitions = 0; numberOfColorTransitions = 0;
	if ( ColorsLength < 0 )
	{
		negativeColorsLength = true;
		ColorsLength = Math.abs( ColorsLength );
	}
	if ( RepeatLength < 0 )
	{
		negativeRepeatLength = true;
		RepeatLength = Math.abs( RepeatLength );
	}
	if ( FullSliderRunThrough < 0 )
		negitiveFullSliderRunThrough = true;
	if ( ColorsLength < 0.001 )
		ColorsLength = 0.001;
	if ( RepeatLength < 0.001 )
		RepeatLength = 0.001;
	FormulaValue = FormulaValue + LocationOfColorMovement;
	if ( RepeatLength == ColorsLength )
	{
		//FormulaValue = 0; //For Testing Specific SubFunction Only
		if ( negativeRepeatLength && negativeColorsLength )
		{
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			/*while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				/*if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
			//return  RepeatLength - FormulaValue;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough && LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			/*if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
		}
		else
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			while ( LocationOfStillMovement < 0 )
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
			while ( LocationOfStillMovement >= RepeatLength )
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
			if ( FormulaValue >= LocationOfStillMovement )
				FormulaValue = FormulaValue - LocationOfStillMovement;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;// */
		}
	}
	else if ( RepeatLength < ColorsLength )	
	{
		if ( negativeRepeatLength && negativeColorsLength )
		{//Perhaps Simplify ALL OF THESE -- -+ +- X On All 3
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement >= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			/*FormulaValue = ColorsLength - FormulaValue;//Critical Change
				while ( ColorsLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - ColorsLength;
				while ( ColorsLength - FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue + ColorsLength;
				if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength; 
				return  FormulaValue - ColorsLength;// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough && LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
			//FormulaValue = -FormulaValue / RepeatLength;//Critical Change
			/*FormulaValue = FormulaValue - ColorsLength / 2;//New
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;// */
		}
		else
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
			FormulaValue = FormulaValue * RepeatLength / ColorsLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= RepeatLength )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= RepeatLength )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + ColorsLength;
			while ( FormulaValue >= ColorsLength )
				FormulaValue = FormulaValue - ColorsLength;// */
		}
	}
	else
	{
		if ( negativeRepeatLength && negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			/*while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// #/
			/*FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
		}
		else if ( negativeColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
			FormulaValue = + FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
		}
		else if ( negativeRepeatLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough && LocationOfStillMovement <= FormulaValue )
				FormulaValue = FormulaValue - LocationOfStillMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
			//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
			/*FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue < 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
		}
		else
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
			FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;
			LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
			while ( LocationOfStillMovement < 0 )
			{
				LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
			}
			while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
			{
				LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
			}
			if ( negitiveFullSliderRunThrough )
			{
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
			}
			else if ( LocationOfStillMovement >= FormulaValue )
				FormulaValue = FormulaValue + LocationOfStillMovement + numberOfTransitions * RepeatLength;
			else
				FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
			while ( FormulaValue < 0 )
				FormulaValue = FormulaValue + RepeatLength;
			while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
				FormulaValue = FormulaValue - RepeatLength;// */
		}
	}
	return FormulaValue;
}