mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-03 23:21:15 +00:00 
			
		
		
		
	
		
			
	
	
		
			2637 lines
		
	
	
	
		
			50 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			2637 lines
		
	
	
	
		
			50 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright 2016 Bruno Ribeiro
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Licensed under the Apache License, Version 2.0 (the "License");
							 | 
						||
| 
								 | 
							
								 * you may not use this file except in compliance with the License.
							 | 
						||
| 
								 | 
							
								 * You may obtain a copy of the License at
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * http://www.apache.org/licenses/LICENSE-2.0
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Unless required by applicable law or agreed to in writing, software
							 | 
						||
| 
								 | 
							
								 * distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						||
| 
								 | 
							
								 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						||
| 
								 | 
							
								 * See the License for the specific language governing permissions and
							 | 
						||
| 
								 | 
							
								 * limitations under the License.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "hq2x.h"
							 | 
						||
| 
								 | 
							
								#include "math_funcs.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static const uint32_t AMASK = 0xFF000000;
							 | 
						||
| 
								 | 
							
								static const uint32_t YMASK = 0x00FF0000;
							 | 
						||
| 
								 | 
							
								static const uint32_t UMASK = 0x0000FF00;
							 | 
						||
| 
								 | 
							
								static const uint32_t VMASK = 0x000000FF;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								_FORCE_INLINE_ static uint32_t ARGBtoAYUV(
							 | 
						||
| 
								 | 
							
									uint32_t value )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    uint32_t A, R, G, B, Y, U, V;
							 | 
						||
| 
								 | 
							
								//todo big endian check
							 | 
						||
| 
								 | 
							
								    A = value >> 24;
							 | 
						||
| 
								 | 
							
								    R = (value >> 16) & 0xFF;
							 | 
						||
| 
								 | 
							
								    G = (value >> 8) & 0xFF;
							 | 
						||
| 
								 | 
							
								    B = value & 0xFF;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Y = Math::fast_ftoi( 0.299 * R + 0.587 * G + 0.114 * B);
							 | 
						||
| 
								 | 
							
								    U = Math::fast_ftoi(-0.169 * R - 0.331 * G +   0.5 * B) + 128;
							 | 
						||
| 
								 | 
							
								    V = Math::fast_ftoi(   0.5 * R - 0.419 * G - 0.081 * B) + 128;
							 | 
						||
| 
								 | 
							
								    return (A << 24) + (Y << 16) + (U << 8) + V;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Use this function for sharper images (good for cartoon style, used by DOSBOX)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								_FORCE_INLINE_ static bool isDifferent(
							 | 
						||
| 
								 | 
							
									uint32_t color1,
							 | 
						||
| 
								 | 
							
									uint32_t color2,
							 | 
						||
| 
								 | 
							
									uint32_t trY,
							 | 
						||
| 
								 | 
							
									uint32_t trU,
							 | 
						||
| 
								 | 
							
									uint32_t trV,
							 | 
						||
| 
								 | 
							
									uint32_t trA )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									color1 = ARGBtoAYUV(color1);
							 | 
						||
| 
								 | 
							
									color2 = ARGBtoAYUV(color2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									uint32_t value;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									value = ((color1 & YMASK) - (color2 & YMASK));
							 | 
						||
| 
								 | 
							
									value = (value ^ (value >> 31)) - (value >> 31);
							 | 
						||
| 
								 | 
							
									if (value > trY) return true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									value = ((color1 & UMASK) - (color2 & UMASK));
							 | 
						||
| 
								 | 
							
									value = (value ^ (value >> 31)) - (value >> 31);
							 | 
						||
| 
								 | 
							
									if (value > trU) return true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									value = ((color1 & VMASK) - (color2 & VMASK));
							 | 
						||
| 
								 | 
							
									value = (value ^ (value >> 31)) - (value >> 31);
							 | 
						||
| 
								 | 
							
									if (value > trV) return true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									value = ((color1 & AMASK) - (color2 & AMASK));
							 | 
						||
| 
								 | 
							
									value = (value ^ (value >> 31)) - (value >> 31);
							 | 
						||
| 
								 | 
							
									if (value > trA) return true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MASK_RB   0x00FF00FF
							 | 
						||
| 
								 | 
							
								#define MASK_G    0x0000FF00
							 | 
						||
| 
								 | 
							
								#define MASK_A    0xFF000000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief Mixes two colors using the given weights.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#define HQX_MIX_2(C0,C1,W0,W1) \
							 | 
						||
| 
								 | 
							
									((((C0 & MASK_RB) * W0 + (C1 & MASK_RB) * W1) / (W0 + W1)) & MASK_RB) | \
							 | 
						||
| 
								 | 
							
									((((C0 & MASK_G)  * W0 + (C1 & MASK_G)  * W1) / (W0 + W1)) & MASK_G)  | \
							 | 
						||
| 
								 | 
							
									(((((C0 & MASK_A) >> 8)  * W0 + ((C1 & MASK_A) >> 8) * W1) / (W0 + W1)) << 8) & MASK_A
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief Mixes three colors using the given weights.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#define HQX_MIX_3(C0,C1,C2,W0,W1,W2) \
							 | 
						||
| 
								 | 
							
									((((C0 & MASK_RB) * W0 + (C1 & MASK_RB) * W1 + (C2 & MASK_RB) * W2) / (W0 + W1 + W2)) & MASK_RB) | \
							 | 
						||
| 
								 | 
							
									((((C0 & MASK_G)  * W0 + (C1 & MASK_G)  * W1 + (C2 & MASK_G)  * W2) / (W0 + W1 + W2)) & MASK_G)  | \
							 | 
						||
| 
								 | 
							
									(((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1 + ((C2 & MASK_A) >> 8) * W2) / (W0 + W1 + W2)) << 8) & MASK_A
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_00_4				*output = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_00_MIX_00_4_0_3_1	*output = HQX_MIX_2(w[4],w[0],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_3_1			*output = HQX_MIX_2(w[4],w[3],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_1_3_1			*output = HQX_MIX_2(w[4],w[1],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_3_1_1_1			*output = HQX_MIX_2(w[3],w[1],1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_1_2_1_1		*output = HQX_MIX_3(w[4],w[3],w[1],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_1_2_7_7 		*output = HQX_MIX_3(w[4],w[3],w[1],2U,7U,7U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_0_1_2_1_1		*output = HQX_MIX_3(w[4],w[0],w[1],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_0_3_2_1_1		*output = HQX_MIX_3(w[4],w[0],w[3],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_1_3_5_2_1		*output = HQX_MIX_3(w[4],w[1],w[3],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_1_5_2_1		*output = HQX_MIX_3(w[4],w[3],w[1],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_1_6_1_1		*output = HQX_MIX_3(w[4],w[3],w[1],6U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_4_3_1_2_3_3		*output = HQX_MIX_3(w[4],w[3],w[1],2U,3U,3U);
							 | 
						||
| 
								 | 
							
								#define MIX_00_MIX_00_4_0_3_10	*output = HQX_MIX_3(w[4],w[3],w[1],14U,1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_01_4			*(output + 1) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_2_3_1		*(output + 1) = HQX_MIX_2(w[4],w[2],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_3_1		*(output + 1) = HQX_MIX_2(w[4],w[1],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_1_4_3_1		*(output + 1) = HQX_MIX_2(w[1],w[4],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_5_3_1		*(output + 1) = HQX_MIX_2(w[4],w[5],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_7_1		*(output + 1) = HQX_MIX_2(w[4],w[1],7U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_5_2_1_1	*(output + 1) = HQX_MIX_3(w[4],w[1],w[5],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_2_5_2_1_1	*(output + 1) = HQX_MIX_3(w[4],w[2],w[5],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_2_1_2_1_1	*(output + 1) = HQX_MIX_3(w[4],w[2],w[1],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_5_1_5_2_1	*(output + 1) = HQX_MIX_3(w[4],w[5],w[1],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_5_5_2_1	*(output + 1) = HQX_MIX_3(w[4],w[1],w[5],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_5_6_1_1	*(output + 1) = HQX_MIX_3(w[4],w[1],w[5],6U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_1_5_2_3_3	*(output + 1) = HQX_MIX_3(w[4],w[1],w[5],2U,3U,3U);
							 | 
						||
| 
								 | 
							
								#define MIX_01_4_2_3_10		*(output + 1) = HQX_MIX_3(w[4],w[1],w[5],14U,1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_02_4			*(output + 2) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_02_4_2_3_1		*(output + 2) = HQX_MIX_2(w[4],w[2],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_02_4_1_3_1		*(output + 2) = HQX_MIX_2(w[4],w[1],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_02_4_5_3_1  	*(output + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_02_4_1_5_2_1_1	*(output + 2) = HQX_MIX_3(w[4],w[1],w[5],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_02_4_1_5_2_7_7	*(output + 2) = HQX_MIX_3(w[4],w[1],w[5],2U,7U,7U);
							 | 
						||
| 
								 | 
							
								#define MIX_02_1_5_1_1		*(output + 2) = HQX_MIX_2(w[1],w[5],1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_10_4			*(output + lineSize) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_6_3_1		*(output + lineSize) = HQX_MIX_2(w[4],w[6],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_7_3_1		*(output + lineSize) = HQX_MIX_2(w[4],w[7],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_3_3_1		*(output + lineSize) = HQX_MIX_2(w[4],w[3],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_7_3_2_1_1	*(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_6_3_2_1_1	*(output + lineSize) = HQX_MIX_3(w[4],w[6],w[3],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_6_7_2_1_1	*(output + lineSize) = HQX_MIX_3(w[4],w[6],w[7],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_3_7_5_2_1	*(output + lineSize) = HQX_MIX_3(w[4],w[3],w[7],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_7_3_5_2_1	*(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_7_3_6_1_1	*(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],6U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_7_3_2_3_3	*(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,3U,3U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_6_3_10		*(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],14U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_4_3_7_1  	*(output + lineSize) = HQX_MIX_2(w[4],w[3],7U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_10_3_4_3_1  	*(output + lineSize) = HQX_MIX_2(w[3],w[4],3U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_11_4			*(output + lineSize + 1) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_8_3_1		*(output + lineSize + 1) = HQX_MIX_2(w[4],w[8],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_5_3_1		*(output + lineSize + 1) = HQX_MIX_2(w[4],w[5],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_7_3_1		*(output + lineSize + 1) = HQX_MIX_2(w[4],w[7],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_5_7_2_1_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_8_7_2_1_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[8],w[7],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_8_5_2_1_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[8],w[5],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_7_5_5_2_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[7],w[5],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_5_7_5_2_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],5U,2U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_5_7_6_1_1	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],6U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_5_7_2_3_3	*(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],2U,3U,3U);
							 | 
						||
| 
								 | 
							
								#define MIX_11_4_8_3_10		*(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],14U,1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_12_4			*(output + lineSize + 2) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_12_4_5_3_1		*(output + lineSize + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_12_4_5_7_1		*(output + lineSize + 2) = HQX_MIX_2(w[4],w[5],7U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_12_5_4_3_1		*(output + lineSize + 2) = HQX_MIX_2(w[5],w[4],3U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_20_4			*(output + lineSize + lineSize) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_20_4_6_3_1		*(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[6],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_20_4_7_3_1		*(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[7],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_20_4_3_3_1		*(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[3],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_20_4_7_3_2_1_1	*(output + lineSize + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_20_4_7_3_2_7_7	*(output + lineSize + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,7U,7U);
							 | 
						||
| 
								 | 
							
								#define MIX_20_7_3_1_1		*(output + lineSize + lineSize) = HQX_MIX_2(w[7],w[3],1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_21_4			*(output + lineSize + lineSize + 1) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_21_4_7_3_1		*(output + lineSize + lineSize + 1) = HQX_MIX_2(w[4],w[7],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_21_4_7_7_1		*(output + lineSize + lineSize + 1) = HQX_MIX_2(w[4],w[7],7U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_21_7_4_3_1		*(output + lineSize + lineSize + 1) = HQX_MIX_2(w[7],w[4],3U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MIX_22_4			*(output + lineSize + lineSize + 2) = w[4];
							 | 
						||
| 
								 | 
							
								#define MIX_22_4_8_3_1		*(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[8],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_22_4_7_3_1		*(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[7],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_22_4_5_3_1		*(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_22_4_5_7_2_1_1	*(output + lineSize + lineSize + 2) = HQX_MIX_3(w[4],w[5],w[7],2U,1U,1U);
							 | 
						||
| 
								 | 
							
								#define MIX_22_4_5_7_2_7_7	*(output + lineSize + lineSize + 2) = HQX_MIX_3(w[4],w[5],w[7],2U,7U,7U);
							 | 
						||
| 
								 | 
							
								#define MIX_22_5_7_1_1		*(output + lineSize + lineSize + 2) = HQX_MIX_2(w[5],w[7],1U,1U);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint32_t *hq2x_resize(
							 | 
						||
| 
								 | 
							
									const uint32_t *image,
							 | 
						||
| 
								 | 
							
									uint32_t width,
							 | 
						||
| 
								 | 
							
									uint32_t height,
							 | 
						||
| 
								 | 
							
									uint32_t *output,
							 | 
						||
| 
								 | 
							
									uint32_t trY,
							 | 
						||
| 
								 | 
							
									uint32_t trU,
							 | 
						||
| 
								 | 
							
									uint32_t trV,
							 | 
						||
| 
								 | 
							
									uint32_t trA,
							 | 
						||
| 
								 | 
							
									bool wrapX,
							 | 
						||
| 
								 | 
							
									bool wrapY )
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									int lineSize = width * 2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									int previous, next;
							 | 
						||
| 
								 | 
							
									uint32_t w[9];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									trY <<= 16;
							 | 
						||
| 
								 | 
							
									trU <<= 8;
							 | 
						||
| 
								 | 
							
									trA <<= 24;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// iterates between the lines
							 | 
						||
| 
								 | 
							
									for (uint32_t row = 0; row < height; row++)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										/*
							 | 
						||
| 
								 | 
							
										 * Note: this function uses a 3x3 sliding window over the original image.
							 | 
						||
| 
								 | 
							
										 *
							 | 
						||
| 
								 | 
							
										 *   +----+----+----+
							 | 
						||
| 
								 | 
							
										 *   |    |    |    |
							 | 
						||
| 
								 | 
							
										 *   | w0 | w1 | w2 |
							 | 
						||
| 
								 | 
							
										 *   +----+----+----+
							 | 
						||
| 
								 | 
							
										 *   |    |    |    |
							 | 
						||
| 
								 | 
							
										 *   | w3 | w4 | w5 |
							 | 
						||
| 
								 | 
							
										 *   +----+----+----+
							 | 
						||
| 
								 | 
							
										 *   |    |    |    |
							 | 
						||
| 
								 | 
							
										 *   | w6 | w7 | w8 |
							 | 
						||
| 
								 | 
							
										 *   +----+----+----+
							 | 
						||
| 
								 | 
							
										 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// adjusts the previous and next line pointers
							 | 
						||
| 
								 | 
							
										if (row > 0)
							 | 
						||
| 
								 | 
							
											previous = -width;
							 | 
						||
| 
								 | 
							
										else
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (wrapY)
							 | 
						||
| 
								 | 
							
												previous = width * (height - 1);
							 | 
						||
| 
								 | 
							
											else
							 | 
						||
| 
								 | 
							
												previous = 0;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										if (row < height - 1)
							 | 
						||
| 
								 | 
							
											next = width;
							 | 
						||
| 
								 | 
							
										else
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (wrapY)
							 | 
						||
| 
								 | 
							
												next = -(width * (height - 1));
							 | 
						||
| 
								 | 
							
											else
							 | 
						||
| 
								 | 
							
												next = 0;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// iterates between the columns
							 | 
						||
| 
								 | 
							
										for (uint32_t col = 0; col < width; col++)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											w[1] = *(image + previous);
							 | 
						||
| 
								 | 
							
											w[4] = *image;
							 | 
						||
| 
								 | 
							
											w[7] = *(image + next);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (col > 0)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												w[0] = *(image + previous - 1);
							 | 
						||
| 
								 | 
							
												w[3] = *(image - 1);
							 | 
						||
| 
								 | 
							
												w[6] = *(image + next - 1);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												if (wrapX)
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													w[0] = *(image + previous + width - 1);
							 | 
						||
| 
								 | 
							
													w[3] = *(image + width - 1);
							 | 
						||
| 
								 | 
							
													w[6] = *(image + next + width - 1);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												else
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													w[0] = w[1];
							 | 
						||
| 
								 | 
							
													w[3] = w[4];
							 | 
						||
| 
								 | 
							
													w[6] = w[7];
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (col < width - 1)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												w[2] = *(image + previous + 1);
							 | 
						||
| 
								 | 
							
												w[5] = *(image + 1);
							 | 
						||
| 
								 | 
							
												w[8] = *(image + next + 1);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												if (wrapX)
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													w[2] = *(image + previous - width + 1);
							 | 
						||
| 
								 | 
							
													w[5] = *(image - width + 1);
							 | 
						||
| 
								 | 
							
													w[8] = *(image + next - width + 1);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												else
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													w[2] = w[1];
							 | 
						||
| 
								 | 
							
													w[5] = w[4];
							 | 
						||
| 
								 | 
							
													w[8] = w[7];
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											int pattern = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// computes the pattern to be used considering the neighbor pixels
							 | 
						||
| 
								 | 
							
											for (int k = 0, flag = 1; k < 9; k++)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												// ignores the central pixel
							 | 
						||
| 
								 | 
							
												if (k == 4) continue;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												if (w[k] != w[4])
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[4], w[k], trY, trU, trV, trA)) pattern |= flag;
							 | 
						||
| 
								 | 
							
												flag <<= 1;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											switch (pattern)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												case 0:
							 | 
						||
| 
								 | 
							
												case 1:
							 | 
						||
| 
								 | 
							
												case 4:
							 | 
						||
| 
								 | 
							
												case 32:
							 | 
						||
| 
								 | 
							
												case 128:
							 | 
						||
| 
								 | 
							
												case 5:
							 | 
						||
| 
								 | 
							
												case 132:
							 | 
						||
| 
								 | 
							
												case 160:
							 | 
						||
| 
								 | 
							
												case 33:
							 | 
						||
| 
								 | 
							
												case 129:
							 | 
						||
| 
								 | 
							
												case 36:
							 | 
						||
| 
								 | 
							
												case 133:
							 | 
						||
| 
								 | 
							
												case 164:
							 | 
						||
| 
								 | 
							
												case 161:
							 | 
						||
| 
								 | 
							
												case 37:
							 | 
						||
| 
								 | 
							
												case 165:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 2:
							 | 
						||
| 
								 | 
							
												case 34:
							 | 
						||
| 
								 | 
							
												case 130:
							 | 
						||
| 
								 | 
							
												case 162:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 16:
							 | 
						||
| 
								 | 
							
												case 17:
							 | 
						||
| 
								 | 
							
												case 48:
							 | 
						||
| 
								 | 
							
												case 49:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 64:
							 | 
						||
| 
								 | 
							
												case 65:
							 | 
						||
| 
								 | 
							
												case 68:
							 | 
						||
| 
								 | 
							
												case 69:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 8:
							 | 
						||
| 
								 | 
							
												case 12:
							 | 
						||
| 
								 | 
							
												case 136:
							 | 
						||
| 
								 | 
							
												case 140:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 3:
							 | 
						||
| 
								 | 
							
												case 35:
							 | 
						||
| 
								 | 
							
												case 131:
							 | 
						||
| 
								 | 
							
												case 163:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 6:
							 | 
						||
| 
								 | 
							
												case 38:
							 | 
						||
| 
								 | 
							
												case 134:
							 | 
						||
| 
								 | 
							
												case 166:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 20:
							 | 
						||
| 
								 | 
							
												case 21:
							 | 
						||
| 
								 | 
							
												case 52:
							 | 
						||
| 
								 | 
							
												case 53:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 144:
							 | 
						||
| 
								 | 
							
												case 145:
							 | 
						||
| 
								 | 
							
												case 176:
							 | 
						||
| 
								 | 
							
												case 177:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 192:
							 | 
						||
| 
								 | 
							
												case 193:
							 | 
						||
| 
								 | 
							
												case 196:
							 | 
						||
| 
								 | 
							
												case 197:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 96:
							 | 
						||
| 
								 | 
							
												case 97:
							 | 
						||
| 
								 | 
							
												case 100:
							 | 
						||
| 
								 | 
							
												case 101:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 40:
							 | 
						||
| 
								 | 
							
												case 44:
							 | 
						||
| 
								 | 
							
												case 168:
							 | 
						||
| 
								 | 
							
												case 172:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 9:
							 | 
						||
| 
								 | 
							
												case 13:
							 | 
						||
| 
								 | 
							
												case 137:
							 | 
						||
| 
								 | 
							
												case 141:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 18:
							 | 
						||
| 
								 | 
							
												case 50:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 80:
							 | 
						||
| 
								 | 
							
												case 81:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 72:
							 | 
						||
| 
								 | 
							
												case 76:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 10:
							 | 
						||
| 
								 | 
							
												case 138:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 66:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 24:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 7:
							 | 
						||
| 
								 | 
							
												case 39:
							 | 
						||
| 
								 | 
							
												case 135:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 148:
							 | 
						||
| 
								 | 
							
												case 149:
							 | 
						||
| 
								 | 
							
												case 180:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 224:
							 | 
						||
| 
								 | 
							
												case 228:
							 | 
						||
| 
								 | 
							
												case 225:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 41:
							 | 
						||
| 
								 | 
							
												case 169:
							 | 
						||
| 
								 | 
							
												case 45:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 22:
							 | 
						||
| 
								 | 
							
												case 54:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 208:
							 | 
						||
| 
								 | 
							
												case 209:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 104:
							 | 
						||
| 
								 | 
							
												case 108:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 11:
							 | 
						||
| 
								 | 
							
												case 139:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 19:
							 | 
						||
| 
								 | 
							
												case 51:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 146:
							 | 
						||
| 
								 | 
							
												case 178:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 84:
							 | 
						||
| 
								 | 
							
												case 85:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 112:
							 | 
						||
| 
								 | 
							
												case 113:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 200:
							 | 
						||
| 
								 | 
							
												case 204:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 73:
							 | 
						||
| 
								 | 
							
												case 77:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 42:
							 | 
						||
| 
								 | 
							
												case 170:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 14:
							 | 
						||
| 
								 | 
							
												case 142:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 67:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 70:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 28:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 152:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 194:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 98:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 56:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 25:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 26:
							 | 
						||
| 
								 | 
							
												case 31:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 82:
							 | 
						||
| 
								 | 
							
												case 214:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 88:
							 | 
						||
| 
								 | 
							
												case 248:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 74:
							 | 
						||
| 
								 | 
							
												case 107:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 27:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 86:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 216:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 106:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 30:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 210:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 120:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 75:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 29:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 198:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 184:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 99:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 57:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 71:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 156:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 226:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 60:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 195:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 102:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 153:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 58:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 83:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 92:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 202:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 78:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 154:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 114:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 89:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 90:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 55:
							 | 
						||
| 
								 | 
							
												case 23:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 182:
							 | 
						||
| 
								 | 
							
												case 150:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 213:
							 | 
						||
| 
								 | 
							
												case 212:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 241:
							 | 
						||
| 
								 | 
							
												case 240:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 236:
							 | 
						||
| 
								 | 
							
												case 232:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 109:
							 | 
						||
| 
								 | 
							
												case 105:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 171:
							 | 
						||
| 
								 | 
							
												case 43:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 143:
							 | 
						||
| 
								 | 
							
												case 15:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 124:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 203:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 62:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 211:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 118:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 217:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 110:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 155:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 188:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 185:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 61:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 157:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 103:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 227:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 230:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 199:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 220:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 158:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 234:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 242:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 59:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 121:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 87:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 79:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 122:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 94:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 218:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 91:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 229:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 167:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 173:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 181:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 186:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 115:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 93:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 206:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 205:
							 | 
						||
| 
								 | 
							
												case 201:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 174:
							 | 
						||
| 
								 | 
							
												case 46:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 179:
							 | 
						||
| 
								 | 
							
												case 147:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 117:
							 | 
						||
| 
								 | 
							
												case 116:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_6_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 189:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 231:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 126:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 219:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 125:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 221:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_1_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 207:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 238:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_5_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 190:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 187:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_3_3
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_7_5_2_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 243:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 119:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_5_2_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_3_3
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 237:
							 | 
						||
| 
								 | 
							
												case 233:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 175:
							 | 
						||
| 
								 | 
							
												case 47:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 183:
							 | 
						||
| 
								 | 
							
												case 151:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 245:
							 | 
						||
| 
								 | 
							
												case 244:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 250:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 123:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 95:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 222:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 252:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_1_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 249:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_1_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 235:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_5_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 111:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_5_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 63:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_7_2_1_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 159:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_7_2_1_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 215:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 246:
							 | 
						||
| 
								 | 
							
													MIX_00_4_0_3_2_1_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 254:
							 | 
						||
| 
								 | 
							
													MIX_00_MIX_00_4_0_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 253:
							 | 
						||
| 
								 | 
							
													MIX_00_4_1_3_1
							 | 
						||
| 
								 | 
							
													MIX_01_4_1_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 251:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_2_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 239:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_01_4_5_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_5_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 127:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_1_5_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_10_4_7_3_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_11_4_8_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 191:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_7_3_1
							 | 
						||
| 
								 | 
							
													MIX_11_4_7_3_1
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 223:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_00_4_3_1_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_6_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_5_7_2_1_1
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 247:
							 | 
						||
| 
								 | 
							
													MIX_00_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													MIX_10_4_3_3_1
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
												case 255:
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[3], w[1], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
														MIX_00_4
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
														MIX_00_MIX_00_4_0_3_10
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[1], w[5], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
														MIX_01_4
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
														MIX_01_4_2_3_10
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[7], w[3], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
														MIX_10_4
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
														MIX_10_4_6_3_10
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
													if (isDifferent(w[5], w[7], trY, trU, trV, trA))
							 | 
						||
| 
								 | 
							
														MIX_11_4
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
														MIX_11_4_8_3_10
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											image++;
							 | 
						||
| 
								 | 
							
											output += 2;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										output += lineSize;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return output;
							 | 
						||
| 
								 | 
							
								}
							 |